private Collection<String> getMetrics(List<MetricTagValue> tagValues) { // we want to search the entire range, so startTimestamp is '0' and end Timestamp is Integer.MAX_VALUE and // limit is -1 , to include the entire search result. MetricSearchQuery searchQuery = new MetricSearchQuery(0, Integer.MAX_VALUE, -1, toTagValues(tagValues)); Collection<String> metricNames = metricStore.findMetricNames(searchQuery); return Lists.newArrayList(Iterables.filter(metricNames, Predicates.notNull())); }
private CubeExploreQuery buildCubeSearchQuery(MetricSearchQuery query) { return new CubeExploreQuery(query.getStartTs(), query.getEndTs(), query.getResolution(), query.getLimit(), toTagValues(query.getTagValues())); }
private Collection<String> getMetrics(List<MetricTagValue> tagValues) { // we want to search the entire range, so startTimestamp is '0' and end Timestamp is Integer.MAX_VALUE and // limit is -1 , to include the entire search result. MetricSearchQuery searchQuery = new MetricSearchQuery(0, Integer.MAX_VALUE, -1, toTagValues(tagValues)); Collection<String> metricNames = metricStore.findMetricNames(searchQuery); return Lists.newArrayList(Iterables.filter(metricNames, Predicates.notNull())); }
private CubeExploreQuery buildCubeSearchQuery(MetricSearchQuery query) { return new CubeExploreQuery(query.getStartTs(), query.getEndTs(), query.getResolution(), query.getLimit(), toTagValues(query.getTagValues())); }
private Map<String, Long> getSparkDetails(ProgramId sparkProgram, String runId) { Map<String, String> context = new HashMap<>(); context.put(Constants.Metrics.Tag.NAMESPACE, sparkProgram.getNamespace()); context.put(Constants.Metrics.Tag.APP, sparkProgram.getApplication()); context.put(Constants.Metrics.Tag.SPARK, sparkProgram.getProgram()); context.put(Constants.Metrics.Tag.RUN_ID, runId); List<TagValue> tags = new ArrayList<>(); for (Map.Entry<String, String> entry : context.entrySet()) { tags.add(new TagValue(entry.getKey(), entry.getValue())); } MetricSearchQuery metricSearchQuery = new MetricSearchQuery(0, 0, Integer.MAX_VALUE, tags); Collection<String> metricNames = metricStore.findMetricNames(metricSearchQuery); Map<String, Long> overallResult = new HashMap<>(); for (String metricName : metricNames) { Collection<MetricTimeSeries> resultPerQuery = metricStore.query( new MetricDataQuery(0, 0, Integer.MAX_VALUE, metricName, AggregationFunction.SUM, context, new ArrayList<String>())); for (MetricTimeSeries metricTimeSeries : resultPerQuery) { overallResult.put(metricTimeSeries.getMetricName(), metricTimeSeries.getTimeValues().get(0).getValue()); } } return overallResult; }
private Map<String, Long> getSparkDetails(ProgramId sparkProgram, String runId) { Map<String, String> context = new HashMap<>(); context.put(Constants.Metrics.Tag.NAMESPACE, sparkProgram.getNamespace()); context.put(Constants.Metrics.Tag.APP, sparkProgram.getApplication()); context.put(Constants.Metrics.Tag.SPARK, sparkProgram.getProgram()); context.put(Constants.Metrics.Tag.RUN_ID, runId); List<TagValue> tags = new ArrayList<>(); for (Map.Entry<String, String> entry : context.entrySet()) { tags.add(new TagValue(entry.getKey(), entry.getValue())); } MetricSearchQuery metricSearchQuery = new MetricSearchQuery(0, 0, Integer.MAX_VALUE, tags); Collection<String> metricNames = metricStore.findMetricNames(metricSearchQuery); Map<String, Long> overallResult = new HashMap<>(); for (String metricName : metricNames) { Collection<MetricTimeSeries> resultPerQuery = metricStore.query( new MetricDataQuery(0, 0, Integer.MAX_VALUE, metricName, AggregationFunction.SUM, context, new ArrayList<String>())); for (MetricTimeSeries metricTimeSeries : resultPerQuery) { overallResult.put(metricTimeSeries.getMetricName(), metricTimeSeries.getTimeValues().get(0).getValue()); } } return overallResult; }
public List<MetricTagValue> searchTags(List<String> tags) { // we want to search the entire range, so startTimestamp is '0' and end Timestamp is Integer.MAX_VALUE and // limit is -1 , to include the entire search result. MetricSearchQuery searchQuery = new MetricSearchQuery(0, Integer.MAX_VALUE, -1, toTagValues(humanToTagNames(parseTagValues(tags)))); return tagValuesToHuman(metricStore.findNextAvailableTags(searchQuery)); }
public List<MetricTagValue> searchTags(List<String> tags) { // we want to search the entire range, so startTimestamp is '0' and end Timestamp is Integer.MAX_VALUE and // limit is -1 , to include the entire search result. MetricSearchQuery searchQuery = new MetricSearchQuery(0, Integer.MAX_VALUE, -1, toTagValues(humanToTagNames(parseTagValues(tags)))); return tagValuesToHuman(metricStore.findNextAvailableTags(searchQuery)); }
private void testTaskMetric(String runId, boolean doesExist) throws Exception { List<TagValue> tags = new ArrayList<>(); tags.add(new TagValue(Constants.Metrics.Tag.NAMESPACE, NamespaceId.DEFAULT.getNamespace())); tags.add(new TagValue(Constants.Metrics.Tag.APP, DatasetWithMRApp.class.getSimpleName())); tags.add(new TagValue(Constants.Metrics.Tag.MAPREDUCE, DatasetWithMRApp.MAPREDUCE_PROGRAM)); tags.add(new TagValue(Constants.Metrics.Tag.RUN_ID, runId)); Collection<String> metricNames = getMetricsManager().searchMetricNames(new MetricSearchQuery(0, Integer.MAX_VALUE, Integer.MAX_VALUE, tags)); // we disabled task level metrics; this should return empty list Assert.assertEquals(doesExist, metricNames.contains("user.test.metric")); }
private void testTaskTagLevelExists(String appName, String programName, String runId, String datasetName, boolean doesExist) throws Exception { List<TagValue> tags = new ArrayList<>(); tags.add(new TagValue(Constants.Metrics.Tag.NAMESPACE, NamespaceId.DEFAULT.getNamespace())); tags.add(new TagValue(Constants.Metrics.Tag.APP, appName)); tags.add(new TagValue(Constants.Metrics.Tag.MAPREDUCE, programName)); tags.add(new TagValue(Constants.Metrics.Tag.RUN_ID, runId)); tags.add(new TagValue(Constants.Metrics.Tag.DATASET, datasetName)); tags.add(new TagValue(Constants.Metrics.Tag.MR_TASK_TYPE, "m")); Collection<TagValue> tagsValues = getMetricsManager().searchTags(new MetricSearchQuery(0, Integer.MAX_VALUE, Integer.MAX_VALUE, tags)); Assert.assertEquals(doesExist, !tagsValues.isEmpty()); if (doesExist) { Assert.assertEquals(Constants.Metrics.Tag.INSTANCE_ID, tagsValues.iterator().next().getName()); } }