@Override public OpStatsData toOpStatsData() { long numFailed = fail.getCount(); long numSuccess = success.getCount(); Snapshot s = success.getSnapshot(); double avgLatencyMillis = s.getMean(); EnumMap<OpStatsData.Percentile, Long> percentileLongMap = new EnumMap<OpStatsData.Percentile, Long>(OpStatsData.Percentile.class); for (OpStatsData.Percentile percent : OpStatsData.PERCENTILESET) { percentileLongMap.put(percent, (long) s.getValue(percent.getValue() / 100)); } return new OpStatsData(numSuccess, numFailed, avgLatencyMillis, percentileLongMap); }
@Test(timeout = 20000) public void testCreateSegment() throws Exception { // Set up PravegaRequestProcessor instance to execute requests against String streamSegmentName = "testCreateSegment"; @Cleanup ServiceBuilder serviceBuilder = newInlineExecutionInMemoryBuilder(getBuilderConfig()); serviceBuilder.initialize(); StreamSegmentStore store = serviceBuilder.createStreamSegmentService(); ServerConnection connection = mock(ServerConnection.class); InOrder order = inOrder(connection); PravegaRequestProcessor processor = new PravegaRequestProcessor(store, mock(TableStore.class), connection); // Execute and Verify createSegment/getStreamSegmentInfo calling stack is executed as design. processor.createSegment(new WireCommands.CreateSegment(1, streamSegmentName, WireCommands.CreateSegment.NO_SCALE, 0, "")); assertTrue(append(streamSegmentName, 1, store)); processor.getStreamSegmentInfo(new WireCommands.GetStreamSegmentInfo(1, streamSegmentName, "")); assertTrue(append(streamSegmentName, 2, store)); order.verify(connection).send(new WireCommands.SegmentCreated(1, streamSegmentName)); order.verify(connection).send(Mockito.any(WireCommands.StreamSegmentInfo.class)); // TestCreateSealDelete may executed before this test case, // so createSegmentStats may record 1 or 2 createSegment operation here. OpStatsData createSegmentStats = processor.getCreateStreamSegment().toOpStatsData(); assertNotEquals(0, createSegmentStats.getNumSuccessfulEvents()); assertEquals(0, createSegmentStats.getNumFailedEvents()); }
long expectedMetricsSuccesses = FileSystemMetrics.WRITE_LATENCY.toOpStatsData().getNumSuccessfulEvents(); expectedMetricsSize, FileSystemMetrics.WRITE_BYTES.get()); Assert.assertEquals("WRITE_LATENCY should not increase the count of successful events in case of unsuccessful writes", expectedMetricsSuccesses, FileSystemMetrics.WRITE_LATENCY.toOpStatsData().getNumSuccessfulEvents()); expectedMetricsSuccesses += 1; Assert.assertEquals("WRITE_LATENCY should increase the count of successful events in case of successful writes", expectedMetricsSuccesses, FileSystemMetrics.WRITE_LATENCY.toOpStatsData().getNumSuccessfulEvents()); Assert.assertEquals("WRITE_BYTES should increase by the size of successful writes", expectedMetricsSize, FileSystemMetrics.WRITE_BYTES.get()); expectedMetricsSize, FileSystemMetrics.WRITE_BYTES.get()); Assert.assertEquals("WRITE_LATENCY should not increase the count of successful events in case of unsuccessful writes", expectedMetricsSuccesses, FileSystemMetrics.WRITE_LATENCY.toOpStatsData().getNumSuccessfulEvents()); expectedMetricsSize, FileSystemMetrics.WRITE_BYTES.get()); Assert.assertEquals("WRITE_LATENCY should not increase the count of successful events in case of unsuccessful writes", expectedMetricsSuccesses, FileSystemMetrics.WRITE_LATENCY.toOpStatsData().getNumSuccessfulEvents());
/** * Test Event and Value registered and worked well with OpStats. */ @Test public void testOpStatsData() { Timer startTime = new Timer(); OpStatsLogger opStatsLogger = statsLogger.createStats("testOpStatsLogger"); // register 2 event: 1 success, 1 fail. opStatsLogger.reportSuccessEvent(startTime.getElapsed()); opStatsLogger.reportFailEvent(startTime.getElapsed()); opStatsLogger.reportSuccessValue(startTime.getElapsedMillis()); opStatsLogger.reportFailValue(startTime.getElapsedMillis()); opStatsLogger.reportSuccessValue(1); opStatsLogger.reportFailValue(1); opStatsLogger.reportSuccessValue(1); OpStatsData statsData = opStatsLogger.toOpStatsData(); // 2 = 2 event + 2 value assertEquals(4, statsData.getNumSuccessfulEvents()); assertEquals(3, statsData.getNumFailedEvents()); }