Search in sources :

Example 11 with Range

use of com.navercorp.pinpoint.web.vo.Range in project pinpoint by naver.

the class AgentEventTimelineTest method rangeLessThanNumTimeslots.

@Test
public void rangeLessThanNumTimeslots() {
    // Given
    Range range = new Range(10, 20);
    AgentEvent event1 = createAgentEvent(10, AgentEventType.AGENT_PING);
    AgentEvent event2 = createAgentEvent(11, AgentEventType.AGENT_PING);
    AgentEvent event3 = createAgentEvent(12, AgentEventType.AGENT_PING);
    AgentEvent event4 = createAgentEvent(13, AgentEventType.AGENT_PING);
    AgentEvent event5 = createAgentEvent(14, AgentEventType.AGENT_PING);
    AgentEvent event6 = createAgentEvent(15, AgentEventType.AGENT_PING);
    AgentEvent event7 = createAgentEvent(16, AgentEventType.AGENT_PING);
    AgentEvent event8 = createAgentEvent(17, AgentEventType.AGENT_PING);
    AgentEvent event9 = createAgentEvent(18, AgentEventType.AGENT_PING);
    AgentEvent event10 = createAgentEvent(19, AgentEventType.AGENT_PING);
    List<AgentEventTimelineSegment> expectedTimelineSegments = Arrays.asList(createSegment(10, 11, Collections.singletonList(event1)), createSegment(11, 12, Collections.singletonList(event2)), createSegment(12, 13, Collections.singletonList(event3)), createSegment(13, 14, Collections.singletonList(event4)), createSegment(14, 15, Collections.singletonList(event5)), createSegment(15, 16, Collections.singletonList(event6)), createSegment(16, 17, Collections.singletonList(event7)), createSegment(17, 18, Collections.singletonList(event8)), createSegment(18, 19, Collections.singletonList(event9)), createSegment(19, 20, Collections.singletonList(event10)));
    // When
    AgentEventTimeline timeline = new AgentEventTimelineBuilder(range, 100).from(Arrays.asList(event1, event2, event3, event4, event5, event6, event7, event8, event9, event10)).build();
    // Then
    Assert.assertEquals(expectedTimelineSegments, timeline.getTimelineSegments());
}
Also used : Range(com.navercorp.pinpoint.web.vo.Range) AgentEvent(com.navercorp.pinpoint.web.vo.AgentEvent) Test(org.junit.Test)

Example 12 with Range

use of com.navercorp.pinpoint.web.vo.Range in project pinpoint by naver.

the class AgentEventTimelineTest method rightBiasedSpread.

@Test
public void rightBiasedSpread() {
    // Given
    Range range = new Range(0, 199);
    AgentEvent event1 = createAgentEvent(0, AgentEventType.AGENT_CONNECTED);
    AgentEvent event2 = createAgentEvent(5, AgentEventType.AGENT_PING);
    AgentEvent event3 = createAgentEvent(100, AgentEventType.AGENT_PING);
    AgentEvent event4 = createAgentEvent(110, AgentEventType.AGENT_PING);
    AgentEvent event5 = createAgentEvent(199, AgentEventType.AGENT_PING);
    AgentEvent event6 = createAgentEvent(200, AgentEventType.AGENT_SHUTDOWN);
    List<AgentEventTimelineSegment> expectedTimelineSegments = Arrays.asList(createSegment(0, 1, Collections.singletonList(event1)), createSegment(5, 6, Collections.singletonList(event2)), createSegment(99, 199, Arrays.asList(event3, event4, event5, event6)));
    // When
    AgentEventTimeline timeline = new AgentEventTimelineBuilder(range, 100).from(Arrays.asList(event1, event2, event3, event4, event5, event6)).build();
    // Then
    Assert.assertEquals(expectedTimelineSegments, timeline.getTimelineSegments());
}
Also used : Range(com.navercorp.pinpoint.web.vo.Range) AgentEvent(com.navercorp.pinpoint.web.vo.AgentEvent) Test(org.junit.Test)

Example 13 with Range

use of com.navercorp.pinpoint.web.vo.Range in project pinpoint by naver.

the class AgentEventTimelineTest method fullTimeslots_multipleEvents.

@Test
public void fullTimeslots_multipleEvents() {
    // Given
    long timeRangeMs = TimeUnit.DAYS.toMillis(7);
    long from = System.currentTimeMillis();
    long to = from + timeRangeMs;
    Range range = new Range(from, to);
    int numTimeslots = 100;
    int expectedEventCountPerSegment = 20;
    List<AgentEvent> agentEvents = new ArrayList<>();
    for (int i = 0; i < timeRangeMs; i += (timeRangeMs / (numTimeslots * expectedEventCountPerSegment))) {
        agentEvents.add(createAgentEvent(from + i, AgentEventType.AGENT_PING));
    }
    // When
    AgentEventTimeline timeline = new AgentEventTimelineBuilder(range, numTimeslots).from(agentEvents).build();
    // Then
    List<AgentEventTimelineSegment> timelineSegments = timeline.getTimelineSegments();
    Assert.assertEquals(numTimeslots, timelineSegments.size());
    for (AgentEventTimelineSegment timelineSegment : timelineSegments) {
        AgentEventMarker eventMarker = timelineSegment.getValue();
        Assert.assertEquals(expectedEventCountPerSegment, eventMarker.getTotalCount());
        int pingEventCount = eventMarker.getTypeCounts().get(AgentEventType.AGENT_PING);
        Assert.assertEquals(expectedEventCountPerSegment, pingEventCount);
    }
}
Also used : ArrayList(java.util.ArrayList) Range(com.navercorp.pinpoint.web.vo.Range) AgentEvent(com.navercorp.pinpoint.web.vo.AgentEvent) Test(org.junit.Test)

Example 14 with Range

use of com.navercorp.pinpoint.web.vo.Range in project pinpoint by naver.

the class SampledAgentStatResultExtractorTest method two_to_one_sample_should_down_sample_correctly.

@Test
public void two_to_one_sample_should_down_sample_correctly() throws Exception {
    // Given
    final int numValues = 20;
    final long initialTimestamp = System.currentTimeMillis();
    final long finalTimestamp = initialTimestamp + (DEFAULT_TIME_INTERVAL * numValues);
    final TimeWindow timeWindow = new TimeWindow(new Range(initialTimestamp, finalTimestamp), TWO_TO_ONE_SAMPLER);
    final List<TestAgentStatDataPoint> dataPoints = createDataPoints(finalTimestamp, DEFAULT_TIME_INTERVAL, numValues);
    final Map<Long, List<TestAgentStatDataPoint>> expectedDataPointSlotMap = getExpectedDataPointSlotMap(timeWindow, dataPoints);
    when(this.rowMapper.mapRow(this.result, 0)).thenReturn(dataPoints);
    TestAgentStatSampler testAgentStatSampler = new TestAgentStatSampler();
    SampledAgentStatResultExtractor<TestAgentStatDataPoint, TestSampledAgentStatDataPoint> resultExtractor = new SampledAgentStatResultExtractor<>(timeWindow, this.rowMapper, testAgentStatSampler);
    // When
    List<TestSampledAgentStatDataPoint> sampledDataPoints = resultExtractor.extractData(this.resultScanner);
    // Then
    for (TestSampledAgentStatDataPoint sampledDataPoint : sampledDataPoints) {
        List<TestAgentStatDataPoint> expectedSampledDataPoints = expectedDataPointSlotMap.get(sampledDataPoint.getBaseTimestamp());
        Assert.assertEquals(expectedSampledDataPoints, sampledDataPoint.getDataPointsToSample());
    }
}
Also used : Range(com.navercorp.pinpoint.web.vo.Range) TimeWindow(com.navercorp.pinpoint.web.util.TimeWindow) AgentStatDataPoint(com.navercorp.pinpoint.common.server.bo.stat.AgentStatDataPoint) SampledAgentStatDataPoint(com.navercorp.pinpoint.web.vo.stat.SampledAgentStatDataPoint) ArrayList(java.util.ArrayList) List(java.util.List) Test(org.junit.Test)

Example 15 with Range

use of com.navercorp.pinpoint.web.vo.Range in project pinpoint by naver.

the class SampledAgentStatResultExtractorTest method ten_to_one_sample_should_down_sample_correctly.

@Test
public void ten_to_one_sample_should_down_sample_correctly() throws Exception {
    // Given
    final int numValues = 100;
    final long initialTimestamp = System.currentTimeMillis();
    final long finalTimestamp = initialTimestamp + (DEFAULT_TIME_INTERVAL * numValues);
    final TimeWindow timeWindow = new TimeWindow(new Range(initialTimestamp, finalTimestamp), TEN_TO_ONE_SAMPLER);
    final List<TestAgentStatDataPoint> dataPoints = createDataPoints(finalTimestamp, DEFAULT_TIME_INTERVAL, numValues);
    final Map<Long, List<TestAgentStatDataPoint>> expectedDataPointSlotMap = getExpectedDataPointSlotMap(timeWindow, dataPoints);
    when(this.rowMapper.mapRow(this.result, 0)).thenReturn(dataPoints);
    TestAgentStatSampler testAgentStatSampler = new TestAgentStatSampler();
    SampledAgentStatResultExtractor<TestAgentStatDataPoint, TestSampledAgentStatDataPoint> resultExtractor = new SampledAgentStatResultExtractor<>(timeWindow, this.rowMapper, testAgentStatSampler);
    // When
    List<TestSampledAgentStatDataPoint> sampledDataPoints = resultExtractor.extractData(this.resultScanner);
    // Then
    for (TestSampledAgentStatDataPoint sampledDataPoint : sampledDataPoints) {
        List<TestAgentStatDataPoint> expectedSampledDataPoints = expectedDataPointSlotMap.get(sampledDataPoint.getBaseTimestamp());
        Assert.assertEquals(expectedSampledDataPoints, sampledDataPoint.getDataPointsToSample());
    }
}
Also used : Range(com.navercorp.pinpoint.web.vo.Range) TimeWindow(com.navercorp.pinpoint.web.util.TimeWindow) AgentStatDataPoint(com.navercorp.pinpoint.common.server.bo.stat.AgentStatDataPoint) SampledAgentStatDataPoint(com.navercorp.pinpoint.web.vo.stat.SampledAgentStatDataPoint) ArrayList(java.util.ArrayList) List(java.util.List) Test(org.junit.Test)

Aggregations

Range (com.navercorp.pinpoint.web.vo.Range)101 Test (org.junit.Test)62 TimeWindow (com.navercorp.pinpoint.web.util.TimeWindow)23 AgentStatus (com.navercorp.pinpoint.web.vo.AgentStatus)16 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)16 ResponseBody (org.springframework.web.bind.annotation.ResponseBody)15 Application (com.navercorp.pinpoint.web.vo.Application)12 SampledAgentStatResultExtractor (com.navercorp.pinpoint.web.mapper.stat.SampledAgentStatResultExtractor)9 List (java.util.List)8 AgentEvent (com.navercorp.pinpoint.web.vo.AgentEvent)7 PreAuthorize (org.springframework.security.access.prepost.PreAuthorize)7 CpuLoadBo (com.navercorp.pinpoint.common.server.bo.stat.CpuLoadBo)6 JvmGcBo (com.navercorp.pinpoint.common.server.bo.stat.JvmGcBo)6 AgentStatDataPoint (com.navercorp.pinpoint.common.server.bo.stat.AgentStatDataPoint)5 TimeWindowSlotCentricSampler (com.navercorp.pinpoint.web.util.TimeWindowSlotCentricSampler)5 LegacyAgentStatChartGroup (com.navercorp.pinpoint.web.vo.stat.chart.LegacyAgentStatChartGroup)5 ArrayList (java.util.ArrayList)5 TimeWindowSampler (com.navercorp.pinpoint.web.util.TimeWindowSampler)4 StopWatch (org.springframework.util.StopWatch)4 ApplicationIndexDao (com.navercorp.pinpoint.web.dao.ApplicationIndexDao)3