@Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { currTag = true; currTagVal = ""; if(localName.equals("LocationTag")) boundary = new BoundaryValue(); else if(localName.equals("Tag")){ inTag = true; locTag = new TagValue();} }
private List<MetricTagValue> tagValuesToHuman(Collection<TagValue> tagValues) { List<MetricTagValue> result = Lists.newArrayList(); for (TagValue tagValue : tagValues) { String human = tagNameToHuman.get(tagValue.getName()); human = human != null ? human : tagValue.getName(); String value = tagValue.getValue() == null ? ANY_TAG_VALUE : tagValue.getValue(); result.add(new MetricTagValue(human, value)); } return result; }
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()); } }
@Nullable @Override public TagValue apply(@Nullable MetricTagValue input) { if (input == null) { // SHOULD NEVER happen throw new NullPointerException(); } return new TagValue(input.getName(), input.getValue()); } });
private List<MetricTagValue> tagValuesToHuman(Collection<TagValue> tagValues) { List<MetricTagValue> result = Lists.newArrayList(); for (TagValue tagValue : tagValues) { String human = tagNameToHuman.get(tagValue.getName()); human = human != null ? human : tagValue.getName(); String value = tagValue.getValue() == null ? ANY_TAG_VALUE : tagValue.getValue(); result.add(new MetricTagValue(human, value)); } return result; }
@Nullable @Override public TagValue apply(@Nullable MetricTagValue input) { if (input == null) { // SHOULD NEVER happen throw new NullPointerException(); } return new TagValue(input.getName(), input.getValue()); } });
@Override public Collection<TagValue> findNextAvailableTags(MetricSearchQuery query) { Collection<DimensionValue> tags = cube.get().findDimensionValues(buildCubeSearchQuery(query)); Collection<TagValue> result = Lists.newArrayList(); for (DimensionValue dimensionValue : tags) { result.add(new TagValue(dimensionValue.getName(), dimensionValue.getValue())); } return result; }
@Override public Collection<TagValue> findNextAvailableTags(MetricSearchQuery query) { Collection<DimensionValue> tags = cube.get().findDimensionValues(buildCubeSearchQuery(query)); Collection<TagValue> result = Lists.newArrayList(); for (DimensionValue dimensionValue : tags) { result.add(new TagValue(dimensionValue.getName(), dimensionValue.getValue())); } return result; }
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; }
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")); }