From ece88f1d1ff1e0950c17dd61a9d2a8a7c33be149 Mon Sep 17 00:00:00 2001 From: Alexander Dinauer Date: Fri, 19 Dec 2025 09:41:31 +0100 Subject: [PATCH] Metrics Gauge API --- sentry/api/sentry.api | 9 +++++++++ .../java/io/sentry/metrics/IMetricsApi.java | 11 ++++++++-- .../java/io/sentry/metrics/MetricsApi.java | 20 +++++++++++++++++++ .../io/sentry/metrics/NoOpMetricsApi.java | 14 +++++++++++++ 4 files changed, 52 insertions(+), 2 deletions(-) diff --git a/sentry/api/sentry.api b/sentry/api/sentry.api index 705cd7f8cb..6e6c7ab94b 100644 --- a/sentry/api/sentry.api +++ b/sentry/api/sentry.api @@ -5213,6 +5213,9 @@ public abstract interface class io/sentry/metrics/IMetricsApi { 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 fun gauge (Ljava/lang/String;Ljava/lang/Double;)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/logger/SentryLogParameters;)V } public abstract interface class io/sentry/metrics/IMetricsBatchProcessor { @@ -5235,6 +5238,9 @@ public final class io/sentry/metrics/MetricsApi : io/sentry/metrics/IMetricsApi 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 fun gauge (Ljava/lang/String;Ljava/lang/Double;)V + public fun gauge (Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;)V + public fun gauge (Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;Lio/sentry/logger/SentryLogParameters;)V } public class io/sentry/metrics/MetricsBatchProcessor : io/sentry/metrics/IMetricsBatchProcessor { @@ -5257,6 +5263,9 @@ public final class io/sentry/metrics/NoOpMetricsApi : io/sentry/metrics/IMetrics 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 fun gauge (Ljava/lang/String;Ljava/lang/Double;)V + public fun gauge (Ljava/lang/String;Ljava/lang/Double;Ljava/lang/String;)V + public fun gauge (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 6d4d472598..e61ec3dc21 100644 --- a/sentry/src/main/java/io/sentry/metrics/IMetricsApi.java +++ b/sentry/src/main/java/io/sentry/metrics/IMetricsApi.java @@ -31,6 +31,13 @@ void distribution( final @Nullable String unit, final @NotNull SentryLogParameters params); - // gauge - // + void gauge(final @NotNull String name, final @Nullable Double value); + + void gauge(final @NotNull String name, final @Nullable Double value, final @Nullable String unit); + + void gauge( + final @NotNull String name, + final @Nullable Double value, + final @Nullable String unit, + final @NotNull SentryLogParameters params); } diff --git a/sentry/src/main/java/io/sentry/metrics/MetricsApi.java b/sentry/src/main/java/io/sentry/metrics/MetricsApi.java index b8233f99bb..71ec6118ee 100644 --- a/sentry/src/main/java/io/sentry/metrics/MetricsApi.java +++ b/sentry/src/main/java/io/sentry/metrics/MetricsApi.java @@ -82,6 +82,26 @@ public void distribution( captureMetrics(params, name, "distribution", value, unit); } + @Override + public void gauge(final @NotNull String name, final @Nullable Double value) { + captureMetrics(SentryLogParameters.create(null, null), name, "gauge", value, null); + } + + @Override + public void gauge( + final @NotNull String name, final @Nullable Double value, final @Nullable String unit) { + captureMetrics(SentryLogParameters.create(null, null), name, "gauge", value, unit); + } + + @Override + public void gauge( + final @NotNull String name, + final @Nullable Double value, + final @Nullable String unit, + final @NotNull SentryLogParameters params) { + captureMetrics(params, name, "gauge", 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 7cfcb9e61f..6e770b249c 100644 --- a/sentry/src/main/java/io/sentry/metrics/NoOpMetricsApi.java +++ b/sentry/src/main/java/io/sentry/metrics/NoOpMetricsApi.java @@ -46,4 +46,18 @@ public void distribution( final @Nullable Double value, final @Nullable String unit, final @NotNull SentryLogParameters params) {} + + @Override + public void gauge(final @NotNull String name, final @Nullable Double value) {} + + @Override + public void gauge( + final @NotNull String name, final @Nullable Double value, final @Nullable String unit) {} + + @Override + public void gauge( + final @NotNull String name, + final @Nullable Double value, + final @Nullable String unit, + final @NotNull SentryLogParameters params) {} }