From 686427dd8b46abc476f7b6a06d2c2032ab509358 Mon Sep 17 00:00:00 2001 From: Alexander Dinauer Date: Thu, 10 Sep 2026 10:07:15 +0200 Subject: [PATCH 1/2] docs(metrics): Explain metric unit API design Document why metrics accept string units rather than reusing MeasurementUnit. This preserves the supported-unit distinction and lets older SDK versions send newly introduced units. Co-Authored-By: Claude --- sentry/src/main/java/io/sentry/metrics/MetricsUnit.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sentry/src/main/java/io/sentry/metrics/MetricsUnit.java b/sentry/src/main/java/io/sentry/metrics/MetricsUnit.java index 4665cdf33a2..0a0ee2bc2b3 100644 --- a/sentry/src/main/java/io/sentry/metrics/MetricsUnit.java +++ b/sentry/src/main/java/io/sentry/metrics/MetricsUnit.java @@ -4,6 +4,9 @@ * String constants for metric units. * *

These constants represent the API names of measurement units that can be used with metrics. + * Metrics APIs intentionally accept strings instead of {@link io.sentry.MeasurementUnit} because it + * contains units that metrics do not support. Strings also let older SDK versions use units + * introduced after their release. */ public final class MetricsUnit { From 8c0b3314d4bfe8cf8ed88ea3f75a0e1dfc501338 Mon Sep 17 00:00:00 2001 From: Alexander Dinauer Date: Thu, 10 Sep 2026 12:55:05 +0200 Subject: [PATCH 2/2] docs(metrics): Clarify unit API distinction Distinguish units for the Metrics product from transaction and span measurement units used by mobile vitals. Co-Authored-By: Claude --- .../src/main/java/io/sentry/metrics/MetricsUnit.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/sentry/src/main/java/io/sentry/metrics/MetricsUnit.java b/sentry/src/main/java/io/sentry/metrics/MetricsUnit.java index 0a0ee2bc2b3..6b060b78277 100644 --- a/sentry/src/main/java/io/sentry/metrics/MetricsUnit.java +++ b/sentry/src/main/java/io/sentry/metrics/MetricsUnit.java @@ -3,10 +3,13 @@ /** * String constants for metric units. * - *

These constants represent the API names of measurement units that can be used with metrics. - * Metrics APIs intentionally accept strings instead of {@link io.sentry.MeasurementUnit} because it - * contains units that metrics do not support. Strings also let older SDK versions use units - * introduced after their release. + *

These constants are for the Metrics product and the {@link IMetricsApi} exposed through {@link + * io.sentry.Sentry#metrics()} and {@link io.sentry.IScopes#metrics()}. {@link + * io.sentry.MeasurementUnit} is instead used by transaction and span measurement APIs, including + * mobile vitals. + * + *

Metrics APIs accept strings so older SDK versions can use units introduced after their + * release. */ public final class MetricsUnit {