@Override public FactTable get(int resolution, int ignoredRollTime) { // roll time will be taken from configuration todo: clean this up return dsFactory.getOrCreateFactTable(resolution); } };
/** * Creates the metrics tables and kafka-meta table using the factory {@link DefaultMetricDatasetFactory} * <p> * It is primarily used by upgrade and data-migration tool. * * @param factory : metrics dataset factory */ public static void setupDatasets(DefaultMetricDatasetFactory factory) { // adding all fact tables factory.getOrCreateFactTable(Constants.Metrics.SECOND_RESOLUTION); factory.getOrCreateFactTable(Constants.Metrics.MINUTE_RESOLUTION); factory.getOrCreateFactTable(Constants.Metrics.HOUR_RESOLUTION); factory.getOrCreateFactTable(Integer.MAX_VALUE); // adding kafka consumer meta factory.createConsumerMeta(); }
@Override public void deleteBefore(long timestamp) { for (int resolution : resolutionTTLMap.keySet()) { // Delete all data before the timestamp. null for MeasureName indicates match any MeasureName. deleteMetricsBeforeTimestamp(timestamp, resolution); } }
@Override public void deleteAll() { // this will delete all aggregates metrics data delete(new MetricDeleteQuery(0, System.currentTimeMillis() / 1000, Collections.emptySet(), Collections.emptyMap(), Collections.emptyList())); // this will delete all timeseries data deleteBefore(System.currentTimeMillis() / 1000); }
@Override public MetricsConsumerMetaTable createConsumerMeta() { String tableName = cConf.get(Constants.Metrics.METRICS_META_TABLE); MetricsTable table = getOrCreateMetricsTable(tableName, DatasetProperties.EMPTY); return new MetricsConsumerMetaTable(table); }
@Override public MetricsTable getOrCreateResolutionMetricsTable(String tableName, TableProperties.Builder props, int resolution) { return getOrCreateMetricsTable(tableName, props.build()); } }
@Override public void add(MetricValues metricValues) { add(ImmutableList.of(metricValues)); }
@Override public void delete(MetricDeleteQuery query) { cube.get().delete(buildCubeDeleteQuery(query)); }
private CubeExploreQuery buildCubeSearchQuery(MetricSearchQuery query) { return new CubeExploreQuery(query.getStartTs(), query.getEndTs(), query.getResolution(), query.getLimit(), toTagValues(query.getTagValues())); }
@Override public Collection<String> findMetricNames(MetricSearchQuery query) { return cube.get().findMeasureNames(buildCubeSearchQuery(query)); }
private CubeQuery buildCubeQuery(MetricDataQuery query) { String aggregation = getAggregation(query); return new CubeQuery(aggregation, query.getStartTs(), query.getEndTs(), query.getResolution(), query.getLimit(), query.getMetrics(), query.getSliceByTags(), query.getGroupByTags(), query.getInterpolator()); }
/** * Creates the metrics tables and metrics meta table using the factory {@link DefaultMetricDatasetFactory} * <p> * It is primarily used by upgrade and data-migration tool. * * @param cConf configuration * @param factory metrics dataset factory */ public static void setupDatasets(CConfiguration cConf, DefaultMetricDatasetFactory factory) { // adding all fact tables int minimumResolution = cConf.getInt(Constants.Metrics.METRICS_MINIMUM_RESOLUTION_SECONDS); if (minimumResolution < Constants.Metrics.MINUTE_RESOLUTION) { factory.getOrCreateFactTable(minimumResolution); } factory.getOrCreateFactTable(Constants.Metrics.MINUTE_RESOLUTION); factory.getOrCreateFactTable(Constants.Metrics.HOUR_RESOLUTION); factory.getOrCreateFactTable(Integer.MAX_VALUE); // adding consumer meta factory.createConsumerMeta(); }
@Override public MetricsConsumerMetaTable createConsumerMeta() { String tableName = cConf.get(Constants.Metrics.KAFKA_META_TABLE); MetricsTable table = getOrCreateMetricsTable(tableName, DatasetProperties.EMPTY); return new MetricsConsumerMetaTable(table); }
@Override public void deleteBefore(long timestamp) { for (int resolution : resolutionTTLMap.keySet()) { // Delete all data before the timestamp. null for MeasureName indicates match any MeasureName. deleteMetricsBeforeTimestamp(timestamp, resolution); } }
@Override public MetricsTable getOrCreateResolutionMetricsTable(String tableName, TableProperties.Builder props, int resolution) { return getOrCreateMetricsTable(tableName, props.build()); } }
@Override public void add(MetricValues metricValues) { add(ImmutableList.of(metricValues)); }
@Override public void delete(MetricDeleteQuery query) { cube.get().delete(buildCubeDeleteQuery(query)); }
private CubeExploreQuery buildCubeSearchQuery(MetricSearchQuery query) { return new CubeExploreQuery(query.getStartTs(), query.getEndTs(), query.getResolution(), query.getLimit(), toTagValues(query.getTagValues())); }
@Override public Collection<String> findMetricNames(MetricSearchQuery query) { return cube.get().findMeasureNames(buildCubeSearchQuery(query)); }
@Override public EntityTable get() { String tableName = cConf.get(Constants.Metrics.ENTITY_TABLE_NAME, Constants.Metrics.DEFAULT_ENTITY_TABLE_NAME); return new EntityTable(getOrCreateMetricsTable(tableName, DatasetProperties.EMPTY)); } });