public YarnContainerHeartbeatServlet(YarnAppState yarnAppState, ReadableMetricsRegistry registry) { this.yarnAppState = yarnAppState; this.mapper = new ObjectMapper(); this.heartbeatsExpiredCount = registry.newCounter(GROUP, "heartbeats-expired"); }
@Test public void testOnMessageUpdatesMetrics() { ReadableMetricsRegistry mockMetricsRegistry = mock(ReadableMetricsRegistry.class); when(this.context.getContainerContext().getContainerMetricsRegistry()).thenReturn(mockMetricsRegistry); Counter mockCounter = mock(Counter.class); Timer mockTimer = mock(Timer.class); when(mockMetricsRegistry.newCounter(anyString(), anyString())).thenReturn(mockCounter); when(mockMetricsRegistry.newTimer(anyString(), anyString())).thenReturn(mockTimer); Object mockTestOpImplOutput = mock(Object.class); OperatorImpl<Object, Object> opImpl = new TestOpImpl(mockTestOpImplOutput); opImpl.init(this.context); // send a message to this operator MessageCollector mockCollector = mock(MessageCollector.class); TaskCoordinator mockCoordinator = mock(TaskCoordinator.class); opImpl.onMessage(mock(Object.class), mockCollector, mockCoordinator); // verify that it updates message count and timer metrics verify(mockCounter, times(1)).inc(); verify(mockTimer, times(1)).update(anyLong()); }
@Test public void testMetrics() { ReadableMetricsRegistry registry = new MetricsRegistryMap(); ElasticsearchSystemProducerMetrics metrics = new ElasticsearchSystemProducerMetrics("es", registry); metrics.bulkSendSuccess.inc(29L); metrics.inserts.inc(); metrics.updates.inc(7L); metrics.conflicts.inc(3L); Set<String> groups = registry.getGroups(); assertEquals(1, groups.size()); assertEquals(GRP_NAME, groups.toArray()[0]); Map<String, Metric> metricMap = registry.getGroup(GRP_NAME); assertEquals(4, metricMap.size()); assertEquals(29L, ((Counter) metricMap.get("es-bulk-send-success")).getCount()); assertEquals(1L, ((Counter) metricMap.get("es-docs-inserted")).getCount()); assertEquals(7L, ((Counter) metricMap.get("es-docs-updated")).getCount()); assertEquals(3L, ((Counter) metricMap.get("es-version-conflicts")).getCount()); }
Assert.assertEquals(metrics.systemName(), systemName); Map<String, Metric> metricMap = registry.getGroup(groupName); validate(metricMap, expectedValues);
@Test public void testOnTimerUpdatesMetrics() { ReadableMetricsRegistry mockMetricsRegistry = mock(ReadableMetricsRegistry.class); when(this.context.getContainerContext().getContainerMetricsRegistry()).thenReturn(mockMetricsRegistry); Counter mockMessageCounter = mock(Counter.class); Timer mockTimer = mock(Timer.class); when(mockMetricsRegistry.newCounter(anyString(), anyString())).thenReturn(mockMessageCounter); when(mockMetricsRegistry.newTimer(anyString(), anyString())).thenReturn(mockTimer); Object mockTestOpImplOutput = mock(Object.class); OperatorImpl<Object, Object> opImpl = new TestOpImpl(mockTestOpImplOutput); opImpl.init(this.context); // send a message to this operator MessageCollector mockCollector = mock(MessageCollector.class); TaskCoordinator mockCoordinator = mock(TaskCoordinator.class); opImpl.onTimer(mockCollector, mockCoordinator); // verify that it updates metrics verify(mockMessageCounter, times(0)).inc(); verify(mockTimer, times(1)).update(anyLong()); }
public YarnContainerHeartbeatServlet(YarnAppState yarnAppState, ReadableMetricsRegistry registry) { this.yarnAppState = yarnAppState; this.mapper = new ObjectMapper(); this.heartbeatsExpiredCount = registry.newCounter(GROUP, "heartbeats-expired"); }