@Override public void freezeCounter(String name) { this.instance.get().freezeCounter(name); }
@Override public void deleteSegment(DeleteSegment deleteSegment) { String segment = deleteSegment.getSegment(); final String operation = "deleteSegment"; if (!verifyToken(segment, deleteSegment.getRequestId(), deleteSegment.getDelegationToken(), operation)) { return; } log.info(deleteSegment.getRequestId(), "Deleting segment {} ", deleteSegment); segmentStore.deleteStreamSegment(segment, TIMEOUT) .thenRun(() -> { connection.send(new SegmentDeleted(deleteSegment.getRequestId(), segment)); dynamicLogger.freezeCounter(nameFromSegment(SEGMENT_WRITE_BYTES, segment)); dynamicLogger.freezeCounter(nameFromSegment(SEGMENT_WRITE_EVENTS, segment)); dynamicLogger.freezeCounter(nameFromSegment(SEGMENT_READ_BYTES, segment)); }) .exceptionally(e -> handleException(deleteSegment.getRequestId(), segment, operation, e)); }
@Override public void sealSegment(SealSegment sealSegment) { String segment = sealSegment.getSegment(); final String operation = "sealSegment"; if (!verifyToken(segment, sealSegment.getRequestId(), sealSegment.getDelegationToken(), operation)) { return; } log.info(sealSegment.getRequestId(), "Sealing segment {} ", sealSegment); segmentStore.sealStreamSegment(segment, TIMEOUT) .thenAccept(size -> connection.send(new SegmentSealed(sealSegment.getRequestId(), segment))) .whenComplete((r, e) -> { if (e != null) { handleException(sealSegment.getRequestId(), segment, operation, e); } else { dynamicLogger.freezeCounter(nameFromSegment(SEGMENT_WRITE_BYTES, segment)); dynamicLogger.freezeCounter(nameFromSegment(SEGMENT_WRITE_EVENTS, segment)); if (statsRecorder != null) { statsRecorder.sealSegment(sealSegment.getSegment()); } } }); }
/** * Test counter registered and worked well with StatsLogger. */ @Test public void testCounter() { Counter testCounter = statsLogger.createCounter("testCounter"); testCounter.add(17); assertEquals(17, testCounter.get()); // test dynamic counter int sum = 0; for (int i = 1; i < 10; i++) { sum += i; dynamicLogger.incCounterValue("dynamicCounter", i); assertEquals(sum, MetricRegistryUtils.getCounter("pravega.dynamicCounter.Counter").getCount()); } dynamicLogger.freezeCounter("dynamicCounter"); assertEquals(null, MetricRegistryUtils.getCounter("pravega.dynamicCounter.Counter")); }