Skip to content

Commit c0cde2c

Browse files
committed
Updated latency metric
1 parent 5abd464 commit c0cde2c

File tree

3 files changed

+21
-10
lines changed

3 files changed

+21
-10
lines changed

jdbc/ydb-token-app/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@
2727
<groupId>org.springframework.boot</groupId>
2828
<artifactId>spring-boot-starter-data-jpa</artifactId>
2929
</dependency>
30+
<!-- <dependency>
31+
<groupId>org.springframework.boot</groupId>
32+
<artifactId>spring-boot-starter-web</artifactId>
33+
</dependency>-->
3034

3135
<dependency>
3236
<groupId>org.springframework.boot</groupId>

jdbc/ydb-token-app/src/main/java/tech/ydb/apps/AppMetrics.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package tech.ydb.apps;
22

33
import java.sql.SQLException;
4+
import java.time.Duration;
45
import java.util.Arrays;
56
import java.util.EnumMap;
67
import java.util.Map;
@@ -13,8 +14,8 @@
1314
import java.util.function.Function;
1415

1516
import io.micrometer.core.instrument.Counter;
16-
import io.micrometer.core.instrument.DistributionSummary;
1717
import io.micrometer.core.instrument.MeterRegistry;
18+
import io.micrometer.core.instrument.Timer;
1819
import org.slf4j.Logger;
1920
import org.springframework.retry.RetryCallback;
2021
import org.springframework.retry.RetryContext;
@@ -35,10 +36,11 @@ public class AppMetrics {
3536
private static final Counter.Builder SDK_OPERATIONS_FAILTURE = Counter.builder("sdk.operations.failture");
3637
private static final Counter.Builder SDK_RETRY_ATTEMPS = Counter.builder("sdk.retry.attempts");
3738

38-
// private static final Timer.Builder SDK_OPERATION_LATENCY = Timer.builder("sdk.operation.latency")
39-
private static final DistributionSummary.Builder SDK_OPERATION_LATENCY = DistributionSummary
40-
.builder("sdk.operation.latency")
41-
.serviceLevelObjectives(0.001, 0.002, 0.003, 0.004, 0.005, 0.0075, 0.01, 0.02, 0.05, 0.1, 0.2, 0.5, 1);
39+
private static final Timer.Builder SDK_OPERATION_LATENCY = Timer.builder("sdk.operation.latency")
40+
// .serviceLevelObjectives(Duration.ofMillis(8), Duration.ofMillis(16), Duration.ofMillis(32),
41+
// Duration.ofMillis(64), Duration.ofMillis(128), Duration.ofMillis(256), Duration.ofMillis(512),
42+
// Duration.ofMillis(1024), Duration.ofMillis(2048), Duration.ofMillis(4096))
43+
.publishPercentiles(0.5, 0.9, 0.95, 0.99);
4244

4345
public class Method {
4446
private final String name;
@@ -53,10 +55,10 @@ public class Method {
5355
private final Counter successCounter;
5456
private final Map<StatusCode, Counter> errorsCountersMap = new EnumMap<>(StatusCode.class);
5557
private final Map<StatusCode, Counter> retriesCountersMap = new EnumMap<>(StatusCode.class);
56-
private final Map<StatusCode, DistributionSummary> durationTimerMap = new EnumMap<>(StatusCode.class);
58+
private final Map<StatusCode, Timer> durationTimerMap = new EnumMap<>(StatusCode.class);
5759
private final Function<StatusCode, Counter> errorCounter;
5860
private final Function<StatusCode, Counter> retriesCounter;
59-
private final Function<StatusCode, DistributionSummary> durationTimer;
61+
private final Function<StatusCode, Timer> durationTimer;
6062

6163
private volatile long lastPrinted = 0;
6264

@@ -104,7 +106,7 @@ public void measure(Runnable run) {
104106
timeMs.add(ms);
105107
totalTimeMs.add(ms);
106108

107-
durationTimer.apply(code).record(0.001 * ms);
109+
durationTimer.apply(code).record(Duration.ofMillis(ms));
108110
}
109111
}
110112

jdbc/ydb-token-app/src/main/resources/application.properties

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,13 @@ management.metrics.enable.all=false
2525
management.metrics.enable.jdbc=true
2626
management.metrics.enable.sdk=true
2727
management.metrics.enable.grpc=true
28-
management.metrics.distribution.percentiles-histogram.all=true
29-
management.metrics.distribution.sla.all=true
28+
29+
# Enable Spring Boot Actuator
30+
#management.endpoints.web.exposure.include=health,metrics,prometheus,info
31+
#management.endpoint.health.enabled=true
32+
#management.endpoint.metrics.enabled=true
33+
#management.endpoint.prometheus.enabled=true
34+
#management.metrics.export.prometheus.enabled=true
3035

3136
management.metrics.export.prometheus.pushgateway.enabled=${app.pushMetrics}
3237
management.metrics.export.prometheus.pushgateway.push-rate=15s

0 commit comments

Comments
 (0)