Search in sources :

Example 1 with Event

use of org.apache.druid.java.util.emitter.core.Event in project druid by druid-io.

the class SeekableStreamSupervisorStateTest method testEmitTimeLag.

@Test
public void testEmitTimeLag() throws Exception {
    expectEmitterSupervisor(false);
    CountDownLatch latch = new CountDownLatch(2);
    TestEmittingTestSeekableStreamSupervisor supervisor = new TestEmittingTestSeekableStreamSupervisor(latch, null, ImmutableMap.of("1", 10000L, "2", 15000L, "3", 20000L));
    supervisor.start();
    Assert.assertTrue(supervisor.stateManager.isHealthy());
    Assert.assertEquals(BasicState.PENDING, supervisor.stateManager.getSupervisorState());
    Assert.assertEquals(BasicState.PENDING, supervisor.stateManager.getSupervisorState().getBasicState());
    Assert.assertTrue(supervisor.stateManager.getExceptionEvents().isEmpty());
    Assert.assertFalse(supervisor.stateManager.isAtLeastOneSuccessfulRun());
    latch.await();
    List<Event> events = emitter.getEvents();
    List<String> whitelist = Arrays.asList("ingest/test/lag/time", "ingest/test/maxLag/time", "ingest/test/avgLag/time");
    events = filterMetrics(events, whitelist);
    Assert.assertEquals(3, events.size());
    Assert.assertEquals("ingest/test/lag/time", events.get(0).toMap().get("metric"));
    Assert.assertEquals(45000L, events.get(0).toMap().get("value"));
    Assert.assertEquals("ingest/test/maxLag/time", events.get(1).toMap().get("metric"));
    Assert.assertEquals(20000L, events.get(1).toMap().get("value"));
    Assert.assertEquals("ingest/test/avgLag/time", events.get(2).toMap().get("metric"));
    Assert.assertEquals(15000L, events.get(2).toMap().get("value"));
    verifyAll();
}
Also used : Event(org.apache.druid.java.util.emitter.core.Event) SeekableStreamExceptionEvent(org.apache.druid.indexing.seekablestream.supervisor.SeekableStreamSupervisorStateManager.SeekableStreamExceptionEvent) CountDownLatch(java.util.concurrent.CountDownLatch) Test(org.junit.Test)

Example 2 with Event

use of org.apache.druid.java.util.emitter.core.Event in project druid by druid-io.

the class SeekableStreamSupervisorStateTest method testEmitBothLag.

@Test
public void testEmitBothLag() throws Exception {
    expectEmitterSupervisor(false);
    CountDownLatch latch = new CountDownLatch(2);
    TestEmittingTestSeekableStreamSupervisor supervisor = new TestEmittingTestSeekableStreamSupervisor(latch, ImmutableMap.of("1", 100L, "2", 250L, "3", 500L), ImmutableMap.of("1", 10000L, "2", 15000L, "3", 20000L));
    supervisor.start();
    Assert.assertTrue(supervisor.stateManager.isHealthy());
    Assert.assertEquals(BasicState.PENDING, supervisor.stateManager.getSupervisorState());
    Assert.assertEquals(BasicState.PENDING, supervisor.stateManager.getSupervisorState().getBasicState());
    Assert.assertTrue(supervisor.stateManager.getExceptionEvents().isEmpty());
    Assert.assertFalse(supervisor.stateManager.isAtLeastOneSuccessfulRun());
    latch.await();
    List<Event> events = emitter.getEvents();
    List<String> whitelist = Arrays.asList("ingest/test/lag", "ingest/test/maxLag", "ingest/test/avgLag", "ingest/test/lag/time", "ingest/test/maxLag/time", "ingest/test/avgLag/time");
    events = filterMetrics(events, whitelist);
    Assert.assertEquals(6, events.size());
    Assert.assertEquals("ingest/test/lag", events.get(0).toMap().get("metric"));
    Assert.assertEquals(850L, events.get(0).toMap().get("value"));
    Assert.assertEquals("ingest/test/maxLag", events.get(1).toMap().get("metric"));
    Assert.assertEquals(500L, events.get(1).toMap().get("value"));
    Assert.assertEquals("ingest/test/avgLag", events.get(2).toMap().get("metric"));
    Assert.assertEquals(283L, events.get(2).toMap().get("value"));
    Assert.assertEquals("ingest/test/lag/time", events.get(3).toMap().get("metric"));
    Assert.assertEquals(45000L, events.get(3).toMap().get("value"));
    Assert.assertEquals("ingest/test/maxLag/time", events.get(4).toMap().get("metric"));
    Assert.assertEquals(20000L, events.get(4).toMap().get("value"));
    Assert.assertEquals("ingest/test/avgLag/time", events.get(5).toMap().get("metric"));
    Assert.assertEquals(15000L, events.get(5).toMap().get("value"));
    verifyAll();
}
Also used : Event(org.apache.druid.java.util.emitter.core.Event) SeekableStreamExceptionEvent(org.apache.druid.indexing.seekablestream.supervisor.SeekableStreamSupervisorStateManager.SeekableStreamExceptionEvent) CountDownLatch(java.util.concurrent.CountDownLatch) Test(org.junit.Test)

Example 3 with Event

use of org.apache.druid.java.util.emitter.core.Event in project druid by druid-io.

the class SeekableStreamSupervisorStateTest method testEmitRecordLag.

@Test
public void testEmitRecordLag() throws Exception {
    expectEmitterSupervisor(false);
    CountDownLatch latch = new CountDownLatch(2);
    TestEmittingTestSeekableStreamSupervisor supervisor = new TestEmittingTestSeekableStreamSupervisor(latch, ImmutableMap.of("1", 100L, "2", 250L, "3", 500L), null);
    supervisor.start();
    Assert.assertTrue(supervisor.stateManager.isHealthy());
    Assert.assertEquals(BasicState.PENDING, supervisor.stateManager.getSupervisorState());
    Assert.assertEquals(BasicState.PENDING, supervisor.stateManager.getSupervisorState().getBasicState());
    Assert.assertTrue(supervisor.stateManager.getExceptionEvents().isEmpty());
    Assert.assertFalse(supervisor.stateManager.isAtLeastOneSuccessfulRun());
    latch.await();
    List<Event> events = emitter.getEvents();
    List<String> whitelist = Arrays.asList("ingest/test/lag", "ingest/test/maxLag", "ingest/test/avgLag");
    events = filterMetrics(events, whitelist);
    Assert.assertEquals(3, events.size());
    Assert.assertEquals("ingest/test/lag", events.get(0).toMap().get("metric"));
    Assert.assertEquals(850L, events.get(0).toMap().get("value"));
    Assert.assertEquals("ingest/test/maxLag", events.get(1).toMap().get("metric"));
    Assert.assertEquals(500L, events.get(1).toMap().get("value"));
    Assert.assertEquals("ingest/test/avgLag", events.get(2).toMap().get("metric"));
    Assert.assertEquals(283L, events.get(2).toMap().get("value"));
    verifyAll();
}
Also used : Event(org.apache.druid.java.util.emitter.core.Event) SeekableStreamExceptionEvent(org.apache.druid.indexing.seekablestream.supervisor.SeekableStreamSupervisorStateManager.SeekableStreamExceptionEvent) CountDownLatch(java.util.concurrent.CountDownLatch) Test(org.junit.Test)

Example 4 with Event

use of org.apache.druid.java.util.emitter.core.Event in project druid by druid-io.

the class ShuffleMonitorTest method testDoMonitor.

@Test
public void testDoMonitor() {
    final ShuffleMetrics shuffleMetrics = Mockito.mock(ShuffleMetrics.class);
    final PerDatasourceShuffleMetrics perDatasourceShuffleMetrics = new PerDatasourceShuffleMetrics();
    perDatasourceShuffleMetrics.accumulate(100);
    perDatasourceShuffleMetrics.accumulate(200);
    perDatasourceShuffleMetrics.accumulate(10);
    Mockito.when(shuffleMetrics.snapshotAndReset()).thenReturn(ImmutableMap.of("supervisor", perDatasourceShuffleMetrics));
    final StubServiceEmitter emitter = new StubServiceEmitter("service", "host");
    final ShuffleMonitor monitor = new ShuffleMonitor();
    monitor.setShuffleMetrics(shuffleMetrics);
    Assert.assertTrue(monitor.doMonitor(emitter));
    final List<Event> events = emitter.getEvents();
    Assert.assertEquals(2, events.size());
    Assert.assertSame(ServiceMetricEvent.class, events.get(0).getClass());
    ServiceMetricEvent event = (ServiceMetricEvent) events.get(0);
    Assert.assertEquals(ShuffleMonitor.SHUFFLE_BYTES_KEY, event.getMetric());
    Assert.assertEquals(310L, event.getValue());
    Assert.assertEquals(ImmutableMap.of(ShuffleMonitor.SUPERVISOR_TASK_ID_DIMENSION, "supervisor"), event.getUserDims());
    Assert.assertSame(ServiceMetricEvent.class, events.get(1).getClass());
    event = (ServiceMetricEvent) events.get(1);
    Assert.assertEquals(ShuffleMonitor.SHUFFLE_REQUESTS_KEY, event.getMetric());
    Assert.assertEquals(3, event.getValue());
    Assert.assertEquals(ImmutableMap.of(ShuffleMonitor.SUPERVISOR_TASK_ID_DIMENSION, "supervisor"), event.getUserDims());
}
Also used : StubServiceEmitter(org.apache.druid.java.util.metrics.StubServiceEmitter) PerDatasourceShuffleMetrics(org.apache.druid.indexing.worker.shuffle.ShuffleMetrics.PerDatasourceShuffleMetrics) ServiceMetricEvent(org.apache.druid.java.util.emitter.service.ServiceMetricEvent) Event(org.apache.druid.java.util.emitter.core.Event) ServiceMetricEvent(org.apache.druid.java.util.emitter.service.ServiceMetricEvent) PerDatasourceShuffleMetrics(org.apache.druid.indexing.worker.shuffle.ShuffleMetrics.PerDatasourceShuffleMetrics) Test(org.junit.Test)

Example 5 with Event

use of org.apache.druid.java.util.emitter.core.Event in project druid by druid-io.

the class MonitorsTest method checkEvents.

private void checkEvents(List<Event> events, String expectedFeed) {
    Assert.assertFalse("no events emitted", events.isEmpty());
    for (Event e : events) {
        if (!expectedFeed.equals(e.getFeed())) {
            String message = StringUtils.format("\"feed\" in event: %s", e.toMap().toString());
            Assert.assertEquals(message, expectedFeed, e.getFeed());
        }
    }
}
Also used : Event(org.apache.druid.java.util.emitter.core.Event)

Aggregations

Event (org.apache.druid.java.util.emitter.core.Event)22 Test (org.junit.Test)19 CountDownLatch (java.util.concurrent.CountDownLatch)12 ServiceEmitter (org.apache.druid.java.util.emitter.service.ServiceEmitter)10 ArrayList (java.util.ArrayList)9 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)7 Arrays (java.util.Arrays)6 Collections (java.util.Collections)6 HashSet (java.util.HashSet)6 List (java.util.List)6 Map (java.util.Map)6 TimeUnit (java.util.concurrent.TimeUnit)6 Pair (org.apache.druid.java.util.common.Pair)6 TypeReference (com.fasterxml.jackson.core.type.TypeReference)5 Preconditions (com.google.common.base.Preconditions)5 ImmutableList (com.google.common.collect.ImmutableList)5 ImmutableMap (com.google.common.collect.ImmutableMap)5 Sets (com.google.common.collect.Sets)5 Files (com.google.common.io.Files)5 BufferedWriter (java.io.BufferedWriter)5