Skip to content

Commit 31c2001

Browse files
committed
Update prometheus lib to 1.1
1 parent 6ba8f4d commit 31c2001

5 files changed

Lines changed: 33 additions & 24 deletions

File tree

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ dependencies {
2626

2727
api("com.google.code.gson:gson:2.10")
2828
api("org.apache.httpcomponents:httpclient:4.5.13")
29-
api("io.prometheus:simpleclient:0.16.0")
29+
api("io.prometheus:prometheus-metrics-core:1.1.0")
3030

3131
testImplementation(kotlin("test"))
3232
testImplementation("org.junit.jupiter:junit-jupiter:5.9.1")

src/main/kotlin/com/ecwid/apiclient/v3/metric/RequestRetrySleepMetric.kt

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
package com.ecwid.apiclient.v3.metric
22

3-
import io.prometheus.client.Counter
3+
import io.prometheus.metrics.core.metrics.Counter
44

55
object RequestRetrySleepMetric {
6-
private val metric: Counter = Counter
7-
.build(
8-
"ecwid_api_client_retry_sleep_seconds",
9-
"Ecwid API client sleep during retries as result of rate limits (429 http)",
10-
)
6+
private val metric: Counter = Counter.builder()
7+
.name("ecwid_api_client_retry_sleep_seconds_total")
8+
.help("Ecwid API client sleep during retries as result of rate limits (429 http)")
119
.register()
1210

1311
fun inc() {

src/main/kotlin/com/ecwid/apiclient/v3/metric/RequestSizeMetric.kt

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,20 @@ import com.ecwid.apiclient.v3.httptransport.HttpRequest
55
import com.ecwid.apiclient.v3.httptransport.HttpResponse
66
import com.ecwid.apiclient.v3.httptransport.TransportHttpBody
77
import com.ecwid.apiclient.v3.impl.RequestInfo
8-
import io.prometheus.client.Histogram
8+
import io.prometheus.metrics.core.metrics.Histogram
9+
import io.prometheus.metrics.model.snapshots.Unit
910
import java.util.concurrent.atomic.AtomicLong
1011
import java.util.logging.Level
1112
import java.util.logging.Logger
1213

1314
private val log = Logger.getLogger(RequestSizeMetric::class.qualifiedName)
1415

1516
object RequestSizeMetric {
16-
private val metric: Histogram = Histogram
17-
.build("ecwid_api_client_request_size_bytes", "Ecwid API client request size of parameters & body in bytes")
18-
.buckets(
17+
private val metric = Histogram.builder()
18+
.name("ecwid_api_client_request_size_bytes")
19+
.help("Ecwid API client request size of parameters & body in bytes")
20+
.classicOnly()
21+
.classicUpperBounds(
1922
100.0,
2023
500.0,
2124
1_000.0,
@@ -32,6 +35,7 @@ object RequestSizeMetric {
3235
100_000_000.0,
3336
)
3437
.labelNames("request_type", "path", "method", "status")
38+
.unit(Unit.BYTES)
3539
.register()
3640

3741
fun observeRequest(
@@ -41,7 +45,7 @@ object RequestSizeMetric {
4145
httpResponse: HttpResponse,
4246
) {
4347
metric
44-
.labels(
48+
.labelValues(
4549
apiRequest.javaClass.simpleName,
4650
requestInfo.getFirstPathSegment(),
4751
requestInfo.method.name,

src/main/kotlin/com/ecwid/apiclient/v3/metric/RequestTimeMetric.kt

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,17 @@ package com.ecwid.apiclient.v3.metric
33
import com.ecwid.apiclient.v3.dto.ApiRequest
44
import com.ecwid.apiclient.v3.httptransport.HttpResponse
55
import com.ecwid.apiclient.v3.impl.RequestInfo
6-
import io.prometheus.client.Collector
7-
import io.prometheus.client.Histogram
6+
import io.prometheus.metrics.core.metrics.Histogram
7+
import io.prometheus.metrics.model.snapshots.Unit
88

99
object RequestTimeMetric {
10-
private val metric: Histogram = Histogram
11-
.build("ecwid_api_client_request_latency", "Ecwid API client request latency")
12-
.buckets(0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1.0, 2.5, 5.0, 7.5, 10.0, 25.0, 50.0, 100.0, 200.0)
10+
private val metric = Histogram.builder()
11+
.name("ecwid_api_client_request_latency")
12+
.help("Ecwid API client request latency")
13+
.classicOnly()
14+
.classicUpperBounds(0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1.0, 2.5, 5.0, 7.5, 10.0, 25.0, 50.0, 100.0, 200.0)
1315
.labelNames("request_type", "path", "method", "status")
16+
.unit(Unit.SECONDS)
1417
.register()
1518

1619
fun observeRequest(
@@ -20,12 +23,12 @@ object RequestTimeMetric {
2023
httpResponse: HttpResponse,
2124
) {
2225
metric
23-
.labels(
26+
.labelValues(
2427
apiRequest.javaClass.simpleName,
2528
requestInfo.getFirstPathSegment(),
2629
requestInfo.method.name,
2730
extractStatusFromHttpResponse(httpResponse),
2831
)
29-
.observe(requestTimeMs / Collector.MILLISECONDS_PER_SECOND)
32+
.observe(Unit.millisToSeconds(requestTimeMs))
3033
}
3134
}

src/main/kotlin/com/ecwid/apiclient/v3/metric/ResponseSizeMetric.kt

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,15 @@ package com.ecwid.apiclient.v3.metric
33
import com.ecwid.apiclient.v3.dto.ApiRequest
44
import com.ecwid.apiclient.v3.httptransport.HttpResponse
55
import com.ecwid.apiclient.v3.impl.RequestInfo
6-
import io.prometheus.client.Histogram
6+
import io.prometheus.metrics.core.metrics.Histogram
7+
import io.prometheus.metrics.model.snapshots.Unit
78

89
object ResponseSizeMetric {
9-
private val metric: Histogram = Histogram
10-
.build("ecwid_api_client_response_size_bytes", "Ecwid API client response size in bytes")
11-
.buckets(
10+
private val metric = Histogram.builder()
11+
.name("ecwid_api_client_response_size_bytes")
12+
.help("Ecwid API client response size in bytes")
13+
.classicOnly()
14+
.classicUpperBounds(
1215
100.0,
1316
500.0,
1417
1_000.0,
@@ -25,6 +28,7 @@ object ResponseSizeMetric {
2528
100_000_000.0,
2629
)
2730
.labelNames("request_type", "path", "method", "status")
31+
.unit(Unit.BYTES)
2832
.register()
2933

3034
fun observeResponse(
@@ -33,7 +37,7 @@ object ResponseSizeMetric {
3337
httpResponse: HttpResponse,
3438
) {
3539
metric
36-
.labels(
40+
.labelValues(
3741
apiRequest.javaClass.simpleName,
3842
requestInfo.getFirstPathSegment(),
3943
requestInfo.method.name,

0 commit comments

Comments
 (0)