From 51c9d5d02f72f83766ad139bc1b43eeb55c3c9f0 Mon Sep 17 00:00:00 2001 From: Nelson Osacky Date: Thu, 10 Sep 2026 09:51:09 +0200 Subject: [PATCH 1/3] ref(metrics): Deprecate MetricsUnit in favor of MeasurementUnit MetricsUnit restated, as string constants, every unit MeasurementUnit already defines, because the metrics API only accepted a String unit and the string form of a MeasurementUnit is only reachable through the internal apiName(). Add MeasurementUnit overloads to IMetricsApi as default methods that delegate to the existing String overloads, so apiName() stays internal, and deprecate MetricsUnit. Co-Authored-By: Claude Opus 5 --- .../samples/spring7/web/MetricController.java | 7 +- .../spring/boot4/MetricController.java | 7 +- .../spring/boot4/MetricController.java | 7 +- .../spring/boot4/otlp/MetricController.java | 7 +- .../spring/boot4/MetricController.java | 7 +- .../spring/boot4/MetricController.java | 7 +- .../spring/boot/jakarta/MetricController.java | 7 +- .../spring/boot/jakarta/MetricController.java | 7 +- .../spring/boot/jakarta/MetricController.java | 7 +- .../samples/spring/boot/MetricController.java | 7 +- .../samples/spring/boot/MetricController.java | 7 +- .../spring/boot/jakarta/MetricController.java | 7 +- .../samples/spring/boot/MetricController.java | 7 +- .../samples/spring/boot/MetricController.java | 7 +- .../spring/jakarta/web/MetricController.java | 7 +- .../samples/spring/web/MetricController.java | 7 +- sentry/api/sentry.api | 7 ++ .../java/io/sentry/metrics/IMetricsApi.java | 50 ++++++++++++ .../java/io/sentry/metrics/MetricsUnit.java | 25 +++++- sentry/src/test/java/io/sentry/ScopesTest.kt | 78 ++++++++++++------- 20 files changed, 191 insertions(+), 81 deletions(-) diff --git a/sentry-samples/sentry-samples-spring-7/src/main/java/io/sentry/samples/spring7/web/MetricController.java b/sentry-samples/sentry-samples-spring-7/src/main/java/io/sentry/samples/spring7/web/MetricController.java index 73fba080a12..c3d0b33589b 100644 --- a/sentry-samples/sentry-samples-spring-7/src/main/java/io/sentry/samples/spring7/web/MetricController.java +++ b/sentry-samples/sentry-samples-spring-7/src/main/java/io/sentry/samples/spring7/web/MetricController.java @@ -1,7 +1,7 @@ package io.sentry.samples.spring7.web; +import io.sentry.MeasurementUnit; import io.sentry.Sentry; -import io.sentry.metrics.MetricsUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.GetMapping; @@ -24,14 +24,15 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MetricsUnit.Information.BYTE); + Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); return "gauge metric tracked"; } @GetMapping("distribution/{value}") String distribution(@PathVariable("value") Long value) { Sentry.metrics() - .distribution("distributionMetric", value.doubleValue(), MetricsUnit.Duration.MILLISECOND); + .distribution( + "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-boot-4-opentelemetry-noagent/src/main/java/io/sentry/samples/spring/boot4/MetricController.java b/sentry-samples/sentry-samples-spring-boot-4-opentelemetry-noagent/src/main/java/io/sentry/samples/spring/boot4/MetricController.java index be75f5e3002..78cec83965c 100644 --- a/sentry-samples/sentry-samples-spring-boot-4-opentelemetry-noagent/src/main/java/io/sentry/samples/spring/boot4/MetricController.java +++ b/sentry-samples/sentry-samples-spring-boot-4-opentelemetry-noagent/src/main/java/io/sentry/samples/spring/boot4/MetricController.java @@ -1,7 +1,7 @@ package io.sentry.samples.spring.boot4; +import io.sentry.MeasurementUnit; import io.sentry.Sentry; -import io.sentry.metrics.MetricsUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.GetMapping; @@ -24,14 +24,15 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MetricsUnit.Information.BYTE); + Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); return "gauge metric tracked"; } @GetMapping("distribution/{value}") String distribution(@PathVariable("value") Long value) { Sentry.metrics() - .distribution("distributionMetric", value.doubleValue(), MetricsUnit.Duration.MILLISECOND); + .distribution( + "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-boot-4-opentelemetry/src/main/java/io/sentry/samples/spring/boot4/MetricController.java b/sentry-samples/sentry-samples-spring-boot-4-opentelemetry/src/main/java/io/sentry/samples/spring/boot4/MetricController.java index be75f5e3002..78cec83965c 100644 --- a/sentry-samples/sentry-samples-spring-boot-4-opentelemetry/src/main/java/io/sentry/samples/spring/boot4/MetricController.java +++ b/sentry-samples/sentry-samples-spring-boot-4-opentelemetry/src/main/java/io/sentry/samples/spring/boot4/MetricController.java @@ -1,7 +1,7 @@ package io.sentry.samples.spring.boot4; +import io.sentry.MeasurementUnit; import io.sentry.Sentry; -import io.sentry.metrics.MetricsUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.GetMapping; @@ -24,14 +24,15 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MetricsUnit.Information.BYTE); + Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); return "gauge metric tracked"; } @GetMapping("distribution/{value}") String distribution(@PathVariable("value") Long value) { Sentry.metrics() - .distribution("distributionMetric", value.doubleValue(), MetricsUnit.Duration.MILLISECOND); + .distribution( + "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-boot-4-otlp/src/main/java/io/sentry/samples/spring/boot4/otlp/MetricController.java b/sentry-samples/sentry-samples-spring-boot-4-otlp/src/main/java/io/sentry/samples/spring/boot4/otlp/MetricController.java index e980d676d2b..27f3d7cd933 100644 --- a/sentry-samples/sentry-samples-spring-boot-4-otlp/src/main/java/io/sentry/samples/spring/boot4/otlp/MetricController.java +++ b/sentry-samples/sentry-samples-spring-boot-4-otlp/src/main/java/io/sentry/samples/spring/boot4/otlp/MetricController.java @@ -1,7 +1,7 @@ package io.sentry.samples.spring.boot4.otlp; +import io.sentry.MeasurementUnit; import io.sentry.Sentry; -import io.sentry.metrics.MetricsUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.GetMapping; @@ -22,14 +22,15 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MetricsUnit.Information.BYTE); + Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); return "gauge metric tracked"; } @GetMapping("distribution/{value}") String distribution(@PathVariable("value") Long value) { Sentry.metrics() - .distribution("distributionMetric", value.doubleValue(), MetricsUnit.Duration.MILLISECOND); + .distribution( + "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-boot-4-webflux/src/main/java/io/sentry/samples/spring/boot4/MetricController.java b/sentry-samples/sentry-samples-spring-boot-4-webflux/src/main/java/io/sentry/samples/spring/boot4/MetricController.java index be75f5e3002..78cec83965c 100644 --- a/sentry-samples/sentry-samples-spring-boot-4-webflux/src/main/java/io/sentry/samples/spring/boot4/MetricController.java +++ b/sentry-samples/sentry-samples-spring-boot-4-webflux/src/main/java/io/sentry/samples/spring/boot4/MetricController.java @@ -1,7 +1,7 @@ package io.sentry.samples.spring.boot4; +import io.sentry.MeasurementUnit; import io.sentry.Sentry; -import io.sentry.metrics.MetricsUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.GetMapping; @@ -24,14 +24,15 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MetricsUnit.Information.BYTE); + Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); return "gauge metric tracked"; } @GetMapping("distribution/{value}") String distribution(@PathVariable("value") Long value) { Sentry.metrics() - .distribution("distributionMetric", value.doubleValue(), MetricsUnit.Duration.MILLISECOND); + .distribution( + "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-boot-4/src/main/java/io/sentry/samples/spring/boot4/MetricController.java b/sentry-samples/sentry-samples-spring-boot-4/src/main/java/io/sentry/samples/spring/boot4/MetricController.java index be75f5e3002..78cec83965c 100644 --- a/sentry-samples/sentry-samples-spring-boot-4/src/main/java/io/sentry/samples/spring/boot4/MetricController.java +++ b/sentry-samples/sentry-samples-spring-boot-4/src/main/java/io/sentry/samples/spring/boot4/MetricController.java @@ -1,7 +1,7 @@ package io.sentry.samples.spring.boot4; +import io.sentry.MeasurementUnit; import io.sentry.Sentry; -import io.sentry.metrics.MetricsUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.GetMapping; @@ -24,14 +24,15 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MetricsUnit.Information.BYTE); + Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); return "gauge metric tracked"; } @GetMapping("distribution/{value}") String distribution(@PathVariable("value") Long value) { Sentry.metrics() - .distribution("distributionMetric", value.doubleValue(), MetricsUnit.Duration.MILLISECOND); + .distribution( + "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry-noagent/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java b/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry-noagent/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java index 6b28e59d6a3..ad4c7c1a260 100644 --- a/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry-noagent/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java +++ b/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry-noagent/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java @@ -1,7 +1,7 @@ package io.sentry.samples.spring.boot.jakarta; +import io.sentry.MeasurementUnit; import io.sentry.Sentry; -import io.sentry.metrics.MetricsUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.GetMapping; @@ -24,14 +24,15 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MetricsUnit.Information.BYTE); + Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); return "gauge metric tracked"; } @GetMapping("distribution/{value}") String distribution(@PathVariable("value") Long value) { Sentry.metrics() - .distribution("distributionMetric", value.doubleValue(), MetricsUnit.Duration.MILLISECOND); + .distribution( + "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java b/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java index 6b28e59d6a3..ad4c7c1a260 100644 --- a/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java +++ b/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java @@ -1,7 +1,7 @@ package io.sentry.samples.spring.boot.jakarta; +import io.sentry.MeasurementUnit; import io.sentry.Sentry; -import io.sentry.metrics.MetricsUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.GetMapping; @@ -24,14 +24,15 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MetricsUnit.Information.BYTE); + Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); return "gauge metric tracked"; } @GetMapping("distribution/{value}") String distribution(@PathVariable("value") Long value) { Sentry.metrics() - .distribution("distributionMetric", value.doubleValue(), MetricsUnit.Duration.MILLISECOND); + .distribution( + "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-boot-jakarta/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java b/sentry-samples/sentry-samples-spring-boot-jakarta/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java index 6b28e59d6a3..ad4c7c1a260 100644 --- a/sentry-samples/sentry-samples-spring-boot-jakarta/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java +++ b/sentry-samples/sentry-samples-spring-boot-jakarta/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java @@ -1,7 +1,7 @@ package io.sentry.samples.spring.boot.jakarta; +import io.sentry.MeasurementUnit; import io.sentry.Sentry; -import io.sentry.metrics.MetricsUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.GetMapping; @@ -24,14 +24,15 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MetricsUnit.Information.BYTE); + Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); return "gauge metric tracked"; } @GetMapping("distribution/{value}") String distribution(@PathVariable("value") Long value) { Sentry.metrics() - .distribution("distributionMetric", value.doubleValue(), MetricsUnit.Duration.MILLISECOND); + .distribution( + "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-boot-opentelemetry-noagent/src/main/java/io/sentry/samples/spring/boot/MetricController.java b/sentry-samples/sentry-samples-spring-boot-opentelemetry-noagent/src/main/java/io/sentry/samples/spring/boot/MetricController.java index 352571ee434..3aa3f64cd88 100644 --- a/sentry-samples/sentry-samples-spring-boot-opentelemetry-noagent/src/main/java/io/sentry/samples/spring/boot/MetricController.java +++ b/sentry-samples/sentry-samples-spring-boot-opentelemetry-noagent/src/main/java/io/sentry/samples/spring/boot/MetricController.java @@ -1,7 +1,7 @@ package io.sentry.samples.spring.boot; +import io.sentry.MeasurementUnit; import io.sentry.Sentry; -import io.sentry.metrics.MetricsUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.GetMapping; @@ -24,14 +24,15 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MetricsUnit.Information.BYTE); + Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); return "gauge metric tracked"; } @GetMapping("distribution/{value}") String distribution(@PathVariable("value") Long value) { Sentry.metrics() - .distribution("distributionMetric", value.doubleValue(), MetricsUnit.Duration.MILLISECOND); + .distribution( + "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-boot-opentelemetry/src/main/java/io/sentry/samples/spring/boot/MetricController.java b/sentry-samples/sentry-samples-spring-boot-opentelemetry/src/main/java/io/sentry/samples/spring/boot/MetricController.java index 352571ee434..3aa3f64cd88 100644 --- a/sentry-samples/sentry-samples-spring-boot-opentelemetry/src/main/java/io/sentry/samples/spring/boot/MetricController.java +++ b/sentry-samples/sentry-samples-spring-boot-opentelemetry/src/main/java/io/sentry/samples/spring/boot/MetricController.java @@ -1,7 +1,7 @@ package io.sentry.samples.spring.boot; +import io.sentry.MeasurementUnit; import io.sentry.Sentry; -import io.sentry.metrics.MetricsUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.GetMapping; @@ -24,14 +24,15 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MetricsUnit.Information.BYTE); + Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); return "gauge metric tracked"; } @GetMapping("distribution/{value}") String distribution(@PathVariable("value") Long value) { Sentry.metrics() - .distribution("distributionMetric", value.doubleValue(), MetricsUnit.Duration.MILLISECOND); + .distribution( + "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-boot-webflux-jakarta/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java b/sentry-samples/sentry-samples-spring-boot-webflux-jakarta/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java index 6b28e59d6a3..ad4c7c1a260 100644 --- a/sentry-samples/sentry-samples-spring-boot-webflux-jakarta/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java +++ b/sentry-samples/sentry-samples-spring-boot-webflux-jakarta/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java @@ -1,7 +1,7 @@ package io.sentry.samples.spring.boot.jakarta; +import io.sentry.MeasurementUnit; import io.sentry.Sentry; -import io.sentry.metrics.MetricsUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.GetMapping; @@ -24,14 +24,15 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MetricsUnit.Information.BYTE); + Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); return "gauge metric tracked"; } @GetMapping("distribution/{value}") String distribution(@PathVariable("value") Long value) { Sentry.metrics() - .distribution("distributionMetric", value.doubleValue(), MetricsUnit.Duration.MILLISECOND); + .distribution( + "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-boot-webflux/src/main/java/io/sentry/samples/spring/boot/MetricController.java b/sentry-samples/sentry-samples-spring-boot-webflux/src/main/java/io/sentry/samples/spring/boot/MetricController.java index 352571ee434..3aa3f64cd88 100644 --- a/sentry-samples/sentry-samples-spring-boot-webflux/src/main/java/io/sentry/samples/spring/boot/MetricController.java +++ b/sentry-samples/sentry-samples-spring-boot-webflux/src/main/java/io/sentry/samples/spring/boot/MetricController.java @@ -1,7 +1,7 @@ package io.sentry.samples.spring.boot; +import io.sentry.MeasurementUnit; import io.sentry.Sentry; -import io.sentry.metrics.MetricsUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.GetMapping; @@ -24,14 +24,15 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MetricsUnit.Information.BYTE); + Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); return "gauge metric tracked"; } @GetMapping("distribution/{value}") String distribution(@PathVariable("value") Long value) { Sentry.metrics() - .distribution("distributionMetric", value.doubleValue(), MetricsUnit.Duration.MILLISECOND); + .distribution( + "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-boot/src/main/java/io/sentry/samples/spring/boot/MetricController.java b/sentry-samples/sentry-samples-spring-boot/src/main/java/io/sentry/samples/spring/boot/MetricController.java index 352571ee434..3aa3f64cd88 100644 --- a/sentry-samples/sentry-samples-spring-boot/src/main/java/io/sentry/samples/spring/boot/MetricController.java +++ b/sentry-samples/sentry-samples-spring-boot/src/main/java/io/sentry/samples/spring/boot/MetricController.java @@ -1,7 +1,7 @@ package io.sentry.samples.spring.boot; +import io.sentry.MeasurementUnit; import io.sentry.Sentry; -import io.sentry.metrics.MetricsUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.GetMapping; @@ -24,14 +24,15 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MetricsUnit.Information.BYTE); + Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); return "gauge metric tracked"; } @GetMapping("distribution/{value}") String distribution(@PathVariable("value") Long value) { Sentry.metrics() - .distribution("distributionMetric", value.doubleValue(), MetricsUnit.Duration.MILLISECOND); + .distribution( + "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-jakarta/src/main/java/io/sentry/samples/spring/jakarta/web/MetricController.java b/sentry-samples/sentry-samples-spring-jakarta/src/main/java/io/sentry/samples/spring/jakarta/web/MetricController.java index bb7f3fce64c..c306f105c94 100644 --- a/sentry-samples/sentry-samples-spring-jakarta/src/main/java/io/sentry/samples/spring/jakarta/web/MetricController.java +++ b/sentry-samples/sentry-samples-spring-jakarta/src/main/java/io/sentry/samples/spring/jakarta/web/MetricController.java @@ -1,7 +1,7 @@ package io.sentry.samples.spring.jakarta.web; +import io.sentry.MeasurementUnit; import io.sentry.Sentry; -import io.sentry.metrics.MetricsUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.GetMapping; @@ -24,14 +24,15 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MetricsUnit.Information.BYTE); + Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); return "gauge metric tracked"; } @GetMapping("distribution/{value}") String distribution(@PathVariable("value") Long value) { Sentry.metrics() - .distribution("distributionMetric", value.doubleValue(), MetricsUnit.Duration.MILLISECOND); + .distribution( + "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring/src/main/java/io/sentry/samples/spring/web/MetricController.java b/sentry-samples/sentry-samples-spring/src/main/java/io/sentry/samples/spring/web/MetricController.java index 30ee8cbec42..1856a15843d 100644 --- a/sentry-samples/sentry-samples-spring/src/main/java/io/sentry/samples/spring/web/MetricController.java +++ b/sentry-samples/sentry-samples-spring/src/main/java/io/sentry/samples/spring/web/MetricController.java @@ -1,7 +1,7 @@ package io.sentry.samples.spring.web; +import io.sentry.MeasurementUnit; import io.sentry.Sentry; -import io.sentry.metrics.MetricsUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.GetMapping; @@ -24,14 +24,15 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MetricsUnit.Information.BYTE); + Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); return "gauge metric tracked"; } @GetMapping("distribution/{value}") String distribution(@PathVariable("value") Long value) { Sentry.metrics() - .distribution("distributionMetric", value.doubleValue(), MetricsUnit.Duration.MILLISECOND); + .distribution( + "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); return "distribution metric tracked"; } } diff --git a/sentry/api/sentry.api b/sentry/api/sentry.api index 24635fc5ddd..69eb5982b06 100644 --- a/sentry/api/sentry.api +++ b/sentry/api/sentry.api @@ -5501,14 +5501,21 @@ public final class io/sentry/metrics/DefaultMetricsBatchProcessorFactory : io/se public abstract interface class io/sentry/metrics/IMetricsApi { public abstract fun count (Ljava/lang/String;)V + public fun count (Ljava/lang/String;Lio/sentry/MeasurementUnit;)V public abstract fun count (Ljava/lang/String;Ljava/lang/Double;)V + public fun count (Ljava/lang/String;Ljava/lang/Double;Lio/sentry/MeasurementUnit;)V + public fun count (Ljava/lang/String;Ljava/lang/Double;Lio/sentry/MeasurementUnit;Lio/sentry/metrics/SentryMetricsParameters;)V public abstract fun count (Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;)V public abstract fun count (Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;Lio/sentry/metrics/SentryMetricsParameters;)V public abstract fun count (Ljava/lang/String;Ljava/lang/String;)V public abstract fun distribution (Ljava/lang/String;Ljava/lang/Double;)V + public fun distribution (Ljava/lang/String;Ljava/lang/Double;Lio/sentry/MeasurementUnit;)V + public fun distribution (Ljava/lang/String;Ljava/lang/Double;Lio/sentry/MeasurementUnit;Lio/sentry/metrics/SentryMetricsParameters;)V public abstract fun distribution (Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;)V public abstract fun distribution (Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;Lio/sentry/metrics/SentryMetricsParameters;)V public abstract fun gauge (Ljava/lang/String;Ljava/lang/Double;)V + public fun gauge (Ljava/lang/String;Ljava/lang/Double;Lio/sentry/MeasurementUnit;)V + public fun gauge (Ljava/lang/String;Ljava/lang/Double;Lio/sentry/MeasurementUnit;Lio/sentry/metrics/SentryMetricsParameters;)V public abstract fun gauge (Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;)V public abstract fun gauge (Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;Lio/sentry/metrics/SentryMetricsParameters;)V } diff --git a/sentry/src/main/java/io/sentry/metrics/IMetricsApi.java b/sentry/src/main/java/io/sentry/metrics/IMetricsApi.java index e03b41e1733..476f453b0ae 100644 --- a/sentry/src/main/java/io/sentry/metrics/IMetricsApi.java +++ b/sentry/src/main/java/io/sentry/metrics/IMetricsApi.java @@ -1,5 +1,6 @@ package io.sentry.metrics; +import io.sentry.MeasurementUnit; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -11,32 +12,81 @@ public interface IMetricsApi { void count(final @NotNull String name, final @Nullable String unit); + default void count(final @NotNull String name, final @NotNull MeasurementUnit unit) { + count(name, unit.apiName()); + } + void count(final @NotNull String name, final @Nullable Double value, final @Nullable String unit); + default void count( + final @NotNull String name, + final @Nullable Double value, + final @NotNull MeasurementUnit unit) { + count(name, value, unit.apiName()); + } + void count( final @NotNull String name, final @Nullable Double value, final @Nullable String unit, final @NotNull SentryMetricsParameters params); + default void count( + final @NotNull String name, + final @Nullable Double value, + final @NotNull MeasurementUnit unit, + final @NotNull SentryMetricsParameters params) { + count(name, value, unit.apiName(), params); + } + void distribution(final @NotNull String name, final @Nullable Double value); void distribution( final @NotNull String name, final @Nullable Double value, final @Nullable String unit); + default void distribution( + final @NotNull String name, + final @Nullable Double value, + final @NotNull MeasurementUnit unit) { + distribution(name, value, unit.apiName()); + } + void distribution( final @NotNull String name, final @Nullable Double value, final @Nullable String unit, final @NotNull SentryMetricsParameters params); + default void distribution( + final @NotNull String name, + final @Nullable Double value, + final @NotNull MeasurementUnit unit, + final @NotNull SentryMetricsParameters params) { + distribution(name, value, unit.apiName(), params); + } + void gauge(final @NotNull String name, final @Nullable Double value); void gauge(final @NotNull String name, final @Nullable Double value, final @Nullable String unit); + default void gauge( + final @NotNull String name, + final @Nullable Double value, + final @NotNull MeasurementUnit unit) { + gauge(name, value, unit.apiName()); + } + void gauge( final @NotNull String name, final @Nullable Double value, final @Nullable String unit, final @NotNull SentryMetricsParameters params); + + default void gauge( + final @NotNull String name, + final @Nullable Double value, + final @NotNull MeasurementUnit unit, + final @NotNull SentryMetricsParameters params) { + gauge(name, value, unit.apiName(), params); + } } diff --git a/sentry/src/main/java/io/sentry/metrics/MetricsUnit.java b/sentry/src/main/java/io/sentry/metrics/MetricsUnit.java index 4665cdf33a2..62c01648648 100644 --- a/sentry/src/main/java/io/sentry/metrics/MetricsUnit.java +++ b/sentry/src/main/java/io/sentry/metrics/MetricsUnit.java @@ -4,10 +4,19 @@ * String constants for metric units. * *

These constants represent the API names of measurement units that can be used with metrics. + * + * @deprecated use {@link io.sentry.MeasurementUnit} instead, which carries the same units and is + * accepted directly by {@link IMetricsApi}. */ +@Deprecated public final class MetricsUnit { - /** Time duration units. */ + /** + * Time duration units. + * + * @deprecated use {@link io.sentry.MeasurementUnit.Duration} instead. + */ + @Deprecated public static final class Duration { /** Nanosecond, 10^-9 seconds. */ public static final String NANOSECOND = "nanosecond"; @@ -36,7 +45,12 @@ public static final class Duration { private Duration() {} } - /** Size of information derived from bytes. */ + /** + * Size of information derived from bytes. + * + * @deprecated use {@link io.sentry.MeasurementUnit.Information} instead. + */ + @Deprecated public static final class Information { /** Bit, corresponding to 1/8 of a byte. */ public static final String BIT = "bit"; @@ -83,7 +97,12 @@ public static final class Information { private Information() {} } - /** Fractions such as percentages. */ + /** + * Fractions such as percentages. + * + * @deprecated use {@link io.sentry.MeasurementUnit.Fraction} instead. + */ + @Deprecated public static final class Fraction { /** Floating point fraction of `1`. */ public static final String RATIO = "ratio"; diff --git a/sentry/src/test/java/io/sentry/ScopesTest.kt b/sentry/src/test/java/io/sentry/ScopesTest.kt index d1cb38c6495..96c02e9f211 100644 --- a/sentry/src/test/java/io/sentry/ScopesTest.kt +++ b/sentry/src/test/java/io/sentry/ScopesTest.kt @@ -8,7 +8,6 @@ import io.sentry.clientreport.DiscardedEvent import io.sentry.hints.SessionEndHint import io.sentry.hints.SessionStartHint import io.sentry.logger.SentryLogParameters -import io.sentry.metrics.MetricsUnit import io.sentry.metrics.SentryMetricsParameters import io.sentry.protocol.Feedback import io.sentry.protocol.SentryId @@ -3403,7 +3402,7 @@ class ScopesTest { .count( "metric name", 1.0, - MetricsUnit.Information.BYTE, + MeasurementUnit.Information.BYTE, SentryMetricsParameters().also { it.origin = "other" }, ) @@ -3425,14 +3424,14 @@ class ScopesTest { fun `creating count metric with value and unit works`() { val (sut, mockClient) = getEnabledScopes() - sut.metrics().count("metric name", 1.0, MetricsUnit.Information.BYTE) + sut.metrics().count("metric name", 1.0, MeasurementUnit.Information.BYTE) verify(mockClient) .captureMetric( check { assertEquals("metric name", it.name) assertEquals(1.0, it.value) - assertEquals(MetricsUnit.Information.BYTE, it.unit) + assertEquals(MeasurementUnit.Information.BYTE.apiName(), it.unit) assertEquals("counter", it.type) }, anyOrNull(), @@ -3462,14 +3461,14 @@ class ScopesTest { fun `creating count metric with unit works`() { val (sut, mockClient) = getEnabledScopes() - sut.metrics().count("metric name", MetricsUnit.Information.BYTE) + sut.metrics().count("metric name", MeasurementUnit.Information.BYTE) verify(mockClient) .captureMetric( check { assertEquals("metric name", it.name) assertEquals(1.0, it.value) - assertEquals(MetricsUnit.Information.BYTE, it.unit) + assertEquals(MeasurementUnit.Information.BYTE.apiName(), it.unit) assertEquals("counter", it.type) }, anyOrNull(), @@ -3486,7 +3485,7 @@ class ScopesTest { .count( "metric name", 1.0, - MetricsUnit.Information.BYTE, + MeasurementUnit.Information.BYTE, SentryMetricsParameters.create(SentryAttributes.fromMap(mapOf("attrname1" to "attrval1"))), ) @@ -3495,7 +3494,7 @@ class ScopesTest { check { assertEquals("metric name", it.name) assertEquals(1.0, it.value) - assertEquals(MetricsUnit.Information.BYTE, it.unit) + assertEquals(MeasurementUnit.Information.BYTE.apiName(), it.unit) assertEquals("counter", it.type) val attr1 = it.attributes?.get("attrname1")!! @@ -3516,7 +3515,7 @@ class ScopesTest { .count( "metric name", 1.0, - MetricsUnit.Information.BYTE, + MeasurementUnit.Information.BYTE, SentryMetricsParameters.create(mapOf("attrname1" to "attrval1")), ) @@ -3525,7 +3524,7 @@ class ScopesTest { check { assertEquals("metric name", it.name) assertEquals(1.0, it.value) - assertEquals(MetricsUnit.Information.BYTE, it.unit) + assertEquals(MeasurementUnit.Information.BYTE.apiName(), it.unit) assertEquals("counter", it.type) val attr1 = it.attributes?.get("attrname1")!! @@ -3546,7 +3545,7 @@ class ScopesTest { .count( "metric name", 1.0, - MetricsUnit.Information.BYTE, + MeasurementUnit.Information.BYTE, SentryMetricsParameters.create( SentryAttributes.of( SentryAttribute.stringAttribute("strattr", "strval"), @@ -3568,7 +3567,7 @@ class ScopesTest { check { assertEquals("metric name", it.name) assertEquals(1.0, it.value) - assertEquals(MetricsUnit.Information.BYTE, it.unit) + assertEquals(MeasurementUnit.Information.BYTE.apiName(), it.unit) assertEquals("counter", it.type) val strattr = it.attributes?.get("strattr")!! @@ -3625,7 +3624,7 @@ class ScopesTest { .count( "metric name", 1.0, - MetricsUnit.Information.BYTE, + MeasurementUnit.Information.BYTE, SentryMetricsParameters.create( SentryLongDate(123), SentryAttributes.of(SentryAttribute.named("attrname1", "attrval1")), @@ -3637,7 +3636,7 @@ class ScopesTest { check { assertEquals("metric name", it.name) assertEquals(1.0, it.value) - assertEquals(MetricsUnit.Information.BYTE, it.unit) + assertEquals(MeasurementUnit.Information.BYTE.apiName(), it.unit) assertEquals("counter", it.type) val attr1 = it.attributes?.get("attrname1")!! @@ -3649,18 +3648,37 @@ class ScopesTest { ) } + @Test + fun `creating distribution metric with a custom string unit works`() { + val (sut, mockClient) = getEnabledScopes() + + sut.metrics().distribution("metric name", 1.0, "frame") + + verify(mockClient) + .captureMetric( + check { + assertEquals("metric name", it.name) + assertEquals(1.0, it.value) + assertEquals("frame", it.unit) + assertEquals("distribution", it.type) + }, + anyOrNull(), + anyOrNull(), + ) + } + @Test fun `creating distribution metric with value and unit works`() { val (sut, mockClient) = getEnabledScopes() - sut.metrics().distribution("metric name", 1.0, MetricsUnit.Duration.MILLISECOND) + sut.metrics().distribution("metric name", 1.0, MeasurementUnit.Duration.MILLISECOND) verify(mockClient) .captureMetric( check { assertEquals("metric name", it.name) assertEquals(1.0, it.value) - assertEquals(MetricsUnit.Duration.MILLISECOND, it.unit) + assertEquals(MeasurementUnit.Duration.MILLISECOND.apiName(), it.unit) assertEquals("distribution", it.type) }, anyOrNull(), @@ -3695,7 +3713,7 @@ class ScopesTest { .distribution( "metric name", 3.7, - MetricsUnit.Duration.MILLISECOND, + MeasurementUnit.Duration.MILLISECOND, SentryMetricsParameters.create(SentryAttributes.fromMap(mapOf("attrname1" to "attrval1"))), ) @@ -3704,7 +3722,7 @@ class ScopesTest { check { assertEquals("metric name", it.name) assertEquals(3.7, it.value) - assertEquals(MetricsUnit.Duration.MILLISECOND, it.unit) + assertEquals(MeasurementUnit.Duration.MILLISECOND.apiName(), it.unit) assertEquals("distribution", it.type) val attr1 = it.attributes?.get("attrname1")!! @@ -3725,7 +3743,7 @@ class ScopesTest { .distribution( "metric name", 3.7, - MetricsUnit.Duration.MILLISECOND, + MeasurementUnit.Duration.MILLISECOND, SentryMetricsParameters.create( SentryAttributes.of( SentryAttribute.stringAttribute("strattr", "strval"), @@ -3747,7 +3765,7 @@ class ScopesTest { check { assertEquals("metric name", it.name) assertEquals(3.7, it.value) - assertEquals(MetricsUnit.Duration.MILLISECOND, it.unit) + assertEquals(MeasurementUnit.Duration.MILLISECOND.apiName(), it.unit) assertEquals("distribution", it.type) val strattr = it.attributes?.get("strattr")!! @@ -3804,7 +3822,7 @@ class ScopesTest { .distribution( "metric name", 3.7, - MetricsUnit.Duration.MILLISECOND, + MeasurementUnit.Duration.MILLISECOND, SentryMetricsParameters.create( SentryLongDate(123), SentryAttributes.of(SentryAttribute.named("attrname1", "attrval1")), @@ -3816,7 +3834,7 @@ class ScopesTest { check { assertEquals("metric name", it.name) assertEquals(3.7, it.value) - assertEquals(MetricsUnit.Duration.MILLISECOND, it.unit) + assertEquals(MeasurementUnit.Duration.MILLISECOND.apiName(), it.unit) assertEquals("distribution", it.type) val attr1 = it.attributes?.get("attrname1")!! @@ -3832,14 +3850,14 @@ class ScopesTest { fun `creating gauge metric with value and unit works`() { val (sut, mockClient) = getEnabledScopes() - sut.metrics().gauge("metric name", 128.0, MetricsUnit.Information.BYTE) + sut.metrics().gauge("metric name", 128.0, MeasurementUnit.Information.BYTE) verify(mockClient) .captureMetric( check { assertEquals("metric name", it.name) assertEquals(128.0, it.value) - assertEquals(MetricsUnit.Information.BYTE, it.unit) + assertEquals(MeasurementUnit.Information.BYTE.apiName(), it.unit) assertEquals("gauge", it.type) }, anyOrNull(), @@ -3874,7 +3892,7 @@ class ScopesTest { .gauge( "metric name", 256.0, - MetricsUnit.Information.BYTE, + MeasurementUnit.Information.BYTE, SentryMetricsParameters.create(SentryAttributes.fromMap(mapOf("attrname1" to "attrval1"))), ) @@ -3883,7 +3901,7 @@ class ScopesTest { check { assertEquals("metric name", it.name) assertEquals(256.0, it.value) - assertEquals(MetricsUnit.Information.BYTE, it.unit) + assertEquals(MeasurementUnit.Information.BYTE.apiName(), it.unit) assertEquals("gauge", it.type) val attr1 = it.attributes?.get("attrname1")!! @@ -3904,7 +3922,7 @@ class ScopesTest { .gauge( "metric name", 256.0, - MetricsUnit.Information.BYTE, + MeasurementUnit.Information.BYTE, SentryMetricsParameters.create( SentryAttributes.of( SentryAttribute.stringAttribute("strattr", "strval"), @@ -3926,7 +3944,7 @@ class ScopesTest { check { assertEquals("metric name", it.name) assertEquals(256.0, it.value) - assertEquals(MetricsUnit.Information.BYTE, it.unit) + assertEquals(MeasurementUnit.Information.BYTE.apiName(), it.unit) assertEquals("gauge", it.type) val strattr = it.attributes?.get("strattr")!! @@ -3983,7 +4001,7 @@ class ScopesTest { .gauge( "metric name", 256.0, - MetricsUnit.Information.BYTE, + MeasurementUnit.Information.BYTE, SentryMetricsParameters.create( SentryLongDate(123), SentryAttributes.of(SentryAttribute.named("attrname1", "attrval1")), @@ -3995,7 +4013,7 @@ class ScopesTest { check { assertEquals("metric name", it.name) assertEquals(256.0, it.value) - assertEquals(MetricsUnit.Information.BYTE, it.unit) + assertEquals(MeasurementUnit.Information.BYTE.apiName(), it.unit) assertEquals("gauge", it.type) val attr1 = it.attributes?.get("attrname1")!! From 7e57086788b4e0fb1477791a652eca132ac73f25 Mon Sep 17 00:00:00 2001 From: Nelson Osacky Date: Thu, 10 Sep 2026 09:52:09 +0200 Subject: [PATCH 2/3] changelog Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 09622493a29..0212edf8d7a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## Unreleased + +### Internal + +- Deprecate `MetricsUnit` in favor of `MeasurementUnit`, which defines the same units and is now accepted directly by the `Sentry.metrics()` API ([#6086](https://github.com/getsentry/sentry-java/pull/6086)) + ## 8.56.0 ### Behavioral Changes From 84086b58a0ba9f681660487d4d0075807fcc8db1 Mon Sep 17 00:00:00 2001 From: Nelson Osacky Date: Thu, 10 Sep 2026 09:55:27 +0200 Subject: [PATCH 3/3] ref(metrics): Pass MeasurementUnit through apiName instead of new overloads Drop the MeasurementUnit overloads from IMetricsApi. Callers reach the string form through apiName(), so the metrics API surface is unchanged. Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 2 +- .../samples/spring7/web/MetricController.java | 7 ++- .../spring/boot4/MetricController.java | 7 ++- .../spring/boot4/MetricController.java | 7 ++- .../spring/boot4/otlp/MetricController.java | 7 ++- .../spring/boot4/MetricController.java | 7 ++- .../spring/boot4/MetricController.java | 7 ++- .../spring/boot/jakarta/MetricController.java | 7 ++- .../spring/boot/jakarta/MetricController.java | 7 ++- .../spring/boot/jakarta/MetricController.java | 7 ++- .../samples/spring/boot/MetricController.java | 7 ++- .../samples/spring/boot/MetricController.java | 7 ++- .../spring/boot/jakarta/MetricController.java | 7 ++- .../samples/spring/boot/MetricController.java | 7 ++- .../samples/spring/boot/MetricController.java | 7 ++- .../spring/jakarta/web/MetricController.java | 7 ++- .../samples/spring/web/MetricController.java | 7 ++- sentry/api/sentry.api | 7 --- .../java/io/sentry/metrics/IMetricsApi.java | 50 ------------------- sentry/src/test/java/io/sentry/ScopesTest.kt | 49 ++++++------------ 20 files changed, 96 insertions(+), 124 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0212edf8d7a..49e19a99c49 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ ### Internal -- Deprecate `MetricsUnit` in favor of `MeasurementUnit`, which defines the same units and is now accepted directly by the `Sentry.metrics()` API ([#6086](https://github.com/getsentry/sentry-java/pull/6086)) +- Deprecate `MetricsUnit` in favor of `MeasurementUnit`, which defines the same units; pass them to the `Sentry.metrics()` API as `MeasurementUnit.Duration.MILLISECOND.apiName()` ([#6086](https://github.com/getsentry/sentry-java/pull/6086)) ## 8.56.0 diff --git a/sentry-samples/sentry-samples-spring-7/src/main/java/io/sentry/samples/spring7/web/MetricController.java b/sentry-samples/sentry-samples-spring-7/src/main/java/io/sentry/samples/spring7/web/MetricController.java index c3d0b33589b..a22153db107 100644 --- a/sentry-samples/sentry-samples-spring-7/src/main/java/io/sentry/samples/spring7/web/MetricController.java +++ b/sentry-samples/sentry-samples-spring-7/src/main/java/io/sentry/samples/spring7/web/MetricController.java @@ -24,7 +24,8 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); + Sentry.metrics() + .gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE.apiName()); return "gauge metric tracked"; } @@ -32,7 +33,9 @@ String gauge(@PathVariable("value") Long value) { String distribution(@PathVariable("value") Long value) { Sentry.metrics() .distribution( - "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); + "distributionMetric", + value.doubleValue(), + MeasurementUnit.Duration.MILLISECOND.apiName()); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-boot-4-opentelemetry-noagent/src/main/java/io/sentry/samples/spring/boot4/MetricController.java b/sentry-samples/sentry-samples-spring-boot-4-opentelemetry-noagent/src/main/java/io/sentry/samples/spring/boot4/MetricController.java index 78cec83965c..95794c3a50b 100644 --- a/sentry-samples/sentry-samples-spring-boot-4-opentelemetry-noagent/src/main/java/io/sentry/samples/spring/boot4/MetricController.java +++ b/sentry-samples/sentry-samples-spring-boot-4-opentelemetry-noagent/src/main/java/io/sentry/samples/spring/boot4/MetricController.java @@ -24,7 +24,8 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); + Sentry.metrics() + .gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE.apiName()); return "gauge metric tracked"; } @@ -32,7 +33,9 @@ String gauge(@PathVariable("value") Long value) { String distribution(@PathVariable("value") Long value) { Sentry.metrics() .distribution( - "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); + "distributionMetric", + value.doubleValue(), + MeasurementUnit.Duration.MILLISECOND.apiName()); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-boot-4-opentelemetry/src/main/java/io/sentry/samples/spring/boot4/MetricController.java b/sentry-samples/sentry-samples-spring-boot-4-opentelemetry/src/main/java/io/sentry/samples/spring/boot4/MetricController.java index 78cec83965c..95794c3a50b 100644 --- a/sentry-samples/sentry-samples-spring-boot-4-opentelemetry/src/main/java/io/sentry/samples/spring/boot4/MetricController.java +++ b/sentry-samples/sentry-samples-spring-boot-4-opentelemetry/src/main/java/io/sentry/samples/spring/boot4/MetricController.java @@ -24,7 +24,8 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); + Sentry.metrics() + .gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE.apiName()); return "gauge metric tracked"; } @@ -32,7 +33,9 @@ String gauge(@PathVariable("value") Long value) { String distribution(@PathVariable("value") Long value) { Sentry.metrics() .distribution( - "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); + "distributionMetric", + value.doubleValue(), + MeasurementUnit.Duration.MILLISECOND.apiName()); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-boot-4-otlp/src/main/java/io/sentry/samples/spring/boot4/otlp/MetricController.java b/sentry-samples/sentry-samples-spring-boot-4-otlp/src/main/java/io/sentry/samples/spring/boot4/otlp/MetricController.java index 27f3d7cd933..6acfbd0973c 100644 --- a/sentry-samples/sentry-samples-spring-boot-4-otlp/src/main/java/io/sentry/samples/spring/boot4/otlp/MetricController.java +++ b/sentry-samples/sentry-samples-spring-boot-4-otlp/src/main/java/io/sentry/samples/spring/boot4/otlp/MetricController.java @@ -22,7 +22,8 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); + Sentry.metrics() + .gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE.apiName()); return "gauge metric tracked"; } @@ -30,7 +31,9 @@ String gauge(@PathVariable("value") Long value) { String distribution(@PathVariable("value") Long value) { Sentry.metrics() .distribution( - "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); + "distributionMetric", + value.doubleValue(), + MeasurementUnit.Duration.MILLISECOND.apiName()); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-boot-4-webflux/src/main/java/io/sentry/samples/spring/boot4/MetricController.java b/sentry-samples/sentry-samples-spring-boot-4-webflux/src/main/java/io/sentry/samples/spring/boot4/MetricController.java index 78cec83965c..95794c3a50b 100644 --- a/sentry-samples/sentry-samples-spring-boot-4-webflux/src/main/java/io/sentry/samples/spring/boot4/MetricController.java +++ b/sentry-samples/sentry-samples-spring-boot-4-webflux/src/main/java/io/sentry/samples/spring/boot4/MetricController.java @@ -24,7 +24,8 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); + Sentry.metrics() + .gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE.apiName()); return "gauge metric tracked"; } @@ -32,7 +33,9 @@ String gauge(@PathVariable("value") Long value) { String distribution(@PathVariable("value") Long value) { Sentry.metrics() .distribution( - "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); + "distributionMetric", + value.doubleValue(), + MeasurementUnit.Duration.MILLISECOND.apiName()); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-boot-4/src/main/java/io/sentry/samples/spring/boot4/MetricController.java b/sentry-samples/sentry-samples-spring-boot-4/src/main/java/io/sentry/samples/spring/boot4/MetricController.java index 78cec83965c..95794c3a50b 100644 --- a/sentry-samples/sentry-samples-spring-boot-4/src/main/java/io/sentry/samples/spring/boot4/MetricController.java +++ b/sentry-samples/sentry-samples-spring-boot-4/src/main/java/io/sentry/samples/spring/boot4/MetricController.java @@ -24,7 +24,8 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); + Sentry.metrics() + .gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE.apiName()); return "gauge metric tracked"; } @@ -32,7 +33,9 @@ String gauge(@PathVariable("value") Long value) { String distribution(@PathVariable("value") Long value) { Sentry.metrics() .distribution( - "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); + "distributionMetric", + value.doubleValue(), + MeasurementUnit.Duration.MILLISECOND.apiName()); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry-noagent/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java b/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry-noagent/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java index ad4c7c1a260..95720acd455 100644 --- a/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry-noagent/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java +++ b/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry-noagent/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java @@ -24,7 +24,8 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); + Sentry.metrics() + .gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE.apiName()); return "gauge metric tracked"; } @@ -32,7 +33,9 @@ String gauge(@PathVariable("value") Long value) { String distribution(@PathVariable("value") Long value) { Sentry.metrics() .distribution( - "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); + "distributionMetric", + value.doubleValue(), + MeasurementUnit.Duration.MILLISECOND.apiName()); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java b/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java index ad4c7c1a260..95720acd455 100644 --- a/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java +++ b/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java @@ -24,7 +24,8 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); + Sentry.metrics() + .gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE.apiName()); return "gauge metric tracked"; } @@ -32,7 +33,9 @@ String gauge(@PathVariable("value") Long value) { String distribution(@PathVariable("value") Long value) { Sentry.metrics() .distribution( - "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); + "distributionMetric", + value.doubleValue(), + MeasurementUnit.Duration.MILLISECOND.apiName()); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-boot-jakarta/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java b/sentry-samples/sentry-samples-spring-boot-jakarta/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java index ad4c7c1a260..95720acd455 100644 --- a/sentry-samples/sentry-samples-spring-boot-jakarta/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java +++ b/sentry-samples/sentry-samples-spring-boot-jakarta/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java @@ -24,7 +24,8 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); + Sentry.metrics() + .gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE.apiName()); return "gauge metric tracked"; } @@ -32,7 +33,9 @@ String gauge(@PathVariable("value") Long value) { String distribution(@PathVariable("value") Long value) { Sentry.metrics() .distribution( - "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); + "distributionMetric", + value.doubleValue(), + MeasurementUnit.Duration.MILLISECOND.apiName()); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-boot-opentelemetry-noagent/src/main/java/io/sentry/samples/spring/boot/MetricController.java b/sentry-samples/sentry-samples-spring-boot-opentelemetry-noagent/src/main/java/io/sentry/samples/spring/boot/MetricController.java index 3aa3f64cd88..f9aefee88d0 100644 --- a/sentry-samples/sentry-samples-spring-boot-opentelemetry-noagent/src/main/java/io/sentry/samples/spring/boot/MetricController.java +++ b/sentry-samples/sentry-samples-spring-boot-opentelemetry-noagent/src/main/java/io/sentry/samples/spring/boot/MetricController.java @@ -24,7 +24,8 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); + Sentry.metrics() + .gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE.apiName()); return "gauge metric tracked"; } @@ -32,7 +33,9 @@ String gauge(@PathVariable("value") Long value) { String distribution(@PathVariable("value") Long value) { Sentry.metrics() .distribution( - "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); + "distributionMetric", + value.doubleValue(), + MeasurementUnit.Duration.MILLISECOND.apiName()); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-boot-opentelemetry/src/main/java/io/sentry/samples/spring/boot/MetricController.java b/sentry-samples/sentry-samples-spring-boot-opentelemetry/src/main/java/io/sentry/samples/spring/boot/MetricController.java index 3aa3f64cd88..f9aefee88d0 100644 --- a/sentry-samples/sentry-samples-spring-boot-opentelemetry/src/main/java/io/sentry/samples/spring/boot/MetricController.java +++ b/sentry-samples/sentry-samples-spring-boot-opentelemetry/src/main/java/io/sentry/samples/spring/boot/MetricController.java @@ -24,7 +24,8 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); + Sentry.metrics() + .gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE.apiName()); return "gauge metric tracked"; } @@ -32,7 +33,9 @@ String gauge(@PathVariable("value") Long value) { String distribution(@PathVariable("value") Long value) { Sentry.metrics() .distribution( - "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); + "distributionMetric", + value.doubleValue(), + MeasurementUnit.Duration.MILLISECOND.apiName()); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-boot-webflux-jakarta/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java b/sentry-samples/sentry-samples-spring-boot-webflux-jakarta/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java index ad4c7c1a260..95720acd455 100644 --- a/sentry-samples/sentry-samples-spring-boot-webflux-jakarta/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java +++ b/sentry-samples/sentry-samples-spring-boot-webflux-jakarta/src/main/java/io/sentry/samples/spring/boot/jakarta/MetricController.java @@ -24,7 +24,8 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); + Sentry.metrics() + .gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE.apiName()); return "gauge metric tracked"; } @@ -32,7 +33,9 @@ String gauge(@PathVariable("value") Long value) { String distribution(@PathVariable("value") Long value) { Sentry.metrics() .distribution( - "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); + "distributionMetric", + value.doubleValue(), + MeasurementUnit.Duration.MILLISECOND.apiName()); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-boot-webflux/src/main/java/io/sentry/samples/spring/boot/MetricController.java b/sentry-samples/sentry-samples-spring-boot-webflux/src/main/java/io/sentry/samples/spring/boot/MetricController.java index 3aa3f64cd88..f9aefee88d0 100644 --- a/sentry-samples/sentry-samples-spring-boot-webflux/src/main/java/io/sentry/samples/spring/boot/MetricController.java +++ b/sentry-samples/sentry-samples-spring-boot-webflux/src/main/java/io/sentry/samples/spring/boot/MetricController.java @@ -24,7 +24,8 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); + Sentry.metrics() + .gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE.apiName()); return "gauge metric tracked"; } @@ -32,7 +33,9 @@ String gauge(@PathVariable("value") Long value) { String distribution(@PathVariable("value") Long value) { Sentry.metrics() .distribution( - "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); + "distributionMetric", + value.doubleValue(), + MeasurementUnit.Duration.MILLISECOND.apiName()); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-boot/src/main/java/io/sentry/samples/spring/boot/MetricController.java b/sentry-samples/sentry-samples-spring-boot/src/main/java/io/sentry/samples/spring/boot/MetricController.java index 3aa3f64cd88..f9aefee88d0 100644 --- a/sentry-samples/sentry-samples-spring-boot/src/main/java/io/sentry/samples/spring/boot/MetricController.java +++ b/sentry-samples/sentry-samples-spring-boot/src/main/java/io/sentry/samples/spring/boot/MetricController.java @@ -24,7 +24,8 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); + Sentry.metrics() + .gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE.apiName()); return "gauge metric tracked"; } @@ -32,7 +33,9 @@ String gauge(@PathVariable("value") Long value) { String distribution(@PathVariable("value") Long value) { Sentry.metrics() .distribution( - "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); + "distributionMetric", + value.doubleValue(), + MeasurementUnit.Duration.MILLISECOND.apiName()); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring-jakarta/src/main/java/io/sentry/samples/spring/jakarta/web/MetricController.java b/sentry-samples/sentry-samples-spring-jakarta/src/main/java/io/sentry/samples/spring/jakarta/web/MetricController.java index c306f105c94..903acf9e496 100644 --- a/sentry-samples/sentry-samples-spring-jakarta/src/main/java/io/sentry/samples/spring/jakarta/web/MetricController.java +++ b/sentry-samples/sentry-samples-spring-jakarta/src/main/java/io/sentry/samples/spring/jakarta/web/MetricController.java @@ -24,7 +24,8 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); + Sentry.metrics() + .gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE.apiName()); return "gauge metric tracked"; } @@ -32,7 +33,9 @@ String gauge(@PathVariable("value") Long value) { String distribution(@PathVariable("value") Long value) { Sentry.metrics() .distribution( - "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); + "distributionMetric", + value.doubleValue(), + MeasurementUnit.Duration.MILLISECOND.apiName()); return "distribution metric tracked"; } } diff --git a/sentry-samples/sentry-samples-spring/src/main/java/io/sentry/samples/spring/web/MetricController.java b/sentry-samples/sentry-samples-spring/src/main/java/io/sentry/samples/spring/web/MetricController.java index 1856a15843d..7c2d0f2efeb 100644 --- a/sentry-samples/sentry-samples-spring/src/main/java/io/sentry/samples/spring/web/MetricController.java +++ b/sentry-samples/sentry-samples-spring/src/main/java/io/sentry/samples/spring/web/MetricController.java @@ -24,7 +24,8 @@ String count() { @GetMapping("gauge/{value}") String gauge(@PathVariable("value") Long value) { - Sentry.metrics().gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE); + Sentry.metrics() + .gauge("memory.free", value.doubleValue(), MeasurementUnit.Information.BYTE.apiName()); return "gauge metric tracked"; } @@ -32,7 +33,9 @@ String gauge(@PathVariable("value") Long value) { String distribution(@PathVariable("value") Long value) { Sentry.metrics() .distribution( - "distributionMetric", value.doubleValue(), MeasurementUnit.Duration.MILLISECOND); + "distributionMetric", + value.doubleValue(), + MeasurementUnit.Duration.MILLISECOND.apiName()); return "distribution metric tracked"; } } diff --git a/sentry/api/sentry.api b/sentry/api/sentry.api index 69eb5982b06..24635fc5ddd 100644 --- a/sentry/api/sentry.api +++ b/sentry/api/sentry.api @@ -5501,21 +5501,14 @@ public final class io/sentry/metrics/DefaultMetricsBatchProcessorFactory : io/se public abstract interface class io/sentry/metrics/IMetricsApi { public abstract fun count (Ljava/lang/String;)V - public fun count (Ljava/lang/String;Lio/sentry/MeasurementUnit;)V public abstract fun count (Ljava/lang/String;Ljava/lang/Double;)V - public fun count (Ljava/lang/String;Ljava/lang/Double;Lio/sentry/MeasurementUnit;)V - public fun count (Ljava/lang/String;Ljava/lang/Double;Lio/sentry/MeasurementUnit;Lio/sentry/metrics/SentryMetricsParameters;)V public abstract fun count (Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;)V public abstract fun count (Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;Lio/sentry/metrics/SentryMetricsParameters;)V public abstract fun count (Ljava/lang/String;Ljava/lang/String;)V public abstract fun distribution (Ljava/lang/String;Ljava/lang/Double;)V - public fun distribution (Ljava/lang/String;Ljava/lang/Double;Lio/sentry/MeasurementUnit;)V - public fun distribution (Ljava/lang/String;Ljava/lang/Double;Lio/sentry/MeasurementUnit;Lio/sentry/metrics/SentryMetricsParameters;)V public abstract fun distribution (Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;)V public abstract fun distribution (Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;Lio/sentry/metrics/SentryMetricsParameters;)V public abstract fun gauge (Ljava/lang/String;Ljava/lang/Double;)V - public fun gauge (Ljava/lang/String;Ljava/lang/Double;Lio/sentry/MeasurementUnit;)V - public fun gauge (Ljava/lang/String;Ljava/lang/Double;Lio/sentry/MeasurementUnit;Lio/sentry/metrics/SentryMetricsParameters;)V public abstract fun gauge (Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;)V public abstract fun gauge (Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;Lio/sentry/metrics/SentryMetricsParameters;)V } diff --git a/sentry/src/main/java/io/sentry/metrics/IMetricsApi.java b/sentry/src/main/java/io/sentry/metrics/IMetricsApi.java index 476f453b0ae..e03b41e1733 100644 --- a/sentry/src/main/java/io/sentry/metrics/IMetricsApi.java +++ b/sentry/src/main/java/io/sentry/metrics/IMetricsApi.java @@ -1,6 +1,5 @@ package io.sentry.metrics; -import io.sentry.MeasurementUnit; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -12,81 +11,32 @@ public interface IMetricsApi { void count(final @NotNull String name, final @Nullable String unit); - default void count(final @NotNull String name, final @NotNull MeasurementUnit unit) { - count(name, unit.apiName()); - } - void count(final @NotNull String name, final @Nullable Double value, final @Nullable String unit); - default void count( - final @NotNull String name, - final @Nullable Double value, - final @NotNull MeasurementUnit unit) { - count(name, value, unit.apiName()); - } - void count( final @NotNull String name, final @Nullable Double value, final @Nullable String unit, final @NotNull SentryMetricsParameters params); - default void count( - final @NotNull String name, - final @Nullable Double value, - final @NotNull MeasurementUnit unit, - final @NotNull SentryMetricsParameters params) { - count(name, value, unit.apiName(), params); - } - void distribution(final @NotNull String name, final @Nullable Double value); void distribution( final @NotNull String name, final @Nullable Double value, final @Nullable String unit); - default void distribution( - final @NotNull String name, - final @Nullable Double value, - final @NotNull MeasurementUnit unit) { - distribution(name, value, unit.apiName()); - } - void distribution( final @NotNull String name, final @Nullable Double value, final @Nullable String unit, final @NotNull SentryMetricsParameters params); - default void distribution( - final @NotNull String name, - final @Nullable Double value, - final @NotNull MeasurementUnit unit, - final @NotNull SentryMetricsParameters params) { - distribution(name, value, unit.apiName(), params); - } - void gauge(final @NotNull String name, final @Nullable Double value); void gauge(final @NotNull String name, final @Nullable Double value, final @Nullable String unit); - default void gauge( - final @NotNull String name, - final @Nullable Double value, - final @NotNull MeasurementUnit unit) { - gauge(name, value, unit.apiName()); - } - void gauge( final @NotNull String name, final @Nullable Double value, final @Nullable String unit, final @NotNull SentryMetricsParameters params); - - default void gauge( - final @NotNull String name, - final @Nullable Double value, - final @NotNull MeasurementUnit unit, - final @NotNull SentryMetricsParameters params) { - gauge(name, value, unit.apiName(), params); - } } diff --git a/sentry/src/test/java/io/sentry/ScopesTest.kt b/sentry/src/test/java/io/sentry/ScopesTest.kt index 96c02e9f211..ec0f9b0057a 100644 --- a/sentry/src/test/java/io/sentry/ScopesTest.kt +++ b/sentry/src/test/java/io/sentry/ScopesTest.kt @@ -3402,7 +3402,7 @@ class ScopesTest { .count( "metric name", 1.0, - MeasurementUnit.Information.BYTE, + MeasurementUnit.Information.BYTE.apiName(), SentryMetricsParameters().also { it.origin = "other" }, ) @@ -3424,7 +3424,7 @@ class ScopesTest { fun `creating count metric with value and unit works`() { val (sut, mockClient) = getEnabledScopes() - sut.metrics().count("metric name", 1.0, MeasurementUnit.Information.BYTE) + sut.metrics().count("metric name", 1.0, MeasurementUnit.Information.BYTE.apiName()) verify(mockClient) .captureMetric( @@ -3461,7 +3461,7 @@ class ScopesTest { fun `creating count metric with unit works`() { val (sut, mockClient) = getEnabledScopes() - sut.metrics().count("metric name", MeasurementUnit.Information.BYTE) + sut.metrics().count("metric name", MeasurementUnit.Information.BYTE.apiName()) verify(mockClient) .captureMetric( @@ -3485,7 +3485,7 @@ class ScopesTest { .count( "metric name", 1.0, - MeasurementUnit.Information.BYTE, + MeasurementUnit.Information.BYTE.apiName(), SentryMetricsParameters.create(SentryAttributes.fromMap(mapOf("attrname1" to "attrval1"))), ) @@ -3515,7 +3515,7 @@ class ScopesTest { .count( "metric name", 1.0, - MeasurementUnit.Information.BYTE, + MeasurementUnit.Information.BYTE.apiName(), SentryMetricsParameters.create(mapOf("attrname1" to "attrval1")), ) @@ -3545,7 +3545,7 @@ class ScopesTest { .count( "metric name", 1.0, - MeasurementUnit.Information.BYTE, + MeasurementUnit.Information.BYTE.apiName(), SentryMetricsParameters.create( SentryAttributes.of( SentryAttribute.stringAttribute("strattr", "strval"), @@ -3624,7 +3624,7 @@ class ScopesTest { .count( "metric name", 1.0, - MeasurementUnit.Information.BYTE, + MeasurementUnit.Information.BYTE.apiName(), SentryMetricsParameters.create( SentryLongDate(123), SentryAttributes.of(SentryAttribute.named("attrname1", "attrval1")), @@ -3648,30 +3648,11 @@ class ScopesTest { ) } - @Test - fun `creating distribution metric with a custom string unit works`() { - val (sut, mockClient) = getEnabledScopes() - - sut.metrics().distribution("metric name", 1.0, "frame") - - verify(mockClient) - .captureMetric( - check { - assertEquals("metric name", it.name) - assertEquals(1.0, it.value) - assertEquals("frame", it.unit) - assertEquals("distribution", it.type) - }, - anyOrNull(), - anyOrNull(), - ) - } - @Test fun `creating distribution metric with value and unit works`() { val (sut, mockClient) = getEnabledScopes() - sut.metrics().distribution("metric name", 1.0, MeasurementUnit.Duration.MILLISECOND) + sut.metrics().distribution("metric name", 1.0, MeasurementUnit.Duration.MILLISECOND.apiName()) verify(mockClient) .captureMetric( @@ -3713,7 +3694,7 @@ class ScopesTest { .distribution( "metric name", 3.7, - MeasurementUnit.Duration.MILLISECOND, + MeasurementUnit.Duration.MILLISECOND.apiName(), SentryMetricsParameters.create(SentryAttributes.fromMap(mapOf("attrname1" to "attrval1"))), ) @@ -3743,7 +3724,7 @@ class ScopesTest { .distribution( "metric name", 3.7, - MeasurementUnit.Duration.MILLISECOND, + MeasurementUnit.Duration.MILLISECOND.apiName(), SentryMetricsParameters.create( SentryAttributes.of( SentryAttribute.stringAttribute("strattr", "strval"), @@ -3822,7 +3803,7 @@ class ScopesTest { .distribution( "metric name", 3.7, - MeasurementUnit.Duration.MILLISECOND, + MeasurementUnit.Duration.MILLISECOND.apiName(), SentryMetricsParameters.create( SentryLongDate(123), SentryAttributes.of(SentryAttribute.named("attrname1", "attrval1")), @@ -3850,7 +3831,7 @@ class ScopesTest { fun `creating gauge metric with value and unit works`() { val (sut, mockClient) = getEnabledScopes() - sut.metrics().gauge("metric name", 128.0, MeasurementUnit.Information.BYTE) + sut.metrics().gauge("metric name", 128.0, MeasurementUnit.Information.BYTE.apiName()) verify(mockClient) .captureMetric( @@ -3892,7 +3873,7 @@ class ScopesTest { .gauge( "metric name", 256.0, - MeasurementUnit.Information.BYTE, + MeasurementUnit.Information.BYTE.apiName(), SentryMetricsParameters.create(SentryAttributes.fromMap(mapOf("attrname1" to "attrval1"))), ) @@ -3922,7 +3903,7 @@ class ScopesTest { .gauge( "metric name", 256.0, - MeasurementUnit.Information.BYTE, + MeasurementUnit.Information.BYTE.apiName(), SentryMetricsParameters.create( SentryAttributes.of( SentryAttribute.stringAttribute("strattr", "strval"), @@ -4001,7 +3982,7 @@ class ScopesTest { .gauge( "metric name", 256.0, - MeasurementUnit.Information.BYTE, + MeasurementUnit.Information.BYTE.apiName(), SentryMetricsParameters.create( SentryLongDate(123), SentryAttributes.of(SentryAttribute.named("attrname1", "attrval1")),