From c1dee70791f59fbaa461ff283dffca9128b989bf 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 75609ca4af..eecce47f87 100644 --- a/sentry/api/sentry.api +++ b/sentry/api/sentry.api @@ -5209,6 +5209,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 { @@ -5231,6 +5234,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 { @@ -5253,6 +5259,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) {} }