private JobManager(@NonNull final Configuration conf, @NotEmpty final String appName, @NotEmpty final String frequency, final boolean shouldLockFrequency) { this.conf = conf; this.appName = appName; this.jobMetrics = new JobMetrics(appName); this.reporters = new Reporters(); this.reporters.addReporter(new ConsoleReporter()); this.jobLockManager = new JobLockManager(conf, frequency, shouldLockFrequency); this.postJobManagerActions = new JobDagActions(this.reporters, "jobManager"); }
@Override public boolean execute(final boolean success) { if (success) { this.reporters.getReporters().forEach(reporter -> { this.jobMetrics.gaugeAll(reporter); this.dataFeedMetrics.gaugeAll(reporter); }); } else { log.warn("No metrics produced or actions being executed on reporter because errors were encountered"); } return success; }
public LongMetric createJobLongMetric(@NonNull final JobMetricType metricType, final long metricValue, @NonNull final Map<String, String> additionalTags) { final LongMetric metric = new LongMetric(getMetricName(metricType), metricValue); metric.addTags(getBaseTags()); metric.addTags(additionalTags); this.metricSet.add(metric); return metric; }
@Test public void testCreateJobTimerMetric() { Metric jobMetric1 = jobMetrics.createJobTimerMetric(JobMetricType.RUNTIME, Maps.newHashMap()); Metric jobMetric2 = jobMetrics.createJobTimerMetric(JobMetricType.STAGE_RUNTIME, Maps.newHashMap()); assertEquals("job-runtime", jobMetric1.getMetricName()); assertEquals("job-stage_runtime", jobMetric2.getMetricName()); assertTrue(jobMetric1 instanceof TimerMetric); assertTrue(jobMetric2 instanceof TimerMetric); assertTrue(jobMetric1.getTags().containsKey("job")); assertEquals(jobMetric1.getTags().get("job"), "test-job"); assertFalse(jobMetric1.getTags().containsKey("topic")); assertFalse(jobMetric1.getTags().containsKey("hello")); jobMetric1.addTag("hello", "world"); assertTrue(jobMetric1.getTags().containsKey("hello")); assertTrue(jobMetrics.getMetricSet().contains(jobMetric1)); assertTrue(jobMetrics.getMetricSet().contains(jobMetric2)); }
@Test public void testCreateJobLongMetric() { Metric jobMetric1 = jobMetrics.createJobLongMetric(JobMetricType.DRIVER_MEMORY, 100l, Maps.newHashMap()); Metric jobMetric2 = jobMetrics.createJobLongMetric(JobMetricType.SIZE, 1028l, Maps.newHashMap()); assertEquals("job-driver_memory", jobMetric1.getMetricName()); assertEquals("job-size", jobMetric2.getMetricName()); assertEquals(new Long(100), jobMetric1.getMetricValue()); assertEquals(new Long(1028), jobMetric2.getMetricValue()); assertTrue(jobMetric1.getTags().containsKey("job")); assertEquals(jobMetric1.getTags().get("job"), "test-job"); assertFalse(jobMetric1.getTags().containsKey("topic")); assertFalse(jobMetric1.getTags().containsKey("hello")); jobMetric1.addTag("hello", "world"); assertTrue(jobMetric1.getTags().containsKey("hello")); assertTrue(jobMetrics.getMetricSet().contains(jobMetric1)); assertTrue(jobMetrics.getMetricSet().contains(jobMetric2)); }
public TimerMetric createJobTimerMetric(@NonNull final JobMetricType metricType, @NonNull final Map<String, String> additionalTags) { final TimerMetric metric = new TimerMetric(getMetricName(metricType)); metric.addTags(getBaseTags()); metric.addTags(additionalTags); metricSet.add(metric); return metric; }
public TestParentSubDag(@NonNull final AtomicInteger stepCounter) { super("parent"); this.stepCounter = stepCounter; addSubDag(0, new TestSubDag(true, stepCounter)); addSubDag(1, new TestSubDag(false, stepCounter)); final String jobName = "testJob"; setJobMetrics(new JobMetrics(jobName)); setDataFeedMetrics(new DataFeedMetrics(jobName, new HashMap<>())); }