From 06634d473da892184926a24b30dd193bf4572929 Mon Sep 17 00:00:00 2001 From: Alexander Dinauer Date: Thu, 18 Dec 2025 15:03:46 +0100 Subject: [PATCH] Metrics Distribution API --- sentry/api/sentry.api | 9 +++++++++ .../java/io/sentry/metrics/IMetricsApi.java | 12 ++++++++++- .../java/io/sentry/metrics/MetricsApi.java | 20 +++++++++++++++++++ .../io/sentry/metrics/NoOpMetricsApi.java | 14 +++++++++++++ 4 files changed, 54 insertions(+), 1 deletion(-) diff --git a/sentry/api/sentry.api b/sentry/api/sentry.api index ff7d26531c..75609ca4af 100644 --- a/sentry/api/sentry.api +++ b/sentry/api/sentry.api @@ -5206,6 +5206,9 @@ public abstract interface class io/sentry/metrics/IMetricsApi { 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/logger/SentryLogParameters;)V public abstract fun count (Ljava/lang/String;Ljava/lang/String;)V + public abstract fun distribution (Ljava/lang/String;Ljava/lang/Double;)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/logger/SentryLogParameters;)V } public abstract interface class io/sentry/metrics/IMetricsBatchProcessor { @@ -5225,6 +5228,9 @@ public final class io/sentry/metrics/MetricsApi : io/sentry/metrics/IMetricsApi public fun count (Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;)V public fun count (Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;Lio/sentry/logger/SentryLogParameters;)V public fun count (Ljava/lang/String;Ljava/lang/String;)V + public fun distribution (Ljava/lang/String;Ljava/lang/Double;)V + public fun distribution (Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;)V + public fun distribution (Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;Lio/sentry/logger/SentryLogParameters;)V } public class io/sentry/metrics/MetricsBatchProcessor : io/sentry/metrics/IMetricsBatchProcessor { @@ -5244,6 +5250,9 @@ public final class io/sentry/metrics/NoOpMetricsApi : io/sentry/metrics/IMetrics public fun count (Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;)V public fun count (Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;Lio/sentry/logger/SentryLogParameters;)V public fun count (Ljava/lang/String;Ljava/lang/String;)V + public fun distribution (Ljava/lang/String;Ljava/lang/Double;)V + public fun distribution (Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;)V + public fun distribution (Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;Lio/sentry/logger/SentryLogParameters;)V public static fun getInstance ()Lio/sentry/metrics/NoOpMetricsApi; } diff --git a/sentry/src/main/java/io/sentry/metrics/IMetricsApi.java b/sentry/src/main/java/io/sentry/metrics/IMetricsApi.java index afaf8ea3cf..6d4d472598 100644 --- a/sentry/src/main/java/io/sentry/metrics/IMetricsApi.java +++ b/sentry/src/main/java/io/sentry/metrics/IMetricsApi.java @@ -20,7 +20,17 @@ void count( final @Nullable String unit, final @NotNull SentryLogParameters params); - // distribution + void distribution(final @NotNull String name, final @Nullable Double value); + + void distribution( + final @NotNull String name, final @Nullable Double value, final @Nullable String unit); + + void distribution( + final @NotNull String name, + final @Nullable Double value, + final @Nullable String unit, + final @NotNull SentryLogParameters params); + // gauge // } diff --git a/sentry/src/main/java/io/sentry/metrics/MetricsApi.java b/sentry/src/main/java/io/sentry/metrics/MetricsApi.java index 1d18fa064f..b8233f99bb 100644 --- a/sentry/src/main/java/io/sentry/metrics/MetricsApi.java +++ b/sentry/src/main/java/io/sentry/metrics/MetricsApi.java @@ -62,6 +62,26 @@ public void count( captureMetrics(params, name, "counter", value, unit); } + @Override + public void distribution(final @NotNull String name, final @Nullable Double value) { + captureMetrics(SentryLogParameters.create(null, null), name, "distribution", value, null); + } + + @Override + public void distribution( + final @NotNull String name, final @Nullable Double value, final @Nullable String unit) { + captureMetrics(SentryLogParameters.create(null, null), name, "distribution", value, unit); + } + + @Override + public void distribution( + final @NotNull String name, + final @Nullable Double value, + final @Nullable String unit, + final @NotNull SentryLogParameters params) { + captureMetrics(params, name, "distribution", value, unit); + } + @SuppressWarnings("AnnotateFormatMethod") private void captureMetrics( final @NotNull SentryLogParameters params, diff --git a/sentry/src/main/java/io/sentry/metrics/NoOpMetricsApi.java b/sentry/src/main/java/io/sentry/metrics/NoOpMetricsApi.java index b12b863167..7cfcb9e61f 100644 --- a/sentry/src/main/java/io/sentry/metrics/NoOpMetricsApi.java +++ b/sentry/src/main/java/io/sentry/metrics/NoOpMetricsApi.java @@ -32,4 +32,18 @@ public void count( final @Nullable Double value, final @Nullable String unit, final @NotNull SentryLogParameters params) {} + + @Override + public void distribution(final @NotNull String name, final @Nullable Double value) {} + + @Override + public void distribution( + final @NotNull String name, final @Nullable Double value, final @Nullable String unit) {} + + @Override + public void distribution( + final @NotNull String name, + final @Nullable Double value, + final @Nullable String unit, + final @NotNull SentryLogParameters params) {} }