/** * Returns the metric context. A metric context is of the form * {applicationId}.{programTypeId}.{programId}.{componentId}. So for flows, it will look like * appX.f.flowY.flowletZ. For mapreduce jobs, appX.b.mapredY.{optional m|r}. */ private static Map<String, String> getMetricContext(ProgramId programId, TwillContext context) { Map<String, String> tags = new HashMap<>(); tags.put(Constants.Metrics.Tag.NAMESPACE, programId.getNamespace()); tags.put(Constants.Metrics.Tag.RUN_ID, context.getRunId().getId()); tags.put(Constants.Metrics.Tag.APP, programId.getApplication()); tags.put(ProgramTypeMetricTag.getTagName(programId.getType()), programId.getProgram()); return tags; } }
/** * Returns the metric context. A metric context is of the form * {applicationId}.{programTypeId}.{programId}.{componentId}. So for flows, it will look like * appX.f.flowY.flowletZ. For mapreduce jobs, appX.b.mapredY.{optional m|r}. */ private static Map<String, String> getMetricContext(ProgramId programId, TwillContext context) { Map<String, String> tags = new HashMap<>(); tags.put(Constants.Metrics.Tag.NAMESPACE, programId.getNamespace()); tags.put(Constants.Metrics.Tag.RUN_ID, context.getRunId().getId()); tags.put(Constants.Metrics.Tag.APP, programId.getApplication()); tags.put(ProgramTypeMetricTag.getTagName(programId.getType()), programId.getProgram()); if (programId.getType() == ProgramType.FLOW) { tags.put(Constants.Metrics.Tag.FLOWLET, context.getSpecification().getName()); } return tags; } }