From 2183da3db69fef788b47c36935f1f63d06f9898d Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Thu, 7 May 2026 20:41:58 -0400 Subject: [PATCH 01/74] Add ability to add exemplar supplier to metrics Signed-off-by: Jay DeLuca --- .../core/exemplars/ExemplarSampler.java | 33 +++++++++- .../metrics/core/metrics/Counter.java | 5 +- .../metrics/core/metrics/Gauge.java | 5 +- .../metrics/core/metrics/Histogram.java | 5 +- .../metrics/core/metrics/StatefulMetric.java | 13 ++++ .../metrics/core/metrics/Summary.java | 5 +- .../metrics/core/metrics/CounterTest.java | 62 +++++++++++++++++++ 7 files changed, 122 insertions(+), 6 deletions(-) diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSampler.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSampler.java index 1219b2a09..986f55308 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSampler.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSampler.java @@ -12,6 +12,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.LongSupplier; +import java.util.function.Supplier; import javax.annotation.Nullable; /** @@ -45,8 +46,10 @@ public class ExemplarSampler { private final SpanContext spanContext; // may be null, in that case SpanContextSupplier.getSpanContext() is used. + @Nullable private final Supplier additionalLabelsSupplier; + public ExemplarSampler(ExemplarSamplerConfig config) { - this(config, null); + this(config, null, null); } /** @@ -58,10 +61,29 @@ public ExemplarSampler(ExemplarSamplerConfig config) { * SpanContextSupplier.getSpanContext()} is called to find a span context. */ public ExemplarSampler(ExemplarSamplerConfig config, @Nullable SpanContext spanContext) { + this(config, spanContext, null); + } + + /** + * Constructor that accepts a supplier of additional labels to be merged into every + * automatically-sampled exemplar. The supplier is called each time an exemplar is sampled + * from a span context, so it can return dynamic values (e.g. a request-scoped identifier). + * The supplier is only called when a valid, sampled span context is present. + */ + public ExemplarSampler( + ExemplarSamplerConfig config, @Nullable Supplier additionalLabelsSupplier) { + this(config, null, additionalLabelsSupplier); + } + + public ExemplarSampler( + ExemplarSamplerConfig config, + @Nullable SpanContext spanContext, + @Nullable Supplier additionalLabelsSupplier) { this.config = config; this.exemplars = new Exemplar[config.getNumberOfExemplars()]; this.customExemplars = new Exemplar[exemplars.length]; this.spanContext = spanContext; + this.additionalLabelsSupplier = additionalLabelsSupplier; } public Exemplars collect() { @@ -355,7 +377,14 @@ private Labels doSampleExemplar() { String traceId = spanContext.getCurrentTraceId(); if (spanId != null && traceId != null) { spanContext.markCurrentSpanAsExemplar(); - return Labels.of(Exemplar.TRACE_ID, traceId, Exemplar.SPAN_ID, spanId); + Labels base = Labels.of(Exemplar.TRACE_ID, traceId, Exemplar.SPAN_ID, spanId); + if (additionalLabelsSupplier != null) { + Labels extra = additionalLabelsSupplier.get(); + if (!extra.isEmpty()) { + return base.merge(extra); + } + } + return base; } } } diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Counter.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Counter.java index 8530c988f..9db1d1d36 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Counter.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Counter.java @@ -14,6 +14,7 @@ import java.util.List; import java.util.concurrent.atomic.DoubleAdder; import java.util.concurrent.atomic.LongAdder; +import java.util.function.Supplier; import javax.annotation.Nullable; /** @@ -35,6 +36,7 @@ public class Counter extends StatefulMetric implements CounterDataPoint { @Nullable private final ExemplarSamplerConfig exemplarSamplerConfig; + @Nullable private final Supplier exemplarLabelsSupplier; private Counter(Builder builder, PrometheusProperties prometheusProperties) { super(builder); @@ -47,6 +49,7 @@ private Counter(Builder builder, PrometheusProperties prometheusProperties) { } else { exemplarSamplerConfig = null; } + exemplarLabelsSupplier = builder.exemplarLabelsSupplier; } @Override @@ -101,7 +104,7 @@ public MetricType getMetricType() { @Override protected DataPoint newDataPoint() { if (exemplarSamplerConfig != null) { - return new DataPoint(new ExemplarSampler(exemplarSamplerConfig)); + return new DataPoint(new ExemplarSampler(exemplarSamplerConfig, exemplarLabelsSupplier)); } else { return new DataPoint(null); } diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Gauge.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Gauge.java index 8b1f31409..4c3742de6 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Gauge.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Gauge.java @@ -13,6 +13,7 @@ import java.util.Collections; import java.util.List; import java.util.concurrent.atomic.AtomicLong; +import java.util.function.Supplier; import javax.annotation.Nullable; /** @@ -42,6 +43,7 @@ public class Gauge extends StatefulMetric implements GaugeDataPoint { @Nullable private final ExemplarSamplerConfig exemplarSamplerConfig; + @Nullable private final Supplier exemplarLabelsSupplier; private Gauge(Builder builder, PrometheusProperties prometheusProperties) { super(builder); @@ -54,6 +56,7 @@ private Gauge(Builder builder, PrometheusProperties prometheusProperties) { } else { exemplarSamplerConfig = null; } + exemplarLabelsSupplier = builder.exemplarLabelsSupplier; } @Override @@ -103,7 +106,7 @@ public MetricType getMetricType() { @Override protected DataPoint newDataPoint() { if (exemplarSamplerConfig != null) { - return new DataPoint(new ExemplarSampler(exemplarSamplerConfig)); + return new DataPoint(new ExemplarSampler(exemplarSamplerConfig, exemplarLabelsSupplier)); } else { return new DataPoint(null); } diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Histogram.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Histogram.java index 930d9e67e..ef1bda45d 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Histogram.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Histogram.java @@ -25,6 +25,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.DoubleAdder; import java.util.concurrent.atomic.LongAdder; +import java.util.function.Supplier; import javax.annotation.Nullable; /** @@ -71,6 +72,7 @@ public class Histogram extends StatefulMetric exemplarLabelsSupplier; // Upper bounds for the classic histogram buckets. Contains at least +Inf. // An empty array indicates that this is a native histogram only. @@ -169,6 +171,7 @@ private Histogram(Histogram.Builder builder, PrometheusProperties prometheusProp } else { exemplarSamplerConfig = null; } + exemplarLabelsSupplier = builder.exemplarLabelsSupplier; } @Override @@ -210,7 +213,7 @@ public class DataPoint implements DistributionDataPoint { private DataPoint() { if (exemplarSamplerConfig != null) { - exemplarSampler = new ExemplarSampler(exemplarSamplerConfig); + exemplarSampler = new ExemplarSampler(exemplarSamplerConfig, exemplarLabelsSupplier); } else { exemplarSampler = null; } diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StatefulMetric.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StatefulMetric.java index 386e92292..ab3f20b74 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StatefulMetric.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StatefulMetric.java @@ -13,6 +13,7 @@ import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function; +import java.util.function.Supplier; import javax.annotation.Nullable; /** @@ -198,11 +199,23 @@ abstract static class Builder, M extends StatefulMetric< extends MetricWithFixedMetadata.Builder { @Nullable protected Boolean exemplarsEnabled; + @Nullable protected Supplier exemplarLabelsSupplier; protected Builder(List illegalLabelNames, PrometheusProperties config) { super(illegalLabelNames, config); } + /** + * Provide additional labels to be merged into every automatically-sampled exemplar. The + * supplier is called each time an exemplar is sampled, so it can return dynamic values (e.g. + * a request-scoped identifier from a thread-local). The supplier is only invoked when a valid, + * sampled span context is present; it has no effect when tracing is not active. + */ + public B exemplarLabelsSupplier(Supplier supplier) { + this.exemplarLabelsSupplier = supplier; + return self(); + } + /** Allow Exemplars for this metric. */ public B withExemplars() { this.exemplarsEnabled = true; diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Summary.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Summary.java index 47b6e2a9c..292ac5b18 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Summary.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Summary.java @@ -19,6 +19,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.DoubleAdder; import java.util.concurrent.atomic.LongAdder; +import java.util.function.Supplier; import javax.annotation.Nullable; /** @@ -50,6 +51,7 @@ public class Summary extends StatefulMetric exemplarLabelsSupplier; private Summary(Builder builder, PrometheusProperties prometheusProperties) { super(builder); @@ -65,6 +67,7 @@ private Summary(Builder builder, PrometheusProperties prometheusProperties) { } else { exemplarSamplerConfig = null; } + exemplarLabelsSupplier = builder.exemplarLabelsSupplier; } private List makeQuantiles(MetricsProperties[] properties) { @@ -153,7 +156,7 @@ private DataPoint() { ageBuckets); } if (exemplarSamplerConfig != null) { - exemplarSampler = new ExemplarSampler(exemplarSamplerConfig); + exemplarSampler = new ExemplarSampler(exemplarSamplerConfig, exemplarLabelsSupplier); } else { exemplarSampler = null; } diff --git a/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/CounterTest.java b/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/CounterTest.java index b13e50f8d..2a53705a3 100644 --- a/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/CounterTest.java +++ b/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/CounterTest.java @@ -9,6 +9,7 @@ import io.prometheus.metrics.config.MetricsProperties; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.core.exemplars.ExemplarSamplerConfigTestUtil; +import io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter; import io.prometheus.metrics.expositionformats.generated.Metrics; import io.prometheus.metrics.expositionformats.internal.PrometheusProtobufWriterImpl; import io.prometheus.metrics.expositionformats.internal.ProtobufUtil; @@ -17,9 +18,11 @@ import io.prometheus.metrics.model.snapshots.Exemplar; import io.prometheus.metrics.model.snapshots.Label; import io.prometheus.metrics.model.snapshots.Labels; +import io.prometheus.metrics.model.snapshots.MetricSnapshots; import io.prometheus.metrics.model.snapshots.Unit; import io.prometheus.metrics.tracer.common.SpanContext; import io.prometheus.metrics.tracer.initializer.SpanContextSupplier; +import java.io.ByteArrayOutputStream; import java.util.Arrays; import java.util.Iterator; import org.junit.jupiter.api.AfterEach; @@ -321,6 +324,65 @@ void incWithExemplar2() { getData(counter).getExemplar()); } + @Test + void incWithExemplarCustomMetadataInExposition() throws Exception { + Counter counter = Counter.builder().name("requests_total").build(); + counter.incWithExemplar( + Labels.of( + Exemplar.TRACE_ID, "abc123", + Exemplar.SPAN_ID, "def456", + "management_id", "mgmt-42")); + + ByteArrayOutputStream out = new ByteArrayOutputStream(); + new OpenMetricsTextFormatWriter(false, true) + .write(out, MetricSnapshots.of(counter.collect()), EscapingScheme.ALLOW_UTF8); + + assertThat(out.toString()) + .contains("management_id=\"mgmt-42\"") + .contains("trace_id=\"abc123\"") + .contains("span_id=\"def456\""); + } + + @Test + void exemplarLabelsSupplierAppearsInAutomaticallySampledExemplar() throws Exception { + SpanContextSupplier.setSpanContext( + new SpanContext() { + @Override + public String getCurrentTraceId() { + return "trace-abc"; + } + + @Override + public String getCurrentSpanId() { + return "span-def"; + } + + @Override + public boolean isCurrentSpanSampled() { + return true; + } + + @Override + public void markCurrentSpanAsExemplar() {} + }); + + Counter counter = + Counter.builder() + .name("requests_total") + .exemplarLabelsSupplier(() -> Labels.of("management_id", "mgmt-42")) + .build(); + counter.inc(); // automatic sampling path + + ByteArrayOutputStream out = new ByteArrayOutputStream(); + new OpenMetricsTextFormatWriter(false, true) + .write(out, MetricSnapshots.of(counter.collect()), EscapingScheme.ALLOW_UTF8); + + assertThat(out.toString()) + .contains("management_id=\"mgmt-42\"") + .contains("trace_id=\"trace-abc\"") + .contains("span_id=\"span-def\""); + } + @Test void testExemplarSamplerDisabled() { Counter counter = Counter.builder().name("count_total").withoutExemplars().build(); From bd91000eb1c3897e8c025adb5a5cc3bc777f5622 Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Fri, 8 May 2026 06:02:58 -0400 Subject: [PATCH 02/74] format Signed-off-by: Jay DeLuca --- .../prometheus/metrics/core/exemplars/ExemplarSampler.java | 6 +++--- .../io/prometheus/metrics/core/metrics/StatefulMetric.java | 4 ++-- .../io/prometheus/metrics/core/metrics/CounterTest.java | 4 +--- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSampler.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSampler.java index 986f55308..d7a41ae5b 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSampler.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSampler.java @@ -66,9 +66,9 @@ public ExemplarSampler(ExemplarSamplerConfig config, @Nullable SpanContext spanC /** * Constructor that accepts a supplier of additional labels to be merged into every - * automatically-sampled exemplar. The supplier is called each time an exemplar is sampled - * from a span context, so it can return dynamic values (e.g. a request-scoped identifier). - * The supplier is only called when a valid, sampled span context is present. + * automatically-sampled exemplar. The supplier is called each time an exemplar is sampled from a + * span context, so it can return dynamic values (e.g. a request-scoped identifier). The supplier + * is only called when a valid, sampled span context is present. */ public ExemplarSampler( ExemplarSamplerConfig config, @Nullable Supplier additionalLabelsSupplier) { diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StatefulMetric.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StatefulMetric.java index ab3f20b74..9fcf33ca4 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StatefulMetric.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StatefulMetric.java @@ -207,8 +207,8 @@ protected Builder(List illegalLabelNames, PrometheusProperties config) { /** * Provide additional labels to be merged into every automatically-sampled exemplar. The - * supplier is called each time an exemplar is sampled, so it can return dynamic values (e.g. - * a request-scoped identifier from a thread-local). The supplier is only invoked when a valid, + * supplier is called each time an exemplar is sampled, so it can return dynamic values (e.g. a + * request-scoped identifier from a thread-local). The supplier is only invoked when a valid, * sampled span context is present; it has no effect when tracing is not active. */ public B exemplarLabelsSupplier(Supplier supplier) { diff --git a/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/CounterTest.java b/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/CounterTest.java index 2a53705a3..c5b80716e 100644 --- a/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/CounterTest.java +++ b/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/CounterTest.java @@ -329,9 +329,7 @@ void incWithExemplarCustomMetadataInExposition() throws Exception { Counter counter = Counter.builder().name("requests_total").build(); counter.incWithExemplar( Labels.of( - Exemplar.TRACE_ID, "abc123", - Exemplar.SPAN_ID, "def456", - "management_id", "mgmt-42")); + Exemplar.TRACE_ID, "abc123", Exemplar.SPAN_ID, "def456", "management_id", "mgmt-42")); ByteArrayOutputStream out = new ByteArrayOutputStream(); new OpenMetricsTextFormatWriter(false, true) From 75abc58bc2b9d12542940a0f04e1d3b2b0221cf3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 8 May 2026 11:09:14 +0200 Subject: [PATCH 03/74] chore(deps): update eclipse-temurin:25.0.3_9-jre docker digest to 9c9e7c4 (#2104) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | eclipse-temurin | final | digest | `671061a` → `9c9e7c4` | | eclipse-temurin | | digest | `671061a` → `9c9e7c4` | --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- examples/example-custom-buckets/docker-compose.yaml | 2 +- .../example-exporter-opentelemetry/oats-tests/agent/Dockerfile | 2 +- .../example-exporter-opentelemetry/oats-tests/http/Dockerfile | 2 +- examples/example-native-histogram/docker-compose.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/example-custom-buckets/docker-compose.yaml b/examples/example-custom-buckets/docker-compose.yaml index f2deb473f..6feaa3414 100644 --- a/examples/example-custom-buckets/docker-compose.yaml +++ b/examples/example-custom-buckets/docker-compose.yaml @@ -1,7 +1,7 @@ version: "3" services: example-application: - image: eclipse-temurin:25.0.3_9-jre@sha256:671061ae5a8f0d6827816e15bc39d21e224c43ff96998a97cd0d3989c4d17815 + image: eclipse-temurin:25.0.3_9-jre@sha256:9c9e7c4f5f3840e5254be62ea9a7de56b2d0af23864032a8a3654bf63c31cd5b network_mode: host volumes: - ./target/example-custom-buckets.jar:/example-custom-buckets.jar diff --git a/examples/example-exporter-opentelemetry/oats-tests/agent/Dockerfile b/examples/example-exporter-opentelemetry/oats-tests/agent/Dockerfile index 2c0f25b8e..70092afab 100644 --- a/examples/example-exporter-opentelemetry/oats-tests/agent/Dockerfile +++ b/examples/example-exporter-opentelemetry/oats-tests/agent/Dockerfile @@ -1,4 +1,4 @@ -FROM eclipse-temurin:25.0.3_9-jre@sha256:671061ae5a8f0d6827816e15bc39d21e224c43ff96998a97cd0d3989c4d17815 +FROM eclipse-temurin:25.0.3_9-jre@sha256:9c9e7c4f5f3840e5254be62ea9a7de56b2d0af23864032a8a3654bf63c31cd5b COPY target/example-exporter-opentelemetry.jar ./app.jar # check that the resource attributes from the agent are used, epsecially the service.instance.id should be the same diff --git a/examples/example-exporter-opentelemetry/oats-tests/http/Dockerfile b/examples/example-exporter-opentelemetry/oats-tests/http/Dockerfile index a2f15240d..511a0689f 100644 --- a/examples/example-exporter-opentelemetry/oats-tests/http/Dockerfile +++ b/examples/example-exporter-opentelemetry/oats-tests/http/Dockerfile @@ -1,4 +1,4 @@ -FROM eclipse-temurin:25.0.3_9-jre@sha256:671061ae5a8f0d6827816e15bc39d21e224c43ff96998a97cd0d3989c4d17815 +FROM eclipse-temurin:25.0.3_9-jre@sha256:9c9e7c4f5f3840e5254be62ea9a7de56b2d0af23864032a8a3654bf63c31cd5b COPY target/example-exporter-opentelemetry.jar ./app.jar diff --git a/examples/example-native-histogram/docker-compose.yaml b/examples/example-native-histogram/docker-compose.yaml index 79988fa48..d45b90508 100644 --- a/examples/example-native-histogram/docker-compose.yaml +++ b/examples/example-native-histogram/docker-compose.yaml @@ -1,7 +1,7 @@ version: "3" services: example-application: - image: eclipse-temurin:25.0.3_9-jre@sha256:671061ae5a8f0d6827816e15bc39d21e224c43ff96998a97cd0d3989c4d17815 + image: eclipse-temurin:25.0.3_9-jre@sha256:9c9e7c4f5f3840e5254be62ea9a7de56b2d0af23864032a8a3654bf63c31cd5b network_mode: host volumes: - ./target/example-native-histogram.jar:/example-native-histogram.jar From ebafdfd83380793ac8c9f73d1503ed23b1885315 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 11 May 2026 11:06:28 +0200 Subject: [PATCH 04/74] chore(deps): update dependency mise to v2026.5.5 (#2107) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Update | Change | |---|---|---| | [mise](https://redirect.github.com/jdx/mise) | patch | `v2026.5.0` → `v2026.5.5` | --- ### Release Notes
jdx/mise (mise) ### [`v2026.5.5`](https://redirect.github.com/jdx/mise/releases/tag/v2026.5.5): : Inactive upgrades, Windows bash and bunx fixes [Compare Source](https://redirect.github.com/jdx/mise/compare/v2026.5.4...v2026.5.5) A grab-bag release: a new `--inactive` flag for catching installed-but-unconfigured tools, several Windows fixes around `bunx` and the `bash` task shell, and correctness fixes for the npm shim, aqua bin-path resolution, and dotnet prereleases. #### Added - **(outdated/upgrade)** New `--inactive` flag on `mise outdated` and `mise upgrade` that includes installed-but-inactive tools — versions you have installed but that aren't referenced by the current config ([#​9640](https://redirect.github.com/jdx/mise/pull/9640)) by [@​roele](https://redirect.github.com/roele). Useful for cleaning up or upgrading old tool installs: ```sh # show every installed tool that has a newer version, even if it's not in mise.toml mise outdated --inactive # upgrade an installed-but-inactive tool to its current latest mise upgrade tiny --inactive ``` When a tool has no config source, `--inactive` resolves against the backend's latest version rather than the pinned installed version. #### Fixed - **(node)** The generated npm shim now invokes `/bin/node` directly instead of `node` from `PATH`. Previously, running one Node install's `npm` while a different Node version was active could let npm derive its global prefix from the other install, sending default packages to the wrong place ([#​9749](https://redirect.github.com/jdx/mise/pull/9749)) by [@​jdx](https://redirect.github.com/jdx). - **(bun, Windows)** `mise install bun` on Windows now creates a `bunx` entry alongside `bun.exe`, matching what the upstream PowerShell installer does. mise tries a `bunx.exe -> bun.exe` hardlink first (bun switches to bunx mode based on argv\[0]) and falls back to a `bunx.cmd` shim. `reshim` picks it up automatically, so `bunx ` finally works under mise-managed bun on Windows ([#​9732](https://redirect.github.com/jdx/mise/pull/9732)) by [@​JamBalaya56562](https://redirect.github.com/JamBalaya56562). - **(task, Windows)** When a task uses `shell = "bash -c"` and mise is invoked from PowerShell, `C:\Windows\System32\bash.exe` (the WSL launcher) used to win the `PATH` search, silently running the task body inside a WSL Linux user-space where mise-managed Windows tools aren't visible. mise now resolves bash in this order: `MISE_BASH_PATH`, common Git Bash install locations (`C:\Program Files\Git\bin\bash.exe`, the x86 variant, `%LOCALAPPDATA%\Programs\Git\bin\bash.exe`), the existing PATH search, and finally an explicit reject of the WSL launcher with a warning ([#​9750](https://redirect.github.com/jdx/mise/pull/9750)) by [@​JamBalaya56562](https://redirect.github.com/JamBalaya56562). `sh`/`zsh`/`fish`/`ksh`/`dash` and non-Windows builds are unaffected. - **(aqua)** Aqua `list_bin_paths()` correctly handles packages whose actual git tags add an extra `v` after a version prefix (e.g. `tool-v1.2.3` for canonical `1.2.3`), without putting remote resolution back on the bin-path hot path that was reverted in [#​5574](https://redirect.github.com/jdx/mise/issues/5574). Install passes the already-resolved tag/version directly into file-link creation instead of recomputing it ([#​9759](https://redirect.github.com/jdx/mise/pull/9759)) by [@​risu729](https://redirect.github.com/risu729). - **(dotnet)** The dotnet backend now uses the shared `prerelease = true` tool option used by aqua/github, fetches the NuGet prerelease superset, and skips the latest fast paths when prereleases are enabled. The global `prereleases` setting and the deprecated `dotnet.package_flags = ["prerelease"]` continue to work ([#​9720](https://redirect.github.com/jdx/mise/pull/9720)) by [@​risu729](https://redirect.github.com/risu729): ```sh MISE_EXPERIMENTAL=1 mise ls-remote 'dotnet:GitVersion.Tool[prerelease=true]' ``` #### Registry - Added `scalafmt` ([github:scalameta/scalafmt](https://redirect.github.com/scalameta/scalafmt)) — the official Scala formatter ([#​9757](https://redirect.github.com/jdx/mise/pull/9757)) by [@​pokir](https://redirect.github.com/pokir). - Removed `flarectl`: upstream `cloudflare/cloudflare-go` no longer ships release binaries (the existing registry test was already commented out) ([#​9756](https://redirect.github.com/jdx/mise/pull/9756)) by [@​risu729](https://redirect.github.com/risu729). - Removed 49 registry shorthands with zero recorded users (bbr, brig, btrace, carp, clarinet, cli53, concourse, conduit, copper, credhub, datree, djinni, dome, draft, dtm, envcli, esy, glen, grain, inlets, kcctl, ki, kp, krab, kube-credential-cache, kubefedctl, kubefirst, kubemqctl, kwt, lab, lane, levant, melt, opsgenie-lamp, pachctl, psc-package, purerl, redo, rke, sinker, soracom, starboard, sver, terradozer, titan, uaa-cli, wasm4, wren-cli, zbctl) ([#​9725](https://redirect.github.com/jdx/mise/pull/9725)) by [@​jdx](https://redirect.github.com/jdx). Tools added in 2026 were skipped, and any of these can still be installed with explicit backend syntax (e.g. `mise use aqua:cloudfoundry/uaa-cli`). #### Documentation - **(secrets)** Document that direct age encryption requires experimental mode, that age decryption is strict by default, and that `age.strict=false` skips undecryptable values and keeps resolving the environment ([#​9737](https://redirect.github.com/jdx/mise/pull/9737)) by [@​risu729](https://redirect.github.com/risu729). - **(tasks)** Add a bash shebang to the conditional-dependencies example ([#​9747](https://redirect.github.com/jdx/mise/pull/9747)) by [@​JamBalaya56562](https://redirect.github.com/JamBalaya56562). - Backend tool option docs: document S3 support for `size`, `strip_components`, `bin`, and `rename_exe`; add `no_app` to GitLab and Forgejo; clarify that GitHub-family `api_url` covers release lookup and private/self-hosted API downloads, not just version listing ([#​9738](https://redirect.github.com/jdx/mise/pull/9738)) by [@​risu729](https://redirect.github.com/risu729). #### New Contributors - [@​pokir](https://redirect.github.com/pokir) made their first contribution in [#​9757](https://redirect.github.com/jdx/mise/pull/9757) **Full Changelog**: #### 💚 Sponsor mise mise is built by [@​jdx](https://redirect.github.com/jdx) under [**en.dev**](https://en.dev) — an independent studio making developer tooling (mise, [aube](https://aube.en.dev/), and more). Development is funded by sponsors. If mise saves you or your team time, please consider sponsoring at [en.dev](https://en.dev). Individual and company sponsorships keep mise fast, free, and independent. ### [`v2026.5.4`](https://redirect.github.com/jdx/mise/releases/tag/v2026.5.4): : Java on Alpine, faster pwsh exits [Compare Source](https://redirect.github.com/jdx/mise/compare/v2026.5.3...v2026.5.4) A small release that smooths out Java installs on Alpine, makes pwsh shell activation noticeably snappier, and cleans up `ibmcloud`'s `$PATH` footprint. #### Added - **(java)** Automatic musl detection on Alpine Linux ([#​9688](https://redirect.github.com/jdx/mise/pull/9688)) by [@​roele](https://redirect.github.com/roele). Java versions on Alpine no longer require an explicit `-musl` feature suffix — `mise-java` now exposes an `alpine-linux` OS containing the musl builds, and mise selects it automatically when running on a musl libc. So this: ```sh mise use java@corretto-25 ``` picks the Alpine/musl Corretto build on Alpine, and `-musl`-suffixed versions (e.g. `corretto-musl-25`) continue to resolve for backwards compatibility. #### Fixed - **(registry)** `ibmcloud` now uses `symlink_bins`, so only the `ibmcloud` binary is placed on `$PATH` instead of the entire install directory. This prevents the bundled `install` binary from shadowing `/usr/bin/install` ([#​9685](https://redirect.github.com/jdx/mise/pull/9685)) by [@​dnwe](https://redirect.github.com/dnwe). #### Performance - **(pwsh)** Activation no longer spawns a fresh `pwsh -NoProfile -Command exit $status` (or `powershell` on PS 5) after every hook just to propagate mise's exit code — it now assigns `$global:LASTEXITCODE = $status` directly. On a typical machine that's \~270ms (`pwsh`) or \~185ms (`powershell`) shaved off every prompt ([#​9723](https://redirect.github.com/jdx/mise/pull/9723)) by [@​vemoo](https://redirect.github.com/vemoo). #### Changed - **(schema)** `xtasks/render/schema.ts` no longer overwrites `$defs.task_template` and the trailing `$defs.task.oneOf` branch on every `mise run render:schema`; those shapes already live in `schema/mise.json`, with lightweight guard checks remaining ([#​9680](https://redirect.github.com/jdx/mise/pull/9680)) by [@​risu729](https://redirect.github.com/risu729). #### Aqua Registry Updates New packages: - [`DataDog/managed-kubernetes-auditing-toolkit`](https://redirect.github.com/DataDog/managed-kubernetes-auditing-toolkit) - `oracle.com/sqlcl` Updated packages: - [`alltuner/mise-completions-sync`](https://redirect.github.com/alltuner/mise-completions-sync) - [`iann0036/iamlive`](https://redirect.github.com/iann0036/iamlive) - [`pnpm/pnpm`](https://redirect.github.com/pnpm/pnpm) **Full Changelog**: #### 💚 Sponsor mise mise is built by [@​jdx](https://redirect.github.com/jdx) under [**en.dev**](https://en.dev) — an independent studio making developer tooling (mise, [aube](https://aube.en.dev/), and more). Development is funded by sponsors. If mise saves you or your team time, please consider sponsoring at [en.dev](https://en.dev). Individual and company sponsorships keep mise fast, free, and independent. ### [`v2026.5.3`](https://redirect.github.com/jdx/mise/releases/tag/v2026.5.3): : Aqua latest from GitHub releases [Compare Source](https://redirect.github.com/jdx/mise/compare/vfox-v2026.5.2...v2026.5.3) A small patch release that fixes how the aqua backend resolves `latest` for tools backed by GitHub releases. #### Fixed - **(aqua)** Resolve `latest` via GitHub's latest-release endpoint instead of walking the chronological tag list, so `mise use @​latest` and similar requests pick the upstream "latest" release rather than the newest tag. Packages using `version_source = github_tag` continue to use the existing tag-based fallback, and `before_date` / `minimum_release_age` settings still bypass the fast path. Tag-to-version normalization (version prefixes, leading `v`, asset checks) is now shared across remote listing, install lookup, and latest resolution ([#​9277](https://redirect.github.com/jdx/mise/pull/9277)) by [@​risu729](https://redirect.github.com/risu729). **Full Changelog**: #### 💚 Sponsor mise mise is built by [@​jdx](https://redirect.github.com/jdx) under [**en.dev**](https://en.dev) — an independent studio making developer tooling (mise, [aube](https://aube.en.dev/), and more). Development is funded by sponsors. If mise saves you or your team time, please consider sponsoring at [en.dev](https://en.dev). Individual and company sponsorships keep mise fast, free, and independent. ### [`v2026.5.2`](https://redirect.github.com/jdx/mise/releases/tag/v2026.5.2): : Stable monorepo task roots, fail-fast parallel tasks, and curated lockfiles [Compare Source](https://redirect.github.com/jdx/mise/compare/vfox-v2026.5.1...vfox-v2026.5.2) #### Added - **(aqua)** Support registry libc variants (`gnu` vs `musl`) when resolving package overrides on Linux, including cross-platform lock targets like `linux-x64-musl` ([#​9652](https://redirect.github.com/jdx/mise/pull/9652)) by [@​jdx](https://redirect.github.com/jdx). - **(aqua)** Honor aqua registry `files[].link` and `files[].hard` entries, creating relative symlink (or hard link) aliases next to extracted binaries so tools that inspect `$0`/`argv[0]` (e.g. `granted`/`assumego`, newer `pnpm`) launch correctly ([#​9610](https://redirect.github.com/jdx/mise/pull/9610)) by [@​risu729](https://redirect.github.com/risu729). - **(bin-paths)** New `mise bin-paths --bin-names` flag prints executable names from active bin directories, and `--json` now emits structured entries with `name`, `path`, and `symlink` ([#​9617](https://redirect.github.com/jdx/mise/pull/9617)) by [@​risu729](https://redirect.github.com/risu729). - **(task)** Added `MISE_MONOREPO_ROOT` env var pointing at the directory of the config with `experimental_monorepo_root = true` ([#​9657](https://redirect.github.com/jdx/mise/pull/9657)) by [@​jdx](https://redirect.github.com/jdx). - **(registry)** Added `code-review-graph` via `pipx:code-review-graph` ([#​9673](https://redirect.github.com/jdx/mise/pull/9673)) by [@​chautruonglong](https://redirect.github.com/chautruonglong). #### Fixed - **(task)** Parallel `mise run --jobs N` siblings now terminate promptly when one task fails, via per-task process groups and `killpg`, with a 10s pipe-drain timeout ([#​9655](https://redirect.github.com/jdx/mise/pull/9655)) by [@​jdx](https://redirect.github.com/jdx). - **(task)** `MISE_PROJECT_ROOT` for monorepo subproject tasks is now stable regardless of invocation cwd ([#​9657](https://redirect.github.com/jdx/mise/pull/9657)) by [@​jdx](https://redirect.github.com/jdx). - **(install)** Don't force a remote-versions cache refresh in `prefer_offline` mode; fixes a v2026.5.0 regression with shim auto-install of `prefix:` requests ([#​9627](https://redirect.github.com/jdx/mise/pull/9627)) by [@​jdx](https://redirect.github.com/jdx). - **(lockfile)** Auto-lock during `mise install` now respects user-curated lockfiles — removed platforms stay removed ([#​9621](https://redirect.github.com/jdx/mise/pull/9621)) by [@​jdx](https://redirect.github.com/jdx). - **(lock)** `mise lock` from a nested project scopes targets to the active project root and stops churning parent lockfiles; `--global` is now exclusive ([#​9319](https://redirect.github.com/jdx/mise/pull/9319)) by [@​risu729](https://redirect.github.com/risu729). - **(deps)** Fall through to source-hash freshness when a provider returns no outputs, so `bundle install`, `pip install`, `go mod download`, `poetry install`, and `uv sync` stop rerunning on every invocation ([#​9622](https://redirect.github.com/jdx/mise/pull/9622)) by [@​jdx](https://redirect.github.com/jdx). - **(backend)** Inline tool option overrides (e.g. `tool[asset_pattern=...]`) are now applied consistently across all backends, with backend alias `[...]` options as a distinct overlay layer ([#​9306](https://redirect.github.com/jdx/mise/pull/9306)) by [@​risu729](https://redirect.github.com/risu729). - **(backend)** Skip the `mise-versions` host when locally overridden tool options affect remote version listing ([#​9568](https://redirect.github.com/jdx/mise/pull/9568)) by [@​risu729](https://redirect.github.com/risu729). - **(backend)** Reject bare package-backend names like `cargo` and `gem` as implicit `cargo:cargo`/`gem:gem` tools ([#​9608](https://redirect.github.com/jdx/mise/pull/9608)) by [@​risu729](https://redirect.github.com/risu729). - **(aqua)** Preserve configured file extensions (e.g. `.bat` scripts) on Windows; avoid doubling `version_prefix` ([#​9611](https://redirect.github.com/jdx/mise/pull/9611)) by [@​risu729](https://redirect.github.com/risu729). - **(github)** Chmod only the explicitly configured `bin` target instead of every archive file ([#​9609](https://redirect.github.com/jdx/mise/pull/9609)) by [@​risu729](https://redirect.github.com/risu729). - **(pipx)** Filter yanked PyPI releases from fuzzy/`latest` resolution while keeping exact pinned installs available ([#​9607](https://redirect.github.com/jdx/mise/pull/9607)) by [@​risu729](https://redirect.github.com/risu729). - **(pipx)** Declare `python` as a backend dependency so `pipx.pyz` resolves to mise-managed Python ([#​9678](https://redirect.github.com/jdx/mise/pull/9678)) by [@​jdx](https://redirect.github.com/jdx). - **(trust)** Run `enter` hooks after `mise trust` newly trusts a config for the current directory ([#​9634](https://redirect.github.com/jdx/mise/pull/9634)) by [@​risu729](https://redirect.github.com/risu729). - **(ui)** Stop clearing the screen for confirmation prompts like `mise prune` ([#​9619](https://redirect.github.com/jdx/mise/pull/9619)) by [@​jdx](https://redirect.github.com/jdx). - Use `/bin/cp` on macOS for `mise sync` so it doesn't break when GNU `cp` from Homebrew shadows it on `PATH` ([#​9656](https://redirect.github.com/jdx/mise/pull/9656)) by [@​pdehlke](https://redirect.github.com/pdehlke). - **(schema)** Update refs to `$defs` in `mise-registry-tool.json` ([#​9671](https://redirect.github.com/jdx/mise/pull/9671)) by [@​risu729](https://redirect.github.com/risu729). #### Changed - **(registry)** Removed registry-level `depends` from generated registry tools and added `test.tools` for tools whose dependencies are only needed by `mise test-tool` ([#​9571](https://redirect.github.com/jdx/mise/pull/9571)) by [@​risu729](https://redirect.github.com/risu729). - **(config)** Registry backend options now accept full TOML values (booleans, integers, arrays, tables) instead of strings only ([#​9584](https://redirect.github.com/jdx/mise/pull/9584)) by [@​risu729](https://redirect.github.com/risu729). #### Documentation - **(node)** Added tips for enabling node idiomatic version files ([#​9675](https://redirect.github.com/jdx/mise/pull/9675)) by [@​fu050409](https://redirect.github.com/fu050409). #### New Contributors - [@​chautruonglong](https://redirect.github.com/chautruonglong) made their first contribution in [#​9673](https://redirect.github.com/jdx/mise/pull/9673) - [@​pdehlke](https://redirect.github.com/pdehlke) made their first contribution in [#​9656](https://redirect.github.com/jdx/mise/pull/9656) #### 💚 Sponsor mise mise is built by [@​jdx](https://redirect.github.com/jdx) under [**en.dev**](https://en.dev) — an independent studio making developer tooling (mise, [aube](https://aube.en.dev/), and more). Development is funded by sponsors. If mise saves you or your team time, please consider sponsoring at [en.dev](https://en.dev). Individual and company sponsorships keep mise fast, free, and independent. ### [`v2026.5.1`](https://redirect.github.com/jdx/mise/releases/tag/v2026.5.1): : Aqua cosign and a reshim rescue [Compare Source](https://redirect.github.com/jdx/mise/compare/vfox-v2026.5.0...vfox-v2026.5.1) A small follow-up to v2026.5.0 that lands top-level cosign verification for the aqua backend, fixes a `mise reshim` failure caused by stale `latest` install directories, and tightens schema validation. #### Added - **(backend)** The aqua backend now honors top-level `cosign` metadata when verifying packages, covering both checksum and artifact flows and reusing the existing native sigstore path. Lockfiles record top-level cosign provenance, with new e2e and lockfile regression coverage ([#​9111](https://redirect.github.com/jdx/mise/pull/9111)) by [@​risu729](https://redirect.github.com/risu729). - **(registry)** Added `wasm-tools` via `aqua:bytecodealliance/wasm-tools` for working with the WebAssembly Component Model ([#​9596](https://redirect.github.com/jdx/mise/pull/9596)) by [@​2xdevv](https://redirect.github.com/2xdevv). #### Fixed - **(shim)** `mise reshim` no longer aborts with `failed to rebuild shims: no versions found for ` when an install directory literally named `latest` (or any other non-resolvable name) is left on disk. `Toolset::list_installed_versions` already reads concrete version directory names, so it now constructs `ToolVersion` directly instead of calling `.resolve()` (no network), and per-tool `ToolRequest::new` failures are warned-and-skipped instead of aborting the entire rebuild ([#​9599](https://redirect.github.com/jdx/mise/pull/9599)) by [@​jdx](https://redirect.github.com/jdx). Repro: ```sh mkdir -p ~/.mise/installs/buck2/latest/bin touch ~/.mise/installs/buck2/latest/bin/buck2 mise reshim # previously failed; now succeeds ``` - **(schema)** All files under `schema/` are now validated against `draft/2020-12` in strict mode. Hand-written schemas and the `BoolOrString` renderer in `schema.ts` use `oneOf` instead of union type arrays so AJV's `strictTypes` no longer rejects them; the bogus `--strict-schema` flag is replaced with `--strict-types=true --strict-tuples=true` ([#​9594](https://redirect.github.com/jdx/mise/pull/9594)) by [@​risu729](https://redirect.github.com/risu729). - **(registry)** `elixir-ls` re-enables `symlink_bins` so the move to the aqua backend stops exposing internal binaries that aren't meant to be called directly ([#​9592](https://redirect.github.com/jdx/mise/pull/9592)) by [@​AlternateRT](https://redirect.github.com/AlternateRT). #### Changed - **(registry)** `rebar` now installs from the GitHub backend (`erlang/rebar3`) since rebar3 is just an `escript`; the asdf plugin fallback is removed. Versions before rebar 3 are no longer supported, and the installed executable remains `rebar3` to match upstream docs ([#​9576](https://redirect.github.com/jdx/mise/pull/9576)) by [@​risu729](https://redirect.github.com/risu729). - **(registry)** `bashly` drops the `asdf:mise-plugins/mise-bashly` fallback and the redundant explicit `ruby` dependency, since the `gem` backend already pulls in Ruby ([#​9578](https://redirect.github.com/jdx/mise/pull/9578)) by [@​risu729](https://redirect.github.com/risu729). - **(release)** Restored the "Sponsor mise" block on every successful GitHub release. It had been accidentally scoped to the communique-failure fallback in [#​9395](https://redirect.github.com/jdx/mise/pull/9395), so normal releases since v2026.4.22 lost it ([#​9580](https://redirect.github.com/jdx/mise/pull/9580)) by [@​jdx](https://redirect.github.com/jdx). #### Documentation - **(dev-tools)** Clarified that vfox metadata `depends` runs install hooks for the listed dependency tools ([#​9573](https://redirect.github.com/jdx/mise/pull/9573)) by [@​risu729](https://redirect.github.com/risu729). - **(plugins)** Removed outdated registry submission guidance from the plugins docs ([#​9577](https://redirect.github.com/jdx/mise/pull/9577)) by [@​risu729](https://redirect.github.com/risu729). #### Aqua Registry Updates New packages: - [`salesforce/reactive-grpc/protoc-gen-reactor-grpc`](https://redirect.github.com/salesforce/reactive-grpc) - [`spinframework/spin`](https://redirect.github.com/spinframework/spin) Updated: - [`pnpm/pnpm`](https://redirect.github.com/pnpm/pnpm) **Full Changelog**: #### 💚 Sponsor mise mise is built by [@​jdx](https://redirect.github.com/jdx) under [**en.dev**](https://en.dev) — an independent studio making developer tooling (mise, [aube](https://aube.en.dev/), and more). Development is funded by sponsors. If mise saves you or your team time, please consider sponsoring at [en.dev](https://en.dev). Individual and company sponsorships keep mise fast, free, and independent.
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - "before 4am on Monday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- .github/workflows/acceptance-tests.yml | 4 ++-- .github/workflows/build.yml | 4 ++-- .github/workflows/generate-protobuf.yml | 4 ++-- .github/workflows/github-pages.yaml | 4 ++-- .github/workflows/java-version-matrix-tests.yml | 4 ++-- .github/workflows/lint.yml | 4 ++-- .github/workflows/native-tests.yml | 4 ++-- .github/workflows/nightly-benchmarks.yml | 4 ++-- .github/workflows/release.yml | 4 ++-- .github/workflows/test-release-build.yml | 4 ++-- 10 files changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/workflows/acceptance-tests.yml b/.github/workflows/acceptance-tests.yml index 32f4b8a53..fb27df169 100644 --- a/.github/workflows/acceptance-tests.yml +++ b/.github/workflows/acceptance-tests.yml @@ -15,7 +15,7 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.0 - sha256: 7db5db7a36d28203eb8329140d98fb26b41f5efea32d762f69a1e4b369e1e1a8 + version: v2026.5.5 + sha256: 3aaab5c05a8a94a93b42b4f581779bbd5c44ddb251e7f3639fc671ec5c6aab8a - name: Run acceptance tests run: mise run acceptance-test diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 392fd0c2f..9b46ecfb6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,8 +14,8 @@ jobs: persist-credentials: false - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.0 - sha256: 7db5db7a36d28203eb8329140d98fb26b41f5efea32d762f69a1e4b369e1e1a8 + version: v2026.5.5 + sha256: 3aaab5c05a8a94a93b42b4f581779bbd5c44ddb251e7f3639fc671ec5c6aab8a - name: Cache local Maven repository uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: diff --git a/.github/workflows/generate-protobuf.yml b/.github/workflows/generate-protobuf.yml index d144d0296..d755149bf 100644 --- a/.github/workflows/generate-protobuf.yml +++ b/.github/workflows/generate-protobuf.yml @@ -21,8 +21,8 @@ jobs: persist-credentials: true - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.0 - sha256: 7db5db7a36d28203eb8329140d98fb26b41f5efea32d762f69a1e4b369e1e1a8 + version: v2026.5.5 + sha256: 3aaab5c05a8a94a93b42b4f581779bbd5c44ddb251e7f3639fc671ec5c6aab8a - name: Cache local Maven repository uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: diff --git a/.github/workflows/github-pages.yaml b/.github/workflows/github-pages.yaml index 255cd0bff..5646edabc 100644 --- a/.github/workflows/github-pages.yaml +++ b/.github/workflows/github-pages.yaml @@ -39,8 +39,8 @@ jobs: fetch-depth: 0 - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.0 - sha256: 7db5db7a36d28203eb8329140d98fb26b41f5efea32d762f69a1e4b369e1e1a8 + version: v2026.5.5 + sha256: 3aaab5c05a8a94a93b42b4f581779bbd5c44ddb251e7f3639fc671ec5c6aab8a cache: "false" - name: Setup Pages id: pages diff --git a/.github/workflows/java-version-matrix-tests.yml b/.github/workflows/java-version-matrix-tests.yml index 8fa4b7e3a..ce06e00d9 100644 --- a/.github/workflows/java-version-matrix-tests.yml +++ b/.github/workflows/java-version-matrix-tests.yml @@ -33,8 +33,8 @@ jobs: - name: Set up mise uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.0 - sha256: 7db5db7a36d28203eb8329140d98fb26b41f5efea32d762f69a1e4b369e1e1a8 + version: v2026.5.5 + sha256: 3aaab5c05a8a94a93b42b4f581779bbd5c44ddb251e7f3639fc671ec5c6aab8a - name: Cache local Maven repository uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 75a59f177..4fc35859e 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -23,8 +23,8 @@ jobs: - name: Setup mise uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.0 - sha256: 7db5db7a36d28203eb8329140d98fb26b41f5efea32d762f69a1e4b369e1e1a8 + version: v2026.5.5 + sha256: 3aaab5c05a8a94a93b42b4f581779bbd5c44ddb251e7f3639fc671ec5c6aab8a - name: Lint env: diff --git a/.github/workflows/native-tests.yml b/.github/workflows/native-tests.yml index 80caff392..d92e4f37e 100644 --- a/.github/workflows/native-tests.yml +++ b/.github/workflows/native-tests.yml @@ -15,8 +15,8 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.0 - sha256: 7db5db7a36d28203eb8329140d98fb26b41f5efea32d762f69a1e4b369e1e1a8 + version: v2026.5.5 + sha256: 3aaab5c05a8a94a93b42b4f581779bbd5c44ddb251e7f3639fc671ec5c6aab8a working_directory: .mise/envs/native - name: Run native tests working-directory: .mise/envs/native diff --git a/.github/workflows/nightly-benchmarks.yml b/.github/workflows/nightly-benchmarks.yml index e3a318b1c..6446ad9a1 100644 --- a/.github/workflows/nightly-benchmarks.yml +++ b/.github/workflows/nightly-benchmarks.yml @@ -36,8 +36,8 @@ jobs: - name: Setup mise uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.0 - sha256: 7db5db7a36d28203eb8329140d98fb26b41f5efea32d762f69a1e4b369e1e1a8 + version: v2026.5.5 + sha256: 3aaab5c05a8a94a93b42b4f581779bbd5c44ddb251e7f3639fc671ec5c6aab8a - name: Cache local Maven repository uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4a85f433b..63a7c91f2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -29,8 +29,8 @@ jobs: - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.0 - sha256: 7db5db7a36d28203eb8329140d98fb26b41f5efea32d762f69a1e4b369e1e1a8 + version: v2026.5.5 + sha256: 3aaab5c05a8a94a93b42b4f581779bbd5c44ddb251e7f3639fc671ec5c6aab8a cache: false - name: Build release version diff --git a/.github/workflows/test-release-build.yml b/.github/workflows/test-release-build.yml index c31fe4ce6..606e1d7a4 100644 --- a/.github/workflows/test-release-build.yml +++ b/.github/workflows/test-release-build.yml @@ -20,8 +20,8 @@ jobs: fetch-depth: 0 - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.0 - sha256: 7db5db7a36d28203eb8329140d98fb26b41f5efea32d762f69a1e4b369e1e1a8 + version: v2026.5.5 + sha256: 3aaab5c05a8a94a93b42b4f581779bbd5c44ddb251e7f3639fc671ec5c6aab8a - name: Cache local Maven repository uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: From 0edd77bfbdfc02012eede5bf25cbfc6a47dd1fba Mon Sep 17 00:00:00 2001 From: Aditya Vishe Date: Mon, 11 May 2026 16:06:35 +0530 Subject: [PATCH 05/74] docs: document PushGateway shading workaround (#2106) Documents #1411. Adds documentation for the PushGateway runtime issue seen with shaded jars when removes protobuf classes loaded via reflection. Changes: - add a troubleshooting note to the PushGateway docs - clarify the shading and dependency requirements for protobuf exposition --------- Signed-off-by: ADITYA-CODE-SOURCE Signed-off-by: Gregor Zeitlinger Co-authored-by: Gregor Zeitlinger Signed-off-by: Jay DeLuca --- docs/content/exporters/formats.md | 6 +++++ docs/content/exporters/pushgateway.md | 34 ++++++++++++++++++++++++++- 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/docs/content/exporters/formats.md b/docs/content/exporters/formats.md index 6360c66cd..b84222033 100644 --- a/docs/content/exporters/formats.md +++ b/docs/content/exporters/formats.md @@ -66,6 +66,12 @@ You can exclude the shaded protobuf classes including the `prometheus-metrics-exposition-formats-no-protobuf` module and excluding the `prometheus-metrics-exposition-formats` module in your build file. +If you are using the PushGateway in a shaded jar with `minimizeJar=true`, do not exclude the protobuf classes. +The PushGateway loads the protobuf writer implementation via reflection, so the full +`prometheus-metrics-exposition-formats` artifact must stay on the classpath and the relevant +packages must be preserved during shading. See the [PushGateway docs]({{< relref +"./pushgateway.md" >}}) for the recommended Maven Shade configuration. + For example, in Maven: ```xml diff --git a/docs/content/exporters/pushgateway.md b/docs/content/exporters/pushgateway.md index d3713769d..755525dd9 100644 --- a/docs/content/exporters/pushgateway.md +++ b/docs/content/exporters/pushgateway.md @@ -115,7 +115,8 @@ PushGateway pushGateway = PushGateway.builder() However, this requires that the JVM can validate the server certificate. If you want to skip certificate verification, you need to provide your own -[HttpConnectionFactory](/client_java/api/io/prometheus/metrics/exporter/pushgateway/HttpConnectionFactory.html). +`HttpConnectionFactory`. See the +[API docs](/client_java/api/io/prometheus/metrics/exporter/pushgateway/HttpConnectionFactory.html). The `PushGatewayTestApp` in `integration-tests/it-pushgateway` has a complete example of this. ## Configuration Properties @@ -123,3 +124,34 @@ The `PushGatewayTestApp` in `integration-tests/it-pushgateway` has a complete ex The [PushGateway](/client_java/api/io/prometheus/metrics/exporter/pushgateway/PushGateway.html) supports a couple of properties that can be configured at runtime. See [config]({{< relref "../config/config.md" >}}). + +## Troubleshooting shaded jars + +If you build a shaded jar with the Maven Shade Plugin and `minimizeJar=true`, the PushGateway may +fail at runtime with an error like this: + +```text +java.lang.RuntimeException: class +io.prometheus.metrics.expositionformats.PrometheusProtobufWriter is not available +``` + +This happens because the PushGateway loads the protobuf writer implementation via reflection. The +Maven Shade Plugin does not detect that reflective usage during minimization, so it may strip the +required classes from the final jar. + +To avoid this, keep the `prometheus-metrics-exposition-formats` artifact on the classpath and +preserve the protobuf-related packages in your shade configuration: + +```xml + + + io.prometheus:prometheus-metrics-exposition-formats + + io/prometheus/metrics/expositionformats/** + io/prometheus/metrics/shaded/** + + + +``` + +Alternatively, disable jar minimization for the shaded build. From 2887def46da5f902d4b89a555191aa2ae21c30db Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 11 May 2026 13:04:02 +0200 Subject: [PATCH 06/74] chore(deps): update grafana/k6 docker digest to 632ddbc (#2108) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Update | Change | |---|---|---| | grafana/k6 | digest | `50e5517` → `632ddbc` | --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- examples/example-exemplars-tail-sampling/docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/example-exemplars-tail-sampling/docker-compose.yaml b/examples/example-exemplars-tail-sampling/docker-compose.yaml index eb826b179..d6449ddaf 100644 --- a/examples/example-exemplars-tail-sampling/docker-compose.yaml +++ b/examples/example-exemplars-tail-sampling/docker-compose.yaml @@ -68,7 +68,7 @@ services: - ./config/grafana-dashboards.yaml:/etc/grafana/provisioning/dashboards/grafana-dashboards.yaml - ./config/grafana-example-dashboard.json:/etc/grafana/example-dashboard.json k6: - image: grafana/k6@sha256:50e5517e00b514be229c7c50508249d84095c92f52aabb22934c990169501c83 + image: grafana/k6@sha256:632ddbc81a4a9fdc9e597da91ab1d8fcf1916dd988b43b4a4559d2f8d8e73d47 network_mode: host volumes: - ./config/k6-script.js:/k6-script.js From a9ca2da3857cac2db9e18fdc819b706f488b8aab Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Tue, 12 May 2026 07:31:35 +0200 Subject: [PATCH 07/74] chore: upgrade flint to v0.22.2 (#2109) ## What changed - upgraded the Flint runtime in `mise.toml` to `aqua:grafana/flint@0.22.2` - migrated obsolete tool declarations that Flint now rewrites automatically - replaced `codespell` with `typos` - refreshed `.github/renovate-tracked-deps.json` - added targeted regex-based `_typos.toml` ignores for intentional tokens and fixture content ## Why This validates the Flint `v0.22.2` rollout on another consumer repo using the same migration policy: - no source-content rewrites to satisfy `typos` - use targeted regex ignores instead of broad word allowlists where practical - leave Renovate preset bumps to Renovate ## Validation - `mise run lint` ## Notes - `mise run test` failed in this checkout, but the failure appears unrelated to this Flint-only config change. The failing tests error on Java `Map.of(...)` compilation in existing test sources under `prometheus-metrics-config`. Signed-off-by: Jay DeLuca --- .codespellrc | 6 - .github/config/_typos.toml | 10 + .github/renovate-tracked-deps.json | 286 +++++++++++++++-------------- mise.toml | 10 +- 4 files changed, 162 insertions(+), 150 deletions(-) delete mode 100644 .codespellrc create mode 100644 .github/config/_typos.toml diff --git a/.codespellrc b/.codespellrc deleted file mode 100644 index a1634fb0c..000000000 --- a/.codespellrc +++ /dev/null @@ -1,6 +0,0 @@ -[codespell] -# nd: legitimate variable name in quantile algorithms -# atmost: AssertJ atMost() matcher -# re-use: hyphenated form used in comments -# errorprone: Google ErrorProne tool name -ignore-words-list = nd,atmost,re-use,errorprone diff --git a/.github/config/_typos.toml b/.github/config/_typos.toml new file mode 100644 index 000000000..291218241 --- /dev/null +++ b/.github/config/_typos.toml @@ -0,0 +1,10 @@ +[default] +extend-ignore-re = [ + 're-use', + '\.atMost\(', + 'errorprone', + 'com\.google\.errorprone', + '\bNormalDistribution nd\b', + '\bnd\.inverseCumulativeProbability\(', + 'BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MCAXDTI0MDUxMDE0MzY1NloYDzIxMjQw', +] diff --git a/.github/renovate-tracked-deps.json b/.github/renovate-tracked-deps.json index 2dde2330f..adfef7f3e 100644 --- a/.github/renovate-tracked-deps.json +++ b/.github/renovate-tracked-deps.json @@ -1,142 +1,150 @@ { - ".github/renovate.json5": { - "renovate-config-presets": [ - "grafana/flint" - ] - }, - ".github/workflows/acceptance-tests.yml": { - "regex": [ - "mise" - ] - }, - ".github/workflows/build.yml": { - "regex": [ - "mise" - ] - }, - ".github/workflows/generate-protobuf.yml": { - "regex": [ - "mise" - ] - }, - ".github/workflows/github-pages.yaml": { - "regex": [ - "mise" - ] - }, - ".github/workflows/java-version-matrix-tests.yml": { - "regex": [ - "mise" - ] - }, - ".github/workflows/lint.yml": { - "regex": [ - "mise" - ] - }, - ".github/workflows/native-tests.yml": { - "regex": [ - "mise" - ] - }, - ".github/workflows/nightly-benchmarks.yml": { - "regex": [ - "mise" - ] - }, - ".github/workflows/release.yml": { - "regex": [ - "mise" - ] - }, - ".github/workflows/test-release-build.yml": { - "regex": [ - "mise" - ] - }, - ".mise/envs/native/mise.toml": { - "mise": [ - "java" - ] - }, - ".mvn/wrapper/maven-wrapper.properties": { - "maven-wrapper": [ - "maven" - ] - }, - "examples/example-custom-buckets/docker-compose.yaml": { - "docker-compose": [ - "eclipse-temurin", - "grafana/grafana", - "prom/prometheus" - ] - }, - "examples/example-exemplars-tail-sampling/docker-compose.yaml": { - "docker-compose": [ - "grafana/grafana", - "grafana/k6", - "grafana/tempo", - "opentelemetry-java-agent", - "otel/opentelemetry-collector-contrib", - "prom/prometheus" - ] - }, - "examples/example-exporter-opentelemetry/docker-compose.yaml": { - "docker-compose": [ - "openjdk", - "otel/opentelemetry-collector-contrib", - "prom/prometheus" - ] - }, - "examples/example-exporter-opentelemetry/oats-tests/agent/Dockerfile": { - "dockerfile": [ - "eclipse-temurin" - ] - }, - "examples/example-exporter-opentelemetry/oats-tests/http/Dockerfile": { - "dockerfile": [ - "eclipse-temurin" - ] - }, - "examples/example-native-histogram/docker-compose.yaml": { - "docker-compose": [ - "eclipse-temurin", - "grafana/grafana", - "prom/prometheus" - ] - }, - "mise.toml": { - "mise": [ - "actionlint", - "aqua:owenlamont/ryl", - "biome", - "editorconfig-checker", - "github:google/google-java-format", - "github:grafana/flint", - "github:jonwiggins/xmloxide", - "github:koalaman/shellcheck", - "go:github.com/grafana/oats", - "hugo", - "java", - "lychee", - "node", - "npm:renovate", - "pipx:codespell", - "protoc", - "ruff", - "rumdl", - "shfmt", - "taplo" - ] - }, - "mvnw": { - "maven-wrapper": [ - "maven-wrapper" - ] - }, - "mvnw.cmd": { - "maven-wrapper": [ - "maven-wrapper" - ] + "meta": { + "protoc": { + "packageName": "protocolbuffers/protobuf", + "datasource": "github-releases" + } + }, + "files": { + ".github/renovate.json5": { + "renovate-config-presets": [ + "grafana/flint" + ] + }, + ".github/workflows/acceptance-tests.yml": { + "regex": [ + "mise" + ] + }, + ".github/workflows/build.yml": { + "regex": [ + "mise" + ] + }, + ".github/workflows/generate-protobuf.yml": { + "regex": [ + "mise" + ] + }, + ".github/workflows/github-pages.yaml": { + "regex": [ + "mise" + ] + }, + ".github/workflows/java-version-matrix-tests.yml": { + "regex": [ + "mise" + ] + }, + ".github/workflows/lint.yml": { + "regex": [ + "mise" + ] + }, + ".github/workflows/native-tests.yml": { + "regex": [ + "mise" + ] + }, + ".github/workflows/nightly-benchmarks.yml": { + "regex": [ + "mise" + ] + }, + ".github/workflows/release.yml": { + "regex": [ + "mise" + ] + }, + ".github/workflows/test-release-build.yml": { + "regex": [ + "mise" + ] + }, + ".mise/envs/native/mise.toml": { + "mise": [ + "java" + ] + }, + ".mvn/wrapper/maven-wrapper.properties": { + "maven-wrapper": [ + "maven" + ] + }, + "examples/example-custom-buckets/docker-compose.yaml": { + "docker-compose": [ + "eclipse-temurin", + "grafana/grafana", + "prom/prometheus" + ] + }, + "examples/example-exemplars-tail-sampling/docker-compose.yaml": { + "docker-compose": [ + "grafana/grafana", + "grafana/k6", + "grafana/tempo", + "opentelemetry-java-agent", + "otel/opentelemetry-collector-contrib", + "prom/prometheus" + ] + }, + "examples/example-exporter-opentelemetry/docker-compose.yaml": { + "docker-compose": [ + "openjdk", + "otel/opentelemetry-collector-contrib", + "prom/prometheus" + ] + }, + "examples/example-exporter-opentelemetry/oats-tests/agent/Dockerfile": { + "dockerfile": [ + "eclipse-temurin" + ] + }, + "examples/example-exporter-opentelemetry/oats-tests/http/Dockerfile": { + "dockerfile": [ + "eclipse-temurin" + ] + }, + "examples/example-native-histogram/docker-compose.yaml": { + "docker-compose": [ + "eclipse-temurin", + "grafana/grafana", + "prom/prometheus" + ] + }, + "mise.toml": { + "mise": [ + "actionlint", + "aqua:grafana/flint", + "aqua:jonwiggins/xmloxide", + "aqua:owenlamont/ryl", + "biome", + "editorconfig-checker", + "go:github.com/grafana/oats", + "google-java-format", + "hugo", + "java", + "lychee", + "node", + "npm:renovate", + "protoc", + "ruff", + "rumdl", + "shellcheck", + "shfmt", + "taplo", + "typos" + ] + }, + "mvnw": { + "maven-wrapper": [ + "maven-wrapper" + ] + }, + "mvnw.cmd": { + "maven-wrapper": [ + "maven-wrapper" + ] + } } } diff --git a/mise.toml b/mise.toml index c3b10c4ab..f46c0143c 100644 --- a/mise.toml +++ b/mise.toml @@ -7,20 +7,20 @@ protoc = "34.1" # Linters actionlint = "1.7.12" +"aqua:grafana/flint" = "0.22.2" +"aqua:jonwiggins/xmloxide" = "v0.4.2" "aqua:owenlamont/ryl" = "0.8.0" biome = "2.4.12" editorconfig-checker = "v3.6.1" -"github:google/google-java-format" = "1.35.0" -"github:grafana/flint" = "0.21.0" -"github:jonwiggins/xmloxide" = "v0.4.2" -"github:koalaman/shellcheck" = "v0.11.0" +google-java-format = "1.35.0" lychee = "0.24.2" "npm:renovate" = "43.144.0" -"pipx:codespell" = "2.4.2" ruff = "0.15.12" rumdl = "0.1.84" +shellcheck = "v0.11.0" shfmt = "3.13.1" taplo = "0.10.0" +typos = "1.46.1" [env] FLINT_CONFIG_DIR = ".github/config" From b5b86ff3237d06f78be8573023f9308276123804 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Wed, 13 May 2026 08:18:35 +0200 Subject: [PATCH 08/74] fix: restore legacy suffix compatibility (#2100) Fixes https://github.com/prometheus/client_java/issues/2095 ## Summary Restores OM1/protobuf compatibility for dotted gauge names after `feat: move suffix handling to scrape time (#1955)`. The bug was that non-OpenMetrics exposition changed visible output for gauge names that merely ended in suffix-like dotted strings such as `.created` and `.total`. Examples: - `Gauge("test3.created")` regressed from `test3` to `test3_created` - `Gauge("test6.total")` regressed from `test6` to `test6_total` This PR restores the legacy OM1/protobuf behavior while keeping OpenMetrics on literal-name handling. This is the extracted prom-side fix from #2093. The Micrometer workflow and related downstream testing were split into a stacked follow-up PR so this can merge independently. ## What changed - Fix OM1 text exposition for dotted gauge names ending in `.created` and `.total` - Fix protobuf exposition for the same compatibility cases - Add regression tests that cover the restored OM1/protobuf behavior and the preserved OpenMetrics behavior - Clean up protobuf family-name resolution so legacy gauge handling lives in one path instead of pre-rewriting metadata objects ## Follow-up stacked PR - Micrometer workflow/task split: https://github.com/zeitlinger/client_java/pull/1 ## Related - Replaces: https://github.com/prometheus/client_java/pull/2093 - Issue: https://github.com/prometheus/client_java/issues/2095 ## Testing - `mise run build` - `mise run lint` - `./mvnw test -pl prometheus-metrics-exposition-textformats,prometheus-metrics-exposition-formats -Dtest=ExpositionFormatsTest,ProtobufExpositionFormatsTest,DuplicateNamesProtobufTest -Dcoverage.skip=true -Dcheckstyle.skip=true` Signed-off-by: Jay DeLuca --- .../PrometheusProtobufWriterImpl.java | 64 +++++++++++--- .../DuplicateNamesProtobufTest.java | 47 ++++++++++ .../PrometheusTextFormatWriter.java | 12 +-- .../ExpositionFormatsTest.java | 87 ++++++++++++++++++- .../model/snapshots/SnapshotEscaper.java | 20 +++++ 5 files changed, 211 insertions(+), 19 deletions(-) diff --git a/prometheus-metrics-exposition-formats/src/main/java/io/prometheus/metrics/expositionformats/internal/PrometheusProtobufWriterImpl.java b/prometheus-metrics-exposition-formats/src/main/java/io/prometheus/metrics/expositionformats/internal/PrometheusProtobufWriterImpl.java index 5e58275ca..9c3f74943 100644 --- a/prometheus-metrics-exposition-formats/src/main/java/io/prometheus/metrics/expositionformats/internal/PrometheusProtobufWriterImpl.java +++ b/prometheus-metrics-exposition-formats/src/main/java/io/prometheus/metrics/expositionformats/internal/PrometheusProtobufWriterImpl.java @@ -50,7 +50,10 @@ public String toDebugString(MetricSnapshots metricSnapshots, EscapingScheme esca for (MetricSnapshot s : merged) { MetricSnapshot snapshot = SnapshotEscaper.escapeMetricSnapshot(s, escapingScheme); if (!snapshot.getDataPoints().isEmpty()) { - stringBuilder.append(TextFormat.printer().printToString(convert(snapshot, escapingScheme))); + stringBuilder.append( + TextFormat.printer() + .printToString( + convert(snapshot, s.getMetadata().getOriginalName(), escapingScheme))); } } return stringBuilder.toString(); @@ -64,12 +67,17 @@ public void write( for (MetricSnapshot s : merged) { MetricSnapshot snapshot = SnapshotEscaper.escapeMetricSnapshot(s, escapingScheme); if (!snapshot.getDataPoints().isEmpty()) { - convert(snapshot, escapingScheme).writeDelimitedTo(out); + convert(snapshot, s.getMetadata().getOriginalName(), escapingScheme).writeDelimitedTo(out); } } } public Metrics.MetricFamily convert(MetricSnapshot snapshot, EscapingScheme scheme) { + return convert(snapshot, snapshot.getMetadata().getOriginalName(), scheme); + } + + private Metrics.MetricFamily convert( + MetricSnapshot snapshot, String rawOriginalName, EscapingScheme scheme) { Metrics.MetricFamily.Builder builder = Metrics.MetricFamily.newBuilder(); if (snapshot instanceof CounterSnapshot) { for (CounterDataPointSnapshot data : ((CounterSnapshot) snapshot).getDataPoints()) { @@ -82,7 +90,13 @@ public Metrics.MetricFamily convert(MetricSnapshot snapshot, EscapingScheme sche builder.addMetric(convert(data, scheme)); } setMetadataUnlessEmpty( - builder, snapshot.getMetadata(), null, Metrics.MetricType.GAUGE, scheme); + builder, + snapshot.getMetadata(), + rawOriginalName, + null, + Metrics.MetricType.GAUGE, + scheme, + true); } else if (snapshot instanceof HistogramSnapshot) { HistogramSnapshot histogram = (HistogramSnapshot) snapshot; for (HistogramSnapshot.HistogramDataPointSnapshot data : histogram.getDataPoints()) { @@ -290,25 +304,49 @@ private void setMetadataUnlessEmpty( @Nullable String nameSuffix, Metrics.MetricType type, EscapingScheme scheme) { + setMetadataUnlessEmpty( + builder, metadata, metadata.getOriginalName(), nameSuffix, type, scheme, false); + } + + private void setMetadataUnlessEmpty( + Metrics.MetricFamily.Builder builder, + MetricMetadata metadata, + String rawOriginalName, + @Nullable String nameSuffix, + Metrics.MetricType type, + EscapingScheme scheme, + boolean normalizeLegacyGaugeName) { if (builder.getMetricCount() == 0) { return; } - if (nameSuffix == null) { - builder.setName(SnapshotEscaper.getMetadataName(metadata, scheme)); - } else { - String expositionBaseName = SnapshotEscaper.getExpositionBaseMetadataName(metadata, scheme); - if (expositionBaseName.endsWith(nameSuffix)) { - builder.setName(expositionBaseName); - } else { - builder.setName(SnapshotEscaper.getMetadataName(metadata, scheme) + nameSuffix); - } - } + builder.setName( + resolveMetricFamilyName( + metadata, rawOriginalName, nameSuffix, scheme, normalizeLegacyGaugeName)); if (metadata.getHelp() != null) { builder.setHelp(metadata.getHelp()); } builder.setType(type); } + private String resolveMetricFamilyName( + MetricMetadata metadata, + String rawOriginalName, + @Nullable String nameSuffix, + EscapingScheme scheme, + boolean normalizeLegacyGaugeName) { + if (normalizeLegacyGaugeName) { + return SnapshotEscaper.getLegacyGaugeName(metadata, rawOriginalName, scheme); + } + if (nameSuffix == null) { + return SnapshotEscaper.getMetadataName(metadata, scheme); + } + String expositionBaseName = SnapshotEscaper.getExpositionBaseMetadataName(metadata, scheme); + if (expositionBaseName.endsWith(nameSuffix)) { + return expositionBaseName; + } + return SnapshotEscaper.getMetadataName(metadata, scheme) + nameSuffix; + } + private long getNativeCount(HistogramSnapshot.HistogramDataPointSnapshot data) { if (data.hasCount()) { return data.getCount(); diff --git a/prometheus-metrics-exposition-formats/src/test/java/io/prometheus/metrics/expositionformats/DuplicateNamesProtobufTest.java b/prometheus-metrics-exposition-formats/src/test/java/io/prometheus/metrics/expositionformats/DuplicateNamesProtobufTest.java index c5fc7bf34..553d84af5 100644 --- a/prometheus-metrics-exposition-formats/src/test/java/io/prometheus/metrics/expositionformats/DuplicateNamesProtobufTest.java +++ b/prometheus-metrics-exposition-formats/src/test/java/io/prometheus/metrics/expositionformats/DuplicateNamesProtobufTest.java @@ -239,6 +239,53 @@ void testDifferentMetrics_producesSeparateMetricFamilies() throws IOException { assertThat(gaugeFamily.getMetric(0).getGauge().getValue()).isEqualTo(50.0); } + @Test + void testLegacyGaugeNameWithAlternateEscapingSchemes_usesBaseName() throws IOException { + MetricSnapshots snapshots = + MetricSnapshots.of( + GaugeSnapshot.builder() + .name("legacy.name.total") + .dataPoint(GaugeSnapshot.GaugeDataPointSnapshot.builder().value(7).build()) + .build()); + + assertThat(getSingleMetricFamilyName(snapshots, EscapingScheme.DOTS_ESCAPING)) + .isEqualTo("legacy_dot_name"); + assertThat(getSingleMetricFamilyName(snapshots, EscapingScheme.VALUE_ENCODING_ESCAPING)) + .isEqualTo("U__legacy_2e_name"); + } + + @Test + void testLegacyGaugeNameWithDotTotal_usesBaseName() throws IOException { + MetricSnapshots snapshots = + MetricSnapshots.of( + GaugeSnapshot.builder() + .name("legacy.total") + .dataPoint(GaugeSnapshot.GaugeDataPointSnapshot.builder().value(7).build()) + .build()); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + PrometheusProtobufWriterImpl writer = new PrometheusProtobufWriterImpl(); + writer.write(out, snapshots, EscapingScheme.UNDERSCORE_ESCAPING); + + List metricFamilies = parseProtobufOutput(out); + + assertThat(metricFamilies).hasSize(1); + Metrics.MetricFamily family = metricFamilies.get(0); + assertThat(family.getName()).isEqualTo("legacy"); + assertThat(family.getType()).isEqualTo(Metrics.MetricType.GAUGE); + assertThat(family.getMetricCount()).isEqualTo(1); + assertThat(family.getMetric(0).getGauge().getValue()).isEqualTo(7.0); + } + + private static String getSingleMetricFamilyName( + MetricSnapshots snapshots, EscapingScheme escapingScheme) throws IOException { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + PrometheusProtobufWriterImpl writer = new PrometheusProtobufWriterImpl(); + writer.write(out, snapshots, escapingScheme); + List metricFamilies = parseProtobufOutput(out); + assertThat(metricFamilies).hasSize(1); + return metricFamilies.get(0).getName(); + } + private static MetricSnapshots getMetricSnapshots() { PrometheusRegistry registry = new PrometheusRegistry(); diff --git a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/PrometheusTextFormatWriter.java b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/PrometheusTextFormatWriter.java index 29894b103..8d9643378 100644 --- a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/PrometheusTextFormatWriter.java +++ b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/PrometheusTextFormatWriter.java @@ -8,6 +8,7 @@ import static io.prometheus.metrics.expositionformats.TextFormatUtil.writePrometheusTimestamp; import static io.prometheus.metrics.model.snapshots.SnapshotEscaper.escapeMetricSnapshot; import static io.prometheus.metrics.model.snapshots.SnapshotEscaper.getExpositionBaseMetadataName; +import static io.prometheus.metrics.model.snapshots.SnapshotEscaper.getLegacyGaugeName; import static io.prometheus.metrics.model.snapshots.SnapshotEscaper.getMetadataName; import static io.prometheus.metrics.model.snapshots.SnapshotEscaper.getSnapshotLabelName; @@ -123,7 +124,7 @@ public void write(OutputStream out, MetricSnapshots metricSnapshots, EscapingSch if (snapshot instanceof CounterSnapshot) { writeCounter(writer, (CounterSnapshot) snapshot, scheme); } else if (snapshot instanceof GaugeSnapshot) { - writeGauge(writer, (GaugeSnapshot) snapshot, scheme); + writeGauge(writer, (GaugeSnapshot) snapshot, s.getMetadata().getOriginalName(), scheme); } else if (snapshot instanceof HistogramSnapshot) { writeHistogram(writer, (HistogramSnapshot) snapshot, scheme); } else if (snapshot instanceof SummarySnapshot) { @@ -189,13 +190,14 @@ private void writeCounter(Writer writer, CounterSnapshot snapshot, EscapingSchem } } - private void writeGauge(Writer writer, GaugeSnapshot snapshot, EscapingScheme scheme) + private void writeGauge( + Writer writer, GaugeSnapshot snapshot, String rawOriginalName, EscapingScheme scheme) throws IOException { MetricMetadata metadata = snapshot.getMetadata(); - writeMetadata(writer, null, "gauge", metadata, scheme); - String name = getMetadataName(metadata, scheme); + String gaugeName = getLegacyGaugeName(metadata, rawOriginalName, scheme); + writeMetadataWithFullName(writer, gaugeName, "gauge", metadata); for (GaugeSnapshot.GaugeDataPointSnapshot data : snapshot.getDataPoints()) { - writeNameAndLabels(writer, name, null, data.getLabels(), scheme); + writeNameAndLabels(writer, gaugeName, null, data.getLabels(), scheme); writeDouble(writer, data.getValue()); writeScrapeTimestampAndNewline(writer, data); } diff --git a/prometheus-metrics-exposition-textformats/src/test/java/io/prometheus/metrics/expositionformats/ExpositionFormatsTest.java b/prometheus-metrics-exposition-textformats/src/test/java/io/prometheus/metrics/expositionformats/ExpositionFormatsTest.java index 454b3ef7b..c875b94b0 100644 --- a/prometheus-metrics-exposition-textformats/src/test/java/io/prometheus/metrics/expositionformats/ExpositionFormatsTest.java +++ b/prometheus-metrics-exposition-textformats/src/test/java/io/prometheus/metrics/expositionformats/ExpositionFormatsTest.java @@ -666,6 +666,86 @@ void testGaugeWithDots() throws IOException { assertPrometheusProtobuf(prometheusProtobuf, gauge); } + @Test + void testGaugeReservedSuffixCompatibilityWithAlternateEscapingSchemes() throws IOException { + GaugeSnapshot totalGauge = + GaugeSnapshot.builder() + .name("legacy.name.total") + .dataPoint(GaugeDataPointSnapshot.builder().value(6).build()) + .build(); + assertPrometheusText( + """ + # TYPE legacy_dot_name gauge + legacy_dot_name 6.0 + """, + totalGauge, + EscapingScheme.DOTS_ESCAPING); + assertPrometheusText( + """ + # TYPE U__legacy_2e_name gauge + U__legacy_2e_name 6.0 + """, + totalGauge, + EscapingScheme.VALUE_ENCODING_ESCAPING); + } + + @Test + void testGaugeReservedSuffixCompatibilityOutsideOpenMetrics() throws IOException { + GaugeSnapshot createdGauge = + GaugeSnapshot.builder() + .name("test3.created") + .dataPoint(GaugeDataPointSnapshot.builder().value(3).build()) + .build(); + assertOpenMetricsText( + """ + # TYPE U__test3_2e_created gauge + U__test3_2e_created 3.0 + # EOF + """, + createdGauge); + assertPrometheusText( + """ + # TYPE test3 gauge + test3 3.0 + """, + createdGauge); + assertPrometheusTextWithoutCreated( + """ + # TYPE test3 gauge + test3 3.0 + """, + createdGauge); + assertPrometheusProtobuf( + "name: \"test3\" type: GAUGE metric { gauge { value: 3.0 } }", createdGauge); + + GaugeSnapshot totalGauge = + GaugeSnapshot.builder() + .name("test6.total") + .dataPoint(GaugeDataPointSnapshot.builder().value(6).build()) + .build(); + assertOpenMetricsText( + """ + # TYPE U__test6_2e_total gauge + U__test6_2e_total 6.0 + # EOF + """, + totalGauge); + assertPrometheusText( + """ + # TYPE test6 gauge + test6 6.0 + """, + totalGauge); + assertPrometheusTextWithoutCreated( + """ + # TYPE test6 gauge + test6 6.0 + """, + totalGauge); + assertPrometheusProtobuf( + "name: \"test6\" type: GAUGE metric { gauge { value: 6.0 } }", totalGauge); + } + @Test void testGaugeUTF8() throws IOException { String prometheusText = @@ -3088,9 +3168,14 @@ private void assertOpenMetricsTextWithoutCreated(String expected, MetricSnapshot } private void assertPrometheusText(String expected, MetricSnapshot snapshot) throws IOException { + assertPrometheusText(expected, snapshot, EscapingScheme.UNDERSCORE_ESCAPING); + } + + private void assertPrometheusText( + String expected, MetricSnapshot snapshot, EscapingScheme escapingScheme) throws IOException { ByteArrayOutputStream out = new ByteArrayOutputStream(); getPrometheusWriter(PrometheusTextFormatWriter.builder().setIncludeCreatedTimestamps(true)) - .write(out, MetricSnapshots.of(snapshot), EscapingScheme.UNDERSCORE_ESCAPING); + .write(out, MetricSnapshots.of(snapshot), escapingScheme); assertThat(out).hasToString(expected); } diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/SnapshotEscaper.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/SnapshotEscaper.java index c3336af17..b8c887f01 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/SnapshotEscaper.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/SnapshotEscaper.java @@ -113,6 +113,26 @@ public static String getOriginalMetadataName(MetricMetadata metadata, EscapingSc } } + public static String getLegacyGaugeName( + MetricMetadata metadata, String rawOriginalName, EscapingScheme scheme) { + String legacyGaugeBaseName = stripLegacyGaugeSuffix(rawOriginalName); + if (legacyGaugeBaseName != null) { + return PrometheusNaming.escapeName(legacyGaugeBaseName, scheme); + } + return getMetadataName(metadata, scheme); + } + + @Nullable + private static String stripLegacyGaugeSuffix(String rawOriginalName) { + if (rawOriginalName.endsWith(".created")) { + return rawOriginalName.substring(0, rawOriginalName.length() - ".created".length()); + } + if (rawOriginalName.endsWith(".total")) { + return rawOriginalName.substring(0, rawOriginalName.length() - ".total".length()); + } + return null; + } + public static Labels escapeLabels(Labels labels, EscapingScheme scheme) { Labels.Builder outLabelsBuilder = Labels.builder(); From 5d052c8849e13e8bd78d8fbfb823e5d509fe92f3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 13 May 2026 10:49:44 +0200 Subject: [PATCH 09/74] chore(deps): update otel/opentelemetry-collector-contrib docker tag to v0.152.0 (#2111) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Update | Change | |---|---|---| | [otel/opentelemetry-collector-contrib](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases) | minor | `0.151.0` → `0.152.0` | --- ### Release Notes
open-telemetry/opentelemetry-collector-releases (otel/opentelemetry-collector-contrib) ### [`v0.152.0`](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/blob/HEAD/CHANGELOG.md#v01520) [Compare Source](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/compare/v0.151.0...v0.152.0) ##### 🚀 New components 🚀 - `drainprocessor`: Add drain processor to contrib distribution. ([#​47235](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/issues/47235)) - `drainprocessor`: Add drain processor to k8s distribution. ([#​47235](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/issues/47235))
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- examples/example-exemplars-tail-sampling/docker-compose.yaml | 2 +- examples/example-exporter-opentelemetry/docker-compose.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/example-exemplars-tail-sampling/docker-compose.yaml b/examples/example-exemplars-tail-sampling/docker-compose.yaml index d6449ddaf..901103ab6 100644 --- a/examples/example-exemplars-tail-sampling/docker-compose.yaml +++ b/examples/example-exemplars-tail-sampling/docker-compose.yaml @@ -36,7 +36,7 @@ services: - -jar - /example-greeting-service.jar collector: - image: otel/opentelemetry-collector-contrib:0.151.0@sha256:d57bfe8eee2378f31cb1193239fbcac521d54a5a071fca2bfc106916a32b892d + image: otel/opentelemetry-collector-contrib:0.152.0@sha256:f41d7995565df3733b7568702073a9c490792f9c6ac60684fe6a4da21a313f8d network_mode: host volumes: - ./config/otelcol-config.yaml:/config.yaml diff --git a/examples/example-exporter-opentelemetry/docker-compose.yaml b/examples/example-exporter-opentelemetry/docker-compose.yaml index af8f78415..1803d0426 100644 --- a/examples/example-exporter-opentelemetry/docker-compose.yaml +++ b/examples/example-exporter-opentelemetry/docker-compose.yaml @@ -13,7 +13,7 @@ services: #- -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005 - /example-exporter-opentelemetry.jar collector: - image: otel/opentelemetry-collector-contrib:0.151.0@sha256:d57bfe8eee2378f31cb1193239fbcac521d54a5a071fca2bfc106916a32b892d + image: otel/opentelemetry-collector-contrib:0.152.0@sha256:f41d7995565df3733b7568702073a9c490792f9c6ac60684fe6a4da21a313f8d network_mode: host volumes: - ./config/otelcol-config.yaml:/config.yaml From 1142a9915eba78565767dc4fba9f2331a728593c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 13 May 2026 10:50:11 +0200 Subject: [PATCH 10/74] chore(deps): update eclipse-temurin:25.0.3_9-jre docker digest to 04262e8 (#2113) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | eclipse-temurin | final | digest | `9c9e7c4` → `04262e8` | | eclipse-temurin | | digest | `9c9e7c4` → `04262e8` | --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- examples/example-custom-buckets/docker-compose.yaml | 2 +- .../example-exporter-opentelemetry/oats-tests/agent/Dockerfile | 2 +- .../example-exporter-opentelemetry/oats-tests/http/Dockerfile | 2 +- examples/example-native-histogram/docker-compose.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/example-custom-buckets/docker-compose.yaml b/examples/example-custom-buckets/docker-compose.yaml index 6feaa3414..a0f984c13 100644 --- a/examples/example-custom-buckets/docker-compose.yaml +++ b/examples/example-custom-buckets/docker-compose.yaml @@ -1,7 +1,7 @@ version: "3" services: example-application: - image: eclipse-temurin:25.0.3_9-jre@sha256:9c9e7c4f5f3840e5254be62ea9a7de56b2d0af23864032a8a3654bf63c31cd5b + image: eclipse-temurin:25.0.3_9-jre@sha256:04262e8782d6b034ee5d7c1c5d4e8938fcf2063a76b4bfcd84e5d994d09c27bc network_mode: host volumes: - ./target/example-custom-buckets.jar:/example-custom-buckets.jar diff --git a/examples/example-exporter-opentelemetry/oats-tests/agent/Dockerfile b/examples/example-exporter-opentelemetry/oats-tests/agent/Dockerfile index 70092afab..36445a926 100644 --- a/examples/example-exporter-opentelemetry/oats-tests/agent/Dockerfile +++ b/examples/example-exporter-opentelemetry/oats-tests/agent/Dockerfile @@ -1,4 +1,4 @@ -FROM eclipse-temurin:25.0.3_9-jre@sha256:9c9e7c4f5f3840e5254be62ea9a7de56b2d0af23864032a8a3654bf63c31cd5b +FROM eclipse-temurin:25.0.3_9-jre@sha256:04262e8782d6b034ee5d7c1c5d4e8938fcf2063a76b4bfcd84e5d994d09c27bc COPY target/example-exporter-opentelemetry.jar ./app.jar # check that the resource attributes from the agent are used, epsecially the service.instance.id should be the same diff --git a/examples/example-exporter-opentelemetry/oats-tests/http/Dockerfile b/examples/example-exporter-opentelemetry/oats-tests/http/Dockerfile index 511a0689f..79944f564 100644 --- a/examples/example-exporter-opentelemetry/oats-tests/http/Dockerfile +++ b/examples/example-exporter-opentelemetry/oats-tests/http/Dockerfile @@ -1,4 +1,4 @@ -FROM eclipse-temurin:25.0.3_9-jre@sha256:9c9e7c4f5f3840e5254be62ea9a7de56b2d0af23864032a8a3654bf63c31cd5b +FROM eclipse-temurin:25.0.3_9-jre@sha256:04262e8782d6b034ee5d7c1c5d4e8938fcf2063a76b4bfcd84e5d994d09c27bc COPY target/example-exporter-opentelemetry.jar ./app.jar diff --git a/examples/example-native-histogram/docker-compose.yaml b/examples/example-native-histogram/docker-compose.yaml index d45b90508..4ddc509a8 100644 --- a/examples/example-native-histogram/docker-compose.yaml +++ b/examples/example-native-histogram/docker-compose.yaml @@ -1,7 +1,7 @@ version: "3" services: example-application: - image: eclipse-temurin:25.0.3_9-jre@sha256:9c9e7c4f5f3840e5254be62ea9a7de56b2d0af23864032a8a3654bf63c31cd5b + image: eclipse-temurin:25.0.3_9-jre@sha256:04262e8782d6b034ee5d7c1c5d4e8938fcf2063a76b4bfcd84e5d994d09c27bc network_mode: host volumes: - ./target/example-native-histogram.jar:/example-native-histogram.jar From 83ae5d2dca54be88adcaf11620eaaa7c93e1d3a9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 13 May 2026 10:50:19 +0200 Subject: [PATCH 11/74] chore(deps): update dependency org.slf4j:slf4j-simple to v2.0.18 (#2112) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [org.slf4j:slf4j-simple](http://www.slf4j.org) ([source](https://redirect.github.com/qos-ch/slf4j), [changelog](https://www.slf4j.org/news.html)) | `2.0.17` → `2.0.18` | ![age](https://developer.mend.io/api/mc/badges/age/maven/org.slf4j:slf4j-simple/2.0.18?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.slf4j:slf4j-simple/2.0.17/2.0.18?slim=true) | --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e23229181..38c9e1bde 100644 --- a/pom.xml +++ b/pom.xml @@ -101,7 +101,7 @@ org.slf4j slf4j-simple - 2.0.17 + 2.0.18 test From 7a8bf8d1a73525d031320cbd0766784dc579c945 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 11:27:26 +0200 Subject: [PATCH 12/74] chore(deps): update dependency grafana/flint to v0.22.2 (#2120) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Update | Change | |---|---|---| | [grafana/flint](https://redirect.github.com/grafana/flint) | minor | `v0.21.0` → `v0.22.2` | --- ### Release Notes
grafana/flint (grafana/flint) ### [`v0.22.2`](https://redirect.github.com/grafana/flint/releases/tag/v0.22.2) [Compare Source](https://redirect.github.com/grafana/flint/compare/v0.22.1...v0.22.2) ##### Fixed - *(release)* dispatch renamed release workflow ([#​291](https://redirect.github.com/grafana/flint/pull/291)) ### [`v0.22.1`](https://redirect.github.com/grafana/flint/compare/v0.22.0...v0.22.1) [Compare Source](https://redirect.github.com/grafana/flint/compare/v0.22.0...v0.22.1) ### [`v0.22.0`](https://redirect.github.com/grafana/flint/releases/tag/v0.22.0) [Compare Source](https://redirect.github.com/grafana/flint/compare/v0.21.0...v0.22.0) ##### Added - replace codespell with typos ([#​269](https://redirect.github.com/grafana/flint/pull/269)) - *(lychee)* add local cache for local runs ([#​268](https://redirect.github.com/grafana/flint/pull/268)) ##### Fixed - *(renovate-deps)* surface real renovate failure in error output ([#​278](https://redirect.github.com/grafana/flint/pull/278)) - *(ci)* drop double release-plz update from release:pr ([#​276](https://redirect.github.com/grafana/flint/pull/276)) - *(init)* normalize node runtime before linters ([#​267](https://redirect.github.com/grafana/flint/pull/267)) - *(renovate)* support block-scalar mise sha256 values ([#​266](https://redirect.github.com/grafana/flint/pull/266)) - *(mise)* migrate flint-managed tools to supported backends ([#​258](https://redirect.github.com/grafana/flint/pull/258)) - validate renovate dependency rule coverage ([#​263](https://redirect.github.com/grafana/flint/pull/263)) - make flint-setup state-based ([#​252](https://redirect.github.com/grafana/flint/pull/252)) - *(init)* let rustfmt own Rust line length ([#​250](https://redirect.github.com/grafana/flint/pull/250)) - run renovate-deps for deleted tracked files ([#​247](https://redirect.github.com/grafana/flint/pull/247)) - validate CI env and isolate check types ([#​253](https://redirect.github.com/grafana/flint/pull/253)) - *(init)* remove stale head sha from CI snippets ([#​248](https://redirect.github.com/grafana/flint/pull/248)) - *(init)* enable yamllint indentation rule ([#​251](https://redirect.github.com/grafana/flint/pull/251)) ##### Other - streamline README getting started ([#​280](https://redirect.github.com/grafana/flint/pull/280)) - *(deps)* update taiki-e/install-action digest to [`fa0dd4c`](https://redirect.github.com/grafana/flint/commit/fa0dd4c) ([#​282](https://redirect.github.com/grafana/flint/pull/282)) - *(deps)* lock file maintenance ([#​285](https://redirect.github.com/grafana/flint/pull/285)) - *(deps)* update dependency mise to v2026.5.2 ([#​284](https://redirect.github.com/grafana/flint/pull/284)) - *(deps)* update dependency go to v1.26.3 ([#​283](https://redirect.github.com/grafana/flint/pull/283)) - *(deps)* update taiki-e/install-action digest to [`e3134ec`](https://redirect.github.com/grafana/flint/commit/e3134ec) ([#​281](https://redirect.github.com/grafana/flint/pull/281)) - pass git-token and forge to release-plz ([#​274](https://redirect.github.com/grafana/flint/pull/274)) - *(deps)* update taiki-e/install-action digest to [`3fa6878`](https://redirect.github.com/grafana/flint/commit/3fa6878) ([#​275](https://redirect.github.com/grafana/flint/pull/275)) - *(deps)* bump renovate to 43.150.0 ([#​273](https://redirect.github.com/grafana/flint/pull/273)) - \[**breaking**] drop --fast-only flag and tighten renovate-deps timing ([#​270](https://redirect.github.com/grafana/flint/pull/270)) - *(deps)* update rust crate tokio to v1.52.2 ([#​272](https://redirect.github.com/grafana/flint/pull/272)) - upgrade lychee to v0.24.2 ([#​265](https://redirect.github.com/grafana/flint/pull/265)) - *(deps)* update taiki-e/install-action digest to [`cca35ed`](https://redirect.github.com/grafana/flint/commit/cca35ed) ([#​254](https://redirect.github.com/grafana/flint/pull/254)) - *(deps)* update dependency aqua:owenlamont/ryl to v0.8.0 ([#​261](https://redirect.github.com/grafana/flint/pull/261)) - *(deps)* update dependency mise to v2026.4.28 ([#​262](https://redirect.github.com/grafana/flint/pull/262)) - *(deps)* update dependency golangci-lint to v2.12.1 ([#​264](https://redirect.github.com/grafana/flint/pull/264)) - *(deps)* update dependency aqua:owenlamont/ryl to v0.7.0 ([#​259](https://redirect.github.com/grafana/flint/pull/259)) - *(renovate)* simplify quickstart and batch weekly linter updates ([#​257](https://redirect.github.com/grafana/flint/pull/257)) - *(deps)* update dependency npm:renovate to v43.141.6 ([#​255](https://redirect.github.com/grafana/flint/pull/255)) - expand positioning and comparisons ([#​239](https://redirect.github.com/grafana/flint/pull/239)) - *(deps)* update taiki-e/install-action digest to [`1f2425c`](https://redirect.github.com/grafana/flint/commit/1f2425c) ([#​246](https://redirect.github.com/grafana/flint/pull/246)) - move release-plz flow into mise tasks ([#​234](https://redirect.github.com/grafana/flint/pull/234)) - *(deps)* update taiki-e/install-action digest to [`481c34c`](https://redirect.github.com/grafana/flint/commit/481c34c) ([#​231](https://redirect.github.com/grafana/flint/pull/231)) - *(deps)* update dependency ruff to v0.15.12 ([#​245](https://redirect.github.com/grafana/flint/pull/245)) - *(deps)* update dependency npm:renovate to v43.141.5 ([#​244](https://redirect.github.com/grafana/flint/pull/244))
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - "before 4am on Monday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- .github/renovate.json5 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/renovate.json5 b/.github/renovate.json5 index 0cf99589c..6628e12ed 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -1,6 +1,6 @@ { $schema: "https://docs.renovatebot.com/renovate-schema.json", - extends: ["config:best-practices", "config:recommended", "github>grafana/flint#v0.21.0"], + extends: ["config:best-practices", "config:recommended", "github>grafana/flint#v0.22.2"], platformCommit: "enabled", automerge: true, ignorePaths: [ From 4a7cdc31d6fe470010026316dc88d221f6576445 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 11:27:39 +0200 Subject: [PATCH 13/74] chore(deps): update dependency mise to v2026.5.11 (#2119) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Update | Change | |---|---|---| | [mise](https://redirect.github.com/jdx/mise) | patch | `v2026.5.5` → `v2026.5.11` | --- ### Release Notes
jdx/mise (mise) ### [`v2026.5.11`](https://redirect.github.com/jdx/mise/releases/tag/v2026.5.11): : Provenance verification at lock time [Compare Source](https://redirect.github.com/jdx/mise/compare/v2026.5.10...v2026.5.11) #### Added - **(security)** Verify and record provenance during `mise lock`, with a new `provenance_api_failures_fatal` setting to control whether GitHub attestation API failures are fatal ([#​9945](https://redirect.github.com/jdx/mise/pull/9945) by [@​jdx](https://redirect.github.com/jdx)). - **(security)** Fall back to verifying archive contents when SLSA provenance attests every file inside an archive but not the archive itself, fixing releases like `github:prefix-dev/pixi@0.68.1` ([#​9898](https://redirect.github.com/jdx/mise/pull/9898) by [@​sargunv](https://redirect.github.com/sargunv)). - **(plugins)** Support remote git subdirectory sources for plugins, e.g. `git::https://host/repo.git//path/to/plugin?ref=branch` ([#​9893](https://redirect.github.com/jdx/mise/pull/9893) by [@​jdx](https://redirect.github.com/jdx)). #### Fixed - **(github)** Asset picker now picks the shortest matching name as a tiebreaker for `asset_pattern` and accepts platform-agnostic runtime archives like `.phar`, `.jar`, and `.pyz` (fixes installing `composer`) ([#​9946](https://redirect.github.com/jdx/mise/pull/9946) by [@​jdx](https://redirect.github.com/jdx)). - **(config)** Invalid `miserc.toml` now produces a clear parse error at startup instead of being silently ignored ([#​9937](https://redirect.github.com/jdx/mise/pull/9937) by [@​jdx](https://redirect.github.com/jdx)). - **(install)** Per-tool `.mise.backend.toml` metadata is now written alongside install directories, making merged/copied installs self-describing and refreshing install state mid-run so same-run dependency resolution sees freshly installed tools ([#​9941](https://redirect.github.com/jdx/mise/pull/9941) by [@​jdx](https://redirect.github.com/jdx)). - **(install)** `postinstall` hooks now run through the configured default inline shell instead of `$SHELL -c` ([#​9812](https://redirect.github.com/jdx/mise/pull/9812) by [@​risu729](https://redirect.github.com/risu729)). - **(cache)** `mise cache prune [PLUGIN]...` now honors the plugin filter instead of pruning every cache directory ([#​9914](https://redirect.github.com/jdx/mise/pull/9914) by [@​risu729](https://redirect.github.com/risu729)). - **(task)** Preserve task-declared env, `MISE_TASK_*` metadata, and `MISE_ENV` across nested `hook-env` invocations, while keeping the nested-PATH fix from [#​9765](https://redirect.github.com/jdx/mise/pull/9765) intact ([#​9850](https://redirect.github.com/jdx/mise/pull/9850) by [@​risu729](https://redirect.github.com/risu729)). - **(backend)** Resolve helper dependency toolsets in offline mode so `minimum_release_age` cannot mis-route helper tools like `node`/`npm` when querying upstream versions ([#​9808](https://redirect.github.com/jdx/mise/pull/9808) by [@​risu729](https://redirect.github.com/risu729)). - **(vfox)** Key vfox `EnvKeys` hooks by the resolved install path so shared/system installs don't reuse user-path cache entries ([#​9907](https://redirect.github.com/jdx/mise/pull/9907) by [@​risu729](https://redirect.github.com/risu729)). - **(use)** Skip the `mise use -g` shadow warning when the active version comes from system config ([#​9900](https://redirect.github.com/jdx/mise/pull/9900) by [@​risu729](https://redirect.github.com/risu729)). - **(doctor)** List installed plugins from install state, including those owned by disabled backends, and add a `plugins` object to `mise doctor -J` ([#​9863](https://redirect.github.com/jdx/mise/pull/9863) by [@​risu729](https://redirect.github.com/risu729)). - **(erlang)** `erlang.compile = false` is now strict precompiled mode and no longer falls back to `kerl build-install` on unsupported distros ([#​9866](https://redirect.github.com/jdx/mise/pull/9866) by [@​risu729](https://redirect.github.com/risu729)). #### Changed - **(registry)** Prefer the `aqua` backend for `cilium-hubble`, `localstack`, `mark`, `openbao`, `porter`, `process-compose`, `rtk`, `sqlc`, `turso`, and `xcodegen`, with existing GitHub/asdf backends preserved as fallbacks ([#​9789](https://redirect.github.com/jdx/mise/pull/9789) by [@​risu729](https://redirect.github.com/risu729)). - **(registry)** Add `aqua:jbangdev/jbang` as the primary backend for `jbang`, enabling Windows support ([#​9811](https://redirect.github.com/jdx/mise/pull/9811) by [@​risu729](https://redirect.github.com/risu729)). - **(registry)** Alias `dotnet-core` to `dotnet` ([#​9807](https://redirect.github.com/jdx/mise/pull/9807) by [@​risu729](https://redirect.github.com/risu729)). - **(registry)** Add [`lisette`](https://lisette.run/) ([#​9944](https://redirect.github.com/jdx/mise/pull/9944) by [@​ivov](https://redirect.github.com/ivov)). - **(registry)** Fix `sourcery` archive format so macOS installs use the `.zip` asset instead of trying to extract it as `tar.gz` ([#​9902](https://redirect.github.com/jdx/mise/pull/9902) by [@​risu729](https://redirect.github.com/risu729)). - **(docs)** Trim the global settings example in the configuration docs ([#​9912](https://redirect.github.com/jdx/mise/pull/9912) by [@​risu729](https://redirect.github.com/risu729)). #### New Contributors - [@​ivov](https://redirect.github.com/ivov) made their first contribution in [#​9944](https://redirect.github.com/jdx/mise/pull/9944) #### 💚 Sponsor mise mise is built by [@​jdx](https://redirect.github.com/jdx) under [**en.dev**](https://en.dev) — an independent studio making developer tooling (mise, [aube](https://aube.en.dev/), and more). Development is funded by sponsors. If mise saves you or your team time, please consider sponsoring at [en.dev](https://en.dev). Individual and company sponsorships keep mise fast, free, and independent. ### [`v2026.5.10`](https://redirect.github.com/jdx/mise/releases/tag/v2026.5.10): : AWS SSO for s3 backends [Compare Source](https://redirect.github.com/jdx/mise/compare/v2026.5.9...v2026.5.10) A small release that unblocks s3 backends for users on AWS SSO profiles, plus two minor option-handling fixes that fell out of an internal refactor of the GitHub/GitLab/Forgejo backend. #### Fixed - **(s3)** s3 backends now work with SSO-based AWS profiles. The `sso` feature of `aws-config` is enabled, so configurations that authenticate via [AWS IAM Identity Center](https://aws.amazon.com/iam/identity-center/) no longer fail with: ``` S3 error: DispatchFailure { ... ProfileFile provider could not be built: This behavior requires following cargo feature(s) enabled: sso. ``` ([#​9875](https://redirect.github.com/jdx/mise/pull/9875) by [@​Amir-Ahmad](https://redirect.github.com/Amir-Ahmad)). - **(backend)** Two small behavior fixes landed while centralizing Git backend option reads ([#​9838](https://redirect.github.com/jdx/mise/pull/9838) by [@​risu729](https://redirect.github.com/risu729)): - Forgejo now applies the same install-time option filtering as GitHub/GitLab. - `no_app` is now read through target-aware platform option lookup, so `platforms..no_app = true` is honored when resolving assets for cross-platform lockfiles. #### Changed - **(backend)** Internal refactor introducing a shared `BackendOptions` reader and a typed option wrapper for the unified GitHub/GitLab/Forgejo backend. No user-visible behavior change beyond the fixes above ([#​9838](https://redirect.github.com/jdx/mise/pull/9838) by [@​risu729](https://redirect.github.com/risu729)). #### New Contributors - [@​Amir-Ahmad](https://redirect.github.com/Amir-Ahmad) made their first contribution in [#​9875](https://redirect.github.com/jdx/mise/pull/9875) **Full Changelog**: #### 💚 Sponsor mise mise is built by [@​jdx](https://redirect.github.com/jdx) under [**en.dev**](https://en.dev) — an independent studio making developer tooling (mise, [aube](https://aube.en.dev/), and more). Development is funded by sponsors. If mise saves you or your team time, please consider sponsoring at [en.dev](https://en.dev). Individual and company sponsorships keep mise fast, free, and independent. ### [`v2026.5.9`](https://redirect.github.com/jdx/mise/releases/tag/v2026.5.9): : SwiftPM artifact bundles and per-hook watch shells [Compare Source](https://redirect.github.com/jdx/mise/compare/v2026.5.8...v2026.5.9) A modest release: SwiftPM gains artifact bundle support, `[[watch_files]]` hooks can pick their own inline shell, and a handful of fixes land for aqua latest-tag resolution, vfox `cmd.exec`, and GitHub OAuth device-flow URLs. Plain-string Tera rendering also gets a fast path. #### Added - **(spm)** SwiftPM installs now prefer prebuilt artifact bundles (`*.artifactbundle.zip`) when a release publishes one for the current Swift target triple, falling back to a source build otherwise ([#​9825](https://redirect.github.com/jdx/mise/pull/9825)) by [@​ikesyo](https://redirect.github.com/ikesyo). New controls: ```toml [tools] # require an artifact bundle; fail instead of source-building "spm:giginet/swift-testing-revolutionary" = { version = "0.4.0", artifactbundle = true } # always source-build, ignore any bundles "spm:tuist/tuist" = { version = "latest", artifactbundle = false } # disambiguate when multiple bundle assets are published "spm:org/tool" = { version = "1.0.0", artifactbundle_asset = "tool.artifactbundle.zip" } [settings] # apply "bundles only" globally (mirrors cargo.binstall_only) spm.artifactbundle_only = true ``` - **(config)** `[[watch_files]]` entries with `run` accept an optional `shell` field, rendered through templates and falling back to the configured default inline shell when unset ([#​9810](https://redirect.github.com/jdx/mise/pull/9810)) by [@​risu729](https://redirect.github.com/risu729): ```toml [[watch_files]] patterns = ["*.js"] run = "eslint --fix ." shell = "bash -c" ``` `shell` only applies to `run` hooks; combining it with `task` produces a warning and the value is ignored. #### Fixed - **(aqua)** When GitHub's `latest` release pointed at a tag that aqua's registry rejected via `version_filter` or `version_constraint`, mise would return it anyway. The latest fast path now applies both checks before accepting a tag ([#​9834](https://redirect.github.com/jdx/mise/pull/9834)) by [@​risu729](https://redirect.github.com/risu729). - **(vfox)** Lua `cmd.exec` calls inside vfox plugins now build commands from mise's configured `unix_default_inline_shell_args` / `windows_default_inline_shell_args` instead of hardcoding `sh -c` or `cmd /C`, aligning plugin behavior with tasks, Tera command rendering, and other inline shell users ([#​9837](https://redirect.github.com/jdx/mise/pull/9837)) by [@​risu729](https://redirect.github.com/risu729). - GitHub OAuth device-flow paths were slightly off compared to the documented endpoints. The default `oauth_auth_url` is now the GitHub login base, with mise appending `/device/code` and `/oauth/access_token` per [GitHub's device-flow docs](https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps#device-flow) ([#​9791](https://redirect.github.com/jdx/mise/pull/9791)) by [@​jasisk](https://redirect.github.com/jasisk). - **(patrons)** `mise patrons` now points the "become a patron" link to the en.dev homepage instead of `/sponsor` ([#​9868](https://redirect.github.com/jdx/mise/pull/9868)) by [@​jdx](https://redirect.github.com/jdx). #### Changed - **(registry)** `npm` is now resolved through `aqua:npm/cli` (with `npm:npm` retained as a fallback), and `buck2` switches to `aqua:facebook/buck2` with `prerelease = true` so its always-prerelease releases are visible ([#​9762](https://redirect.github.com/jdx/mise/pull/9762), [#​9805](https://redirect.github.com/jdx/mise/pull/9805)) by [@​risu729](https://redirect.github.com/risu729). - **(registry)** Added SonarQube CLI as `aqua:SonarSource/sonarqube-cli` ([#​9824](https://redirect.github.com/jdx/mise/pull/9824)) by [@​3PeatVR](https://redirect.github.com/3PeatVR). #### Performance - **(config)** Strings with no Tera block markers (`{{`, `{%`, `{#`, including whitespace-trimmed forms) now bypass the Tera renderer at config evaluation sites, skipping context construction, async context fetches, and `get_tera` setup. Tera 1.20.1's grammar guarantees these are the only block openers, so output is unchanged for both well-formed and malformed templates ([#​9833](https://redirect.github.com/jdx/mise/pull/9833)) by [@​risu729](https://redirect.github.com/risu729). #### Documentation - Updated the Walkthrough guide ([#​9853](https://redirect.github.com/jdx/mise/pull/9853)) by [@​thernstig](https://redirect.github.com/thernstig). #### New Contributors - [@​3PeatVR](https://redirect.github.com/3PeatVR) made their first contribution in [#​9824](https://redirect.github.com/jdx/mise/pull/9824) - [@​ikesyo](https://redirect.github.com/ikesyo) made their first contribution in [#​9825](https://redirect.github.com/jdx/mise/pull/9825) - [@​thernstig](https://redirect.github.com/thernstig) made their first contribution in [#​9853](https://redirect.github.com/jdx/mise/pull/9853) **Full Changelog**: #### 💚 Sponsor mise mise is built by [@​jdx](https://redirect.github.com/jdx) under [**en.dev**](https://en.dev) — an independent studio making developer tooling (mise, [aube](https://aube.en.dev/), and more). Development is funded by sponsors. If mise saves you or your team time, please consider sponsoring at [en.dev](https://en.dev). Individual and company sponsorships keep mise fast, free, and independent. ### [`v2026.5.8`](https://redirect.github.com/jdx/mise/releases/tag/v2026.5.8): : Patrons, cleaner task output, and sigstore-rust [Compare Source](https://redirect.github.com/jdx/mise/compare/aqua-registry-v2026.5.7...v2026.5.8) A small release: a new `mise patrons` command, cleaner task command output when scripts start with a shebang, and a fix for `mise upgrade` summaries getting wiped by progress cleanup. Under the hood, signature verification moves to the modern sigstore-rust stack. #### Added - **(patrons)** New `mise patrons` subcommand lists individuals on the Patron tier supporting mise development ([#​9841](https://redirect.github.com/jdx/mise/pull/9841)) by [@​jdx](https://redirect.github.com/jdx). Data is fetched from the en.dev patrons feed, cached for 24h, and falls back to stale cache on network failure. Each patron's name renders as a clickable OSC 8 hyperlink in supporting terminals. ``` $ mise patrons mise is supported by these patrons — thank you • Ronald Gierlach • youfoundron Become a patron: https://en.dev/sponsor ``` Flags: `-J/--json`, `--refresh`. - **(registry)** Add a `racket` shorthand backed by the aqua `racket/racket/minimal` package, exposing both `racket` and `raco` from the official racket-lang.org release artifacts ([#​9784](https://redirect.github.com/jdx/mise/pull/9784)) by [@​albertnetymk](https://redirect.github.com/albertnetymk). #### Fixed - **(task)** When a task's `run` body starts with `#!/usr/bin/env bash` or `set -Eeuo pipefail`, the echoed command line would show only that boilerplate and hide the rest of the script. Leading shebang, blank, and `set ...` lines are now skipped when building the displayed command, so the first real command shows up. Execution is unchanged ([#​9844](https://redirect.github.com/jdx/mise/pull/9844)) by [@​jdx](https://redirect.github.com/jdx). Fixes [#​9842](https://redirect.github.com/jdx/mise/issues/9842). ``` # before [generate-completions] $ #!/usr/bin/env bash # after [generate-completions] $ fzf --fish > ~/.config/fish/completions/fzf.fish ``` - **(upgrade)** `mise upgrade` could erase its own `Upgraded N tools:` summary detail lines when an upgrade also performed an uninstall — fresh progress jobs registered for the cleanup phase were still active at shutdown, so `stop_clear()` wiped them along with the summary. Progress jobs are now finished and reset before the summary prints ([#​9860](https://redirect.github.com/jdx/mise/pull/9860)) by [@​risu729](https://redirect.github.com/risu729). Regression from [#​9779](https://redirect.github.com/jdx/mise/pull/9779); addresses [#​9856](https://redirect.github.com/jdx/mise/discussions/9856). #### Changed - **(security)** Sigstore verification (`verify_github_attestation`, `verify_cosign_signature`, `verify_slsa_provenance`, `detect_attestations`) now runs on a local `mise-sigstore` adapter built on `sigstore-verify` 0.7 from sigstore-rust, replacing the previous `sigstore-verification` 0.2 dependency ([#​9260](https://redirect.github.com/jdx/mise/pull/9260)) by [@​jdx](https://redirect.github.com/jdx). The mise call sites and helper API are unchanged. The new adapter still covers legacy cosign v1 bundles (e.g. goreleaser-signed releases) and raw DSSE `*.intoto.jsonl` envelopes (slsa-github-generator) that the upstream `Bundle::from_json` rejects. #### Deprecated - **(config)** The top-level `env_file` setting (and `MISE_ENV_FILE`) is now marked deprecated. Use `env._.file` in `mise.toml` instead ([#​9862](https://redirect.github.com/jdx/mise/pull/9862)) by [@​risu729](https://redirect.github.com/risu729). The JSON Schema gains the `deprecated` keyword, a warning is scheduled for 2026.11.0, and removal is planned for 2027.11.0. ```toml # before env_file = ".env" # after [env] _.file = ".env" ``` #### New Contributors - [@​albertnetymk](https://redirect.github.com/albertnetymk) made their first contribution in [#​9784](https://redirect.github.com/jdx/mise/pull/9784) **Full Changelog**: #### 💚 Sponsor mise mise is built by [@​jdx](https://redirect.github.com/jdx) under [**en.dev**](https://en.dev) — an independent studio making developer tooling (mise, [aube](https://aube.en.dev/), and more). Development is funded by sponsors. If mise saves you or your team time, please consider sponsoring at [en.dev](https://en.dev). Individual and company sponsorships keep mise fast, free, and independent. ### [`v2026.5.7`](https://redirect.github.com/jdx/mise/releases/tag/v2026.5.7): : Lazy GitHub tokens, hardened version parsing, and faster task freshness [Compare Source](https://redirect.github.com/jdx/mise/compare/v2026.5.6...aqua-registry-v2026.5.7) A round of correctness and performance fixes: vfox-managed tools no longer prompt your password manager on every shell hook, `mise upgrade` stops double-printing its summary, `mise settings get` finally distinguishes typos from unset values, and conda installs that pulled in `adwaita-icon-theme` are unstuck. Plus a security pass that hardens version-string parsing against shell injection. #### Fixed - **(vfox)** GitHub tokens are now resolved lazily inside Lua plugins. Previously, `mise hook-env`, `mise activate`, `mise completion`, and even `mise --help` would call `github.credential_command` for every installed vfox tool — potentially unlocking a password manager on every prompt. The resolver is now only invoked when a Lua plugin actually issues an HTTP request to a GitHub API URL, e.g. during an install ([#​9816](https://redirect.github.com/jdx/mise/pull/9816)) by [@​jdx](https://redirect.github.com/jdx). Fixes [#​9797](https://redirect.github.com/jdx/mise/issues/9797). - **(upgrade)** `mise upgrade` (and `mise up`) no longer prints the installed-tools block twice when an upgrade also needs to uninstall an older version. The shared progress-job registry is now cleared after each phase so the subsequent uninstall renders cleanly ([#​9779](https://redirect.github.com/jdx/mise/pull/9779)) by [@​jdx](https://redirect.github.com/jdx). Fixes [#​9774](https://redirect.github.com/jdx/mise/issues/9774). - **(settings)** `mise settings get` distinguishes between a known setting that hasn't been set and a typo: ```sh $ mise settings get python.compile mise ERROR Setting [python.compile] is not set $ mise settings get not.a.real.setting mise ERROR Unknown setting: not.a.real.setting ``` Previously both returned `Unknown setting`, since `Option` fields skipped by TOML serialization were indistinguishable from missing keys ([#​9818](https://redirect.github.com/jdx/mise/pull/9818)) by [@​jdx](https://redirect.github.com/jdx). - **(backend)** Several backends (`aqua`, `github`/`gitlab`/`forgejo`, `http`, `s3`, `ubi`, `vfox`, `conda`, Windows `npm`) reported `bin-paths` pointing at the concrete resolved install dir (e.g. `installs/tiny/1.0.0/...`) instead of the stable runtime symlink for the requested label (e.g. `installs/tiny/latest/...`). A new `runtime_path_for_install_path` helper remaps backend-discovered absolute paths onto the runtime path while leaving explicit relative `bin_path` values alone ([#​9606](https://redirect.github.com/jdx/mise/pull/9606)) by [@​risu729](https://redirect.github.com/risu729). - **(conda)** `mise use -g imagemagick` (and other tools pulling in `adwaita-icon-theme`) failed with `conda solve failed: encountered duplicate records for adwaita-icon-theme-40.1.1-...`. rattler-solve detects duplicates by `DistArchiveIdentifier` rather than URL, so when conda-forge served the same archive under multiple CDN URLs, the existing URL-based dedup wasn't enough. Dedup now uses `r.identifier`, the exact key the solver uses ([#​9831](https://redirect.github.com/jdx/mise/pull/9831)) by [@​jdx](https://redirect.github.com/jdx). Fixes [#​9829](https://redirect.github.com/jdx/mise/discussions/9829). #### Added - **(github)** `github.credential_command` now runs through the configured default inline shell (instead of hardcoded `sh -c`) and is invoked with `MISE_CREDENTIAL_HOST` and `MISE_CREDENTIAL_PROVIDER` in the environment. The deprecated `$1` / `${1}` hostname positional argument continues to work for sh-compatible shells (`ash`, `bash`, `dash`, `ksh`, `sh`, `zsh`); a deprecation warning lands in `2026.11.0` and removal is planned for `2027.11.0` ([#​9664](https://redirect.github.com/jdx/mise/pull/9664)) by [@​risu729](https://redirect.github.com/risu729). #### Performance - **(aqua)** The baked aqua standard-registry package and alias lookup tables are now generated as static `phf::Map`s at build time via `phf_codegen`, instead of lazy runtime `HashMap`s. Warmed lookup is comparable, but first-use no longer allocates \~115 KiB of heap or builds a 2,179-entry bucket table ([#​9763](https://redirect.github.com/jdx/mise/pull/9763)) by [@​risu729](https://redirect.github.com/risu729). - **(task)** When `task.source_freshness_hash_contents = true`, mise now caches each source file's blake3 hash keyed by `(size, mtime_secs, mtime_nanos)` — git's stat-info trick — in a per-task file under `STATE/task-sources/`. Unchanged files are skipped on subsequent runs; entries for files removed from `sources` are pruned automatically ([#​9819](https://redirect.github.com/jdx/mise/pull/9819)) by [@​jdx](https://redirect.github.com/jdx). See [discussion #​9802](https://redirect.github.com/jdx/mise/discussions/9802). #### Security - **Reject shell metacharacters in version strings at the `ToolRequest` boundary** ([#​9814](https://redirect.github.com/jdx/mise/pull/9814)) by [@​jdx](https://redirect.github.com/jdx). `ToolRequest::new` now validates `version`, `prefix`, `ref/*`, `sub-*`, and `path:` requests, rejecting `$`, backticks, quotes, `\`, control chars, and `..` traversal. This single change neutralizes the CRITICAL RCE class flagged against `vfox-ag`, `vfox-bfs`, `vfox-bpkg`, `vfox-chezscheme`, `vfox-redis`, `vfox-yarn`, and shell-injection findings on `clickhouse`, `leiningen`, `pipenv`, `poetry`, `azure-functions-core-tools`, `carthage`, and `android-sdk`, since no Lua hook can observe a hostile `ctx.version` / `ctx.rootPath`. Real-world strings like `1.2.3-beta`, `lts/hydrogen`, `3.12.0a1`, and `nightly` continue to validate. The PR also tightens `workflow_dispatch` input validation in the COPR, PPA, npm-publish, and Docker workflows. #### Registry - Replace unsupported `exe = ...` options across \~30 GitHub/GitLab registry entries (`astro`, `babashka`, `coursier`, `glab`, `odin`, `openbao`, `purescript`, and many more) ([#​9587](https://redirect.github.com/jdx/mise/pull/9587)) by [@​risu729](https://redirect.github.com/risu729). Two entries gained real config to fix Linux installs: - `solidity` now uses `bin = "solc"` so the installed binary matches the upstream `solc-static-linux` asset. - `sourcery` now uses `format = "tar.gz"` because the upstream Linux asset is gzip-compressed despite its `.tar.xz` filename. - Update `pi` to `earendil-works/pi` ([#​9792](https://redirect.github.com/jdx/mise/pull/9792)) by [@​garysassano](https://redirect.github.com/garysassano). #### Documentation - **(aliases)** Fix the Aliased Versions example and drop the stale asdf callout ([#​9830](https://redirect.github.com/jdx/mise/pull/9830)) by [@​jdx](https://redirect.github.com/jdx). **Full Changelog**: #### 💚 Sponsor mise mise is built by [@​jdx](https://redirect.github.com/jdx) under [**en.dev**](https://en.dev) — an independent studio making developer tooling (mise, [aube](https://aube.en.dev/), and more). Development is funded by sponsors. If mise saves you or your team time, please consider sponsoring at [en.dev](https://en.dev). Individual and company sponsorships keep mise fast, free, and independent. ### [`v2026.5.6`](https://redirect.github.com/jdx/mise/releases/tag/v2026.5.6): : Native GitHub OAuth, project-scoped OCI builds, faster registries [Compare Source](https://redirect.github.com/jdx/mise/compare/v2026.5.5...v2026.5.6) A mix of features and correctness work: a native GitHub OAuth token source (experimental) that drops the dependency on `gh`/`ghtkn`, `mise oci` commands scoped to the current project by default, and two registry-lookup performance wins — plus fixes across activate, exec, java, lock, pipx, and vfox. #### Added - **(cli)** Add `--before ` to `mise ls-remote` and `mise lock` for release-date-aware version discovery ([#​9269](https://redirect.github.com/jdx/mise/pull/9269)) by [@​risu729](https://redirect.github.com/risu729) - **(config)** Hooks can now be defined as a table — `{ run = "...", shell = "bash -c" }` — to pick a shell inline, alongside the existing string form ([#​9718](https://redirect.github.com/jdx/mise/pull/9718)) by [@​risu729](https://redirect.github.com/risu729) - **(github)** Add native GitHub OAuth device-flow token source (experimental) — no dependency on `gh`/`ghtkn` ([#​9654](https://redirect.github.com/jdx/mise/pull/9654)) by [@​jdx](https://redirect.github.com/jdx). Create a GitHub App with device flow enabled, then authorize once: ```sh mise settings set experimental true mise settings set github.oauth_client_id Iv1.yourgithubappclientid mise token github --oauth ``` mise caches and refreshes the token for its own GitHub API calls, and auto-exports it as `GITHUB_TOKEN` to shells started under `mise activate`/`exec` so `gh`, `git`, and other GitHub-aware tools pick it up too. See [GitHub Tokens → Native GitHub OAuth](https://mise.en.dev/dev-tools/github-tokens.html#native-github-oauth) for the full setup. - **(oci)** `mise oci build/run/push` are now scoped to the current project's config by default; pass `--include-global` to opt back into the previous behavior of including global config ([#​9766](https://redirect.github.com/jdx/mise/pull/9766)) by [@​jdx](https://redirect.github.com/jdx) - **(outdated)** Prefixed-version requests now resolve to the latest within the prefix — e.g. `temurin-17.0.19+10` for a `temurin-17.x` request, instead of jumping ahead to `temurin-26.x` ([#​9767](https://redirect.github.com/jdx/mise/pull/9767)) by [@​roele](https://redirect.github.com/roele) #### Fixed - **(activate)** Guard bash `chpwd_functions` expansion under `set -u` so activated shells no longer fail with `chpwd_functions[@​]: unbound variable` ([#​9716](https://redirect.github.com/jdx/mise/pull/9716)) by [@​risu729](https://redirect.github.com/risu729) - **(backend)** Date-check the `latest_stable_version` fast path when `--before` or `minimum_release_age` is active, instead of returning a too-new version ([#​9650](https://redirect.github.com/jdx/mise/pull/9650)) by [@​risu729](https://redirect.github.com/risu729) - **(config)** Parse core tool options consistently between table and bracket syntax, so `[depends=...]` and `os=` set the named core fields ([#​9742](https://redirect.github.com/jdx/mise/pull/9742)) by [@​risu729](https://redirect.github.com/risu729) - **(exec)** Nested `mise -C exec` correctly resolves the inner toolset's tools again — `__MISE_DIFF` is now propagated to children so the child no longer inherits a mutated PATH that hides its own tools ([#​9765](https://redirect.github.com/jdx/mise/pull/9765)) by [@​jdx](https://redirect.github.com/jdx) - **(forgejo)** Include prereleases when `prerelease = true` / `MISE_PRERELEASES=1` is set ([#​9717](https://redirect.github.com/jdx/mise/pull/9717)) by [@​risu729](https://redirect.github.com/risu729) - **(github)** Avoid caching empty release-asset responses, refetching instead ([#​9616](https://redirect.github.com/jdx/mise/pull/9616)) by [@​risu729](https://redirect.github.com/risu729) - **(java)** Resolve `core:java` lockfile URLs/checksums from mise Java metadata, fixing `mise install --locked` for Java ([#​9719](https://redirect.github.com/jdx/mise/pull/9719)) by [@​risu729](https://redirect.github.com/risu729) - **(lock)** Cache `github_attestations = "unavailable"` so locked installs stop hitting the GitHub attestation API for artifacts known to have none ([#​9741](https://redirect.github.com/jdx/mise/pull/9741)) by [@​risu729](https://redirect.github.com/risu729) - **(pipx)** Preserve `uvx_args`/`pipx_args`/`extras`/`uvx = false` when pipx tools are reinstalled after a Python upgrade ([#​9663](https://redirect.github.com/jdx/mise/pull/9663)) by [@​risu729](https://redirect.github.com/risu729) - **(python)** Skip redundant GitHub attestation re-verification when the lockfile already has checksum + `provenance = "github-attestations"` ([#​9739](https://redirect.github.com/jdx/mise/pull/9739)) by [@​risu729](https://redirect.github.com/risu729) - **(vfox)** Run vfox plugin `pre_uninstall` hooks before removing install directories ([#​9662](https://redirect.github.com/jdx/mise/pull/9662)) by [@​risu729](https://redirect.github.com/risu729) - Quote `program` and `args` in `cmd::cmd(..)` debug output so logged commands are unambiguous ([#​9777](https://redirect.github.com/jdx/mise/pull/9777)) by [@​ktetzlaff](https://redirect.github.com/ktetzlaff) #### Performance - **(aqua)** Bake aqua registry packages as rkyv blobs for much faster lookup ([#​9535](https://redirect.github.com/jdx/mise/pull/9535)) by [@​risu729](https://redirect.github.com/risu729) - **(registry)** Use `phf` for the mise registry lookup table, around 3.3x faster than the previous `BTreeMap` path ([#​9769](https://redirect.github.com/jdx/mise/pull/9769)) by [@​risu729](https://redirect.github.com/risu729) #### Registry - Added `vector` ([#​9761](https://redirect.github.com/jdx/mise/pull/9761)) by [@​kquinsland](https://redirect.github.com/kquinsland) - Added `openshift-install` and an `http:` backend for `oc` ([#​9669](https://redirect.github.com/jdx/mise/pull/9669)) by [@​konono](https://redirect.github.com/konono) #### New Contributors - [@​konono](https://redirect.github.com/konono) made their first contribution in [#​9669](https://redirect.github.com/jdx/mise/pull/9669) - [@​kquinsland](https://redirect.github.com/kquinsland) made their first contribution in [#​9761](https://redirect.github.com/jdx/mise/pull/9761) - [@​ktetzlaff](https://redirect.github.com/ktetzlaff) made their first contribution in [#​9777](https://redirect.github.com/jdx/mise/pull/9777) **Full Changelog**: #### 💚 Sponsor mise mise is built by [@​jdx](https://redirect.github.com/jdx) under [**en.dev**](https://en.dev) — an independent studio making developer tooling (mise, [aube](https://aube.en.dev/), and more). Development is funded by sponsors. If mise saves you or your team time, please consider sponsoring at [en.dev](https://en.dev). Individual and company sponsorships keep mise fast, free, and independent.
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - "before 4am on Monday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- .github/workflows/acceptance-tests.yml | 4 ++-- .github/workflows/build.yml | 4 ++-- .github/workflows/generate-protobuf.yml | 4 ++-- .github/workflows/github-pages.yaml | 4 ++-- .github/workflows/java-version-matrix-tests.yml | 4 ++-- .github/workflows/lint.yml | 4 ++-- .github/workflows/native-tests.yml | 4 ++-- .github/workflows/nightly-benchmarks.yml | 4 ++-- .github/workflows/release.yml | 4 ++-- .github/workflows/test-release-build.yml | 4 ++-- 10 files changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/workflows/acceptance-tests.yml b/.github/workflows/acceptance-tests.yml index fb27df169..ab76a3a15 100644 --- a/.github/workflows/acceptance-tests.yml +++ b/.github/workflows/acceptance-tests.yml @@ -15,7 +15,7 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.5 - sha256: 3aaab5c05a8a94a93b42b4f581779bbd5c44ddb251e7f3639fc671ec5c6aab8a + version: v2026.5.11 + sha256: 9bb41ae4dbe2bcdfdbe36cf3c737a8bdb72035c03af3b7218a70780988f62b9b - name: Run acceptance tests run: mise run acceptance-test diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9b46ecfb6..a8cb434f8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,8 +14,8 @@ jobs: persist-credentials: false - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.5 - sha256: 3aaab5c05a8a94a93b42b4f581779bbd5c44ddb251e7f3639fc671ec5c6aab8a + version: v2026.5.11 + sha256: 9bb41ae4dbe2bcdfdbe36cf3c737a8bdb72035c03af3b7218a70780988f62b9b - name: Cache local Maven repository uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: diff --git a/.github/workflows/generate-protobuf.yml b/.github/workflows/generate-protobuf.yml index d755149bf..be70d2f59 100644 --- a/.github/workflows/generate-protobuf.yml +++ b/.github/workflows/generate-protobuf.yml @@ -21,8 +21,8 @@ jobs: persist-credentials: true - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.5 - sha256: 3aaab5c05a8a94a93b42b4f581779bbd5c44ddb251e7f3639fc671ec5c6aab8a + version: v2026.5.11 + sha256: 9bb41ae4dbe2bcdfdbe36cf3c737a8bdb72035c03af3b7218a70780988f62b9b - name: Cache local Maven repository uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: diff --git a/.github/workflows/github-pages.yaml b/.github/workflows/github-pages.yaml index 5646edabc..6a2960c69 100644 --- a/.github/workflows/github-pages.yaml +++ b/.github/workflows/github-pages.yaml @@ -39,8 +39,8 @@ jobs: fetch-depth: 0 - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.5 - sha256: 3aaab5c05a8a94a93b42b4f581779bbd5c44ddb251e7f3639fc671ec5c6aab8a + version: v2026.5.11 + sha256: 9bb41ae4dbe2bcdfdbe36cf3c737a8bdb72035c03af3b7218a70780988f62b9b cache: "false" - name: Setup Pages id: pages diff --git a/.github/workflows/java-version-matrix-tests.yml b/.github/workflows/java-version-matrix-tests.yml index ce06e00d9..8e88f692e 100644 --- a/.github/workflows/java-version-matrix-tests.yml +++ b/.github/workflows/java-version-matrix-tests.yml @@ -33,8 +33,8 @@ jobs: - name: Set up mise uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.5 - sha256: 3aaab5c05a8a94a93b42b4f581779bbd5c44ddb251e7f3639fc671ec5c6aab8a + version: v2026.5.11 + sha256: 9bb41ae4dbe2bcdfdbe36cf3c737a8bdb72035c03af3b7218a70780988f62b9b - name: Cache local Maven repository uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 4fc35859e..a09824b2f 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -23,8 +23,8 @@ jobs: - name: Setup mise uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.5 - sha256: 3aaab5c05a8a94a93b42b4f581779bbd5c44ddb251e7f3639fc671ec5c6aab8a + version: v2026.5.11 + sha256: 9bb41ae4dbe2bcdfdbe36cf3c737a8bdb72035c03af3b7218a70780988f62b9b - name: Lint env: diff --git a/.github/workflows/native-tests.yml b/.github/workflows/native-tests.yml index d92e4f37e..498a56e12 100644 --- a/.github/workflows/native-tests.yml +++ b/.github/workflows/native-tests.yml @@ -15,8 +15,8 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.5 - sha256: 3aaab5c05a8a94a93b42b4f581779bbd5c44ddb251e7f3639fc671ec5c6aab8a + version: v2026.5.11 + sha256: 9bb41ae4dbe2bcdfdbe36cf3c737a8bdb72035c03af3b7218a70780988f62b9b working_directory: .mise/envs/native - name: Run native tests working-directory: .mise/envs/native diff --git a/.github/workflows/nightly-benchmarks.yml b/.github/workflows/nightly-benchmarks.yml index 6446ad9a1..7679da505 100644 --- a/.github/workflows/nightly-benchmarks.yml +++ b/.github/workflows/nightly-benchmarks.yml @@ -36,8 +36,8 @@ jobs: - name: Setup mise uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.5 - sha256: 3aaab5c05a8a94a93b42b4f581779bbd5c44ddb251e7f3639fc671ec5c6aab8a + version: v2026.5.11 + sha256: 9bb41ae4dbe2bcdfdbe36cf3c737a8bdb72035c03af3b7218a70780988f62b9b - name: Cache local Maven repository uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 63a7c91f2..0de811dc2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -29,8 +29,8 @@ jobs: - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.5 - sha256: 3aaab5c05a8a94a93b42b4f581779bbd5c44ddb251e7f3639fc671ec5c6aab8a + version: v2026.5.11 + sha256: 9bb41ae4dbe2bcdfdbe36cf3c737a8bdb72035c03af3b7218a70780988f62b9b cache: false - name: Build release version diff --git a/.github/workflows/test-release-build.yml b/.github/workflows/test-release-build.yml index 606e1d7a4..44dcc0083 100644 --- a/.github/workflows/test-release-build.yml +++ b/.github/workflows/test-release-build.yml @@ -20,8 +20,8 @@ jobs: fetch-depth: 0 - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.5 - sha256: 3aaab5c05a8a94a93b42b4f581779bbd5c44ddb251e7f3639fc671ec5c6aab8a + version: v2026.5.11 + sha256: 9bb41ae4dbe2bcdfdbe36cf3c737a8bdb72035c03af3b7218a70780988f62b9b - name: Cache local Maven repository uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: From 856c02e8425b753b4762d13a777b2d071d0adf80 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 11:56:44 +0200 Subject: [PATCH 14/74] chore(deps): update dependency maven to v3.9.16 (#2118) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [maven](https://maven.apache.org/) ([source](https://redirect.github.com/apache/maven)) | `3.9.15` → `3.9.16` | ![age](https://developer.mend.io/api/mc/badges/age/maven/org.apache.maven:apache-maven/3.9.16?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.apache.maven:apache-maven/3.9.15/3.9.16?slim=true) | --- ### Release Notes
apache/maven (maven) ### [`v3.9.16`](https://redirect.github.com/apache/maven/releases/tag/maven-3.9.16): 3.9.16 [Compare Source](https://redirect.github.com/apache/maven/compare/maven-3.9.15...maven-3.9.16) #### 🐛 Bug Fixes - Trim `threadConfiguration` to accept input surrounded with spaces ([#​12042](https://redirect.github.com/apache/maven/pull/12042)) [@​slawekjaranowski](https://redirect.github.com/slawekjaranowski) - Backport: Maven 3.10.x fixed plugin resolution ([#​12022](https://redirect.github.com/apache/maven/pull/12022)) [@​cstamas](https://redirect.github.com/cstamas) #### 📦 Dependency updates - Bump org.codehaus.plexus:plexus-classworlds from 2.9.0 to 2.11.0 ([#​12039](https://redirect.github.com/apache/maven/pull/12039)) @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) - \[3.9.x] Bump to parent POM 48 ([#​12024](https://redirect.github.com/apache/maven/pull/12024)) [@​cstamas](https://redirect.github.com/cstamas) - Bump commons-io:commons-io from 2.21.0 to 2.22.0 ([#​11980](https://redirect.github.com/apache/maven/pull/11980)) @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) - Bump com.google.guava:guava from 33.5.0-jre to 33.6.0-jre ([#​11951](https://redirect.github.com/apache/maven/pull/11951)) @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot) - Bump actions/cache from 5.0.4 to 5.0.5 ([#​11943](https://redirect.github.com/apache/maven/pull/11943)) @​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot)
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- .mvn/wrapper/maven-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties index 475e64909..e788e5e69 100644 --- a/.mvn/wrapper/maven-wrapper.properties +++ b/.mvn/wrapper/maven-wrapper.properties @@ -1,2 +1,2 @@ distributionType=only-script -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.15/apache-maven-3.9.15-bin.zip +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.16/apache-maven-3.9.16-bin.zip From b36660326db4355408e0a85da0765a8cfd6003ae Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 18:01:55 +0200 Subject: [PATCH 15/74] chore(deps): update dependency org.apache.maven.plugins:maven-enforcer-plugin to v3.6.3 (#2125) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [org.apache.maven.plugins:maven-enforcer-plugin](https://maven.apache.org/enforcer/) ([source](https://redirect.github.com/apache/maven-enforcer)) | `3.6.2` → `3.6.3` | ![age](https://developer.mend.io/api/mc/badges/age/maven/org.apache.maven.plugins:maven-enforcer-plugin/3.6.3?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.apache.maven.plugins:maven-enforcer-plugin/3.6.2/3.6.3?slim=true) | --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 38c9e1bde..acbbc4d9b 100644 --- a/pom.xml +++ b/pom.xml @@ -186,7 +186,7 @@ maven-enforcer-plugin - 3.6.2 + 3.6.3 org.codehaus.mojo From acded1b06ae6a8c9c160a5470151a8f4244282e3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 19 May 2026 14:31:48 +0200 Subject: [PATCH 16/74] fix(deps): update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.28.0-alpha (#2127) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha](https://redirect.github.com/open-telemetry/opentelemetry-java-instrumentation) | `2.27.0-alpha` → `2.28.0-alpha` | ![age](https://developer.mend.io/api/mc/badges/age/maven/io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha/2.28.0-alpha?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha/2.27.0-alpha/2.28.0-alpha?slim=true) | --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index acbbc4d9b..9486f07c5 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ 4.34.1 33.6.0-jre 6.0.3 - 2.27.0-alpha + 2.28.0-alpha 8 25 0.70 From 79329f355734aba52c0a53cd408dceb692338dae Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 20 May 2026 09:37:08 +0200 Subject: [PATCH 17/74] fix(deps): update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.28.0-alpha (#2126) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha](https://redirect.github.com/open-telemetry/opentelemetry-java-instrumentation) | `2.27.0-alpha` → `2.28.0-alpha` | ![age](https://developer.mend.io/api/mc/badges/age/maven/io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha/2.28.0-alpha?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha/2.27.0-alpha/2.28.0-alpha?slim=true) | --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). --------- Signed-off-by: Gregor Zeitlinger Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Gregor Zeitlinger Signed-off-by: Jay DeLuca --- examples/example-otel-jvm-runtime-metrics/pom.xml | 4 ++-- .../metrics/examples/otelruntimemetrics/Main.java | 8 ++------ 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/examples/example-otel-jvm-runtime-metrics/pom.xml b/examples/example-otel-jvm-runtime-metrics/pom.xml index 5c70bb676..cc3ebf5c3 100644 --- a/examples/example-otel-jvm-runtime-metrics/pom.xml +++ b/examples/example-otel-jvm-runtime-metrics/pom.xml @@ -28,7 +28,7 @@ io.opentelemetry.instrumentation opentelemetry-instrumentation-bom-alpha - 2.27.0-alpha + 2.28.0-alpha pom import @@ -51,7 +51,7 @@
io.opentelemetry.instrumentation - opentelemetry-runtime-telemetry-java8 + opentelemetry-runtime-telemetry diff --git a/examples/example-otel-jvm-runtime-metrics/src/main/java/io/prometheus/metrics/examples/otelruntimemetrics/Main.java b/examples/example-otel-jvm-runtime-metrics/src/main/java/io/prometheus/metrics/examples/otelruntimemetrics/Main.java index 49a608651..07971096e 100644 --- a/examples/example-otel-jvm-runtime-metrics/src/main/java/io/prometheus/metrics/examples/otelruntimemetrics/Main.java +++ b/examples/example-otel-jvm-runtime-metrics/src/main/java/io/prometheus/metrics/examples/otelruntimemetrics/Main.java @@ -1,7 +1,7 @@ package io.prometheus.metrics.examples.otelruntimemetrics; import io.opentelemetry.exporter.prometheus.PrometheusMetricReader; -import io.opentelemetry.instrumentation.runtimemetrics.java8.RuntimeMetrics; +import io.opentelemetry.instrumentation.runtimetelemetry.RuntimeTelemetry; import io.opentelemetry.sdk.OpenTelemetrySdk; import io.opentelemetry.sdk.metrics.SdkMeterProvider; import io.prometheus.metrics.core.metrics.Counter; @@ -47,11 +47,7 @@ public static void main(String[] args) throws IOException, InterruptedException .build(); // 4. Start OTel JVM runtime metrics collection. - // - captureGcCause() adds a jvm.gc.cause attribute to jvm.gc.duration - // - emitExperimentalTelemetry() enables buffer pools, extended CPU, - // extended memory pools, and file descriptor metrics - RuntimeMetrics runtimeMetrics = - RuntimeMetrics.builder(openTelemetry).captureGcCause().emitExperimentalTelemetry().build(); + RuntimeTelemetry runtimeMetrics = RuntimeTelemetry.create(openTelemetry); // 5. Expose both Prometheus and OTel metrics on a single endpoint. HTTPServer server = HTTPServer.builder().port(9400).registry(registry).buildAndStart(); From c89e6b5faa75e0ce5f7e82325dfcb397af1daa77 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Wed, 20 May 2026 11:53:24 +0200 Subject: [PATCH 18/74] fix: restore reserved suffix stripping in `PrometheusNaming.sanitizeMetricName()` (#2124) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes https://github.com/prometheus/client_java/issues/2087. Supersedes #2094 with the same fix on a clean, signed-off commit so the DCO check can pass. `sanitizeMetricName()` was simplified in 1.6.0 to return its input unchanged because any non-empty UTF-8 string is now a valid metric name. That silently broke downstream tools — notably the JMX Exporter and the simpleclient bridge — that call `sanitizeMetricName()` to normalize external names before passing them to snapshot builders. The missing stripping means a JMX attribute that produces `kafka_consumer_request_total` as a raw name is no longer sanitized to `kafka_consumer_request`. With `inferCounterTypeFromName: true` this triggers unintended counter-type inference; with it `false` the metric is stored under the wrong name, breaking exact-name registry lookups. ## Changes - Restore `RESERVED_METRIC_NAME_SUFFIXES` and the iterative suffix-stripping loop in `PrometheusNaming.sanitizeMetricName()`. - Keep the exact-match case, for example `"_total"` -> `"total"`, in a dedicated pre-pass before the stripping loop. - Update `PrometheusNamingTest` and `MetricMetadataTest` expectations. - Add regression coverage for the JMX Exporter scenario and dot-variant corner case, for example `.total`. ```java // Before fix: suffix preserved -> metric stored as "kafka_consumer_request_total" PrometheusNaming.sanitizeMetricName("kafka_consumer_request_total"); // After fix: suffix stripped -> metric stored as "kafka_consumer_request" PrometheusNaming.sanitizeMetricName("kafka_consumer_request_total"); ``` `Counter.builder().name("events_total")` is unaffected because the builder API does not go through `sanitizeMetricName()`. ## Validation - `mise run build` Signed-off-by: Gregor Zeitlinger Signed-off-by: Jay DeLuca --- .../model/snapshots/PrometheusNaming.java | 86 ++++++++++++++++++- .../model/snapshots/MetricMetadataTest.java | 12 ++- .../model/snapshots/PrometheusNamingTest.java | 71 +++++++++++++-- 3 files changed, 152 insertions(+), 17 deletions(-) diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/PrometheusNaming.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/PrometheusNaming.java index ea2653931..63cbb7879 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/PrometheusNaming.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/PrometheusNaming.java @@ -17,6 +17,17 @@ */ public class PrometheusNaming { + /** + * Reserved metric name suffixes. These suffixes are automatically appended by Prometheus + * exposition format writers for specific metric types: {@code _total} and {@code _created} for + * counters, {@code _info} for info metrics, and {@code _bucket} for histograms. Including these + * in a base metric name via {@link #sanitizeMetricName(String)} would cause confusion or + * double-suffixing, so they are stripped during sanitization. + */ + static final String[] RESERVED_METRIC_NAME_SUFFIXES = { + "_total", "_created", "_bucket", "_info", ".total", ".created", ".bucket", ".info" + }; + /** * Test if a metric name is valid. Any non-empty valid UTF-8 string is accepted. * @@ -35,7 +46,9 @@ public class PrometheusNaming { * format, this will be represented as two values: {@code processing_time_seconds_total} for the * counter value, and the optional {@code processing_time_seconds_created} timestamp. * - *

Use {@link #sanitizeMetricName(String)} to convert arbitrary Strings to valid metric names. + *

Use {@link #sanitizeMetricName(String)} for compatibility-preserving sanitization that + * strips reserved suffixes, or {@link #normalizeMetricName(String)} for permissive normalization + * that keeps the original suffixes intact. */ public static boolean isValidMetricName(String name) { return validateMetricName(name) == null; @@ -153,8 +166,22 @@ public static String prometheusName(String name) { } /** - * Convert an arbitrary string to a valid metric name. Since any non-empty valid UTF-8 string is a - * valid metric name, this simply returns the input unchanged. + * Convert an arbitrary string to a valid metric name. + * + *

Reserved metric name suffixes ({@code _total}, {@code _created}, {@code _bucket}, {@code + * _info} and their dot variants) are stripped. These suffixes are appended automatically by + * Prometheus exposition format writers, so including them in a base metric name would result in + * double-suffixing or unintended type inference. For example, a JMX attribute named {@code + * RequestTotal} would be sanitized from {@code kafka_consumer_request_total} to {@code + * kafka_consumer_request}, and the counter writer would add {@code _total} back at scrape time. + * + *

This behaviour was present in client_java 1.5.x and is restored here to fix a regression + * introduced in 1.6.0 that affected downstream tools (e.g. the JMX Exporter and the simpleclient + * bridge) which relied on {@code sanitizeMetricName} to strip these suffixes before passing names + * to the snapshot builders. + * + *

If you want permissive normalization that keeps reserved suffixes intact, use {@link + * #normalizeMetricName(String)} instead. * * @throws IllegalArgumentException if the input is empty */ @@ -162,7 +189,27 @@ public static String sanitizeMetricName(String metricName) { if (metricName.isEmpty()) { throw new IllegalArgumentException("Cannot convert an empty string to a valid metric name."); } - return metricName; + String sanitizedName = metricName; + boolean stripped = true; + while (stripped) { + stripped = false; + // When the name equals the suffix exactly, drop the leading separator character to avoid + // returning an empty string (e.g. "_total" → "total", ".info" → "info"). + for (String reservedSuffix : RESERVED_METRIC_NAME_SUFFIXES) { + if (sanitizedName.equals(reservedSuffix)) { + return reservedSuffix.substring(1); + } + } + for (String reservedSuffix : RESERVED_METRIC_NAME_SUFFIXES) { + if (sanitizedName.endsWith(reservedSuffix)) { + sanitizedName = + sanitizedName.substring(0, sanitizedName.length() - reservedSuffix.length()); + stripped = true; + break; // restart the outer loop to re-check all suffixes on the shortened name + } + } + } + return sanitizedName; } /** @@ -179,6 +226,37 @@ public static String sanitizeMetricName(String metricName, Unit unit) { return result; } + /** + * Convert an arbitrary string to a valid metric name without stripping reserved suffixes. + * + *

Any non-empty valid UTF-8 string is accepted and returned unchanged. This is the permissive + * normalization behavior introduced in 1.6.0. Use this method for new integrations that want to + * preserve the original metric name and rely on registration-time collision detection instead of + * suffix stripping. + * + * @throws IllegalArgumentException if the input is empty + */ + public static String normalizeMetricName(String metricName) { + if (metricName.isEmpty()) { + throw new IllegalArgumentException("Cannot convert an empty string to a valid metric name."); + } + return metricName; + } + + /** + * Like {@link #normalizeMetricName(String)}, but also makes sure that the unit is appended as a + * suffix if the unit is not {@code null}. + */ + public static String normalizeMetricName(String metricName, Unit unit) { + String result = normalizeMetricName(metricName); + if (unit != null) { + if (!result.endsWith("_" + unit) && !result.endsWith("." + unit)) { + result += "_" + unit; + } + } + return result; + } + /** * Convert an arbitrary string to a name where {@link #isValidLabelName(String) * isValidLabelName(name)} is true. diff --git a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/MetricMetadataTest.java b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/MetricMetadataTest.java index 8a4731ac8..5781eb146 100644 --- a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/MetricMetadataTest.java +++ b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/MetricMetadataTest.java @@ -35,26 +35,30 @@ void testSanitizationIllegalCharacters() { @Test void testNameWithTotalSuffix() { + // sanitizeMetricName strips the reserved _total suffix. MetricMetadata metadata = new MetricMetadata(sanitizeMetricName("my_events_total")); - assertThat(metadata.getName()).isEqualTo("my_events_total"); + assertThat(metadata.getName()).isEqualTo("my_events"); } @Test void testNameWithInfoSuffix() { + // sanitizeMetricName strips the reserved _info suffix. MetricMetadata metadata = new MetricMetadata(sanitizeMetricName("target_info")); - assertThat(metadata.getName()).isEqualTo("target_info"); + assertThat(metadata.getName()).isEqualTo("target"); } @Test void testNameWithCreatedSuffix() { + // sanitizeMetricName strips the reserved _created suffix. MetricMetadata metadata = new MetricMetadata(sanitizeMetricName("my_events_created")); - assertThat(metadata.getName()).isEqualTo("my_events_created"); + assertThat(metadata.getName()).isEqualTo("my_events"); } @Test void testNameWithBucketSuffix() { + // sanitizeMetricName strips the reserved _bucket suffix. MetricMetadata metadata = new MetricMetadata(sanitizeMetricName("my_histogram_bucket")); - assertThat(metadata.getName()).isEqualTo("my_histogram_bucket"); + assertThat(metadata.getName()).isEqualTo("my_histogram"); } @Test diff --git a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/PrometheusNamingTest.java b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/PrometheusNamingTest.java index dcebd14d8..ee6d2d027 100644 --- a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/PrometheusNamingTest.java +++ b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/PrometheusNamingTest.java @@ -2,6 +2,7 @@ import static io.prometheus.metrics.model.snapshots.PrometheusNaming.escapeName; import static io.prometheus.metrics.model.snapshots.PrometheusNaming.isValidLabelName; +import static io.prometheus.metrics.model.snapshots.PrometheusNaming.normalizeMetricName; import static io.prometheus.metrics.model.snapshots.PrometheusNaming.prometheusName; import static io.prometheus.metrics.model.snapshots.PrometheusNaming.sanitizeLabelName; import static io.prometheus.metrics.model.snapshots.PrometheusNaming.sanitizeMetricName; @@ -22,27 +23,79 @@ class PrometheusNamingTest { @Test void testSanitizeMetricName() { - assertThat(sanitizeMetricName("my_counter_total")).isEqualTo("my_counter_total"); - assertThat(sanitizeMetricName("jvm.info")).isEqualTo("jvm.info"); - assertThat(sanitizeMetricName("jvm_info")).isEqualTo("jvm_info"); + // Reserved suffixes are stripped to avoid confusion with Prometheus type conventions. + assertThat(sanitizeMetricName("my_counter_total")).isEqualTo("my_counter"); + assertThat(sanitizeMetricName("jvm.info")).isEqualTo("jvm"); + assertThat(sanitizeMetricName("jvm_info")).isEqualTo("jvm"); assertThat(sanitizeMetricName("a.b")).isEqualTo("a.b"); - assertThat(sanitizeMetricName("_total")).isEqualTo("_total"); + // "_total" / ".total" corner cases: the suffix is the entire name, so the separator + // character is dropped to avoid returning an empty string. + assertThat(sanitizeMetricName("_total")).isEqualTo("total"); + assertThat(sanitizeMetricName(".total")).isEqualTo("total"); assertThat(sanitizeMetricName("total")).isEqualTo("total"); - assertThat(sanitizeMetricName("my_events_created")).isEqualTo("my_events_created"); - assertThat(sanitizeMetricName("my_histogram_bucket")).isEqualTo("my_histogram_bucket"); + assertThat(sanitizeMetricName("my_events_created")).isEqualTo("my_events"); + assertThat(sanitizeMetricName("my_histogram_bucket")).isEqualTo("my_histogram"); + } + + /** + * Regression test: reserved suffixes must be stripped even when the raw name comes from an + * external system (e.g. JMX Exporter converting a JMX attribute named {@code "Total"} into a + * Prometheus name {@code kafka_consumer_request_total}). + * + *

Without stripping, an UNKNOWN metric would be stored under {@code + * kafka_consumer_request_total} instead of {@code kafka_consumer_request}, breaking registry + * lookups by the expected base name and potentially triggering unintended counter-type inference + * in tools that check for the {@code _total} suffix. + */ + @Test + void testSanitizeMetricNameStripsReservedSuffixForDownstreamTools() { + // A JMX attribute "Total" produces "kafka_consumer_request_total" as the raw name. + // sanitizeMetricName must strip "_total" so that the metric is stored and looked up under + // "kafka_consumer_request", not "kafka_consumer_request_total". + assertThat(sanitizeMetricName("kafka_consumer_request_total")) + .isEqualTo("kafka_consumer_request"); + // Dot variant is stripped too. + assertThat(sanitizeMetricName("kafka_consumer_request.total")) + .isEqualTo("kafka_consumer_request"); + // Multiple chained reserved suffixes are stripped iteratively. + assertThat(sanitizeMetricName("events_total_created")).isEqualTo("events"); } @Test void testSanitizeMetricNameWithUnit() { assertThat(prometheusName(sanitizeMetricName("def", Unit.RATIO))) .isEqualTo("def_" + Unit.RATIO); + // _total is stripped first, then the unit is appended. assertThat(prometheusName(sanitizeMetricName("my_counter_total", Unit.RATIO))) - .isEqualTo("my_counter_total_" + Unit.RATIO); - assertThat(sanitizeMetricName("jvm.info", Unit.RATIO)).isEqualTo("jvm.info_" + Unit.RATIO); - assertThat(sanitizeMetricName("_total", Unit.RATIO)).isEqualTo("_total_" + Unit.RATIO); + .isEqualTo("my_counter_" + Unit.RATIO); + assertThat(sanitizeMetricName("jvm.info", Unit.RATIO)).isEqualTo("jvm_" + Unit.RATIO); + assertThat(sanitizeMetricName("_total", Unit.RATIO)).isEqualTo("total_" + Unit.RATIO); assertThat(sanitizeMetricName("total", Unit.RATIO)).isEqualTo("total_" + Unit.RATIO); } + @Test + void testNormalizeMetricName() { + assertThat(normalizeMetricName("my_counter_total")).isEqualTo("my_counter_total"); + assertThat(normalizeMetricName("jvm.info")).isEqualTo("jvm.info"); + assertThat(normalizeMetricName("jvm_info")).isEqualTo("jvm_info"); + assertThat(normalizeMetricName("a.b")).isEqualTo("a.b"); + assertThat(normalizeMetricName("_total")).isEqualTo("_total"); + assertThat(normalizeMetricName(".total")).isEqualTo(".total"); + assertThat(normalizeMetricName("my_events_created")).isEqualTo("my_events_created"); + assertThat(normalizeMetricName("my_histogram_bucket")).isEqualTo("my_histogram_bucket"); + } + + @Test + void testNormalizeMetricNameWithUnit() { + assertThat(prometheusName(normalizeMetricName("def", Unit.RATIO))) + .isEqualTo("def_" + Unit.RATIO); + assertThat(prometheusName(normalizeMetricName("my_counter_total", Unit.RATIO))) + .isEqualTo("my_counter_total_" + Unit.RATIO); + assertThat(normalizeMetricName("jvm.info", Unit.RATIO)).isEqualTo("jvm.info_" + Unit.RATIO); + assertThat(normalizeMetricName("_total", Unit.RATIO)).isEqualTo("_total_" + Unit.RATIO); + assertThat(normalizeMetricName("total", Unit.RATIO)).isEqualTo("total_" + Unit.RATIO); + } + @Test void testSanitizeLabelName() { assertThat(prometheusName(sanitizeLabelName("0abc.def"))).isEqualTo("_abc_def"); From 92c94e6eb32a81aa3dabcef96856d48daccdba26 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 20 May 2026 11:04:27 +0000 Subject: [PATCH 19/74] fix(deps): update protobuf (#2129) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---|---|---| | [protoc](https://redirect.github.com/protocolbuffers/protobuf) | | major | `34.1` → `35.0` | ![age](https://developer.mend.io/api/mc/badges/age/github-releases/protocolbuffers%2fprotobuf/35.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/github-releases/protocolbuffers%2fprotobuf/34.1/35.0?slim=true) | | [com.google.protobuf:protobuf-java](https://developers.google.com/protocol-buffers/) ([source](https://redirect.github.com/protocolbuffers/protobuf)) | compile | minor | `4.34.1` → `4.35.0` | ![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.protobuf:protobuf-java/4.35.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.protobuf:protobuf-java/4.34.1/4.35.0?slim=true) | --- ### Release Notes

protocolbuffers/protobuf (protoc) ### [`v35.0`](https://redirect.github.com/protocolbuffers/protobuf/releases/tag/v35.0): Protocol Buffers v35.0 [Compare Source](https://redirect.github.com/protocolbuffers/protobuf/compare/v34.1...v35.0-rc2) ### Announcements - This version includes potential breaking changes without a major version bump to: Bazel.\*\* - \[Bazel] Change @​protobuf//bazel/flags:prefer\_prebuilt\_proto flag to True. ([`f9f32d2`](https://redirect.github.com/protocolbuffers/protobuf/commit/f9f32d28007ae692a494e70d6a5e808069938843)) - **This version includes potential breaking changes without a major version bump to: Bazel.** - [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes. ### Bazel - Bazel 9 Support: Upgrade tests to Bazel 9 ([`3ee8d8a`](https://redirect.github.com/protocolbuffers/protobuf/commit/3ee8d8a008a5696f61aa72327e2c4cf2ae068e00)) - Moved `protocopt` flag out of the `cc` dir, since it is not a c++-specific flag. ([`325d8dc`](https://redirect.github.com/protocolbuffers/protobuf/commit/325d8dca2ffdc658824aa6b05d825dcb86cca2cb)) - Add support for bazel 9.x ([#​26201](https://redirect.github.com/protocolbuffers/protobuf/issues/26201)) ([`f08d703`](https://redirect.github.com/protocolbuffers/protobuf/commit/f08d70329211dfd74584c3761da5da5e32ab34f3)) - Breaking change: Change @​protobuf//bazel/flags:prefer\_prebuilt\_proto flag to True. ([`f9f32d2`](https://redirect.github.com/protocolbuffers/protobuf/commit/f9f32d28007ae692a494e70d6a5e808069938843)) - Dropped support for Bazel 7. ([`1816758`](https://redirect.github.com/protocolbuffers/protobuf/commit/181675806987071b1a9af6e22b881cf9c3dca73e)) ### Compiler - Implement the Edition 2026 naming style enforcement feature. This will help prevent field name collisions. ([`ae0d964`](https://redirect.github.com/protocolbuffers/protobuf/commit/ae0d964699968a13977ceabfe7ed0127e125c624)) - Add enum to `enforce_naming_style` feature to avoid field naming collisions which will be implemented in Edition 2026. ([`e4911a1`](https://redirect.github.com/protocolbuffers/protobuf/commit/e4911a17241386611643972b977edaf2ce83468f)) - Fail writing files in protoc CLI if any file output path is relative. ([`3bf2b07`](https://redirect.github.com/protocolbuffers/protobuf/commit/3bf2b07b2a77c8c8840031a3ef5867acf1b97f30)) - Mangle types named `XyzView` if there is any direct sibling named `Xyz` ([`63d6ef0`](https://redirect.github.com/protocolbuffers/protobuf/commit/63d6ef01b0e669333dda6fd91728862725c38968)) - Improve the namespacing selected by rustc used for gencode types in errors. ([`ce2eb73`](https://redirect.github.com/protocolbuffers/protobuf/commit/ce2eb733c7cb025c13a20735e8a8d005ba0fe19e)) - Fully qualify scalar types in Kotlin/Native proto generator. ([`adc8d22`](https://redirect.github.com/protocolbuffers/protobuf/commit/adc8d22a30cc8369d5976c8b2685374e938640a5)) - Change \_opt() accessors to return an std::Option instead of protobuf::Optional ([`6ced612`](https://redirect.github.com/protocolbuffers/protobuf/commit/6ced6127bc5fb4d65ae0cbfad7a5625d7aceab23)) - Make Message's trait bounds much better for generic use ([`be1292f`](https://redirect.github.com/protocolbuffers/protobuf/commit/be1292fbe2fc84ad59b6365a7620625e30114181)) - Support more chars in type URLs in the C++ text-format parser. ([`3a87c6c`](https://redirect.github.com/protocolbuffers/protobuf/commit/3a87c6c1fd7fdb7f88540bf3f378f53d3ca1f00d)) - Validate Feature Support on Custom Options ([`34c1110`](https://redirect.github.com/protocolbuffers/protobuf/commit/34c1110d38f225b0edcb14db965d3a5130e3ab29)) - Trait clarity effort: introduce `Singular` trait, for types which are allowed as simple fields ([`cdbfaf1`](https://redirect.github.com/protocolbuffers/protobuf/commit/cdbfaf118e9906c8ca7c27b641a8abafbd129b0b)) - Trait clarity improvement on Map traits ([`a8daa95`](https://redirect.github.com/protocolbuffers/protobuf/commit/a8daa95057bab1ca7f62830a539dc549359df78f)) ### C++ - Workaround for attribute handling bug in gcc < 13 ([`78dc67e`](https://redirect.github.com/protocolbuffers/protobuf/commit/78dc67e4d598d4e2ec8929105eb2ddbb4bf50935)) - Implement the Edition 2026 naming style enforcement feature. This will help prevent field name collisions. ([`ae0d964`](https://redirect.github.com/protocolbuffers/protobuf/commit/ae0d964699968a13977ceabfe7ed0127e125c624)) - Add enum to `enforce_naming_style` feature to avoid field naming collisions which will be implemented in Edition 2026. ([`e4911a1`](https://redirect.github.com/protocolbuffers/protobuf/commit/e4911a17241386611643972b977edaf2ce83468f)) - Enhance ParseInfoTree to provide location of names and values. ([`1cb4fdb`](https://redirect.github.com/protocolbuffers/protobuf/commit/1cb4fdb8eaaa60917cdbd23cf6f38fc5f1307054)) - Add integer overflow check to RepeatedPtrField::MergeFrom. ([`cb5fe97`](https://redirect.github.com/protocolbuffers/protobuf/commit/cb5fe976f319683934d8153bdedb21355ab2e008)) - Adding sanity check for `ListFields` reflection call ([`555360e`](https://redirect.github.com/protocolbuffers/protobuf/commit/555360e3b52f63e9a29d075c5e6900f7db7fdd2c)) - Introduce `Arena::UniquePtr` and `Arena::Ptr` as smart pointers to better manage ([`bb00218`](https://redirect.github.com/protocolbuffers/protobuf/commit/bb002180b59c957e6b2f0dddecf0e90ef5a26723)) - Bug fix for edition 2024 visibility checking. Visibility checking was not properly applied to service method input and output types. This is now applied properly and will error if method input/output types do not have visibility to those messages. ([`5a56dee`](https://redirect.github.com/protocolbuffers/protobuf/commit/5a56dee4de2b6e6ffcd963054d100fc610171427)) - Fixed data race in Python Free Threading by removing unnecessary `SetHasBitForRepeated()` call. ([`8c1a9a4`](https://redirect.github.com/protocolbuffers/protobuf/commit/8c1a9a4b0163eded7d9ff0c255507ed3163caf1f)) - Add support for bazel 9.x ([#​26201](https://redirect.github.com/protocolbuffers/protobuf/issues/26201)) ([`f08d703`](https://redirect.github.com/protocolbuffers/protobuf/commit/f08d70329211dfd74584c3761da5da5e32ab34f3)) - Add `proto2::sort`/`stable_sort` utilities that behave as the standard ones but are optimized for Protobuf containers. ([`252281f`](https://redirect.github.com/protocolbuffers/protobuf/commit/252281f6be6df834a0f64a7f8d085c0bd679d1da)) - Add `proto2::erase`/`erase_if` utilities that behave as the standard ones but are optimized for Protobuf containers. ([`dc9fb35`](https://redirect.github.com/protocolbuffers/protobuf/commit/dc9fb354dbb75c730cb57856a909015aac5d9595)) - Extend Abseil flag support for enums to include std::vector. ([`bd42ac6`](https://redirect.github.com/protocolbuffers/protobuf/commit/bd42ac6b29603d5ba62d05d8f0dac6064d959b0d)) - Dropped support for Bazel 7. ([`1816758`](https://redirect.github.com/protocolbuffers/protobuf/commit/181675806987071b1a9af6e22b881cf9c3dca73e)) - Add native Abseil flag support to protobuf message types. ([`ec42e19`](https://redirect.github.com/protocolbuffers/protobuf/commit/ec42e190317343e78a5be17962a57e45e3ff439d)) - Support more chars in type URLs in the C++ text-format parser. ([`3a87c6c`](https://redirect.github.com/protocolbuffers/protobuf/commit/3a87c6c1fd7fdb7f88540bf3f378f53d3ca1f00d)) - Stripping empty options ([`d5d6d4c`](https://redirect.github.com/protocolbuffers/protobuf/commit/d5d6d4c89ef7f23b847d9e4fa459e57a4393b28d)) - Creating generic MaybeAddError helper function ([`4bcf773`](https://redirect.github.com/protocolbuffers/protobuf/commit/4bcf773b240132846e8dc3361b7e629fc0926ebb)) - Validate Feature Support on Custom Options ([`34c1110`](https://redirect.github.com/protocolbuffers/protobuf/commit/34c1110d38f225b0edcb14db965d3a5130e3ab29)) - Add bounds checks to `UnsafeArenaExtractSubrange`, `ReleaseLast` and `SwapElements`. ([`d124c2d`](https://redirect.github.com/protocolbuffers/protobuf/commit/d124c2dc26841e5ee0b8d1505438fcf0660c9db0)) - Fix UTF-8 Validation of string extensions in C++ ([`0936f33`](https://redirect.github.com/protocolbuffers/protobuf/commit/0936f33595ef736726f191c087eaabbc5d1c5fc6)) - Remove first implementation of protobuf out of bounds enforcement. ([`507f86b`](https://redirect.github.com/protocolbuffers/protobuf/commit/507f86bd3a9acdffaff10a32e8b48456b2559783)) - Add native Abseil flag support to protobuf enums. ([`a203388`](https://redirect.github.com/protocolbuffers/protobuf/commit/a203388028fc5e3374d30ff3a385202a330fbefb)) - Improve EINTR handling for close in `zero_copy_stream_impl.h` ([`a904af9`](https://redirect.github.com/protocolbuffers/protobuf/commit/a904af9cc8597eea47b3d4c657dd4f36eefa1145)) - Add cc\_proto\_library for MessageSet in //src/google/protobuf/bridge ([`6d23e8e`](https://redirect.github.com/protocolbuffers/protobuf/commit/6d23e8ec14908edda3fdb44027eb87b90499f789)) ### Java - Add BytecodeClassName functions, matching helpers in the java GeneratorNames utility. ([`514aceb`](https://redirect.github.com/protocolbuffers/protobuf/commit/514aceb974fbd55031169b79d2bd9f7646157787)) - Add enum to `enforce_naming_style` feature to avoid field naming collisions which will be implemented in Edition 2026. ([`e4911a1`](https://redirect.github.com/protocolbuffers/protobuf/commit/e4911a17241386611643972b977edaf2ce83468f)) - Avoid toBigIntegerExact in JsonFormat to avoid degenerate parse behavior in the face of large exponents. ([`57093a8`](https://redirect.github.com/protocolbuffers/protobuf/commit/57093a8bd5cb44211f323519a0045b883475666f)) - Dropped support for Bazel 7. ([`1816758`](https://redirect.github.com/protocolbuffers/protobuf/commit/181675806987071b1a9af6e22b881cf9c3dca73e)) - Add native Abseil flag support to protobuf enums. ([`a203388`](https://redirect.github.com/protocolbuffers/protobuf/commit/a203388028fc5e3374d30ff3a385202a330fbefb)) ### Csharp - Implement WriteDelimitedTo(BufferWriter) ([#​21325](https://redirect.github.com/protocolbuffers/protobuf/issues/21325)) ([`407f457`](https://redirect.github.com/protocolbuffers/protobuf/commit/407f4570b201293783f5416cdaae493366bc6b14)) - Add an "include" directory containing WKTs for Google.Protobuf.Tools nuget package. ([`6029d17`](https://redirect.github.com/protocolbuffers/protobuf/commit/6029d174f2eed7a64ad3a42182d08f2f3e66fcf6)) ### Objective-C - ObjC: Block Roots from being created. ([`8274114`](https://redirect.github.com/protocolbuffers/protobuf/commit/827411455abe4a62dd11b2c8afb15a594ff35b42)) - Fix naming convention in c\_function extension syntax ([`e3bee07`](https://redirect.github.com/protocolbuffers/protobuf/commit/e3bee077db853dc0d6e8e04d1e3071018e222faf)) - Modify unit tests to use c\_function extension syntax via ifdefs ([`e1f2f52`](https://redirect.github.com/protocolbuffers/protobuf/commit/e1f2f5272097cfd44dac849d7906b11445e93d38)) ### Rust - Mangle types named `XyzView` if there is any direct sibling named `Xyz` ([`63d6ef0`](https://redirect.github.com/protocolbuffers/protobuf/commit/63d6ef01b0e669333dda6fd91728862725c38968)) - Improve the namespacing selected by rustc used for gencode types in errors. ([`ce2eb73`](https://redirect.github.com/protocolbuffers/protobuf/commit/ce2eb733c7cb025c13a20735e8a8d005ba0fe19e)) - Allow ProtoStr to be used in const contexts. ([`7f7b974`](https://redirect.github.com/protocolbuffers/protobuf/commit/7f7b974fce500ad67ddb9aaa517c0bd6796d479d)) - Make any \&T impl AsView if T impl AsView ([`d787869`](https://redirect.github.com/protocolbuffers/protobuf/commit/d787869082f031e561d0dc7f31e5cfc03848bd15)) - Change \_opt() accessors to return an std::Option instead of protobuf::Optional ([`6ced612`](https://redirect.github.com/protocolbuffers/protobuf/commit/6ced6127bc5fb4d65ae0cbfad7a5625d7aceab23)) - Add some common methods to ProtoStr to make it more ergonomic to use without dropping down to &\[u8] ([`f8daf2f`](https://redirect.github.com/protocolbuffers/protobuf/commit/f8daf2fabc8601e69c547fbf8c0addb6d6837e47)) - Ffi\_11: Define basic arithmetic operations and comparison with underlying type ([`74b6f3f`](https://redirect.github.com/protocolbuffers/protobuf/commit/74b6f3fe0b9a80205309083ab88bd2ab012ed1eb)) - Make Message's trait bounds much better for generic use ([`be1292f`](https://redirect.github.com/protocolbuffers/protobuf/commit/be1292fbe2fc84ad59b6365a7620625e30114181)) - Remove ProxiedInMapValue alias, since it is superceded by MapValue ([`5bde6e8`](https://redirect.github.com/protocolbuffers/protobuf/commit/5bde6e8d3134cdf67a513cbff403d19526df11ad)) - Add fn push\_default(\&mut self) -> SomeMsgMut<> fn for Repeated message type fields. ([`a3bf3ec`](https://redirect.github.com/protocolbuffers/protobuf/commit/a3bf3ec75512e8bc89334b2e245924ad15f6352c)) - Fix that f32 and f64 were incorrectly tagged as legal for MapKeys in RustProto. ([`ab3793e`](https://redirect.github.com/protocolbuffers/protobuf/commit/ab3793e7a8f6270081cc0e74ba2ffd7b7ee35159)) - Trait clarity effort: introduce `Singular` trait, for types which are allowed as simple fields ([`cdbfaf1`](https://redirect.github.com/protocolbuffers/protobuf/commit/cdbfaf118e9906c8ca7c27b641a8abafbd129b0b)) - Trait clarity improvement on Map traits ([`a8daa95`](https://redirect.github.com/protocolbuffers/protobuf/commit/a8daa95057bab1ca7f62830a539dc549359df78f)) - *See also UPB changes below, which may affect Rust.* ### Python - Fix Python text\_format by adding an optional recursion depth limit ([#​26604](https://redirect.github.com/protocolbuffers/protobuf/issues/26604)) ([`8abff6b`](https://redirect.github.com/protocolbuffers/protobuf/commit/8abff6bb4b36575159bf247f3da62f4efa742bdd)) - Fix data race in CMessage lazy initialization for Python freethreading. ([`28e4512`](https://redirect.github.com/protocolbuffers/protobuf/commit/28e451233d38148856587c96bd8864b7e9767587)) - Fixed data race in Python Free Threading by removing unnecessary `SetHasBitForRepeated()` call. ([`8c1a9a4`](https://redirect.github.com/protocolbuffers/protobuf/commit/8c1a9a4b0163eded7d9ff0c255507ed3163caf1f)) - Fix type annotation for FindAllExtensionNumbers() to be a list rather than the more general Iterator. ([`3edd615`](https://redirect.github.com/protocolbuffers/protobuf/commit/3edd61508bed8b58e5190b6c28884d3e21cf5bdc)) - Add type hints to descriptor\_database.py. ([`cbe6403`](https://redirect.github.com/protocolbuffers/protobuf/commit/cbe6403761a4fa349c6612102f048ff584441f09)) - Fixed a bug in `msg.MergeFrom(msg2)` in Python. ([`ab14c0f`](https://redirect.github.com/protocolbuffers/protobuf/commit/ab14c0f8ad88109b99205af9bd2ef961e991ea41)) - Fix NULL byte handling issue in Python Protobuf find symbols in pool ([`059dc7e`](https://redirect.github.com/protocolbuffers/protobuf/commit/059dc7ed3256bd6c247694d92e624590c52a400a)) - Add support for bazel 9.x ([#​26201](https://redirect.github.com/protocolbuffers/protobuf/issues/26201)) ([`f08d703`](https://redirect.github.com/protocolbuffers/protobuf/commit/f08d70329211dfd74584c3761da5da5e32ab34f3)) - Add recursion guards for the following nested messages: ([`b4c3fec`](https://redirect.github.com/protocolbuffers/protobuf/commit/b4c3fecb8599b84967f293806d2db54aff77664b)) - Protobuf Python UPB Free Threading support. ([`f10c1de`](https://redirect.github.com/protocolbuffers/protobuf/commit/f10c1de25fa7285a41978e5d054d03c48d19b9f1)) - Fix Any recursion depth bypass in Python json\_format.ParseDict ([#​25239](https://redirect.github.com/protocolbuffers/protobuf/issues/25239)) ([`d2b0016`](https://redirect.github.com/protocolbuffers/protobuf/commit/d2b001626d137c62dfee6c88c87324102531868b)) - Supports exporting `int` as `int` ([`ea78297`](https://redirect.github.com/protocolbuffers/protobuf/commit/ea78297e0a85dfd319381748d7c93dc69d2c5958)) ### PHP - Fail writing files in protoc CLI if any file output path is relative. ([`3bf2b07`](https://redirect.github.com/protocolbuffers/protobuf/commit/3bf2b07b2a77c8c8840031a3ef5867acf1b97f30)) ##### PHP C-Extension - Fix 1-byte stack overflow in PHP extension int64 formatting ([#​26530](https://redirect.github.com/protocolbuffers/protobuf/issues/26530)) ([`3f04505`](https://redirect.github.com/protocolbuffers/protobuf/commit/3f045053e2a3fe55d0e3bf2b14d4d29e4f863fd5)) - *See also UPB changes below, which may affect PHP C-Extension.* ### Ruby - Gracefully handle payloads >2GB. ([`918ad5b`](https://redirect.github.com/protocolbuffers/protobuf/commit/918ad5bff3f174a417dded6b58ceab4cf6720e65)) ##### Ruby C-Extension - Gracefully handle payloads >2GB. ([`918ad5b`](https://redirect.github.com/protocolbuffers/protobuf/commit/918ad5bff3f174a417dded6b58ceab4cf6720e65)) - *See also UPB changes below, which may affect Ruby C-Extension.* ### UPB (Python/PHP/Ruby C-Extension) - Fixed two GCC-only issues around upb's generated extension registry. - Avoid theoretical overflow of uintptr\_t in AddAllLinkedExtensions ([`e7785e0`](https://redirect.github.com/protocolbuffers/protobuf/commit/e7785e0509aab295692061fb569c00645d3ef3a4)) - Test(proto): Add message to test oneof name conflict resolution ([`29476e1`](https://redirect.github.com/protocolbuffers/protobuf/commit/29476e1a91dc3dfbc10a8d4a5bce998896452258)) - Add recursion guards for the following nested messages: ([`b4c3fec`](https://redirect.github.com/protocolbuffers/protobuf/commit/b4c3fecb8599b84967f293806d2db54aff77664b))
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Gregor Zeitlinger Signed-off-by: Jay DeLuca --- mise.toml | 2 +- pom.xml | 2 +- .../Metrics.java | 2070 +++++++++-------- .../expositionformats/generated/Metrics.java | 2 +- 4 files changed, 1062 insertions(+), 1014 deletions(-) rename prometheus-metrics-exposition-formats/src/main/generated/io/prometheus/metrics/expositionformats/generated/{com_google_protobuf_4_34_1 => com_google_protobuf_4_35_0}/Metrics.java (88%) diff --git a/mise.toml b/mise.toml index f46c0143c..35fbec943 100644 --- a/mise.toml +++ b/mise.toml @@ -3,7 +3,7 @@ hugo = "0.161.1" java = "temurin-25.0.3+9.0.LTS" node = "24.15.0" -protoc = "34.1" +protoc = "35.0" # Linters actionlint = "1.7.12" diff --git a/pom.xml b/pom.xml index 9486f07c5..0b2d2c21a 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ UTF-8 --module-name-need-to-be-overridden-- - 4.34.1 + 4.35.0 33.6.0-jre 6.0.3 2.28.0-alpha diff --git a/prometheus-metrics-exposition-formats/src/main/generated/io/prometheus/metrics/expositionformats/generated/com_google_protobuf_4_34_1/Metrics.java b/prometheus-metrics-exposition-formats/src/main/generated/io/prometheus/metrics/expositionformats/generated/com_google_protobuf_4_35_0/Metrics.java similarity index 88% rename from prometheus-metrics-exposition-formats/src/main/generated/io/prometheus/metrics/expositionformats/generated/com_google_protobuf_4_34_1/Metrics.java rename to prometheus-metrics-exposition-formats/src/main/generated/io/prometheus/metrics/expositionformats/generated/com_google_protobuf_4_35_0/Metrics.java index a73297fff..cb15f5a2a 100644 --- a/prometheus-metrics-exposition-formats/src/main/generated/io/prometheus/metrics/expositionformats/generated/com_google_protobuf_4_34_1/Metrics.java +++ b/prometheus-metrics-exposition-formats/src/main/generated/io/prometheus/metrics/expositionformats/generated/com_google_protobuf_4_35_0/Metrics.java @@ -2,9 +2,9 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! // NO CHECKED-IN PROTOBUF GENCODE // source: src/main/protobuf/metrics.proto -// Protobuf Java Version: 4.34.1 +// Protobuf Java Version: 4.35.0 -package io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1; +package io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0; @com.google.protobuf.Generated public class Metrics extends com.google.protobuf.GeneratedFile { @@ -13,8 +13,8 @@ protected Metrics() {} com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, /* major= */ 4, - /* minor= */ 34, - /* patch= */ 1, + /* minor= */ 35, + /* patch= */ 0, /* suffix= */ "", "Metrics"); } @@ -86,8 +86,8 @@ public enum MetricType com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, /* major= */ 4, - /* minor= */ 34, - /* patch= */ 1, + /* minor= */ 35, + /* patch= */ 0, /* suffix= */ "", "MetricType"); } @@ -193,7 +193,7 @@ public MetricType findValueByNumber(int number) { } public static com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.getDescriptor().getEnumType(0); + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.getDescriptor().getEnumType(0); } private static final MetricType[] VALUES = values(); @@ -266,8 +266,8 @@ public static final class LabelPair extends com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, /* major= */ 4, - /* minor= */ 34, - /* patch= */ 1, + /* minor= */ 35, + /* patch= */ 0, /* suffix= */ "", "LabelPair"); } @@ -282,20 +282,20 @@ private LabelPair() { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_LabelPair_descriptor; + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_LabelPair_descriptor; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_LabelPair_descriptor; + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_LabelPair_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_LabelPair_fieldAccessorTable + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_LabelPair_fieldAccessorTable .ensureFieldAccessorsInitialized( - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.Builder.class); + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.Builder.class); } private int bitField0_; @@ -419,19 +419,23 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) } getUnknownFields().writeTo(output); } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; + private int computeSerializedSize_0() { + int size = 0; if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.GeneratedMessage.computeStringSize(1, name_); } if (((bitField0_ & 0x00000002) != 0)) { size += com.google.protobuf.GeneratedMessage.computeStringSize(2, value_); } + return size; + } + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += computeSerializedSize_0(); size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -442,10 +446,10 @@ public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair)) { + if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair)) { return super.equals(obj); } - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair) obj; + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair) obj; if (hasName() != other.hasName()) return false; if (hasName()) { @@ -481,44 +485,44 @@ public int hashCode() { return hash; } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair parseFrom(byte[] data) + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair parseFrom(java.io.InputStream input) + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessage .parseWithIOException(PARSER, input); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -526,26 +530,26 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto .parseWithIOException(PARSER, input, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair parseDelimitedFrom(java.io.InputStream input) + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessage .parseDelimitedWithIOException(PARSER, input); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair parseDelimitedFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessage .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessage .parseWithIOException(PARSER, input); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -558,7 +562,7 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair prototype) { + public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override @@ -579,21 +583,21 @@ protected Builder newBuilderForType( public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder implements // @@protoc_insertion_point(builder_implements:io.prometheus.client.LabelPair) - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPairOrBuilder { + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPairOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_LabelPair_descriptor; + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_LabelPair_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_LabelPair_fieldAccessorTable + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_LabelPair_fieldAccessorTable .ensureFieldAccessorsInitialized( - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.Builder.class); + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.Builder.class); } - // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.newBuilder() + // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.newBuilder() private Builder() { } @@ -615,17 +619,17 @@ public Builder clear() { @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_LabelPair_descriptor; + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_LabelPair_descriptor; } @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair getDefaultInstanceForType() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.getDefaultInstance(); + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair getDefaultInstanceForType() { + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.getDefaultInstance(); } @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair build() { - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair result = buildPartial(); + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair build() { + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -633,14 +637,14 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3 } @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair buildPartial() { - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair(this); + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair buildPartial() { + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair(this); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } - private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair result) { + private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair result) { int from_bitField0_ = bitField0_; int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) != 0)) { @@ -656,16 +660,16 @@ private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair) { - return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair)other); + if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair) { + return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair other) { - if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.getDefaultInstance()) return this; + public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair other) { + if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.getDefaultInstance()) return this; if (other.hasName()) { name_ = other.name_; bitField0_ |= 0x00000001; @@ -893,12 +897,12 @@ public Builder setValueBytes( } // @@protoc_insertion_point(class_scope:io.prometheus.client.LabelPair) - private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair DEFAULT_INSTANCE; + private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair(); + DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair(); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair getDefaultInstance() { + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair getDefaultInstance() { return DEFAULT_INSTANCE; } @@ -934,7 +938,7 @@ public com.google.protobuf.Parser getParserForType() { } @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair getDefaultInstanceForType() { + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair getDefaultInstanceForType() { return DEFAULT_INSTANCE; } @@ -967,8 +971,8 @@ public static final class Gauge extends com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, /* major= */ 4, - /* minor= */ 34, - /* patch= */ 1, + /* minor= */ 35, + /* patch= */ 0, /* suffix= */ "", "Gauge"); } @@ -981,20 +985,20 @@ private Gauge() { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Gauge_descriptor; + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Gauge_descriptor; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Gauge_descriptor; + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Gauge_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Gauge_fieldAccessorTable + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Gauge_fieldAccessorTable .ensureFieldAccessorsInitialized( - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge.Builder.class); + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge.Builder.class); } private int bitField0_; @@ -1036,17 +1040,21 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) } getUnknownFields().writeTo(output); } - + private int computeSerializedSize_0() { + int size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(1, value_); + } + return size; + } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; - if (((bitField0_ & 0x00000001) != 0)) { - size += com.google.protobuf.CodedOutputStream - .computeDoubleSize(1, value_); - } + size += computeSerializedSize_0(); size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -1057,10 +1065,10 @@ public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge)) { + if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge)) { return super.equals(obj); } - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge) obj; + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge) obj; if (hasValue() != other.hasValue()) return false; if (hasValue()) { @@ -1089,44 +1097,44 @@ public int hashCode() { return hash; } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge parseFrom(byte[] data) + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge parseFrom(java.io.InputStream input) + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessage .parseWithIOException(PARSER, input); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -1134,26 +1142,26 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto .parseWithIOException(PARSER, input, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge parseDelimitedFrom(java.io.InputStream input) + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessage .parseDelimitedWithIOException(PARSER, input); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge parseDelimitedFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessage .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessage .parseWithIOException(PARSER, input); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -1166,7 +1174,7 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge prototype) { + public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override @@ -1187,21 +1195,21 @@ protected Builder newBuilderForType( public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder implements // @@protoc_insertion_point(builder_implements:io.prometheus.client.Gauge) - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.GaugeOrBuilder { + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.GaugeOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Gauge_descriptor; + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Gauge_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Gauge_fieldAccessorTable + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Gauge_fieldAccessorTable .ensureFieldAccessorsInitialized( - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge.Builder.class); + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge.Builder.class); } - // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge.newBuilder() + // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge.newBuilder() private Builder() { } @@ -1222,17 +1230,17 @@ public Builder clear() { @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Gauge_descriptor; + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Gauge_descriptor; } @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge getDefaultInstanceForType() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge.getDefaultInstance(); + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge getDefaultInstanceForType() { + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge.getDefaultInstance(); } @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge build() { - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge result = buildPartial(); + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge build() { + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -1240,14 +1248,14 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3 } @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge buildPartial() { - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge(this); + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge buildPartial() { + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge(this); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } - private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge result) { + private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge result) { int from_bitField0_ = bitField0_; int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) != 0)) { @@ -1259,16 +1267,16 @@ private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge) { - return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge)other); + if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge) { + return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge other) { - if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge.getDefaultInstance()) return this; + public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge other) { + if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge.getDefaultInstance()) return this; if (other.hasValue()) { setValue(other.getValue()); } @@ -1364,12 +1372,12 @@ public Builder clearValue() { } // @@protoc_insertion_point(class_scope:io.prometheus.client.Gauge) - private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge DEFAULT_INSTANCE; + private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge(); + DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge(); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge getDefaultInstance() { + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge getDefaultInstance() { return DEFAULT_INSTANCE; } @@ -1405,7 +1413,7 @@ public com.google.protobuf.Parser getParserForType() { } @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge getDefaultInstanceForType() { + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge getDefaultInstanceForType() { return DEFAULT_INSTANCE; } @@ -1435,11 +1443,11 @@ public interface CounterOrBuilder extends * optional .io.prometheus.client.Exemplar exemplar = 2; * @return The exemplar. */ - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar getExemplar(); + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar getExemplar(); /** * optional .io.prometheus.client.Exemplar exemplar = 2; */ - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.ExemplarOrBuilder getExemplarOrBuilder(); + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.ExemplarOrBuilder getExemplarOrBuilder(); /** * optional .google.protobuf.Timestamp created_timestamp = 3; @@ -1468,8 +1476,8 @@ public static final class Counter extends com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, /* major= */ 4, - /* minor= */ 34, - /* patch= */ 1, + /* minor= */ 35, + /* patch= */ 0, /* suffix= */ "", "Counter"); } @@ -1482,20 +1490,20 @@ private Counter() { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Counter_descriptor; + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Counter_descriptor; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Counter_descriptor; + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Counter_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Counter_fieldAccessorTable + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Counter_fieldAccessorTable .ensureFieldAccessorsInitialized( - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter.Builder.class); + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter.Builder.class); } private int bitField0_; @@ -1519,7 +1527,7 @@ public double getValue() { } public static final int EXEMPLAR_FIELD_NUMBER = 2; - private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar exemplar_; + private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar exemplar_; /** * optional .io.prometheus.client.Exemplar exemplar = 2; * @return Whether the exemplar field is set. @@ -1533,15 +1541,15 @@ public boolean hasExemplar() { * @return The exemplar. */ @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar getExemplar() { - return exemplar_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.getDefaultInstance() : exemplar_; + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar getExemplar() { + return exemplar_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.getDefaultInstance() : exemplar_; } /** * optional .io.prometheus.client.Exemplar exemplar = 2; */ @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.ExemplarOrBuilder getExemplarOrBuilder() { - return exemplar_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.getDefaultInstance() : exemplar_; + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.ExemplarOrBuilder getExemplarOrBuilder() { + return exemplar_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.getDefaultInstance() : exemplar_; } public static final int CREATED_TIMESTAMP_FIELD_NUMBER = 3; @@ -1595,13 +1603,8 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) } getUnknownFields().writeTo(output); } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; + private int computeSerializedSize_0() { + int size = 0; if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(1, value_); @@ -1614,6 +1617,15 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(3, getCreatedTimestamp()); } + return size; + } + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += computeSerializedSize_0(); size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -1624,10 +1636,10 @@ public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter)) { + if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter)) { return super.equals(obj); } - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter) obj; + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter) obj; if (hasValue() != other.hasValue()) return false; if (hasValue()) { @@ -1674,44 +1686,44 @@ public int hashCode() { return hash; } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter parseFrom(byte[] data) + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter parseFrom(java.io.InputStream input) + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessage .parseWithIOException(PARSER, input); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -1719,26 +1731,26 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto .parseWithIOException(PARSER, input, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter parseDelimitedFrom(java.io.InputStream input) + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessage .parseDelimitedWithIOException(PARSER, input); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter parseDelimitedFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessage .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessage .parseWithIOException(PARSER, input); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -1751,7 +1763,7 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter prototype) { + public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override @@ -1772,21 +1784,21 @@ protected Builder newBuilderForType( public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder implements // @@protoc_insertion_point(builder_implements:io.prometheus.client.Counter) - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.CounterOrBuilder { + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.CounterOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Counter_descriptor; + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Counter_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Counter_fieldAccessorTable + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Counter_fieldAccessorTable .ensureFieldAccessorsInitialized( - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter.Builder.class); + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter.Builder.class); } - // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter.newBuilder() + // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter.newBuilder() private Builder() { maybeForceBuilderInitialization(); } @@ -1824,17 +1836,17 @@ public Builder clear() { @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Counter_descriptor; + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Counter_descriptor; } @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter getDefaultInstanceForType() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter.getDefaultInstance(); + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter getDefaultInstanceForType() { + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter.getDefaultInstance(); } @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter build() { - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter result = buildPartial(); + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter build() { + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -1842,14 +1854,14 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3 } @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter buildPartial() { - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter(this); + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter buildPartial() { + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter(this); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } - private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter result) { + private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter result) { int from_bitField0_ = bitField0_; int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) != 0)) { @@ -1873,16 +1885,16 @@ private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter) { - return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter)other); + if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter) { + return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter other) { - if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter.getDefaultInstance()) return this; + public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter other) { + if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter.getDefaultInstance()) return this; if (other.hasValue()) { setValue(other.getValue()); } @@ -1994,9 +2006,9 @@ public Builder clearValue() { return this; } - private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar exemplar_; + private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar exemplar_; private com.google.protobuf.SingleFieldBuilder< - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.ExemplarOrBuilder> exemplarBuilder_; + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.ExemplarOrBuilder> exemplarBuilder_; /** * optional .io.prometheus.client.Exemplar exemplar = 2; * @return Whether the exemplar field is set. @@ -2008,9 +2020,9 @@ public boolean hasExemplar() { * optional .io.prometheus.client.Exemplar exemplar = 2; * @return The exemplar. */ - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar getExemplar() { + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar getExemplar() { if (exemplarBuilder_ == null) { - return exemplar_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.getDefaultInstance() : exemplar_; + return exemplar_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.getDefaultInstance() : exemplar_; } else { return exemplarBuilder_.getMessage(); } @@ -2018,7 +2030,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3 /** * optional .io.prometheus.client.Exemplar exemplar = 2; */ - public Builder setExemplar(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar value) { + public Builder setExemplar(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar value) { if (exemplarBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -2035,7 +2047,7 @@ public Builder setExemplar(io.prometheus.metrics.expositionformats.generated.com * optional .io.prometheus.client.Exemplar exemplar = 2; */ public Builder setExemplar( - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.Builder builderForValue) { + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.Builder builderForValue) { if (exemplarBuilder_ == null) { exemplar_ = builderForValue.build(); } else { @@ -2048,11 +2060,11 @@ public Builder setExemplar( /** * optional .io.prometheus.client.Exemplar exemplar = 2; */ - public Builder mergeExemplar(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar value) { + public Builder mergeExemplar(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar value) { if (exemplarBuilder_ == null) { if (((bitField0_ & 0x00000002) != 0) && exemplar_ != null && - exemplar_ != io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.getDefaultInstance()) { + exemplar_ != io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.getDefaultInstance()) { getExemplarBuilder().mergeFrom(value); } else { exemplar_ = value; @@ -2082,7 +2094,7 @@ public Builder clearExemplar() { /** * optional .io.prometheus.client.Exemplar exemplar = 2; */ - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.Builder getExemplarBuilder() { + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.Builder getExemplarBuilder() { bitField0_ |= 0x00000002; onChanged(); return internalGetExemplarFieldBuilder().getBuilder(); @@ -2090,23 +2102,23 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3 /** * optional .io.prometheus.client.Exemplar exemplar = 2; */ - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.ExemplarOrBuilder getExemplarOrBuilder() { + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.ExemplarOrBuilder getExemplarOrBuilder() { if (exemplarBuilder_ != null) { return exemplarBuilder_.getMessageOrBuilder(); } else { return exemplar_ == null ? - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.getDefaultInstance() : exemplar_; + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.getDefaultInstance() : exemplar_; } } /** * optional .io.prometheus.client.Exemplar exemplar = 2; */ private com.google.protobuf.SingleFieldBuilder< - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.ExemplarOrBuilder> + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.ExemplarOrBuilder> internalGetExemplarFieldBuilder() { if (exemplarBuilder_ == null) { exemplarBuilder_ = new com.google.protobuf.SingleFieldBuilder< - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.ExemplarOrBuilder>( + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.ExemplarOrBuilder>( getExemplar(), getParentForChildren(), isClean()); @@ -2240,12 +2252,12 @@ public com.google.protobuf.TimestampOrBuilder getCreatedTimestampOrBuilder() { } // @@protoc_insertion_point(class_scope:io.prometheus.client.Counter) - private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter DEFAULT_INSTANCE; + private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter(); + DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter(); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter getDefaultInstance() { + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter getDefaultInstance() { return DEFAULT_INSTANCE; } @@ -2281,7 +2293,7 @@ public com.google.protobuf.Parser getParserForType() { } @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter getDefaultInstanceForType() { + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter getDefaultInstanceForType() { return DEFAULT_INSTANCE; } @@ -2325,8 +2337,8 @@ public static final class Quantile extends com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, /* major= */ 4, - /* minor= */ 34, - /* patch= */ 1, + /* minor= */ 35, + /* patch= */ 0, /* suffix= */ "", "Quantile"); } @@ -2339,20 +2351,20 @@ private Quantile() { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Quantile_descriptor; + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Quantile_descriptor; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Quantile_descriptor; + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Quantile_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Quantile_fieldAccessorTable + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Quantile_fieldAccessorTable .ensureFieldAccessorsInitialized( - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile.Builder.class); + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile.Builder.class); } private int bitField0_; @@ -2416,13 +2428,8 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) } getUnknownFields().writeTo(output); } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; + private int computeSerializedSize_0() { + int size = 0; if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(1, quantile_); @@ -2431,6 +2438,15 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeDoubleSize(2, value_); } + return size; + } + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += computeSerializedSize_0(); size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -2441,10 +2457,10 @@ public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile)) { + if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile)) { return super.equals(obj); } - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile) obj; + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile) obj; if (hasQuantile() != other.hasQuantile()) return false; if (hasQuantile()) { @@ -2484,44 +2500,44 @@ public int hashCode() { return hash; } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile parseFrom(byte[] data) + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile parseFrom(java.io.InputStream input) + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessage .parseWithIOException(PARSER, input); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -2529,26 +2545,26 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto .parseWithIOException(PARSER, input, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile parseDelimitedFrom(java.io.InputStream input) + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessage .parseDelimitedWithIOException(PARSER, input); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile parseDelimitedFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessage .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessage .parseWithIOException(PARSER, input); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -2561,7 +2577,7 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile prototype) { + public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override @@ -2582,21 +2598,21 @@ protected Builder newBuilderForType( public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder implements // @@protoc_insertion_point(builder_implements:io.prometheus.client.Quantile) - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.QuantileOrBuilder { + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.QuantileOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Quantile_descriptor; + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Quantile_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Quantile_fieldAccessorTable + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Quantile_fieldAccessorTable .ensureFieldAccessorsInitialized( - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile.Builder.class); + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile.Builder.class); } - // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile.newBuilder() + // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile.newBuilder() private Builder() { } @@ -2618,17 +2634,17 @@ public Builder clear() { @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Quantile_descriptor; + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Quantile_descriptor; } @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile getDefaultInstanceForType() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile.getDefaultInstance(); + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile getDefaultInstanceForType() { + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile.getDefaultInstance(); } @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile build() { - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile result = buildPartial(); + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile build() { + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -2636,14 +2652,14 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3 } @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile buildPartial() { - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile(this); + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile buildPartial() { + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile(this); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } - private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile result) { + private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile result) { int from_bitField0_ = bitField0_; int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) != 0)) { @@ -2659,16 +2675,16 @@ private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile) { - return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile)other); + if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile) { + return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile other) { - if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile.getDefaultInstance()) return this; + public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile other) { + if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile.getDefaultInstance()) return this; if (other.hasQuantile()) { setQuantile(other.getQuantile()); } @@ -2812,12 +2828,12 @@ public Builder clearValue() { } // @@protoc_insertion_point(class_scope:io.prometheus.client.Quantile) - private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile DEFAULT_INSTANCE; + private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile(); + DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile(); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile getDefaultInstance() { + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile getDefaultInstance() { return DEFAULT_INSTANCE; } @@ -2853,7 +2869,7 @@ public com.google.protobuf.Parser getParserForType() { } @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile getDefaultInstanceForType() { + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile getDefaultInstanceForType() { return DEFAULT_INSTANCE; } @@ -2888,12 +2904,12 @@ public interface SummaryOrBuilder extends /** * repeated .io.prometheus.client.Quantile quantile = 3; */ - java.util.List + java.util.List getQuantileList(); /** * repeated .io.prometheus.client.Quantile quantile = 3; */ - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile getQuantile(int index); + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile getQuantile(int index); /** * repeated .io.prometheus.client.Quantile quantile = 3; */ @@ -2901,12 +2917,12 @@ public interface SummaryOrBuilder extends /** * repeated .io.prometheus.client.Quantile quantile = 3; */ - java.util.List + java.util.List getQuantileOrBuilderList(); /** * repeated .io.prometheus.client.Quantile quantile = 3; */ - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.QuantileOrBuilder getQuantileOrBuilder( + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.QuantileOrBuilder getQuantileOrBuilder( int index); /** @@ -2936,8 +2952,8 @@ public static final class Summary extends com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, /* major= */ 4, - /* minor= */ 34, - /* patch= */ 1, + /* minor= */ 35, + /* patch= */ 0, /* suffix= */ "", "Summary"); } @@ -2951,20 +2967,20 @@ private Summary() { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Summary_descriptor; + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Summary_descriptor; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Summary_descriptor; + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Summary_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Summary_fieldAccessorTable + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Summary_fieldAccessorTable .ensureFieldAccessorsInitialized( - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary.Builder.class); + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary.Builder.class); } private int bitField0_; @@ -3008,19 +3024,19 @@ public double getSampleSum() { public static final int QUANTILE_FIELD_NUMBER = 3; @SuppressWarnings("serial") - private java.util.List quantile_; + private java.util.List quantile_; /** * repeated .io.prometheus.client.Quantile quantile = 3; */ @java.lang.Override - public java.util.List getQuantileList() { + public java.util.List getQuantileList() { return quantile_; } /** * repeated .io.prometheus.client.Quantile quantile = 3; */ @java.lang.Override - public java.util.List + public java.util.List getQuantileOrBuilderList() { return quantile_; } @@ -3035,14 +3051,14 @@ public int getQuantileCount() { * repeated .io.prometheus.client.Quantile quantile = 3; */ @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile getQuantile(int index) { + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile getQuantile(int index) { return quantile_.get(index); } /** * repeated .io.prometheus.client.Quantile quantile = 3; */ @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.QuantileOrBuilder getQuantileOrBuilder( + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.QuantileOrBuilder getQuantileOrBuilder( int index) { return quantile_.get(index); } @@ -3101,13 +3117,8 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) } getUnknownFields().writeTo(output); } - - @java.lang.Override - public int getSerializedSize() { - int size = memoizedSize; - if (size != -1) return size; - - size = 0; + private int computeSerializedSize_0() { + int size = 0; if (((bitField0_ & 0x00000001) != 0)) { size += com.google.protobuf.CodedOutputStream .computeUInt64Size(1, sampleCount_); @@ -3129,6 +3140,15 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(4, getCreatedTimestamp()); } + return size; + } + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += computeSerializedSize_0(); size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -3139,10 +3159,10 @@ public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary)) { + if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary)) { return super.equals(obj); } - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary) obj; + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary) obj; if (hasSampleCount() != other.hasSampleCount()) return false; if (hasSampleCount()) { @@ -3196,44 +3216,44 @@ public int hashCode() { return hash; } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary parseFrom(byte[] data) + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary parseFrom(java.io.InputStream input) + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessage .parseWithIOException(PARSER, input); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -3241,26 +3261,26 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto .parseWithIOException(PARSER, input, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary parseDelimitedFrom(java.io.InputStream input) + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessage .parseDelimitedWithIOException(PARSER, input); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary parseDelimitedFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessage .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessage .parseWithIOException(PARSER, input); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -3273,7 +3293,7 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary prototype) { + public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override @@ -3294,21 +3314,21 @@ protected Builder newBuilderForType( public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder implements // @@protoc_insertion_point(builder_implements:io.prometheus.client.Summary) - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.SummaryOrBuilder { + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.SummaryOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Summary_descriptor; + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Summary_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Summary_fieldAccessorTable + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Summary_fieldAccessorTable .ensureFieldAccessorsInitialized( - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary.Builder.class); + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary.Builder.class); } - // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary.newBuilder() + // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary.newBuilder() private Builder() { maybeForceBuilderInitialization(); } @@ -3349,17 +3369,17 @@ public Builder clear() { @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Summary_descriptor; + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Summary_descriptor; } @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary getDefaultInstanceForType() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary.getDefaultInstance(); + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary getDefaultInstanceForType() { + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary.getDefaultInstance(); } @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary build() { - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary result = buildPartial(); + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary build() { + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -3367,15 +3387,15 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3 } @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary buildPartial() { - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary(this); + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary buildPartial() { + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary(this); buildPartialRepeatedFields(result); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } - private void buildPartialRepeatedFields(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary result) { + private void buildPartialRepeatedFields(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary result) { if (quantileBuilder_ == null) { if (((bitField0_ & 0x00000004) != 0)) { quantile_ = java.util.Collections.unmodifiableList(quantile_); @@ -3387,7 +3407,7 @@ private void buildPartialRepeatedFields(io.prometheus.metrics.expositionformats. } } - private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary result) { + private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary result) { int from_bitField0_ = bitField0_; int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) != 0)) { @@ -3409,16 +3429,16 @@ private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary) { - return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary)other); + if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary) { + return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary other) { - if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary.getDefaultInstance()) return this; + public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary other) { + if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary.getDefaultInstance()) return this; if (other.hasSampleCount()) { setSampleCount(other.getSampleCount()); } @@ -3491,9 +3511,9 @@ public Builder mergeFrom( break; } // case 17 case 26: { - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile m = + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile m = input.readMessage( - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile.parser(), + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile.parser(), extensionRegistry); if (quantileBuilder_ == null) { ensureQuantileIsMutable(); @@ -3607,22 +3627,22 @@ public Builder clearSampleSum() { return this; } - private java.util.List quantile_ = + private java.util.List quantile_ = java.util.Collections.emptyList(); private void ensureQuantileIsMutable() { if (!((bitField0_ & 0x00000004) != 0)) { - quantile_ = new java.util.ArrayList(quantile_); + quantile_ = new java.util.ArrayList(quantile_); bitField0_ |= 0x00000004; } } private com.google.protobuf.RepeatedFieldBuilder< - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.QuantileOrBuilder> quantileBuilder_; + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.QuantileOrBuilder> quantileBuilder_; /** * repeated .io.prometheus.client.Quantile quantile = 3; */ - public java.util.List getQuantileList() { + public java.util.List getQuantileList() { if (quantileBuilder_ == null) { return java.util.Collections.unmodifiableList(quantile_); } else { @@ -3642,7 +3662,7 @@ public int getQuantileCount() { /** * repeated .io.prometheus.client.Quantile quantile = 3; */ - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile getQuantile(int index) { + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile getQuantile(int index) { if (quantileBuilder_ == null) { return quantile_.get(index); } else { @@ -3653,7 +3673,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3 * repeated .io.prometheus.client.Quantile quantile = 3; */ public Builder setQuantile( - int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile value) { + int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile value) { if (quantileBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -3670,7 +3690,7 @@ public Builder setQuantile( * repeated .io.prometheus.client.Quantile quantile = 3; */ public Builder setQuantile( - int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile.Builder builderForValue) { + int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile.Builder builderForValue) { if (quantileBuilder_ == null) { ensureQuantileIsMutable(); quantile_.set(index, builderForValue.build()); @@ -3683,7 +3703,7 @@ public Builder setQuantile( /** * repeated .io.prometheus.client.Quantile quantile = 3; */ - public Builder addQuantile(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile value) { + public Builder addQuantile(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile value) { if (quantileBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -3700,7 +3720,7 @@ public Builder addQuantile(io.prometheus.metrics.expositionformats.generated.com * repeated .io.prometheus.client.Quantile quantile = 3; */ public Builder addQuantile( - int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile value) { + int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile value) { if (quantileBuilder_ == null) { if (value == null) { throw new NullPointerException(); @@ -3717,7 +3737,7 @@ public Builder addQuantile( * repeated .io.prometheus.client.Quantile quantile = 3; */ public Builder addQuantile( - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile.Builder builderForValue) { + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile.Builder builderForValue) { if (quantileBuilder_ == null) { ensureQuantileIsMutable(); quantile_.add(builderForValue.build()); @@ -3731,7 +3751,7 @@ public Builder addQuantile( * repeated .io.prometheus.client.Quantile quantile = 3; */ public Builder addQuantile( - int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile.Builder builderForValue) { + int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile.Builder builderForValue) { if (quantileBuilder_ == null) { ensureQuantileIsMutable(); quantile_.add(index, builderForValue.build()); @@ -3745,7 +3765,7 @@ public Builder addQuantile( * repeated .io.prometheus.client.Quantile quantile = 3; */ public Builder addAllQuantile( - java.lang.Iterable values) { + java.lang.Iterable values) { if (quantileBuilder_ == null) { ensureQuantileIsMutable(); com.google.protobuf.AbstractMessageLite.Builder.addAll( @@ -3785,14 +3805,14 @@ public Builder removeQuantile(int index) { /** * repeated .io.prometheus.client.Quantile quantile = 3; */ - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile.Builder getQuantileBuilder( + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile.Builder getQuantileBuilder( int index) { return internalGetQuantileFieldBuilder().getBuilder(index); } /** * repeated .io.prometheus.client.Quantile quantile = 3; */ - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.QuantileOrBuilder getQuantileOrBuilder( + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.QuantileOrBuilder getQuantileOrBuilder( int index) { if (quantileBuilder_ == null) { return quantile_.get(index); } else { @@ -3802,7 +3822,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3 /** * repeated .io.prometheus.client.Quantile quantile = 3; */ - public java.util.List + public java.util.List getQuantileOrBuilderList() { if (quantileBuilder_ != null) { return quantileBuilder_.getMessageOrBuilderList(); @@ -3813,31 +3833,31 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3 /** * repeated .io.prometheus.client.Quantile quantile = 3; */ - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile.Builder addQuantileBuilder() { + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile.Builder addQuantileBuilder() { return internalGetQuantileFieldBuilder().addBuilder( - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile.getDefaultInstance()); + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile.getDefaultInstance()); } /** * repeated .io.prometheus.client.Quantile quantile = 3; */ - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile.Builder addQuantileBuilder( + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile.Builder addQuantileBuilder( int index) { return internalGetQuantileFieldBuilder().addBuilder( - index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile.getDefaultInstance()); + index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile.getDefaultInstance()); } /** * repeated .io.prometheus.client.Quantile quantile = 3; */ - public java.util.List + public java.util.List getQuantileBuilderList() { return internalGetQuantileFieldBuilder().getBuilderList(); } private com.google.protobuf.RepeatedFieldBuilder< - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.QuantileOrBuilder> + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.QuantileOrBuilder> internalGetQuantileFieldBuilder() { if (quantileBuilder_ == null) { quantileBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Quantile.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.QuantileOrBuilder>( + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Quantile.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.QuantileOrBuilder>( quantile_, ((bitField0_ & 0x00000004) != 0), getParentForChildren(), @@ -3972,12 +3992,12 @@ public com.google.protobuf.TimestampOrBuilder getCreatedTimestampOrBuilder() { } // @@protoc_insertion_point(class_scope:io.prometheus.client.Summary) - private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary DEFAULT_INSTANCE; + private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary(); + DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary(); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary getDefaultInstance() { + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary getDefaultInstance() { return DEFAULT_INSTANCE; } @@ -4013,7 +4033,7 @@ public com.google.protobuf.Parser getParserForType() { } @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary getDefaultInstanceForType() { + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary getDefaultInstanceForType() { return DEFAULT_INSTANCE; } @@ -4046,8 +4066,8 @@ public static final class Untyped extends com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, /* major= */ 4, - /* minor= */ 34, - /* patch= */ 1, + /* minor= */ 35, + /* patch= */ 0, /* suffix= */ "", "Untyped"); } @@ -4060,20 +4080,20 @@ private Untyped() { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Untyped_descriptor; + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Untyped_descriptor; } @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Untyped_descriptor; + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Untyped_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Untyped_fieldAccessorTable + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Untyped_fieldAccessorTable .ensureFieldAccessorsInitialized( - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped.Builder.class); + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped.Builder.class); } private int bitField0_; @@ -4115,17 +4135,21 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) } getUnknownFields().writeTo(output); } - + private int computeSerializedSize_0() { + int size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(1, value_); + } + return size; + } @java.lang.Override public int getSerializedSize() { int size = memoizedSize; if (size != -1) return size; size = 0; - if (((bitField0_ & 0x00000001) != 0)) { - size += com.google.protobuf.CodedOutputStream - .computeDoubleSize(1, value_); - } + size += computeSerializedSize_0(); size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -4136,10 +4160,10 @@ public boolean equals(final java.lang.Object obj) { if (obj == this) { return true; } - if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped)) { + if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped)) { return super.equals(obj); } - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped) obj; + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped) obj; if (hasValue() != other.hasValue()) return false; if (hasValue()) { @@ -4168,44 +4192,44 @@ public int hashCode() { return hash; } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped parseFrom( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped parseFrom( java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped parseFrom( com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped parseFrom(byte[] data) + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped parseFrom( byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException { return PARSER.parseFrom(data, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped parseFrom(java.io.InputStream input) + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped parseFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessage .parseWithIOException(PARSER, input); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped parseFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -4213,26 +4237,26 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto .parseWithIOException(PARSER, input, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped parseDelimitedFrom(java.io.InputStream input) + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessage .parseDelimitedWithIOException(PARSER, input); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped parseDelimitedFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped parseDelimitedFrom( java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { return com.google.protobuf.GeneratedMessage .parseDelimitedWithIOException(PARSER, input, extensionRegistry); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped parseFrom( com.google.protobuf.CodedInputStream input) throws java.io.IOException { return com.google.protobuf.GeneratedMessage .parseWithIOException(PARSER, input); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped parseFrom( + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped parseFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException { @@ -4245,7 +4269,7 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto public static Builder newBuilder() { return DEFAULT_INSTANCE.toBuilder(); } - public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped prototype) { + public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped prototype) { return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); } @java.lang.Override @@ -4266,21 +4290,21 @@ protected Builder newBuilderForType( public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder implements // @@protoc_insertion_point(builder_implements:io.prometheus.client.Untyped) - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.UntypedOrBuilder { + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.UntypedOrBuilder { public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Untyped_descriptor; + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Untyped_descriptor; } @java.lang.Override protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Untyped_fieldAccessorTable + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Untyped_fieldAccessorTable .ensureFieldAccessorsInitialized( - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped.Builder.class); + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped.Builder.class); } - // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped.newBuilder() + // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped.newBuilder() private Builder() { } @@ -4301,17 +4325,17 @@ public Builder clear() { @java.lang.Override public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Untyped_descriptor; + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Untyped_descriptor; } @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped getDefaultInstanceForType() { - return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped.getDefaultInstance(); + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped getDefaultInstanceForType() { + return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped.getDefaultInstance(); } @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped build() { - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped result = buildPartial(); + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped build() { + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped result = buildPartial(); if (!result.isInitialized()) { throw newUninitializedMessageException(result); } @@ -4319,14 +4343,14 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3 } @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped buildPartial() { - io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped(this); + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped buildPartial() { + io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped(this); if (bitField0_ != 0) { buildPartial0(result); } onBuilt(); return result; } - private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped result) { + private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped result) { int from_bitField0_ = bitField0_; int to_bitField0_ = 0; if (((from_bitField0_ & 0x00000001) != 0)) { @@ -4338,16 +4362,16 @@ private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com @java.lang.Override public Builder mergeFrom(com.google.protobuf.Message other) { - if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped) { - return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped)other); + if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped) { + return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped)other); } else { super.mergeFrom(other); return this; } } - public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped other) { - if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped.getDefaultInstance()) return this; + public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped other) { + if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped.getDefaultInstance()) return this; if (other.hasValue()) { setValue(other.getValue()); } @@ -4443,12 +4467,12 @@ public Builder clearValue() { } // @@protoc_insertion_point(class_scope:io.prometheus.client.Untyped) - private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped DEFAULT_INSTANCE; + private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped DEFAULT_INSTANCE; static { - DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped(); + DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped(); } - public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped getDefaultInstance() { + public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped getDefaultInstance() { return DEFAULT_INSTANCE; } @@ -4484,7 +4508,7 @@ public com.google.protobuf.Parser getParserForType() { } @java.lang.Override - public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped getDefaultInstanceForType() { + public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped getDefaultInstanceForType() { return DEFAULT_INSTANCE; } @@ -4542,7 +4566,7 @@ public interface HistogramOrBuilder extends * * repeated .io.prometheus.client.Bucket bucket = 3; */ - java.util.List + java.util.List getBucketList(); /** *
@@ -4551,7 +4575,7 @@ public interface HistogramOrBuilder extends
      *
      * repeated .io.prometheus.client.Bucket bucket = 3;
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket getBucket(int index);
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket getBucket(int index);
     /**
      * 
      * Buckets for the conventional histogram.
@@ -4567,7 +4591,7 @@ public interface HistogramOrBuilder extends
      *
      * repeated .io.prometheus.client.Bucket bucket = 3;
      */
-    java.util.List 
+    java.util.List 
         getBucketOrBuilderList();
     /**
      * 
@@ -4576,7 +4600,7 @@ public interface HistogramOrBuilder extends
      *
      * repeated .io.prometheus.client.Bucket bucket = 3;
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketOrBuilder getBucketOrBuilder(
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketOrBuilder getBucketOrBuilder(
         int index);
 
     /**
@@ -4685,7 +4709,7 @@ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Met
      *
      * repeated .io.prometheus.client.BucketSpan negative_span = 9;
      */
-    java.util.List 
+    java.util.List 
         getNegativeSpanList();
     /**
      * 
@@ -4694,7 +4718,7 @@ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Met
      *
      * repeated .io.prometheus.client.BucketSpan negative_span = 9;
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan getNegativeSpan(int index);
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan getNegativeSpan(int index);
     /**
      * 
      * Negative buckets for the native histogram.
@@ -4710,7 +4734,7 @@ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Met
      *
      * repeated .io.prometheus.client.BucketSpan negative_span = 9;
      */
-    java.util.List 
+    java.util.List 
         getNegativeSpanOrBuilderList();
     /**
      * 
@@ -4719,7 +4743,7 @@ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Met
      *
      * repeated .io.prometheus.client.BucketSpan negative_span = 9;
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpanOrBuilder getNegativeSpanOrBuilder(
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpanOrBuilder getNegativeSpanOrBuilder(
         int index);
 
     /**
@@ -4796,7 +4820,7 @@ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Met
      *
      * repeated .io.prometheus.client.BucketSpan positive_span = 12;
      */
-    java.util.List 
+    java.util.List 
         getPositiveSpanList();
     /**
      * 
@@ -4808,7 +4832,7 @@ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Met
      *
      * repeated .io.prometheus.client.BucketSpan positive_span = 12;
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan getPositiveSpan(int index);
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan getPositiveSpan(int index);
     /**
      * 
      * Positive buckets for the native histogram.
@@ -4830,7 +4854,7 @@ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Met
      *
      * repeated .io.prometheus.client.BucketSpan positive_span = 12;
      */
-    java.util.List 
+    java.util.List 
         getPositiveSpanOrBuilderList();
     /**
      * 
@@ -4842,7 +4866,7 @@ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Met
      *
      * repeated .io.prometheus.client.BucketSpan positive_span = 12;
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpanOrBuilder getPositiveSpanOrBuilder(
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpanOrBuilder getPositiveSpanOrBuilder(
         int index);
 
     /**
@@ -4916,7 +4940,7 @@ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Met
      *
      * repeated .io.prometheus.client.Exemplar exemplars = 16;
      */
-    java.util.List 
+    java.util.List 
         getExemplarsList();
     /**
      * 
@@ -4925,7 +4949,7 @@ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Met
      *
      * repeated .io.prometheus.client.Exemplar exemplars = 16;
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar getExemplars(int index);
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar getExemplars(int index);
     /**
      * 
      * Only used for native histograms. These exemplars MUST have a timestamp.
@@ -4941,7 +4965,7 @@ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Met
      *
      * repeated .io.prometheus.client.Exemplar exemplars = 16;
      */
-    java.util.List 
+    java.util.List 
         getExemplarsOrBuilderList();
     /**
      * 
@@ -4950,7 +4974,7 @@ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Met
      *
      * repeated .io.prometheus.client.Exemplar exemplars = 16;
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.ExemplarOrBuilder getExemplarsOrBuilder(
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.ExemplarOrBuilder getExemplarsOrBuilder(
         int index);
   }
   /**
@@ -4965,8 +4989,8 @@ public static final class Histogram extends
       com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
         com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
         /* major= */ 4,
-        /* minor= */ 34,
-        /* patch= */ 1,
+        /* minor= */ 35,
+        /* patch= */ 0,
         /* suffix= */ "",
         "Histogram");
     }
@@ -4987,20 +5011,20 @@ private Histogram() {
 
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
-      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Histogram_descriptor;
+      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Histogram_descriptor;
     }
 
     @java.lang.Override
     public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
-      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Histogram_descriptor;
+      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Histogram_descriptor;
     }
 
     @java.lang.Override
     protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
         internalGetFieldAccessorTable() {
-      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Histogram_fieldAccessorTable
+      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Histogram_fieldAccessorTable
           .ensureFieldAccessorsInitialized(
-              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram.Builder.class);
+              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram.Builder.class);
     }
 
     private int bitField0_;
@@ -5071,7 +5095,7 @@ public double getSampleSum() {
 
     public static final int BUCKET_FIELD_NUMBER = 3;
     @SuppressWarnings("serial")
-    private java.util.List bucket_;
+    private java.util.List bucket_;
     /**
      * 
      * Buckets for the conventional histogram.
@@ -5080,7 +5104,7 @@ public double getSampleSum() {
      * repeated .io.prometheus.client.Bucket bucket = 3;
      */
     @java.lang.Override
-    public java.util.List getBucketList() {
+    public java.util.List getBucketList() {
       return bucket_;
     }
     /**
@@ -5091,7 +5115,7 @@ public java.util.Listrepeated .io.prometheus.client.Bucket bucket = 3;
      */
     @java.lang.Override
-    public java.util.List 
+    public java.util.List 
         getBucketOrBuilderList() {
       return bucket_;
     }
@@ -5114,7 +5138,7 @@ public int getBucketCount() {
      * repeated .io.prometheus.client.Bucket bucket = 3;
      */
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket getBucket(int index) {
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket getBucket(int index) {
       return bucket_.get(index);
     }
     /**
@@ -5125,7 +5149,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
      * repeated .io.prometheus.client.Bucket bucket = 3;
      */
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketOrBuilder getBucketOrBuilder(
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketOrBuilder getBucketOrBuilder(
         int index) {
       return bucket_.get(index);
     }
@@ -5274,7 +5298,7 @@ public double getZeroCountFloat() {
 
     public static final int NEGATIVE_SPAN_FIELD_NUMBER = 9;
     @SuppressWarnings("serial")
-    private java.util.List negativeSpan_;
+    private java.util.List negativeSpan_;
     /**
      * 
      * Negative buckets for the native histogram.
@@ -5283,7 +5307,7 @@ public double getZeroCountFloat() {
      * repeated .io.prometheus.client.BucketSpan negative_span = 9;
      */
     @java.lang.Override
-    public java.util.List getNegativeSpanList() {
+    public java.util.List getNegativeSpanList() {
       return negativeSpan_;
     }
     /**
@@ -5294,7 +5318,7 @@ public java.util.Listrepeated .io.prometheus.client.BucketSpan negative_span = 9;
      */
     @java.lang.Override
-    public java.util.List 
+    public java.util.List 
         getNegativeSpanOrBuilderList() {
       return negativeSpan_;
     }
@@ -5317,7 +5341,7 @@ public int getNegativeSpanCount() {
      * repeated .io.prometheus.client.BucketSpan negative_span = 9;
      */
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan getNegativeSpan(int index) {
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan getNegativeSpan(int index) {
       return negativeSpan_.get(index);
     }
     /**
@@ -5328,7 +5352,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
      * repeated .io.prometheus.client.BucketSpan negative_span = 9;
      */
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpanOrBuilder getNegativeSpanOrBuilder(
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpanOrBuilder getNegativeSpanOrBuilder(
         int index) {
       return negativeSpan_.get(index);
     }
@@ -5423,7 +5447,7 @@ public double getNegativeCount(int index) {
 
     public static final int POSITIVE_SPAN_FIELD_NUMBER = 12;
     @SuppressWarnings("serial")
-    private java.util.List positiveSpan_;
+    private java.util.List positiveSpan_;
     /**
      * 
      * Positive buckets for the native histogram.
@@ -5435,7 +5459,7 @@ public double getNegativeCount(int index) {
      * repeated .io.prometheus.client.BucketSpan positive_span = 12;
      */
     @java.lang.Override
-    public java.util.List getPositiveSpanList() {
+    public java.util.List getPositiveSpanList() {
       return positiveSpan_;
     }
     /**
@@ -5449,7 +5473,7 @@ public java.util.Listrepeated .io.prometheus.client.BucketSpan positive_span = 12;
      */
     @java.lang.Override
-    public java.util.List 
+    public java.util.List 
         getPositiveSpanOrBuilderList() {
       return positiveSpan_;
     }
@@ -5478,7 +5502,7 @@ public int getPositiveSpanCount() {
      * repeated .io.prometheus.client.BucketSpan positive_span = 12;
      */
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan getPositiveSpan(int index) {
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan getPositiveSpan(int index) {
       return positiveSpan_.get(index);
     }
     /**
@@ -5492,7 +5516,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
      * repeated .io.prometheus.client.BucketSpan positive_span = 12;
      */
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpanOrBuilder getPositiveSpanOrBuilder(
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpanOrBuilder getPositiveSpanOrBuilder(
         int index) {
       return positiveSpan_.get(index);
     }
@@ -5587,7 +5611,7 @@ public double getPositiveCount(int index) {
 
     public static final int EXEMPLARS_FIELD_NUMBER = 16;
     @SuppressWarnings("serial")
-    private java.util.List exemplars_;
+    private java.util.List exemplars_;
     /**
      * 
      * Only used for native histograms. These exemplars MUST have a timestamp.
@@ -5596,7 +5620,7 @@ public double getPositiveCount(int index) {
      * repeated .io.prometheus.client.Exemplar exemplars = 16;
      */
     @java.lang.Override
-    public java.util.List getExemplarsList() {
+    public java.util.List getExemplarsList() {
       return exemplars_;
     }
     /**
@@ -5607,7 +5631,7 @@ public java.util.Listrepeated .io.prometheus.client.Exemplar exemplars = 16;
      */
     @java.lang.Override
-    public java.util.List 
+    public java.util.List 
         getExemplarsOrBuilderList() {
       return exemplars_;
     }
@@ -5630,7 +5654,7 @@ public int getExemplarsCount() {
      * repeated .io.prometheus.client.Exemplar exemplars = 16;
      */
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar getExemplars(int index) {
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar getExemplars(int index) {
       return exemplars_.get(index);
     }
     /**
@@ -5641,7 +5665,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
      * repeated .io.prometheus.client.Exemplar exemplars = 16;
      */
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.ExemplarOrBuilder getExemplarsOrBuilder(
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.ExemplarOrBuilder getExemplarsOrBuilder(
         int index) {
       return exemplars_.get(index);
     }
@@ -5710,13 +5734,8 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       }
       getUnknownFields().writeTo(output);
     }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
+    private int computeSerializedSize_0() {
+      int size = 0;
       if (((bitField0_ & 0x00000001) != 0)) {
         size += com.google.protobuf.CodedOutputStream
           .computeUInt64Size(1, sampleCount_);
@@ -5815,6 +5834,15 @@ public int getSerializedSize() {
             }
             size += 2 * count;
           }
+      return size;
+    }
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      size += computeSerializedSize_0();
       size += getUnknownFields().getSerializedSize();
       memoizedSize = size;
       return size;
@@ -5825,10 +5853,10 @@ public boolean equals(final java.lang.Object obj) {
       if (obj == this) {
        return true;
       }
-      if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram)) {
+      if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram)) {
         return super.equals(obj);
       }
-      io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram) obj;
+      io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram) obj;
 
       if (hasSampleCount() != other.hasSampleCount()) return false;
       if (hasSampleCount()) {
@@ -5976,44 +6004,44 @@ public int hashCode() {
       return hash;
     }
 
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram parseFrom(
         java.nio.ByteBuffer data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram parseFrom(
         java.nio.ByteBuffer data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram parseFrom(
         com.google.protobuf.ByteString data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram parseFrom(
         com.google.protobuf.ByteString data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram parseFrom(byte[] data)
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram parseFrom(byte[] data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram parseFrom(
         byte[] data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram parseFrom(java.io.InputStream input)
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram parseFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessage
           .parseWithIOException(PARSER, input);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram parseFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
@@ -6021,26 +6049,26 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto
           .parseWithIOException(PARSER, input, extensionRegistry);
     }
 
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram parseDelimitedFrom(java.io.InputStream input)
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessage
           .parseDelimitedWithIOException(PARSER, input);
     }
 
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram parseDelimitedFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram parseDelimitedFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessage
           .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram parseFrom(
         com.google.protobuf.CodedInputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessage
           .parseWithIOException(PARSER, input);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram parseFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
@@ -6053,7 +6081,7 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto
     public static Builder newBuilder() {
       return DEFAULT_INSTANCE.toBuilder();
     }
-    public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram prototype) {
+    public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram prototype) {
       return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
     }
     @java.lang.Override
@@ -6074,21 +6102,21 @@ protected Builder newBuilderForType(
     public static final class Builder extends
         com.google.protobuf.GeneratedMessage.Builder implements
         // @@protoc_insertion_point(builder_implements:io.prometheus.client.Histogram)
-        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.HistogramOrBuilder {
+        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.HistogramOrBuilder {
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
-        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Histogram_descriptor;
+        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Histogram_descriptor;
       }
 
       @java.lang.Override
       protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
           internalGetFieldAccessorTable() {
-        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Histogram_fieldAccessorTable
+        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Histogram_fieldAccessorTable
             .ensureFieldAccessorsInitialized(
-                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram.Builder.class);
+                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram.Builder.class);
       }
 
-      // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram.newBuilder()
+      // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram.newBuilder()
       private Builder() {
         maybeForceBuilderInitialization();
       }
@@ -6162,17 +6190,17 @@ public Builder clear() {
       @java.lang.Override
       public com.google.protobuf.Descriptors.Descriptor
           getDescriptorForType() {
-        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Histogram_descriptor;
+        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Histogram_descriptor;
       }
 
       @java.lang.Override
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram getDefaultInstanceForType() {
-        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram.getDefaultInstance();
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram getDefaultInstanceForType() {
+        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram.getDefaultInstance();
       }
 
       @java.lang.Override
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram build() {
-        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram result = buildPartial();
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram build() {
+        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram result = buildPartial();
         if (!result.isInitialized()) {
           throw newUninitializedMessageException(result);
         }
@@ -6180,15 +6208,15 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
       }
 
       @java.lang.Override
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram buildPartial() {
-        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram(this);
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram buildPartial() {
+        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram(this);
         buildPartialRepeatedFields(result);
         if (bitField0_ != 0) { buildPartial0(result); }
         onBuilt();
         return result;
       }
 
-      private void buildPartialRepeatedFields(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram result) {
+      private void buildPartialRepeatedFields(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram result) {
         if (bucketBuilder_ == null) {
           if (((bitField0_ & 0x00000008) != 0)) {
             bucket_ = java.util.Collections.unmodifiableList(bucket_);
@@ -6227,7 +6255,7 @@ private void buildPartialRepeatedFields(io.prometheus.metrics.expositionformats.
         }
       }
 
-      private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram result) {
+      private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram result) {
         int from_bitField0_ = bitField0_;
         int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -6285,16 +6313,16 @@ private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com
 
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram) {
-          return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram)other);
+        if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram) {
+          return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram)other);
         } else {
           super.mergeFrom(other);
           return this;
         }
       }
 
-      public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram other) {
-        if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram.getDefaultInstance()) return this;
+      public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram other) {
+        if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram.getDefaultInstance()) return this;
         if (other.hasSampleCount()) {
           setSampleCount(other.getSampleCount());
         }
@@ -6504,9 +6532,9 @@ public Builder mergeFrom(
                 break;
               } // case 17
               case 26: {
-                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket m =
+                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket m =
                     input.readMessage(
-                        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket.parser(),
+                        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket.parser(),
                         extensionRegistry);
                 if (bucketBuilder_ == null) {
                   ensureBucketIsMutable();
@@ -6542,9 +6570,9 @@ public Builder mergeFrom(
                 break;
               } // case 65
               case 74: {
-                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan m =
+                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan m =
                     input.readMessage(
-                        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.parser(),
+                        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.parser(),
                         extensionRegistry);
                 if (negativeSpanBuilder_ == null) {
                   ensureNegativeSpanIsMutable();
@@ -6588,9 +6616,9 @@ public Builder mergeFrom(
                 break;
               } // case 90
               case 98: {
-                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan m =
+                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan m =
                     input.readMessage(
-                        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.parser(),
+                        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.parser(),
                         extensionRegistry);
                 if (positiveSpanBuilder_ == null) {
                   ensurePositiveSpanIsMutable();
@@ -6641,9 +6669,9 @@ public Builder mergeFrom(
                 break;
               } // case 122
               case 130: {
-                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar m =
+                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar m =
                     input.readMessage(
-                        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.parser(),
+                        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.parser(),
                         extensionRegistry);
                 if (exemplarsBuilder_ == null) {
                   ensureExemplarsIsMutable();
@@ -6806,17 +6834,17 @@ public Builder clearSampleSum() {
         return this;
       }
 
-      private java.util.List bucket_ =
+      private java.util.List bucket_ =
         java.util.Collections.emptyList();
       private void ensureBucketIsMutable() {
         if (!((bitField0_ & 0x00000008) != 0)) {
-          bucket_ = new java.util.ArrayList(bucket_);
+          bucket_ = new java.util.ArrayList(bucket_);
           bitField0_ |= 0x00000008;
          }
       }
 
       private com.google.protobuf.RepeatedFieldBuilder<
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketOrBuilder> bucketBuilder_;
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketOrBuilder> bucketBuilder_;
 
       /**
        * 
@@ -6825,7 +6853,7 @@ private void ensureBucketIsMutable() {
        *
        * repeated .io.prometheus.client.Bucket bucket = 3;
        */
-      public java.util.List getBucketList() {
+      public java.util.List getBucketList() {
         if (bucketBuilder_ == null) {
           return java.util.Collections.unmodifiableList(bucket_);
         } else {
@@ -6853,7 +6881,7 @@ public int getBucketCount() {
        *
        * repeated .io.prometheus.client.Bucket bucket = 3;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket getBucket(int index) {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket getBucket(int index) {
         if (bucketBuilder_ == null) {
           return bucket_.get(index);
         } else {
@@ -6868,7 +6896,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        * repeated .io.prometheus.client.Bucket bucket = 3;
        */
       public Builder setBucket(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket value) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket value) {
         if (bucketBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -6889,7 +6917,7 @@ public Builder setBucket(
        * repeated .io.prometheus.client.Bucket bucket = 3;
        */
       public Builder setBucket(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket.Builder builderForValue) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket.Builder builderForValue) {
         if (bucketBuilder_ == null) {
           ensureBucketIsMutable();
           bucket_.set(index, builderForValue.build());
@@ -6906,7 +6934,7 @@ public Builder setBucket(
        *
        * repeated .io.prometheus.client.Bucket bucket = 3;
        */
-      public Builder addBucket(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket value) {
+      public Builder addBucket(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket value) {
         if (bucketBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -6927,7 +6955,7 @@ public Builder addBucket(io.prometheus.metrics.expositionformats.generated.com_g
        * repeated .io.prometheus.client.Bucket bucket = 3;
        */
       public Builder addBucket(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket value) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket value) {
         if (bucketBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -6948,7 +6976,7 @@ public Builder addBucket(
        * repeated .io.prometheus.client.Bucket bucket = 3;
        */
       public Builder addBucket(
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket.Builder builderForValue) {
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket.Builder builderForValue) {
         if (bucketBuilder_ == null) {
           ensureBucketIsMutable();
           bucket_.add(builderForValue.build());
@@ -6966,7 +6994,7 @@ public Builder addBucket(
        * repeated .io.prometheus.client.Bucket bucket = 3;
        */
       public Builder addBucket(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket.Builder builderForValue) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket.Builder builderForValue) {
         if (bucketBuilder_ == null) {
           ensureBucketIsMutable();
           bucket_.add(index, builderForValue.build());
@@ -6984,7 +7012,7 @@ public Builder addBucket(
        * repeated .io.prometheus.client.Bucket bucket = 3;
        */
       public Builder addAllBucket(
-          java.lang.Iterable values) {
+          java.lang.Iterable values) {
         if (bucketBuilder_ == null) {
           ensureBucketIsMutable();
           com.google.protobuf.AbstractMessageLite.Builder.addAll(
@@ -7036,7 +7064,7 @@ public Builder removeBucket(int index) {
        *
        * repeated .io.prometheus.client.Bucket bucket = 3;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket.Builder getBucketBuilder(
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket.Builder getBucketBuilder(
           int index) {
         return internalGetBucketFieldBuilder().getBuilder(index);
       }
@@ -7047,7 +7075,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        *
        * repeated .io.prometheus.client.Bucket bucket = 3;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketOrBuilder getBucketOrBuilder(
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketOrBuilder getBucketOrBuilder(
           int index) {
         if (bucketBuilder_ == null) {
           return bucket_.get(index);  } else {
@@ -7061,7 +7089,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        *
        * repeated .io.prometheus.client.Bucket bucket = 3;
        */
-      public java.util.List 
+      public java.util.List 
            getBucketOrBuilderList() {
         if (bucketBuilder_ != null) {
           return bucketBuilder_.getMessageOrBuilderList();
@@ -7076,9 +7104,9 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        *
        * repeated .io.prometheus.client.Bucket bucket = 3;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket.Builder addBucketBuilder() {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket.Builder addBucketBuilder() {
         return internalGetBucketFieldBuilder().addBuilder(
-            io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket.getDefaultInstance());
+            io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket.getDefaultInstance());
       }
       /**
        * 
@@ -7087,10 +7115,10 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        *
        * repeated .io.prometheus.client.Bucket bucket = 3;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket.Builder addBucketBuilder(
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket.Builder addBucketBuilder(
           int index) {
         return internalGetBucketFieldBuilder().addBuilder(
-            index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket.getDefaultInstance());
+            index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket.getDefaultInstance());
       }
       /**
        * 
@@ -7099,16 +7127,16 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        *
        * repeated .io.prometheus.client.Bucket bucket = 3;
        */
-      public java.util.List 
+      public java.util.List 
            getBucketBuilderList() {
         return internalGetBucketFieldBuilder().getBuilderList();
       }
       private com.google.protobuf.RepeatedFieldBuilder<
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketOrBuilder> 
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketOrBuilder> 
           internalGetBucketFieldBuilder() {
         if (bucketBuilder_ == null) {
           bucketBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketOrBuilder>(
+              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketOrBuilder>(
                   bucket_,
                   ((bitField0_ & 0x00000008) != 0),
                   getParentForChildren(),
@@ -7479,17 +7507,17 @@ public Builder clearZeroCountFloat() {
         return this;
       }
 
-      private java.util.List negativeSpan_ =
+      private java.util.List negativeSpan_ =
         java.util.Collections.emptyList();
       private void ensureNegativeSpanIsMutable() {
         if (!((bitField0_ & 0x00000200) != 0)) {
-          negativeSpan_ = new java.util.ArrayList(negativeSpan_);
+          negativeSpan_ = new java.util.ArrayList(negativeSpan_);
           bitField0_ |= 0x00000200;
          }
       }
 
       private com.google.protobuf.RepeatedFieldBuilder<
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpanOrBuilder> negativeSpanBuilder_;
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpanOrBuilder> negativeSpanBuilder_;
 
       /**
        * 
@@ -7498,7 +7526,7 @@ private void ensureNegativeSpanIsMutable() {
        *
        * repeated .io.prometheus.client.BucketSpan negative_span = 9;
        */
-      public java.util.List getNegativeSpanList() {
+      public java.util.List getNegativeSpanList() {
         if (negativeSpanBuilder_ == null) {
           return java.util.Collections.unmodifiableList(negativeSpan_);
         } else {
@@ -7526,7 +7554,7 @@ public int getNegativeSpanCount() {
        *
        * repeated .io.prometheus.client.BucketSpan negative_span = 9;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan getNegativeSpan(int index) {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan getNegativeSpan(int index) {
         if (negativeSpanBuilder_ == null) {
           return negativeSpan_.get(index);
         } else {
@@ -7541,7 +7569,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        * repeated .io.prometheus.client.BucketSpan negative_span = 9;
        */
       public Builder setNegativeSpan(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan value) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan value) {
         if (negativeSpanBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -7562,7 +7590,7 @@ public Builder setNegativeSpan(
        * repeated .io.prometheus.client.BucketSpan negative_span = 9;
        */
       public Builder setNegativeSpan(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.Builder builderForValue) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.Builder builderForValue) {
         if (negativeSpanBuilder_ == null) {
           ensureNegativeSpanIsMutable();
           negativeSpan_.set(index, builderForValue.build());
@@ -7579,7 +7607,7 @@ public Builder setNegativeSpan(
        *
        * repeated .io.prometheus.client.BucketSpan negative_span = 9;
        */
-      public Builder addNegativeSpan(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan value) {
+      public Builder addNegativeSpan(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan value) {
         if (negativeSpanBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -7600,7 +7628,7 @@ public Builder addNegativeSpan(io.prometheus.metrics.expositionformats.generated
        * repeated .io.prometheus.client.BucketSpan negative_span = 9;
        */
       public Builder addNegativeSpan(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan value) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan value) {
         if (negativeSpanBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -7621,7 +7649,7 @@ public Builder addNegativeSpan(
        * repeated .io.prometheus.client.BucketSpan negative_span = 9;
        */
       public Builder addNegativeSpan(
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.Builder builderForValue) {
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.Builder builderForValue) {
         if (negativeSpanBuilder_ == null) {
           ensureNegativeSpanIsMutable();
           negativeSpan_.add(builderForValue.build());
@@ -7639,7 +7667,7 @@ public Builder addNegativeSpan(
        * repeated .io.prometheus.client.BucketSpan negative_span = 9;
        */
       public Builder addNegativeSpan(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.Builder builderForValue) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.Builder builderForValue) {
         if (negativeSpanBuilder_ == null) {
           ensureNegativeSpanIsMutable();
           negativeSpan_.add(index, builderForValue.build());
@@ -7657,7 +7685,7 @@ public Builder addNegativeSpan(
        * repeated .io.prometheus.client.BucketSpan negative_span = 9;
        */
       public Builder addAllNegativeSpan(
-          java.lang.Iterable values) {
+          java.lang.Iterable values) {
         if (negativeSpanBuilder_ == null) {
           ensureNegativeSpanIsMutable();
           com.google.protobuf.AbstractMessageLite.Builder.addAll(
@@ -7709,7 +7737,7 @@ public Builder removeNegativeSpan(int index) {
        *
        * repeated .io.prometheus.client.BucketSpan negative_span = 9;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.Builder getNegativeSpanBuilder(
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.Builder getNegativeSpanBuilder(
           int index) {
         return internalGetNegativeSpanFieldBuilder().getBuilder(index);
       }
@@ -7720,7 +7748,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        *
        * repeated .io.prometheus.client.BucketSpan negative_span = 9;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpanOrBuilder getNegativeSpanOrBuilder(
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpanOrBuilder getNegativeSpanOrBuilder(
           int index) {
         if (negativeSpanBuilder_ == null) {
           return negativeSpan_.get(index);  } else {
@@ -7734,7 +7762,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        *
        * repeated .io.prometheus.client.BucketSpan negative_span = 9;
        */
-      public java.util.List 
+      public java.util.List 
            getNegativeSpanOrBuilderList() {
         if (negativeSpanBuilder_ != null) {
           return negativeSpanBuilder_.getMessageOrBuilderList();
@@ -7749,9 +7777,9 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        *
        * repeated .io.prometheus.client.BucketSpan negative_span = 9;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.Builder addNegativeSpanBuilder() {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.Builder addNegativeSpanBuilder() {
         return internalGetNegativeSpanFieldBuilder().addBuilder(
-            io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.getDefaultInstance());
+            io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.getDefaultInstance());
       }
       /**
        * 
@@ -7760,10 +7788,10 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        *
        * repeated .io.prometheus.client.BucketSpan negative_span = 9;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.Builder addNegativeSpanBuilder(
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.Builder addNegativeSpanBuilder(
           int index) {
         return internalGetNegativeSpanFieldBuilder().addBuilder(
-            index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.getDefaultInstance());
+            index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.getDefaultInstance());
       }
       /**
        * 
@@ -7772,16 +7800,16 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        *
        * repeated .io.prometheus.client.BucketSpan negative_span = 9;
        */
-      public java.util.List 
+      public java.util.List 
            getNegativeSpanBuilderList() {
         return internalGetNegativeSpanFieldBuilder().getBuilderList();
       }
       private com.google.protobuf.RepeatedFieldBuilder<
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpanOrBuilder> 
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpanOrBuilder> 
           internalGetNegativeSpanFieldBuilder() {
         if (negativeSpanBuilder_ == null) {
           negativeSpanBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpanOrBuilder>(
+              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpanOrBuilder>(
                   negativeSpan_,
                   ((bitField0_ & 0x00000200) != 0),
                   getParentForChildren(),
@@ -8035,17 +8063,17 @@ public Builder clearNegativeCount() {
         return this;
       }
 
-      private java.util.List positiveSpan_ =
+      private java.util.List positiveSpan_ =
         java.util.Collections.emptyList();
       private void ensurePositiveSpanIsMutable() {
         if (!((bitField0_ & 0x00001000) != 0)) {
-          positiveSpan_ = new java.util.ArrayList(positiveSpan_);
+          positiveSpan_ = new java.util.ArrayList(positiveSpan_);
           bitField0_ |= 0x00001000;
          }
       }
 
       private com.google.protobuf.RepeatedFieldBuilder<
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpanOrBuilder> positiveSpanBuilder_;
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpanOrBuilder> positiveSpanBuilder_;
 
       /**
        * 
@@ -8057,7 +8085,7 @@ private void ensurePositiveSpanIsMutable() {
        *
        * repeated .io.prometheus.client.BucketSpan positive_span = 12;
        */
-      public java.util.List getPositiveSpanList() {
+      public java.util.List getPositiveSpanList() {
         if (positiveSpanBuilder_ == null) {
           return java.util.Collections.unmodifiableList(positiveSpan_);
         } else {
@@ -8091,7 +8119,7 @@ public int getPositiveSpanCount() {
        *
        * repeated .io.prometheus.client.BucketSpan positive_span = 12;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan getPositiveSpan(int index) {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan getPositiveSpan(int index) {
         if (positiveSpanBuilder_ == null) {
           return positiveSpan_.get(index);
         } else {
@@ -8109,7 +8137,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        * repeated .io.prometheus.client.BucketSpan positive_span = 12;
        */
       public Builder setPositiveSpan(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan value) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan value) {
         if (positiveSpanBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -8133,7 +8161,7 @@ public Builder setPositiveSpan(
        * repeated .io.prometheus.client.BucketSpan positive_span = 12;
        */
       public Builder setPositiveSpan(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.Builder builderForValue) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.Builder builderForValue) {
         if (positiveSpanBuilder_ == null) {
           ensurePositiveSpanIsMutable();
           positiveSpan_.set(index, builderForValue.build());
@@ -8153,7 +8181,7 @@ public Builder setPositiveSpan(
        *
        * repeated .io.prometheus.client.BucketSpan positive_span = 12;
        */
-      public Builder addPositiveSpan(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan value) {
+      public Builder addPositiveSpan(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan value) {
         if (positiveSpanBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -8177,7 +8205,7 @@ public Builder addPositiveSpan(io.prometheus.metrics.expositionformats.generated
        * repeated .io.prometheus.client.BucketSpan positive_span = 12;
        */
       public Builder addPositiveSpan(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan value) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan value) {
         if (positiveSpanBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -8201,7 +8229,7 @@ public Builder addPositiveSpan(
        * repeated .io.prometheus.client.BucketSpan positive_span = 12;
        */
       public Builder addPositiveSpan(
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.Builder builderForValue) {
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.Builder builderForValue) {
         if (positiveSpanBuilder_ == null) {
           ensurePositiveSpanIsMutable();
           positiveSpan_.add(builderForValue.build());
@@ -8222,7 +8250,7 @@ public Builder addPositiveSpan(
        * repeated .io.prometheus.client.BucketSpan positive_span = 12;
        */
       public Builder addPositiveSpan(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.Builder builderForValue) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.Builder builderForValue) {
         if (positiveSpanBuilder_ == null) {
           ensurePositiveSpanIsMutable();
           positiveSpan_.add(index, builderForValue.build());
@@ -8243,7 +8271,7 @@ public Builder addPositiveSpan(
        * repeated .io.prometheus.client.BucketSpan positive_span = 12;
        */
       public Builder addAllPositiveSpan(
-          java.lang.Iterable values) {
+          java.lang.Iterable values) {
         if (positiveSpanBuilder_ == null) {
           ensurePositiveSpanIsMutable();
           com.google.protobuf.AbstractMessageLite.Builder.addAll(
@@ -8304,7 +8332,7 @@ public Builder removePositiveSpan(int index) {
        *
        * repeated .io.prometheus.client.BucketSpan positive_span = 12;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.Builder getPositiveSpanBuilder(
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.Builder getPositiveSpanBuilder(
           int index) {
         return internalGetPositiveSpanFieldBuilder().getBuilder(index);
       }
@@ -8318,7 +8346,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        *
        * repeated .io.prometheus.client.BucketSpan positive_span = 12;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpanOrBuilder getPositiveSpanOrBuilder(
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpanOrBuilder getPositiveSpanOrBuilder(
           int index) {
         if (positiveSpanBuilder_ == null) {
           return positiveSpan_.get(index);  } else {
@@ -8335,7 +8363,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        *
        * repeated .io.prometheus.client.BucketSpan positive_span = 12;
        */
-      public java.util.List 
+      public java.util.List 
            getPositiveSpanOrBuilderList() {
         if (positiveSpanBuilder_ != null) {
           return positiveSpanBuilder_.getMessageOrBuilderList();
@@ -8353,9 +8381,9 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        *
        * repeated .io.prometheus.client.BucketSpan positive_span = 12;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.Builder addPositiveSpanBuilder() {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.Builder addPositiveSpanBuilder() {
         return internalGetPositiveSpanFieldBuilder().addBuilder(
-            io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.getDefaultInstance());
+            io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.getDefaultInstance());
       }
       /**
        * 
@@ -8367,10 +8395,10 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        *
        * repeated .io.prometheus.client.BucketSpan positive_span = 12;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.Builder addPositiveSpanBuilder(
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.Builder addPositiveSpanBuilder(
           int index) {
         return internalGetPositiveSpanFieldBuilder().addBuilder(
-            index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.getDefaultInstance());
+            index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.getDefaultInstance());
       }
       /**
        * 
@@ -8382,16 +8410,16 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        *
        * repeated .io.prometheus.client.BucketSpan positive_span = 12;
        */
-      public java.util.List 
+      public java.util.List 
            getPositiveSpanBuilderList() {
         return internalGetPositiveSpanFieldBuilder().getBuilderList();
       }
       private com.google.protobuf.RepeatedFieldBuilder<
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpanOrBuilder> 
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpanOrBuilder> 
           internalGetPositiveSpanFieldBuilder() {
         if (positiveSpanBuilder_ == null) {
           positiveSpanBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpanOrBuilder>(
+              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpanOrBuilder>(
                   positiveSpan_,
                   ((bitField0_ & 0x00001000) != 0),
                   getParentForChildren(),
@@ -8645,17 +8673,17 @@ public Builder clearPositiveCount() {
         return this;
       }
 
-      private java.util.List exemplars_ =
+      private java.util.List exemplars_ =
         java.util.Collections.emptyList();
       private void ensureExemplarsIsMutable() {
         if (!((bitField0_ & 0x00008000) != 0)) {
-          exemplars_ = new java.util.ArrayList(exemplars_);
+          exemplars_ = new java.util.ArrayList(exemplars_);
           bitField0_ |= 0x00008000;
          }
       }
 
       private com.google.protobuf.RepeatedFieldBuilder<
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.ExemplarOrBuilder> exemplarsBuilder_;
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.ExemplarOrBuilder> exemplarsBuilder_;
 
       /**
        * 
@@ -8664,7 +8692,7 @@ private void ensureExemplarsIsMutable() {
        *
        * repeated .io.prometheus.client.Exemplar exemplars = 16;
        */
-      public java.util.List getExemplarsList() {
+      public java.util.List getExemplarsList() {
         if (exemplarsBuilder_ == null) {
           return java.util.Collections.unmodifiableList(exemplars_);
         } else {
@@ -8692,7 +8720,7 @@ public int getExemplarsCount() {
        *
        * repeated .io.prometheus.client.Exemplar exemplars = 16;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar getExemplars(int index) {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar getExemplars(int index) {
         if (exemplarsBuilder_ == null) {
           return exemplars_.get(index);
         } else {
@@ -8707,7 +8735,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        * repeated .io.prometheus.client.Exemplar exemplars = 16;
        */
       public Builder setExemplars(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar value) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar value) {
         if (exemplarsBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -8728,7 +8756,7 @@ public Builder setExemplars(
        * repeated .io.prometheus.client.Exemplar exemplars = 16;
        */
       public Builder setExemplars(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.Builder builderForValue) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.Builder builderForValue) {
         if (exemplarsBuilder_ == null) {
           ensureExemplarsIsMutable();
           exemplars_.set(index, builderForValue.build());
@@ -8745,7 +8773,7 @@ public Builder setExemplars(
        *
        * repeated .io.prometheus.client.Exemplar exemplars = 16;
        */
-      public Builder addExemplars(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar value) {
+      public Builder addExemplars(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar value) {
         if (exemplarsBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -8766,7 +8794,7 @@ public Builder addExemplars(io.prometheus.metrics.expositionformats.generated.co
        * repeated .io.prometheus.client.Exemplar exemplars = 16;
        */
       public Builder addExemplars(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar value) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar value) {
         if (exemplarsBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -8787,7 +8815,7 @@ public Builder addExemplars(
        * repeated .io.prometheus.client.Exemplar exemplars = 16;
        */
       public Builder addExemplars(
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.Builder builderForValue) {
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.Builder builderForValue) {
         if (exemplarsBuilder_ == null) {
           ensureExemplarsIsMutable();
           exemplars_.add(builderForValue.build());
@@ -8805,7 +8833,7 @@ public Builder addExemplars(
        * repeated .io.prometheus.client.Exemplar exemplars = 16;
        */
       public Builder addExemplars(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.Builder builderForValue) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.Builder builderForValue) {
         if (exemplarsBuilder_ == null) {
           ensureExemplarsIsMutable();
           exemplars_.add(index, builderForValue.build());
@@ -8823,7 +8851,7 @@ public Builder addExemplars(
        * repeated .io.prometheus.client.Exemplar exemplars = 16;
        */
       public Builder addAllExemplars(
-          java.lang.Iterable values) {
+          java.lang.Iterable values) {
         if (exemplarsBuilder_ == null) {
           ensureExemplarsIsMutable();
           com.google.protobuf.AbstractMessageLite.Builder.addAll(
@@ -8875,7 +8903,7 @@ public Builder removeExemplars(int index) {
        *
        * repeated .io.prometheus.client.Exemplar exemplars = 16;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.Builder getExemplarsBuilder(
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.Builder getExemplarsBuilder(
           int index) {
         return internalGetExemplarsFieldBuilder().getBuilder(index);
       }
@@ -8886,7 +8914,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        *
        * repeated .io.prometheus.client.Exemplar exemplars = 16;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.ExemplarOrBuilder getExemplarsOrBuilder(
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.ExemplarOrBuilder getExemplarsOrBuilder(
           int index) {
         if (exemplarsBuilder_ == null) {
           return exemplars_.get(index);  } else {
@@ -8900,7 +8928,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        *
        * repeated .io.prometheus.client.Exemplar exemplars = 16;
        */
-      public java.util.List 
+      public java.util.List 
            getExemplarsOrBuilderList() {
         if (exemplarsBuilder_ != null) {
           return exemplarsBuilder_.getMessageOrBuilderList();
@@ -8915,9 +8943,9 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        *
        * repeated .io.prometheus.client.Exemplar exemplars = 16;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.Builder addExemplarsBuilder() {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.Builder addExemplarsBuilder() {
         return internalGetExemplarsFieldBuilder().addBuilder(
-            io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.getDefaultInstance());
+            io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.getDefaultInstance());
       }
       /**
        * 
@@ -8926,10 +8954,10 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        *
        * repeated .io.prometheus.client.Exemplar exemplars = 16;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.Builder addExemplarsBuilder(
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.Builder addExemplarsBuilder(
           int index) {
         return internalGetExemplarsFieldBuilder().addBuilder(
-            index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.getDefaultInstance());
+            index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.getDefaultInstance());
       }
       /**
        * 
@@ -8938,16 +8966,16 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        *
        * repeated .io.prometheus.client.Exemplar exemplars = 16;
        */
-      public java.util.List 
+      public java.util.List 
            getExemplarsBuilderList() {
         return internalGetExemplarsFieldBuilder().getBuilderList();
       }
       private com.google.protobuf.RepeatedFieldBuilder<
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.ExemplarOrBuilder> 
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.ExemplarOrBuilder> 
           internalGetExemplarsFieldBuilder() {
         if (exemplarsBuilder_ == null) {
           exemplarsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.ExemplarOrBuilder>(
+              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.ExemplarOrBuilder>(
                   exemplars_,
                   ((bitField0_ & 0x00008000) != 0),
                   getParentForChildren(),
@@ -8961,12 +8989,12 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
     }
 
     // @@protoc_insertion_point(class_scope:io.prometheus.client.Histogram)
-    private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram DEFAULT_INSTANCE;
+    private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram DEFAULT_INSTANCE;
     static {
-      DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram();
+      DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram();
     }
 
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram getDefaultInstance() {
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram getDefaultInstance() {
       return DEFAULT_INSTANCE;
     }
 
@@ -9002,7 +9030,7 @@ public com.google.protobuf.Parser getParserForType() {
     }
 
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram getDefaultInstanceForType() {
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram getDefaultInstanceForType() {
       return DEFAULT_INSTANCE;
     }
 
@@ -9078,11 +9106,11 @@ public interface BucketOrBuilder extends
      * optional .io.prometheus.client.Exemplar exemplar = 3;
      * @return The exemplar.
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar getExemplar();
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar getExemplar();
     /**
      * optional .io.prometheus.client.Exemplar exemplar = 3;
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.ExemplarOrBuilder getExemplarOrBuilder();
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.ExemplarOrBuilder getExemplarOrBuilder();
   }
   /**
    * 
@@ -9101,8 +9129,8 @@ public static final class Bucket extends
       com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
         com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
         /* major= */ 4,
-        /* minor= */ 34,
-        /* patch= */ 1,
+        /* minor= */ 35,
+        /* patch= */ 0,
         /* suffix= */ "",
         "Bucket");
     }
@@ -9115,20 +9143,20 @@ private Bucket() {
 
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
-      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Bucket_descriptor;
+      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Bucket_descriptor;
     }
 
     @java.lang.Override
     public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
-      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Bucket_descriptor;
+      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Bucket_descriptor;
     }
 
     @java.lang.Override
     protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
         internalGetFieldAccessorTable() {
-      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Bucket_fieldAccessorTable
+      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Bucket_fieldAccessorTable
           .ensureFieldAccessorsInitialized(
-              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket.Builder.class);
+              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket.Builder.class);
     }
 
     private int bitField0_;
@@ -9214,7 +9242,7 @@ public double getUpperBound() {
     }
 
     public static final int EXEMPLAR_FIELD_NUMBER = 3;
-    private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar exemplar_;
+    private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar exemplar_;
     /**
      * optional .io.prometheus.client.Exemplar exemplar = 3;
      * @return Whether the exemplar field is set.
@@ -9228,15 +9256,15 @@ public boolean hasExemplar() {
      * @return The exemplar.
      */
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar getExemplar() {
-      return exemplar_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.getDefaultInstance() : exemplar_;
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar getExemplar() {
+      return exemplar_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.getDefaultInstance() : exemplar_;
     }
     /**
      * optional .io.prometheus.client.Exemplar exemplar = 3;
      */
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.ExemplarOrBuilder getExemplarOrBuilder() {
-      return exemplar_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.getDefaultInstance() : exemplar_;
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.ExemplarOrBuilder getExemplarOrBuilder() {
+      return exemplar_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.getDefaultInstance() : exemplar_;
     }
 
     private byte memoizedIsInitialized = -1;
@@ -9267,13 +9295,8 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       }
       getUnknownFields().writeTo(output);
     }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
+    private int computeSerializedSize_0() {
+      int size = 0;
       if (((bitField0_ & 0x00000001) != 0)) {
         size += com.google.protobuf.CodedOutputStream
           .computeUInt64Size(1, cumulativeCount_);
@@ -9290,6 +9313,15 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeDoubleSize(4, cumulativeCountFloat_);
       }
+      return size;
+    }
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      size += computeSerializedSize_0();
       size += getUnknownFields().getSerializedSize();
       memoizedSize = size;
       return size;
@@ -9300,10 +9332,10 @@ public boolean equals(final java.lang.Object obj) {
       if (obj == this) {
        return true;
       }
-      if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket)) {
+      if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket)) {
         return super.equals(obj);
       }
-      io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket) obj;
+      io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket) obj;
 
       if (hasCumulativeCount() != other.hasCumulativeCount()) return false;
       if (hasCumulativeCount()) {
@@ -9362,44 +9394,44 @@ public int hashCode() {
       return hash;
     }
 
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket parseFrom(
         java.nio.ByteBuffer data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket parseFrom(
         java.nio.ByteBuffer data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket parseFrom(
         com.google.protobuf.ByteString data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket parseFrom(
         com.google.protobuf.ByteString data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket parseFrom(byte[] data)
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket parseFrom(byte[] data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket parseFrom(
         byte[] data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket parseFrom(java.io.InputStream input)
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket parseFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessage
           .parseWithIOException(PARSER, input);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket parseFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
@@ -9407,26 +9439,26 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto
           .parseWithIOException(PARSER, input, extensionRegistry);
     }
 
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket parseDelimitedFrom(java.io.InputStream input)
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessage
           .parseDelimitedWithIOException(PARSER, input);
     }
 
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket parseDelimitedFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket parseDelimitedFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessage
           .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket parseFrom(
         com.google.protobuf.CodedInputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessage
           .parseWithIOException(PARSER, input);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket parseFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
@@ -9439,7 +9471,7 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto
     public static Builder newBuilder() {
       return DEFAULT_INSTANCE.toBuilder();
     }
-    public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket prototype) {
+    public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket prototype) {
       return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
     }
     @java.lang.Override
@@ -9465,21 +9497,21 @@ protected Builder newBuilderForType(
     public static final class Builder extends
         com.google.protobuf.GeneratedMessage.Builder implements
         // @@protoc_insertion_point(builder_implements:io.prometheus.client.Bucket)
-        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketOrBuilder {
+        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketOrBuilder {
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
-        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Bucket_descriptor;
+        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Bucket_descriptor;
       }
 
       @java.lang.Override
       protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
           internalGetFieldAccessorTable() {
-        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Bucket_fieldAccessorTable
+        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Bucket_fieldAccessorTable
             .ensureFieldAccessorsInitialized(
-                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket.Builder.class);
+                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket.Builder.class);
       }
 
-      // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket.newBuilder()
+      // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket.newBuilder()
       private Builder() {
         maybeForceBuilderInitialization();
       }
@@ -9513,17 +9545,17 @@ public Builder clear() {
       @java.lang.Override
       public com.google.protobuf.Descriptors.Descriptor
           getDescriptorForType() {
-        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Bucket_descriptor;
+        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Bucket_descriptor;
       }
 
       @java.lang.Override
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket getDefaultInstanceForType() {
-        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket.getDefaultInstance();
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket getDefaultInstanceForType() {
+        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket.getDefaultInstance();
       }
 
       @java.lang.Override
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket build() {
-        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket result = buildPartial();
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket build() {
+        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket result = buildPartial();
         if (!result.isInitialized()) {
           throw newUninitializedMessageException(result);
         }
@@ -9531,14 +9563,14 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
       }
 
       @java.lang.Override
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket buildPartial() {
-        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket(this);
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket buildPartial() {
+        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket(this);
         if (bitField0_ != 0) { buildPartial0(result); }
         onBuilt();
         return result;
       }
 
-      private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket result) {
+      private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket result) {
         int from_bitField0_ = bitField0_;
         int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -9564,16 +9596,16 @@ private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com
 
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket) {
-          return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket)other);
+        if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket) {
+          return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket)other);
         } else {
           super.mergeFrom(other);
           return this;
         }
       }
 
-      public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket other) {
-        if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket.getDefaultInstance()) return this;
+      public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket other) {
+        if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket.getDefaultInstance()) return this;
         if (other.hasCumulativeCount()) {
           setCumulativeCount(other.getCumulativeCount());
         }
@@ -9819,9 +9851,9 @@ public Builder clearUpperBound() {
         return this;
       }
 
-      private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar exemplar_;
+      private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar exemplar_;
       private com.google.protobuf.SingleFieldBuilder<
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.ExemplarOrBuilder> exemplarBuilder_;
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.ExemplarOrBuilder> exemplarBuilder_;
       /**
        * optional .io.prometheus.client.Exemplar exemplar = 3;
        * @return Whether the exemplar field is set.
@@ -9833,9 +9865,9 @@ public boolean hasExemplar() {
        * optional .io.prometheus.client.Exemplar exemplar = 3;
        * @return The exemplar.
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar getExemplar() {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar getExemplar() {
         if (exemplarBuilder_ == null) {
-          return exemplar_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.getDefaultInstance() : exemplar_;
+          return exemplar_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.getDefaultInstance() : exemplar_;
         } else {
           return exemplarBuilder_.getMessage();
         }
@@ -9843,7 +9875,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
       /**
        * optional .io.prometheus.client.Exemplar exemplar = 3;
        */
-      public Builder setExemplar(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar value) {
+      public Builder setExemplar(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar value) {
         if (exemplarBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -9860,7 +9892,7 @@ public Builder setExemplar(io.prometheus.metrics.expositionformats.generated.com
        * optional .io.prometheus.client.Exemplar exemplar = 3;
        */
       public Builder setExemplar(
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.Builder builderForValue) {
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.Builder builderForValue) {
         if (exemplarBuilder_ == null) {
           exemplar_ = builderForValue.build();
         } else {
@@ -9873,11 +9905,11 @@ public Builder setExemplar(
       /**
        * optional .io.prometheus.client.Exemplar exemplar = 3;
        */
-      public Builder mergeExemplar(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar value) {
+      public Builder mergeExemplar(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar value) {
         if (exemplarBuilder_ == null) {
           if (((bitField0_ & 0x00000008) != 0) &&
             exemplar_ != null &&
-            exemplar_ != io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.getDefaultInstance()) {
+            exemplar_ != io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.getDefaultInstance()) {
             getExemplarBuilder().mergeFrom(value);
           } else {
             exemplar_ = value;
@@ -9907,7 +9939,7 @@ public Builder clearExemplar() {
       /**
        * optional .io.prometheus.client.Exemplar exemplar = 3;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.Builder getExemplarBuilder() {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.Builder getExemplarBuilder() {
         bitField0_ |= 0x00000008;
         onChanged();
         return internalGetExemplarFieldBuilder().getBuilder();
@@ -9915,23 +9947,23 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
       /**
        * optional .io.prometheus.client.Exemplar exemplar = 3;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.ExemplarOrBuilder getExemplarOrBuilder() {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.ExemplarOrBuilder getExemplarOrBuilder() {
         if (exemplarBuilder_ != null) {
           return exemplarBuilder_.getMessageOrBuilder();
         } else {
           return exemplar_ == null ?
-              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.getDefaultInstance() : exemplar_;
+              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.getDefaultInstance() : exemplar_;
         }
       }
       /**
        * optional .io.prometheus.client.Exemplar exemplar = 3;
        */
       private com.google.protobuf.SingleFieldBuilder<
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.ExemplarOrBuilder> 
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.ExemplarOrBuilder> 
           internalGetExemplarFieldBuilder() {
         if (exemplarBuilder_ == null) {
           exemplarBuilder_ = new com.google.protobuf.SingleFieldBuilder<
-              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.ExemplarOrBuilder>(
+              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.ExemplarOrBuilder>(
                   getExemplar(),
                   getParentForChildren(),
                   isClean());
@@ -9944,12 +9976,12 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
     }
 
     // @@protoc_insertion_point(class_scope:io.prometheus.client.Bucket)
-    private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket DEFAULT_INSTANCE;
+    private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket DEFAULT_INSTANCE;
     static {
-      DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket();
+      DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket();
     }
 
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket getDefaultInstance() {
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket getDefaultInstance() {
       return DEFAULT_INSTANCE;
     }
 
@@ -9985,7 +10017,7 @@ public com.google.protobuf.Parser getParserForType() {
     }
 
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Bucket getDefaultInstanceForType() {
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Bucket getDefaultInstanceForType() {
       return DEFAULT_INSTANCE;
     }
 
@@ -10054,8 +10086,8 @@ public static final class BucketSpan extends
       com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
         com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
         /* major= */ 4,
-        /* minor= */ 34,
-        /* patch= */ 1,
+        /* minor= */ 35,
+        /* patch= */ 0,
         /* suffix= */ "",
         "BucketSpan");
     }
@@ -10068,20 +10100,20 @@ private BucketSpan() {
 
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
-      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_BucketSpan_descriptor;
+      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_BucketSpan_descriptor;
     }
 
     @java.lang.Override
     public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
-      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_BucketSpan_descriptor;
+      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_BucketSpan_descriptor;
     }
 
     @java.lang.Override
     protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
         internalGetFieldAccessorTable() {
-      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_BucketSpan_fieldAccessorTable
+      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_BucketSpan_fieldAccessorTable
           .ensureFieldAccessorsInitialized(
-              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.Builder.class);
+              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.Builder.class);
     }
 
     private int bitField0_;
@@ -10161,13 +10193,8 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       }
       getUnknownFields().writeTo(output);
     }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
+    private int computeSerializedSize_0() {
+      int size = 0;
       if (((bitField0_ & 0x00000001) != 0)) {
         size += com.google.protobuf.CodedOutputStream
           .computeSInt32Size(1, offset_);
@@ -10176,6 +10203,15 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeUInt32Size(2, length_);
       }
+      return size;
+    }
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      size += computeSerializedSize_0();
       size += getUnknownFields().getSerializedSize();
       memoizedSize = size;
       return size;
@@ -10186,10 +10222,10 @@ public boolean equals(final java.lang.Object obj) {
       if (obj == this) {
        return true;
       }
-      if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan)) {
+      if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan)) {
         return super.equals(obj);
       }
-      io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan) obj;
+      io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan) obj;
 
       if (hasOffset() != other.hasOffset()) return false;
       if (hasOffset()) {
@@ -10225,44 +10261,44 @@ public int hashCode() {
       return hash;
     }
 
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan parseFrom(
         java.nio.ByteBuffer data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan parseFrom(
         java.nio.ByteBuffer data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan parseFrom(
         com.google.protobuf.ByteString data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan parseFrom(
         com.google.protobuf.ByteString data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan parseFrom(byte[] data)
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan parseFrom(byte[] data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan parseFrom(
         byte[] data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan parseFrom(java.io.InputStream input)
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan parseFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessage
           .parseWithIOException(PARSER, input);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan parseFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
@@ -10270,26 +10306,26 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto
           .parseWithIOException(PARSER, input, extensionRegistry);
     }
 
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan parseDelimitedFrom(java.io.InputStream input)
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessage
           .parseDelimitedWithIOException(PARSER, input);
     }
 
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan parseDelimitedFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan parseDelimitedFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessage
           .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan parseFrom(
         com.google.protobuf.CodedInputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessage
           .parseWithIOException(PARSER, input);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan parseFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
@@ -10302,7 +10338,7 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto
     public static Builder newBuilder() {
       return DEFAULT_INSTANCE.toBuilder();
     }
-    public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan prototype) {
+    public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan prototype) {
       return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
     }
     @java.lang.Override
@@ -10332,21 +10368,21 @@ protected Builder newBuilderForType(
     public static final class Builder extends
         com.google.protobuf.GeneratedMessage.Builder implements
         // @@protoc_insertion_point(builder_implements:io.prometheus.client.BucketSpan)
-        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpanOrBuilder {
+        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpanOrBuilder {
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
-        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_BucketSpan_descriptor;
+        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_BucketSpan_descriptor;
       }
 
       @java.lang.Override
       protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
           internalGetFieldAccessorTable() {
-        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_BucketSpan_fieldAccessorTable
+        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_BucketSpan_fieldAccessorTable
             .ensureFieldAccessorsInitialized(
-                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.Builder.class);
+                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.Builder.class);
       }
 
-      // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.newBuilder()
+      // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.newBuilder()
       private Builder() {
 
       }
@@ -10368,17 +10404,17 @@ public Builder clear() {
       @java.lang.Override
       public com.google.protobuf.Descriptors.Descriptor
           getDescriptorForType() {
-        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_BucketSpan_descriptor;
+        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_BucketSpan_descriptor;
       }
 
       @java.lang.Override
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan getDefaultInstanceForType() {
-        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.getDefaultInstance();
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan getDefaultInstanceForType() {
+        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.getDefaultInstance();
       }
 
       @java.lang.Override
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan build() {
-        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan result = buildPartial();
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan build() {
+        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan result = buildPartial();
         if (!result.isInitialized()) {
           throw newUninitializedMessageException(result);
         }
@@ -10386,14 +10422,14 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
       }
 
       @java.lang.Override
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan buildPartial() {
-        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan(this);
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan buildPartial() {
+        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan(this);
         if (bitField0_ != 0) { buildPartial0(result); }
         onBuilt();
         return result;
       }
 
-      private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan result) {
+      private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan result) {
         int from_bitField0_ = bitField0_;
         int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -10409,16 +10445,16 @@ private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com
 
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan) {
-          return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan)other);
+        if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan) {
+          return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan)other);
         } else {
           super.mergeFrom(other);
           return this;
         }
       }
 
-      public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan other) {
-        if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan.getDefaultInstance()) return this;
+      public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan other) {
+        if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan.getDefaultInstance()) return this;
         if (other.hasOffset()) {
           setOffset(other.getOffset());
         }
@@ -10594,12 +10630,12 @@ public Builder clearLength() {
     }
 
     // @@protoc_insertion_point(class_scope:io.prometheus.client.BucketSpan)
-    private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan DEFAULT_INSTANCE;
+    private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan DEFAULT_INSTANCE;
     static {
-      DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan();
+      DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan();
     }
 
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan getDefaultInstance() {
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan getDefaultInstance() {
       return DEFAULT_INSTANCE;
     }
 
@@ -10635,7 +10671,7 @@ public com.google.protobuf.Parser getParserForType() {
     }
 
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.BucketSpan getDefaultInstanceForType() {
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.BucketSpan getDefaultInstanceForType() {
       return DEFAULT_INSTANCE;
     }
 
@@ -10648,12 +10684,12 @@ public interface ExemplarOrBuilder extends
     /**
      * repeated .io.prometheus.client.LabelPair label = 1;
      */
-    java.util.List 
+    java.util.List 
         getLabelList();
     /**
      * repeated .io.prometheus.client.LabelPair label = 1;
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair getLabel(int index);
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair getLabel(int index);
     /**
      * repeated .io.prometheus.client.LabelPair label = 1;
      */
@@ -10661,12 +10697,12 @@ public interface ExemplarOrBuilder extends
     /**
      * repeated .io.prometheus.client.LabelPair label = 1;
      */
-    java.util.List 
+    java.util.List 
         getLabelOrBuilderList();
     /**
      * repeated .io.prometheus.client.LabelPair label = 1;
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPairOrBuilder getLabelOrBuilder(
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPairOrBuilder getLabelOrBuilder(
         int index);
 
     /**
@@ -10719,8 +10755,8 @@ public static final class Exemplar extends
       com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
         com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
         /* major= */ 4,
-        /* minor= */ 34,
-        /* patch= */ 1,
+        /* minor= */ 35,
+        /* patch= */ 0,
         /* suffix= */ "",
         "Exemplar");
     }
@@ -10734,38 +10770,38 @@ private Exemplar() {
 
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
-      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Exemplar_descriptor;
+      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Exemplar_descriptor;
     }
 
     @java.lang.Override
     public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
-      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Exemplar_descriptor;
+      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Exemplar_descriptor;
     }
 
     @java.lang.Override
     protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
         internalGetFieldAccessorTable() {
-      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Exemplar_fieldAccessorTable
+      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Exemplar_fieldAccessorTable
           .ensureFieldAccessorsInitialized(
-              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.Builder.class);
+              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.Builder.class);
     }
 
     private int bitField0_;
     public static final int LABEL_FIELD_NUMBER = 1;
     @SuppressWarnings("serial")
-    private java.util.List label_;
+    private java.util.List label_;
     /**
      * repeated .io.prometheus.client.LabelPair label = 1;
      */
     @java.lang.Override
-    public java.util.List getLabelList() {
+    public java.util.List getLabelList() {
       return label_;
     }
     /**
      * repeated .io.prometheus.client.LabelPair label = 1;
      */
     @java.lang.Override
-    public java.util.List 
+    public java.util.List 
         getLabelOrBuilderList() {
       return label_;
     }
@@ -10780,14 +10816,14 @@ public int getLabelCount() {
      * repeated .io.prometheus.client.LabelPair label = 1;
      */
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair getLabel(int index) {
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair getLabel(int index) {
       return label_.get(index);
     }
     /**
      * repeated .io.prometheus.client.LabelPair label = 1;
      */
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPairOrBuilder getLabelOrBuilder(
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPairOrBuilder getLabelOrBuilder(
         int index) {
       return label_.get(index);
     }
@@ -10874,13 +10910,8 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       }
       getUnknownFields().writeTo(output);
     }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
+    private int computeSerializedSize_0() {
+      int size = 0;
 
           {
             final int count = label_.size();
@@ -10898,6 +10929,15 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(3, getTimestamp());
       }
+      return size;
+    }
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      size += computeSerializedSize_0();
       size += getUnknownFields().getSerializedSize();
       memoizedSize = size;
       return size;
@@ -10908,10 +10948,10 @@ public boolean equals(final java.lang.Object obj) {
       if (obj == this) {
        return true;
       }
-      if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar)) {
+      if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar)) {
         return super.equals(obj);
       }
-      io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar) obj;
+      io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar) obj;
 
       if (!getLabelList()
           .equals(other.getLabelList())) return false;
@@ -10955,44 +10995,44 @@ public int hashCode() {
       return hash;
     }
 
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar parseFrom(
         java.nio.ByteBuffer data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar parseFrom(
         java.nio.ByteBuffer data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar parseFrom(
         com.google.protobuf.ByteString data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar parseFrom(
         com.google.protobuf.ByteString data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar parseFrom(byte[] data)
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar parseFrom(byte[] data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar parseFrom(
         byte[] data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar parseFrom(java.io.InputStream input)
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar parseFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessage
           .parseWithIOException(PARSER, input);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar parseFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
@@ -11000,26 +11040,26 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto
           .parseWithIOException(PARSER, input, extensionRegistry);
     }
 
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar parseDelimitedFrom(java.io.InputStream input)
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessage
           .parseDelimitedWithIOException(PARSER, input);
     }
 
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar parseDelimitedFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar parseDelimitedFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessage
           .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar parseFrom(
         com.google.protobuf.CodedInputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessage
           .parseWithIOException(PARSER, input);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar parseFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
@@ -11032,7 +11072,7 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto
     public static Builder newBuilder() {
       return DEFAULT_INSTANCE.toBuilder();
     }
-    public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar prototype) {
+    public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar prototype) {
       return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
     }
     @java.lang.Override
@@ -11053,21 +11093,21 @@ protected Builder newBuilderForType(
     public static final class Builder extends
         com.google.protobuf.GeneratedMessage.Builder implements
         // @@protoc_insertion_point(builder_implements:io.prometheus.client.Exemplar)
-        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.ExemplarOrBuilder {
+        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.ExemplarOrBuilder {
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
-        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Exemplar_descriptor;
+        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Exemplar_descriptor;
       }
 
       @java.lang.Override
       protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
           internalGetFieldAccessorTable() {
-        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Exemplar_fieldAccessorTable
+        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Exemplar_fieldAccessorTable
             .ensureFieldAccessorsInitialized(
-                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.Builder.class);
+                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.Builder.class);
       }
 
-      // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.newBuilder()
+      // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.newBuilder()
       private Builder() {
         maybeForceBuilderInitialization();
       }
@@ -11107,17 +11147,17 @@ public Builder clear() {
       @java.lang.Override
       public com.google.protobuf.Descriptors.Descriptor
           getDescriptorForType() {
-        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Exemplar_descriptor;
+        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Exemplar_descriptor;
       }
 
       @java.lang.Override
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar getDefaultInstanceForType() {
-        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.getDefaultInstance();
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar getDefaultInstanceForType() {
+        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.getDefaultInstance();
       }
 
       @java.lang.Override
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar build() {
-        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar result = buildPartial();
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar build() {
+        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar result = buildPartial();
         if (!result.isInitialized()) {
           throw newUninitializedMessageException(result);
         }
@@ -11125,15 +11165,15 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
       }
 
       @java.lang.Override
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar buildPartial() {
-        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar(this);
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar buildPartial() {
+        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar(this);
         buildPartialRepeatedFields(result);
         if (bitField0_ != 0) { buildPartial0(result); }
         onBuilt();
         return result;
       }
 
-      private void buildPartialRepeatedFields(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar result) {
+      private void buildPartialRepeatedFields(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar result) {
         if (labelBuilder_ == null) {
           if (((bitField0_ & 0x00000001) != 0)) {
             label_ = java.util.Collections.unmodifiableList(label_);
@@ -11145,7 +11185,7 @@ private void buildPartialRepeatedFields(io.prometheus.metrics.expositionformats.
         }
       }
 
-      private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar result) {
+      private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar result) {
         int from_bitField0_ = bitField0_;
         int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000002) != 0)) {
@@ -11163,16 +11203,16 @@ private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com
 
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar) {
-          return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar)other);
+        if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar) {
+          return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar)other);
         } else {
           super.mergeFrom(other);
           return this;
         }
       }
 
-      public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar other) {
-        if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar.getDefaultInstance()) return this;
+      public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar other) {
+        if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar.getDefaultInstance()) return this;
         if (labelBuilder_ == null) {
           if (!other.label_.isEmpty()) {
             if (label_.isEmpty()) {
@@ -11232,9 +11272,9 @@ public Builder mergeFrom(
                 done = true;
                 break;
               case 10: {
-                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair m =
+                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair m =
                     input.readMessage(
-                        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.parser(),
+                        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.parser(),
                         extensionRegistry);
                 if (labelBuilder_ == null) {
                   ensureLabelIsMutable();
@@ -11273,22 +11313,22 @@ public Builder mergeFrom(
       }
       private int bitField0_;
 
-      private java.util.List label_ =
+      private java.util.List label_ =
         java.util.Collections.emptyList();
       private void ensureLabelIsMutable() {
         if (!((bitField0_ & 0x00000001) != 0)) {
-          label_ = new java.util.ArrayList(label_);
+          label_ = new java.util.ArrayList(label_);
           bitField0_ |= 0x00000001;
          }
       }
 
       private com.google.protobuf.RepeatedFieldBuilder<
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPairOrBuilder> labelBuilder_;
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPairOrBuilder> labelBuilder_;
 
       /**
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
-      public java.util.List getLabelList() {
+      public java.util.List getLabelList() {
         if (labelBuilder_ == null) {
           return java.util.Collections.unmodifiableList(label_);
         } else {
@@ -11308,7 +11348,7 @@ public int getLabelCount() {
       /**
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair getLabel(int index) {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair getLabel(int index) {
         if (labelBuilder_ == null) {
           return label_.get(index);
         } else {
@@ -11319,7 +11359,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
       public Builder setLabel(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair value) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair value) {
         if (labelBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -11336,7 +11376,7 @@ public Builder setLabel(
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
       public Builder setLabel(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.Builder builderForValue) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.Builder builderForValue) {
         if (labelBuilder_ == null) {
           ensureLabelIsMutable();
           label_.set(index, builderForValue.build());
@@ -11349,7 +11389,7 @@ public Builder setLabel(
       /**
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
-      public Builder addLabel(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair value) {
+      public Builder addLabel(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair value) {
         if (labelBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -11366,7 +11406,7 @@ public Builder addLabel(io.prometheus.metrics.expositionformats.generated.com_go
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
       public Builder addLabel(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair value) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair value) {
         if (labelBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -11383,7 +11423,7 @@ public Builder addLabel(
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
       public Builder addLabel(
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.Builder builderForValue) {
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.Builder builderForValue) {
         if (labelBuilder_ == null) {
           ensureLabelIsMutable();
           label_.add(builderForValue.build());
@@ -11397,7 +11437,7 @@ public Builder addLabel(
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
       public Builder addLabel(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.Builder builderForValue) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.Builder builderForValue) {
         if (labelBuilder_ == null) {
           ensureLabelIsMutable();
           label_.add(index, builderForValue.build());
@@ -11411,7 +11451,7 @@ public Builder addLabel(
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
       public Builder addAllLabel(
-          java.lang.Iterable values) {
+          java.lang.Iterable values) {
         if (labelBuilder_ == null) {
           ensureLabelIsMutable();
           com.google.protobuf.AbstractMessageLite.Builder.addAll(
@@ -11451,14 +11491,14 @@ public Builder removeLabel(int index) {
       /**
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.Builder getLabelBuilder(
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.Builder getLabelBuilder(
           int index) {
         return internalGetLabelFieldBuilder().getBuilder(index);
       }
       /**
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPairOrBuilder getLabelOrBuilder(
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPairOrBuilder getLabelOrBuilder(
           int index) {
         if (labelBuilder_ == null) {
           return label_.get(index);  } else {
@@ -11468,7 +11508,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
       /**
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
-      public java.util.List 
+      public java.util.List 
            getLabelOrBuilderList() {
         if (labelBuilder_ != null) {
           return labelBuilder_.getMessageOrBuilderList();
@@ -11479,31 +11519,31 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
       /**
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.Builder addLabelBuilder() {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.Builder addLabelBuilder() {
         return internalGetLabelFieldBuilder().addBuilder(
-            io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.getDefaultInstance());
+            io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.getDefaultInstance());
       }
       /**
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.Builder addLabelBuilder(
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.Builder addLabelBuilder(
           int index) {
         return internalGetLabelFieldBuilder().addBuilder(
-            index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.getDefaultInstance());
+            index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.getDefaultInstance());
       }
       /**
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
-      public java.util.List 
+      public java.util.List 
            getLabelBuilderList() {
         return internalGetLabelFieldBuilder().getBuilderList();
       }
       private com.google.protobuf.RepeatedFieldBuilder<
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPairOrBuilder> 
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPairOrBuilder> 
           internalGetLabelFieldBuilder() {
         if (labelBuilder_ == null) {
           labelBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPairOrBuilder>(
+              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPairOrBuilder>(
                   label_,
                   ((bitField0_ & 0x00000001) != 0),
                   getParentForChildren(),
@@ -11714,12 +11754,12 @@ public com.google.protobuf.TimestampOrBuilder getTimestampOrBuilder() {
     }
 
     // @@protoc_insertion_point(class_scope:io.prometheus.client.Exemplar)
-    private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar DEFAULT_INSTANCE;
+    private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar DEFAULT_INSTANCE;
     static {
-      DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar();
+      DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar();
     }
 
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar getDefaultInstance() {
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar getDefaultInstance() {
       return DEFAULT_INSTANCE;
     }
 
@@ -11755,7 +11795,7 @@ public com.google.protobuf.Parser getParserForType() {
     }
 
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Exemplar getDefaultInstanceForType() {
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Exemplar getDefaultInstanceForType() {
       return DEFAULT_INSTANCE;
     }
 
@@ -11768,12 +11808,12 @@ public interface MetricOrBuilder extends
     /**
      * repeated .io.prometheus.client.LabelPair label = 1;
      */
-    java.util.List 
+    java.util.List 
         getLabelList();
     /**
      * repeated .io.prometheus.client.LabelPair label = 1;
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair getLabel(int index);
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair getLabel(int index);
     /**
      * repeated .io.prometheus.client.LabelPair label = 1;
      */
@@ -11781,12 +11821,12 @@ public interface MetricOrBuilder extends
     /**
      * repeated .io.prometheus.client.LabelPair label = 1;
      */
-    java.util.List 
+    java.util.List 
         getLabelOrBuilderList();
     /**
      * repeated .io.prometheus.client.LabelPair label = 1;
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPairOrBuilder getLabelOrBuilder(
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPairOrBuilder getLabelOrBuilder(
         int index);
 
     /**
@@ -11798,11 +11838,11 @@ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Met
      * optional .io.prometheus.client.Gauge gauge = 2;
      * @return The gauge.
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge getGauge();
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge getGauge();
     /**
      * optional .io.prometheus.client.Gauge gauge = 2;
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.GaugeOrBuilder getGaugeOrBuilder();
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.GaugeOrBuilder getGaugeOrBuilder();
 
     /**
      * optional .io.prometheus.client.Counter counter = 3;
@@ -11813,11 +11853,11 @@ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Met
      * optional .io.prometheus.client.Counter counter = 3;
      * @return The counter.
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter getCounter();
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter getCounter();
     /**
      * optional .io.prometheus.client.Counter counter = 3;
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.CounterOrBuilder getCounterOrBuilder();
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.CounterOrBuilder getCounterOrBuilder();
 
     /**
      * optional .io.prometheus.client.Summary summary = 4;
@@ -11828,11 +11868,11 @@ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Met
      * optional .io.prometheus.client.Summary summary = 4;
      * @return The summary.
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary getSummary();
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary getSummary();
     /**
      * optional .io.prometheus.client.Summary summary = 4;
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.SummaryOrBuilder getSummaryOrBuilder();
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.SummaryOrBuilder getSummaryOrBuilder();
 
     /**
      * optional .io.prometheus.client.Untyped untyped = 5;
@@ -11843,11 +11883,11 @@ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Met
      * optional .io.prometheus.client.Untyped untyped = 5;
      * @return The untyped.
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped getUntyped();
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped getUntyped();
     /**
      * optional .io.prometheus.client.Untyped untyped = 5;
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.UntypedOrBuilder getUntypedOrBuilder();
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.UntypedOrBuilder getUntypedOrBuilder();
 
     /**
      * optional .io.prometheus.client.Histogram histogram = 7;
@@ -11858,11 +11898,11 @@ io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Met
      * optional .io.prometheus.client.Histogram histogram = 7;
      * @return The histogram.
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram getHistogram();
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram getHistogram();
     /**
      * optional .io.prometheus.client.Histogram histogram = 7;
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.HistogramOrBuilder getHistogramOrBuilder();
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.HistogramOrBuilder getHistogramOrBuilder();
 
     /**
      * optional int64 timestamp_ms = 6;
@@ -11887,8 +11927,8 @@ public static final class Metric extends
       com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
         com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
         /* major= */ 4,
-        /* minor= */ 34,
-        /* patch= */ 1,
+        /* minor= */ 35,
+        /* patch= */ 0,
         /* suffix= */ "",
         "Metric");
     }
@@ -11902,38 +11942,38 @@ private Metric() {
 
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
-      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Metric_descriptor;
+      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Metric_descriptor;
     }
 
     @java.lang.Override
     public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
-      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Metric_descriptor;
+      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Metric_descriptor;
     }
 
     @java.lang.Override
     protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
         internalGetFieldAccessorTable() {
-      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Metric_fieldAccessorTable
+      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Metric_fieldAccessorTable
           .ensureFieldAccessorsInitialized(
-              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric.Builder.class);
+              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric.Builder.class);
     }
 
     private int bitField0_;
     public static final int LABEL_FIELD_NUMBER = 1;
     @SuppressWarnings("serial")
-    private java.util.List label_;
+    private java.util.List label_;
     /**
      * repeated .io.prometheus.client.LabelPair label = 1;
      */
     @java.lang.Override
-    public java.util.List getLabelList() {
+    public java.util.List getLabelList() {
       return label_;
     }
     /**
      * repeated .io.prometheus.client.LabelPair label = 1;
      */
     @java.lang.Override
-    public java.util.List 
+    public java.util.List 
         getLabelOrBuilderList() {
       return label_;
     }
@@ -11948,20 +11988,20 @@ public int getLabelCount() {
      * repeated .io.prometheus.client.LabelPair label = 1;
      */
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair getLabel(int index) {
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair getLabel(int index) {
       return label_.get(index);
     }
     /**
      * repeated .io.prometheus.client.LabelPair label = 1;
      */
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPairOrBuilder getLabelOrBuilder(
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPairOrBuilder getLabelOrBuilder(
         int index) {
       return label_.get(index);
     }
 
     public static final int GAUGE_FIELD_NUMBER = 2;
-    private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge gauge_;
+    private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge gauge_;
     /**
      * optional .io.prometheus.client.Gauge gauge = 2;
      * @return Whether the gauge field is set.
@@ -11975,19 +12015,19 @@ public boolean hasGauge() {
      * @return The gauge.
      */
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge getGauge() {
-      return gauge_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge.getDefaultInstance() : gauge_;
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge getGauge() {
+      return gauge_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge.getDefaultInstance() : gauge_;
     }
     /**
      * optional .io.prometheus.client.Gauge gauge = 2;
      */
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.GaugeOrBuilder getGaugeOrBuilder() {
-      return gauge_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge.getDefaultInstance() : gauge_;
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.GaugeOrBuilder getGaugeOrBuilder() {
+      return gauge_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge.getDefaultInstance() : gauge_;
     }
 
     public static final int COUNTER_FIELD_NUMBER = 3;
-    private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter counter_;
+    private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter counter_;
     /**
      * optional .io.prometheus.client.Counter counter = 3;
      * @return Whether the counter field is set.
@@ -12001,19 +12041,19 @@ public boolean hasCounter() {
      * @return The counter.
      */
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter getCounter() {
-      return counter_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter.getDefaultInstance() : counter_;
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter getCounter() {
+      return counter_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter.getDefaultInstance() : counter_;
     }
     /**
      * optional .io.prometheus.client.Counter counter = 3;
      */
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.CounterOrBuilder getCounterOrBuilder() {
-      return counter_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter.getDefaultInstance() : counter_;
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.CounterOrBuilder getCounterOrBuilder() {
+      return counter_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter.getDefaultInstance() : counter_;
     }
 
     public static final int SUMMARY_FIELD_NUMBER = 4;
-    private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary summary_;
+    private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary summary_;
     /**
      * optional .io.prometheus.client.Summary summary = 4;
      * @return Whether the summary field is set.
@@ -12027,19 +12067,19 @@ public boolean hasSummary() {
      * @return The summary.
      */
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary getSummary() {
-      return summary_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary.getDefaultInstance() : summary_;
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary getSummary() {
+      return summary_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary.getDefaultInstance() : summary_;
     }
     /**
      * optional .io.prometheus.client.Summary summary = 4;
      */
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.SummaryOrBuilder getSummaryOrBuilder() {
-      return summary_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary.getDefaultInstance() : summary_;
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.SummaryOrBuilder getSummaryOrBuilder() {
+      return summary_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary.getDefaultInstance() : summary_;
     }
 
     public static final int UNTYPED_FIELD_NUMBER = 5;
-    private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped untyped_;
+    private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped untyped_;
     /**
      * optional .io.prometheus.client.Untyped untyped = 5;
      * @return Whether the untyped field is set.
@@ -12053,19 +12093,19 @@ public boolean hasUntyped() {
      * @return The untyped.
      */
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped getUntyped() {
-      return untyped_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped.getDefaultInstance() : untyped_;
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped getUntyped() {
+      return untyped_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped.getDefaultInstance() : untyped_;
     }
     /**
      * optional .io.prometheus.client.Untyped untyped = 5;
      */
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.UntypedOrBuilder getUntypedOrBuilder() {
-      return untyped_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped.getDefaultInstance() : untyped_;
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.UntypedOrBuilder getUntypedOrBuilder() {
+      return untyped_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped.getDefaultInstance() : untyped_;
     }
 
     public static final int HISTOGRAM_FIELD_NUMBER = 7;
-    private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram histogram_;
+    private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram histogram_;
     /**
      * optional .io.prometheus.client.Histogram histogram = 7;
      * @return Whether the histogram field is set.
@@ -12079,15 +12119,15 @@ public boolean hasHistogram() {
      * @return The histogram.
      */
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram getHistogram() {
-      return histogram_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram.getDefaultInstance() : histogram_;
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram getHistogram() {
+      return histogram_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram.getDefaultInstance() : histogram_;
     }
     /**
      * optional .io.prometheus.client.Histogram histogram = 7;
      */
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.HistogramOrBuilder getHistogramOrBuilder() {
-      return histogram_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram.getDefaultInstance() : histogram_;
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.HistogramOrBuilder getHistogramOrBuilder() {
+      return histogram_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram.getDefaultInstance() : histogram_;
     }
 
     public static final int TIMESTAMP_MS_FIELD_NUMBER = 6;
@@ -12146,13 +12186,8 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       }
       getUnknownFields().writeTo(output);
     }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
+    private int computeSerializedSize_0() {
+      int size = 0;
 
           {
             final int count = label_.size();
@@ -12186,6 +12221,15 @@ public int getSerializedSize() {
         size += com.google.protobuf.CodedOutputStream
           .computeMessageSize(7, getHistogram());
       }
+      return size;
+    }
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      size += computeSerializedSize_0();
       size += getUnknownFields().getSerializedSize();
       memoizedSize = size;
       return size;
@@ -12196,10 +12240,10 @@ public boolean equals(final java.lang.Object obj) {
       if (obj == this) {
        return true;
       }
-      if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric)) {
+      if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric)) {
         return super.equals(obj);
       }
-      io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric) obj;
+      io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric) obj;
 
       if (!getLabelList()
           .equals(other.getLabelList())) return false;
@@ -12278,44 +12322,44 @@ public int hashCode() {
       return hash;
     }
 
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric parseFrom(
         java.nio.ByteBuffer data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric parseFrom(
         java.nio.ByteBuffer data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric parseFrom(
         com.google.protobuf.ByteString data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric parseFrom(
         com.google.protobuf.ByteString data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric parseFrom(byte[] data)
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric parseFrom(byte[] data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric parseFrom(
         byte[] data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric parseFrom(java.io.InputStream input)
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric parseFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessage
           .parseWithIOException(PARSER, input);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric parseFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
@@ -12323,26 +12367,26 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto
           .parseWithIOException(PARSER, input, extensionRegistry);
     }
 
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric parseDelimitedFrom(java.io.InputStream input)
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessage
           .parseDelimitedWithIOException(PARSER, input);
     }
 
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric parseDelimitedFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric parseDelimitedFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessage
           .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric parseFrom(
         com.google.protobuf.CodedInputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessage
           .parseWithIOException(PARSER, input);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric parseFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
@@ -12355,7 +12399,7 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto
     public static Builder newBuilder() {
       return DEFAULT_INSTANCE.toBuilder();
     }
-    public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric prototype) {
+    public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric prototype) {
       return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
     }
     @java.lang.Override
@@ -12376,21 +12420,21 @@ protected Builder newBuilderForType(
     public static final class Builder extends
         com.google.protobuf.GeneratedMessage.Builder implements
         // @@protoc_insertion_point(builder_implements:io.prometheus.client.Metric)
-        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricOrBuilder {
+        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricOrBuilder {
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
-        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Metric_descriptor;
+        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Metric_descriptor;
       }
 
       @java.lang.Override
       protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
           internalGetFieldAccessorTable() {
-        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Metric_fieldAccessorTable
+        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Metric_fieldAccessorTable
             .ensureFieldAccessorsInitialized(
-                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric.Builder.class);
+                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric.Builder.class);
       }
 
-      // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric.newBuilder()
+      // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric.newBuilder()
       private Builder() {
         maybeForceBuilderInitialization();
       }
@@ -12454,17 +12498,17 @@ public Builder clear() {
       @java.lang.Override
       public com.google.protobuf.Descriptors.Descriptor
           getDescriptorForType() {
-        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_Metric_descriptor;
+        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_Metric_descriptor;
       }
 
       @java.lang.Override
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric getDefaultInstanceForType() {
-        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric.getDefaultInstance();
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric getDefaultInstanceForType() {
+        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric.getDefaultInstance();
       }
 
       @java.lang.Override
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric build() {
-        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric result = buildPartial();
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric build() {
+        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric result = buildPartial();
         if (!result.isInitialized()) {
           throw newUninitializedMessageException(result);
         }
@@ -12472,15 +12516,15 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
       }
 
       @java.lang.Override
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric buildPartial() {
-        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric(this);
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric buildPartial() {
+        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric(this);
         buildPartialRepeatedFields(result);
         if (bitField0_ != 0) { buildPartial0(result); }
         onBuilt();
         return result;
       }
 
-      private void buildPartialRepeatedFields(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric result) {
+      private void buildPartialRepeatedFields(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric result) {
         if (labelBuilder_ == null) {
           if (((bitField0_ & 0x00000001) != 0)) {
             label_ = java.util.Collections.unmodifiableList(label_);
@@ -12492,7 +12536,7 @@ private void buildPartialRepeatedFields(io.prometheus.metrics.expositionformats.
         }
       }
 
-      private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric result) {
+      private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric result) {
         int from_bitField0_ = bitField0_;
         int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000002) != 0)) {
@@ -12534,16 +12578,16 @@ private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com
 
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric) {
-          return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric)other);
+        if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric) {
+          return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric)other);
         } else {
           super.mergeFrom(other);
           return this;
         }
       }
 
-      public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric other) {
-        if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric.getDefaultInstance()) return this;
+      public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric other) {
+        if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric.getDefaultInstance()) return this;
         if (labelBuilder_ == null) {
           if (!other.label_.isEmpty()) {
             if (label_.isEmpty()) {
@@ -12615,9 +12659,9 @@ public Builder mergeFrom(
                 done = true;
                 break;
               case 10: {
-                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair m =
+                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair m =
                     input.readMessage(
-                        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.parser(),
+                        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.parser(),
                         extensionRegistry);
                 if (labelBuilder_ == null) {
                   ensureLabelIsMutable();
@@ -12684,22 +12728,22 @@ public Builder mergeFrom(
       }
       private int bitField0_;
 
-      private java.util.List label_ =
+      private java.util.List label_ =
         java.util.Collections.emptyList();
       private void ensureLabelIsMutable() {
         if (!((bitField0_ & 0x00000001) != 0)) {
-          label_ = new java.util.ArrayList(label_);
+          label_ = new java.util.ArrayList(label_);
           bitField0_ |= 0x00000001;
          }
       }
 
       private com.google.protobuf.RepeatedFieldBuilder<
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPairOrBuilder> labelBuilder_;
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPairOrBuilder> labelBuilder_;
 
       /**
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
-      public java.util.List getLabelList() {
+      public java.util.List getLabelList() {
         if (labelBuilder_ == null) {
           return java.util.Collections.unmodifiableList(label_);
         } else {
@@ -12719,7 +12763,7 @@ public int getLabelCount() {
       /**
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair getLabel(int index) {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair getLabel(int index) {
         if (labelBuilder_ == null) {
           return label_.get(index);
         } else {
@@ -12730,7 +12774,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
       public Builder setLabel(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair value) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair value) {
         if (labelBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -12747,7 +12791,7 @@ public Builder setLabel(
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
       public Builder setLabel(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.Builder builderForValue) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.Builder builderForValue) {
         if (labelBuilder_ == null) {
           ensureLabelIsMutable();
           label_.set(index, builderForValue.build());
@@ -12760,7 +12804,7 @@ public Builder setLabel(
       /**
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
-      public Builder addLabel(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair value) {
+      public Builder addLabel(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair value) {
         if (labelBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -12777,7 +12821,7 @@ public Builder addLabel(io.prometheus.metrics.expositionformats.generated.com_go
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
       public Builder addLabel(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair value) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair value) {
         if (labelBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -12794,7 +12838,7 @@ public Builder addLabel(
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
       public Builder addLabel(
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.Builder builderForValue) {
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.Builder builderForValue) {
         if (labelBuilder_ == null) {
           ensureLabelIsMutable();
           label_.add(builderForValue.build());
@@ -12808,7 +12852,7 @@ public Builder addLabel(
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
       public Builder addLabel(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.Builder builderForValue) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.Builder builderForValue) {
         if (labelBuilder_ == null) {
           ensureLabelIsMutable();
           label_.add(index, builderForValue.build());
@@ -12822,7 +12866,7 @@ public Builder addLabel(
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
       public Builder addAllLabel(
-          java.lang.Iterable values) {
+          java.lang.Iterable values) {
         if (labelBuilder_ == null) {
           ensureLabelIsMutable();
           com.google.protobuf.AbstractMessageLite.Builder.addAll(
@@ -12862,14 +12906,14 @@ public Builder removeLabel(int index) {
       /**
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.Builder getLabelBuilder(
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.Builder getLabelBuilder(
           int index) {
         return internalGetLabelFieldBuilder().getBuilder(index);
       }
       /**
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPairOrBuilder getLabelOrBuilder(
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPairOrBuilder getLabelOrBuilder(
           int index) {
         if (labelBuilder_ == null) {
           return label_.get(index);  } else {
@@ -12879,7 +12923,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
       /**
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
-      public java.util.List 
+      public java.util.List 
            getLabelOrBuilderList() {
         if (labelBuilder_ != null) {
           return labelBuilder_.getMessageOrBuilderList();
@@ -12890,31 +12934,31 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
       /**
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.Builder addLabelBuilder() {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.Builder addLabelBuilder() {
         return internalGetLabelFieldBuilder().addBuilder(
-            io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.getDefaultInstance());
+            io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.getDefaultInstance());
       }
       /**
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.Builder addLabelBuilder(
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.Builder addLabelBuilder(
           int index) {
         return internalGetLabelFieldBuilder().addBuilder(
-            index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.getDefaultInstance());
+            index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.getDefaultInstance());
       }
       /**
        * repeated .io.prometheus.client.LabelPair label = 1;
        */
-      public java.util.List 
+      public java.util.List 
            getLabelBuilderList() {
         return internalGetLabelFieldBuilder().getBuilderList();
       }
       private com.google.protobuf.RepeatedFieldBuilder<
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPairOrBuilder> 
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPairOrBuilder> 
           internalGetLabelFieldBuilder() {
         if (labelBuilder_ == null) {
           labelBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPair.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.LabelPairOrBuilder>(
+              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPair.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.LabelPairOrBuilder>(
                   label_,
                   ((bitField0_ & 0x00000001) != 0),
                   getParentForChildren(),
@@ -12924,9 +12968,9 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
         return labelBuilder_;
       }
 
-      private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge gauge_;
+      private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge gauge_;
       private com.google.protobuf.SingleFieldBuilder<
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.GaugeOrBuilder> gaugeBuilder_;
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.GaugeOrBuilder> gaugeBuilder_;
       /**
        * optional .io.prometheus.client.Gauge gauge = 2;
        * @return Whether the gauge field is set.
@@ -12938,9 +12982,9 @@ public boolean hasGauge() {
        * optional .io.prometheus.client.Gauge gauge = 2;
        * @return The gauge.
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge getGauge() {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge getGauge() {
         if (gaugeBuilder_ == null) {
-          return gauge_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge.getDefaultInstance() : gauge_;
+          return gauge_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge.getDefaultInstance() : gauge_;
         } else {
           return gaugeBuilder_.getMessage();
         }
@@ -12948,7 +12992,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
       /**
        * optional .io.prometheus.client.Gauge gauge = 2;
        */
-      public Builder setGauge(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge value) {
+      public Builder setGauge(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge value) {
         if (gaugeBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -12965,7 +13009,7 @@ public Builder setGauge(io.prometheus.metrics.expositionformats.generated.com_go
        * optional .io.prometheus.client.Gauge gauge = 2;
        */
       public Builder setGauge(
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge.Builder builderForValue) {
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge.Builder builderForValue) {
         if (gaugeBuilder_ == null) {
           gauge_ = builderForValue.build();
         } else {
@@ -12978,11 +13022,11 @@ public Builder setGauge(
       /**
        * optional .io.prometheus.client.Gauge gauge = 2;
        */
-      public Builder mergeGauge(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge value) {
+      public Builder mergeGauge(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge value) {
         if (gaugeBuilder_ == null) {
           if (((bitField0_ & 0x00000002) != 0) &&
             gauge_ != null &&
-            gauge_ != io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge.getDefaultInstance()) {
+            gauge_ != io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge.getDefaultInstance()) {
             getGaugeBuilder().mergeFrom(value);
           } else {
             gauge_ = value;
@@ -13012,7 +13056,7 @@ public Builder clearGauge() {
       /**
        * optional .io.prometheus.client.Gauge gauge = 2;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge.Builder getGaugeBuilder() {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge.Builder getGaugeBuilder() {
         bitField0_ |= 0x00000002;
         onChanged();
         return internalGetGaugeFieldBuilder().getBuilder();
@@ -13020,23 +13064,23 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
       /**
        * optional .io.prometheus.client.Gauge gauge = 2;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.GaugeOrBuilder getGaugeOrBuilder() {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.GaugeOrBuilder getGaugeOrBuilder() {
         if (gaugeBuilder_ != null) {
           return gaugeBuilder_.getMessageOrBuilder();
         } else {
           return gauge_ == null ?
-              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge.getDefaultInstance() : gauge_;
+              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge.getDefaultInstance() : gauge_;
         }
       }
       /**
        * optional .io.prometheus.client.Gauge gauge = 2;
        */
       private com.google.protobuf.SingleFieldBuilder<
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.GaugeOrBuilder> 
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.GaugeOrBuilder> 
           internalGetGaugeFieldBuilder() {
         if (gaugeBuilder_ == null) {
           gaugeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
-              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Gauge.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.GaugeOrBuilder>(
+              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Gauge.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.GaugeOrBuilder>(
                   getGauge(),
                   getParentForChildren(),
                   isClean());
@@ -13045,9 +13089,9 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
         return gaugeBuilder_;
       }
 
-      private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter counter_;
+      private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter counter_;
       private com.google.protobuf.SingleFieldBuilder<
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.CounterOrBuilder> counterBuilder_;
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.CounterOrBuilder> counterBuilder_;
       /**
        * optional .io.prometheus.client.Counter counter = 3;
        * @return Whether the counter field is set.
@@ -13059,9 +13103,9 @@ public boolean hasCounter() {
        * optional .io.prometheus.client.Counter counter = 3;
        * @return The counter.
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter getCounter() {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter getCounter() {
         if (counterBuilder_ == null) {
-          return counter_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter.getDefaultInstance() : counter_;
+          return counter_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter.getDefaultInstance() : counter_;
         } else {
           return counterBuilder_.getMessage();
         }
@@ -13069,7 +13113,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
       /**
        * optional .io.prometheus.client.Counter counter = 3;
        */
-      public Builder setCounter(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter value) {
+      public Builder setCounter(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter value) {
         if (counterBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -13086,7 +13130,7 @@ public Builder setCounter(io.prometheus.metrics.expositionformats.generated.com_
        * optional .io.prometheus.client.Counter counter = 3;
        */
       public Builder setCounter(
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter.Builder builderForValue) {
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter.Builder builderForValue) {
         if (counterBuilder_ == null) {
           counter_ = builderForValue.build();
         } else {
@@ -13099,11 +13143,11 @@ public Builder setCounter(
       /**
        * optional .io.prometheus.client.Counter counter = 3;
        */
-      public Builder mergeCounter(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter value) {
+      public Builder mergeCounter(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter value) {
         if (counterBuilder_ == null) {
           if (((bitField0_ & 0x00000004) != 0) &&
             counter_ != null &&
-            counter_ != io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter.getDefaultInstance()) {
+            counter_ != io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter.getDefaultInstance()) {
             getCounterBuilder().mergeFrom(value);
           } else {
             counter_ = value;
@@ -13133,7 +13177,7 @@ public Builder clearCounter() {
       /**
        * optional .io.prometheus.client.Counter counter = 3;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter.Builder getCounterBuilder() {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter.Builder getCounterBuilder() {
         bitField0_ |= 0x00000004;
         onChanged();
         return internalGetCounterFieldBuilder().getBuilder();
@@ -13141,23 +13185,23 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
       /**
        * optional .io.prometheus.client.Counter counter = 3;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.CounterOrBuilder getCounterOrBuilder() {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.CounterOrBuilder getCounterOrBuilder() {
         if (counterBuilder_ != null) {
           return counterBuilder_.getMessageOrBuilder();
         } else {
           return counter_ == null ?
-              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter.getDefaultInstance() : counter_;
+              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter.getDefaultInstance() : counter_;
         }
       }
       /**
        * optional .io.prometheus.client.Counter counter = 3;
        */
       private com.google.protobuf.SingleFieldBuilder<
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.CounterOrBuilder> 
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.CounterOrBuilder> 
           internalGetCounterFieldBuilder() {
         if (counterBuilder_ == null) {
           counterBuilder_ = new com.google.protobuf.SingleFieldBuilder<
-              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Counter.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.CounterOrBuilder>(
+              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Counter.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.CounterOrBuilder>(
                   getCounter(),
                   getParentForChildren(),
                   isClean());
@@ -13166,9 +13210,9 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
         return counterBuilder_;
       }
 
-      private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary summary_;
+      private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary summary_;
       private com.google.protobuf.SingleFieldBuilder<
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.SummaryOrBuilder> summaryBuilder_;
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.SummaryOrBuilder> summaryBuilder_;
       /**
        * optional .io.prometheus.client.Summary summary = 4;
        * @return Whether the summary field is set.
@@ -13180,9 +13224,9 @@ public boolean hasSummary() {
        * optional .io.prometheus.client.Summary summary = 4;
        * @return The summary.
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary getSummary() {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary getSummary() {
         if (summaryBuilder_ == null) {
-          return summary_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary.getDefaultInstance() : summary_;
+          return summary_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary.getDefaultInstance() : summary_;
         } else {
           return summaryBuilder_.getMessage();
         }
@@ -13190,7 +13234,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
       /**
        * optional .io.prometheus.client.Summary summary = 4;
        */
-      public Builder setSummary(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary value) {
+      public Builder setSummary(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary value) {
         if (summaryBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -13207,7 +13251,7 @@ public Builder setSummary(io.prometheus.metrics.expositionformats.generated.com_
        * optional .io.prometheus.client.Summary summary = 4;
        */
       public Builder setSummary(
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary.Builder builderForValue) {
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary.Builder builderForValue) {
         if (summaryBuilder_ == null) {
           summary_ = builderForValue.build();
         } else {
@@ -13220,11 +13264,11 @@ public Builder setSummary(
       /**
        * optional .io.prometheus.client.Summary summary = 4;
        */
-      public Builder mergeSummary(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary value) {
+      public Builder mergeSummary(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary value) {
         if (summaryBuilder_ == null) {
           if (((bitField0_ & 0x00000008) != 0) &&
             summary_ != null &&
-            summary_ != io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary.getDefaultInstance()) {
+            summary_ != io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary.getDefaultInstance()) {
             getSummaryBuilder().mergeFrom(value);
           } else {
             summary_ = value;
@@ -13254,7 +13298,7 @@ public Builder clearSummary() {
       /**
        * optional .io.prometheus.client.Summary summary = 4;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary.Builder getSummaryBuilder() {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary.Builder getSummaryBuilder() {
         bitField0_ |= 0x00000008;
         onChanged();
         return internalGetSummaryFieldBuilder().getBuilder();
@@ -13262,23 +13306,23 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
       /**
        * optional .io.prometheus.client.Summary summary = 4;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.SummaryOrBuilder getSummaryOrBuilder() {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.SummaryOrBuilder getSummaryOrBuilder() {
         if (summaryBuilder_ != null) {
           return summaryBuilder_.getMessageOrBuilder();
         } else {
           return summary_ == null ?
-              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary.getDefaultInstance() : summary_;
+              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary.getDefaultInstance() : summary_;
         }
       }
       /**
        * optional .io.prometheus.client.Summary summary = 4;
        */
       private com.google.protobuf.SingleFieldBuilder<
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.SummaryOrBuilder> 
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.SummaryOrBuilder> 
           internalGetSummaryFieldBuilder() {
         if (summaryBuilder_ == null) {
           summaryBuilder_ = new com.google.protobuf.SingleFieldBuilder<
-              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Summary.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.SummaryOrBuilder>(
+              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Summary.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.SummaryOrBuilder>(
                   getSummary(),
                   getParentForChildren(),
                   isClean());
@@ -13287,9 +13331,9 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
         return summaryBuilder_;
       }
 
-      private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped untyped_;
+      private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped untyped_;
       private com.google.protobuf.SingleFieldBuilder<
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.UntypedOrBuilder> untypedBuilder_;
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.UntypedOrBuilder> untypedBuilder_;
       /**
        * optional .io.prometheus.client.Untyped untyped = 5;
        * @return Whether the untyped field is set.
@@ -13301,9 +13345,9 @@ public boolean hasUntyped() {
        * optional .io.prometheus.client.Untyped untyped = 5;
        * @return The untyped.
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped getUntyped() {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped getUntyped() {
         if (untypedBuilder_ == null) {
-          return untyped_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped.getDefaultInstance() : untyped_;
+          return untyped_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped.getDefaultInstance() : untyped_;
         } else {
           return untypedBuilder_.getMessage();
         }
@@ -13311,7 +13355,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
       /**
        * optional .io.prometheus.client.Untyped untyped = 5;
        */
-      public Builder setUntyped(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped value) {
+      public Builder setUntyped(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped value) {
         if (untypedBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -13328,7 +13372,7 @@ public Builder setUntyped(io.prometheus.metrics.expositionformats.generated.com_
        * optional .io.prometheus.client.Untyped untyped = 5;
        */
       public Builder setUntyped(
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped.Builder builderForValue) {
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped.Builder builderForValue) {
         if (untypedBuilder_ == null) {
           untyped_ = builderForValue.build();
         } else {
@@ -13341,11 +13385,11 @@ public Builder setUntyped(
       /**
        * optional .io.prometheus.client.Untyped untyped = 5;
        */
-      public Builder mergeUntyped(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped value) {
+      public Builder mergeUntyped(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped value) {
         if (untypedBuilder_ == null) {
           if (((bitField0_ & 0x00000010) != 0) &&
             untyped_ != null &&
-            untyped_ != io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped.getDefaultInstance()) {
+            untyped_ != io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped.getDefaultInstance()) {
             getUntypedBuilder().mergeFrom(value);
           } else {
             untyped_ = value;
@@ -13375,7 +13419,7 @@ public Builder clearUntyped() {
       /**
        * optional .io.prometheus.client.Untyped untyped = 5;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped.Builder getUntypedBuilder() {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped.Builder getUntypedBuilder() {
         bitField0_ |= 0x00000010;
         onChanged();
         return internalGetUntypedFieldBuilder().getBuilder();
@@ -13383,23 +13427,23 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
       /**
        * optional .io.prometheus.client.Untyped untyped = 5;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.UntypedOrBuilder getUntypedOrBuilder() {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.UntypedOrBuilder getUntypedOrBuilder() {
         if (untypedBuilder_ != null) {
           return untypedBuilder_.getMessageOrBuilder();
         } else {
           return untyped_ == null ?
-              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped.getDefaultInstance() : untyped_;
+              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped.getDefaultInstance() : untyped_;
         }
       }
       /**
        * optional .io.prometheus.client.Untyped untyped = 5;
        */
       private com.google.protobuf.SingleFieldBuilder<
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.UntypedOrBuilder> 
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.UntypedOrBuilder> 
           internalGetUntypedFieldBuilder() {
         if (untypedBuilder_ == null) {
           untypedBuilder_ = new com.google.protobuf.SingleFieldBuilder<
-              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Untyped.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.UntypedOrBuilder>(
+              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Untyped.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.UntypedOrBuilder>(
                   getUntyped(),
                   getParentForChildren(),
                   isClean());
@@ -13408,9 +13452,9 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
         return untypedBuilder_;
       }
 
-      private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram histogram_;
+      private io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram histogram_;
       private com.google.protobuf.SingleFieldBuilder<
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.HistogramOrBuilder> histogramBuilder_;
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.HistogramOrBuilder> histogramBuilder_;
       /**
        * optional .io.prometheus.client.Histogram histogram = 7;
        * @return Whether the histogram field is set.
@@ -13422,9 +13466,9 @@ public boolean hasHistogram() {
        * optional .io.prometheus.client.Histogram histogram = 7;
        * @return The histogram.
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram getHistogram() {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram getHistogram() {
         if (histogramBuilder_ == null) {
-          return histogram_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram.getDefaultInstance() : histogram_;
+          return histogram_ == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram.getDefaultInstance() : histogram_;
         } else {
           return histogramBuilder_.getMessage();
         }
@@ -13432,7 +13476,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
       /**
        * optional .io.prometheus.client.Histogram histogram = 7;
        */
-      public Builder setHistogram(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram value) {
+      public Builder setHistogram(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram value) {
         if (histogramBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -13449,7 +13493,7 @@ public Builder setHistogram(io.prometheus.metrics.expositionformats.generated.co
        * optional .io.prometheus.client.Histogram histogram = 7;
        */
       public Builder setHistogram(
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram.Builder builderForValue) {
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram.Builder builderForValue) {
         if (histogramBuilder_ == null) {
           histogram_ = builderForValue.build();
         } else {
@@ -13462,11 +13506,11 @@ public Builder setHistogram(
       /**
        * optional .io.prometheus.client.Histogram histogram = 7;
        */
-      public Builder mergeHistogram(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram value) {
+      public Builder mergeHistogram(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram value) {
         if (histogramBuilder_ == null) {
           if (((bitField0_ & 0x00000020) != 0) &&
             histogram_ != null &&
-            histogram_ != io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram.getDefaultInstance()) {
+            histogram_ != io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram.getDefaultInstance()) {
             getHistogramBuilder().mergeFrom(value);
           } else {
             histogram_ = value;
@@ -13496,7 +13540,7 @@ public Builder clearHistogram() {
       /**
        * optional .io.prometheus.client.Histogram histogram = 7;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram.Builder getHistogramBuilder() {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram.Builder getHistogramBuilder() {
         bitField0_ |= 0x00000020;
         onChanged();
         return internalGetHistogramFieldBuilder().getBuilder();
@@ -13504,23 +13548,23 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
       /**
        * optional .io.prometheus.client.Histogram histogram = 7;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.HistogramOrBuilder getHistogramOrBuilder() {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.HistogramOrBuilder getHistogramOrBuilder() {
         if (histogramBuilder_ != null) {
           return histogramBuilder_.getMessageOrBuilder();
         } else {
           return histogram_ == null ?
-              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram.getDefaultInstance() : histogram_;
+              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram.getDefaultInstance() : histogram_;
         }
       }
       /**
        * optional .io.prometheus.client.Histogram histogram = 7;
        */
       private com.google.protobuf.SingleFieldBuilder<
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.HistogramOrBuilder> 
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.HistogramOrBuilder> 
           internalGetHistogramFieldBuilder() {
         if (histogramBuilder_ == null) {
           histogramBuilder_ = new com.google.protobuf.SingleFieldBuilder<
-              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Histogram.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.HistogramOrBuilder>(
+              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Histogram.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.HistogramOrBuilder>(
                   getHistogram(),
                   getParentForChildren(),
                   isClean());
@@ -13573,12 +13617,12 @@ public Builder clearTimestampMs() {
     }
 
     // @@protoc_insertion_point(class_scope:io.prometheus.client.Metric)
-    private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric DEFAULT_INSTANCE;
+    private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric DEFAULT_INSTANCE;
     static {
-      DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric();
+      DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric();
     }
 
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric getDefaultInstance() {
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric getDefaultInstance() {
       return DEFAULT_INSTANCE;
     }
 
@@ -13614,7 +13658,7 @@ public com.google.protobuf.Parser getParserForType() {
     }
 
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric getDefaultInstanceForType() {
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric getDefaultInstanceForType() {
       return DEFAULT_INSTANCE;
     }
 
@@ -13667,17 +13711,17 @@ public interface MetricFamilyOrBuilder extends
      * optional .io.prometheus.client.MetricType type = 3;
      * @return The type.
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricType getType();
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricType getType();
 
     /**
      * repeated .io.prometheus.client.Metric metric = 4;
      */
-    java.util.List 
+    java.util.List 
         getMetricList();
     /**
      * repeated .io.prometheus.client.Metric metric = 4;
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric getMetric(int index);
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric getMetric(int index);
     /**
      * repeated .io.prometheus.client.Metric metric = 4;
      */
@@ -13685,12 +13729,12 @@ public interface MetricFamilyOrBuilder extends
     /**
      * repeated .io.prometheus.client.Metric metric = 4;
      */
-    java.util.List 
+    java.util.List 
         getMetricOrBuilderList();
     /**
      * repeated .io.prometheus.client.Metric metric = 4;
      */
-    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricOrBuilder getMetricOrBuilder(
+    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricOrBuilder getMetricOrBuilder(
         int index);
 
     /**
@@ -13722,8 +13766,8 @@ public static final class MetricFamily extends
       com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
         com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
         /* major= */ 4,
-        /* minor= */ 34,
-        /* patch= */ 1,
+        /* minor= */ 35,
+        /* patch= */ 0,
         /* suffix= */ "",
         "MetricFamily");
     }
@@ -13741,20 +13785,20 @@ private MetricFamily() {
 
     public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
-      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_MetricFamily_descriptor;
+      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_MetricFamily_descriptor;
     }
 
     @java.lang.Override
     public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
-      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_MetricFamily_descriptor;
+      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_MetricFamily_descriptor;
     }
 
     @java.lang.Override
     protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
         internalGetFieldAccessorTable() {
-      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_MetricFamily_fieldAccessorTable
+      return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_MetricFamily_fieldAccessorTable
           .ensureFieldAccessorsInitialized(
-              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily.Builder.class);
+              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily.Builder.class);
     }
 
     private int bitField0_;
@@ -13869,26 +13913,26 @@ public java.lang.String getHelp() {
      * optional .io.prometheus.client.MetricType type = 3;
      * @return The type.
      */
-    @java.lang.Override public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricType getType() {
-      io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricType result = io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricType.forNumber(type_);
-      return result == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricType.COUNTER : result;
+    @java.lang.Override public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricType getType() {
+      io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricType result = io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricType.forNumber(type_);
+      return result == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricType.COUNTER : result;
     }
 
     public static final int METRIC_FIELD_NUMBER = 4;
     @SuppressWarnings("serial")
-    private java.util.List metric_;
+    private java.util.List metric_;
     /**
      * repeated .io.prometheus.client.Metric metric = 4;
      */
     @java.lang.Override
-    public java.util.List getMetricList() {
+    public java.util.List getMetricList() {
       return metric_;
     }
     /**
      * repeated .io.prometheus.client.Metric metric = 4;
      */
     @java.lang.Override
-    public java.util.List 
+    public java.util.List 
         getMetricOrBuilderList() {
       return metric_;
     }
@@ -13903,14 +13947,14 @@ public int getMetricCount() {
      * repeated .io.prometheus.client.Metric metric = 4;
      */
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric getMetric(int index) {
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric getMetric(int index) {
       return metric_.get(index);
     }
     /**
      * repeated .io.prometheus.client.Metric metric = 4;
      */
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricOrBuilder getMetricOrBuilder(
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricOrBuilder getMetricOrBuilder(
         int index) {
       return metric_.get(index);
     }
@@ -13995,13 +14039,8 @@ public void writeTo(com.google.protobuf.CodedOutputStream output)
       }
       getUnknownFields().writeTo(output);
     }
-
-    @java.lang.Override
-    public int getSerializedSize() {
-      int size = memoizedSize;
-      if (size != -1) return size;
-
-      size = 0;
+    private int computeSerializedSize_0() {
+      int size = 0;
       if (((bitField0_ & 0x00000001) != 0)) {
         size += com.google.protobuf.GeneratedMessage.computeStringSize(1, name_);
       }
@@ -14024,6 +14063,15 @@ public int getSerializedSize() {
       if (((bitField0_ & 0x00000008) != 0)) {
         size += com.google.protobuf.GeneratedMessage.computeStringSize(5, unit_);
       }
+      return size;
+    }
+    @java.lang.Override
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      size += computeSerializedSize_0();
       size += getUnknownFields().getSerializedSize();
       memoizedSize = size;
       return size;
@@ -14034,10 +14082,10 @@ public boolean equals(final java.lang.Object obj) {
       if (obj == this) {
        return true;
       }
-      if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily)) {
+      if (!(obj instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily)) {
         return super.equals(obj);
       }
-      io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily) obj;
+      io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily other = (io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily) obj;
 
       if (hasName() != other.hasName()) return false;
       if (hasName()) {
@@ -14096,44 +14144,44 @@ public int hashCode() {
       return hash;
     }
 
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily parseFrom(
         java.nio.ByteBuffer data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily parseFrom(
         java.nio.ByteBuffer data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily parseFrom(
         com.google.protobuf.ByteString data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily parseFrom(
         com.google.protobuf.ByteString data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily parseFrom(byte[] data)
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily parseFrom(byte[] data)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily parseFrom(
         byte[] data,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws com.google.protobuf.InvalidProtocolBufferException {
       return PARSER.parseFrom(data, extensionRegistry);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily parseFrom(java.io.InputStream input)
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily parseFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessage
           .parseWithIOException(PARSER, input);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily parseFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
@@ -14141,26 +14189,26 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto
           .parseWithIOException(PARSER, input, extensionRegistry);
     }
 
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily parseDelimitedFrom(java.io.InputStream input)
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessage
           .parseDelimitedWithIOException(PARSER, input);
     }
 
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily parseDelimitedFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily parseDelimitedFrom(
         java.io.InputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessage
           .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily parseFrom(
         com.google.protobuf.CodedInputStream input)
         throws java.io.IOException {
       return com.google.protobuf.GeneratedMessage
           .parseWithIOException(PARSER, input);
     }
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily parseFrom(
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily parseFrom(
         com.google.protobuf.CodedInputStream input,
         com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
@@ -14173,7 +14221,7 @@ public static io.prometheus.metrics.expositionformats.generated.com_google_proto
     public static Builder newBuilder() {
       return DEFAULT_INSTANCE.toBuilder();
     }
-    public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily prototype) {
+    public static Builder newBuilder(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily prototype) {
       return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
     }
     @java.lang.Override
@@ -14194,21 +14242,21 @@ protected Builder newBuilderForType(
     public static final class Builder extends
         com.google.protobuf.GeneratedMessage.Builder implements
         // @@protoc_insertion_point(builder_implements:io.prometheus.client.MetricFamily)
-        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamilyOrBuilder {
+        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamilyOrBuilder {
       public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
-        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_MetricFamily_descriptor;
+        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_MetricFamily_descriptor;
       }
 
       @java.lang.Override
       protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
           internalGetFieldAccessorTable() {
-        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_MetricFamily_fieldAccessorTable
+        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_MetricFamily_fieldAccessorTable
             .ensureFieldAccessorsInitialized(
-                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily.Builder.class);
+                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily.class, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily.Builder.class);
       }
 
-      // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily.newBuilder()
+      // Construct using io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily.newBuilder()
       private Builder() {
 
       }
@@ -14239,17 +14287,17 @@ public Builder clear() {
       @java.lang.Override
       public com.google.protobuf.Descriptors.Descriptor
           getDescriptorForType() {
-        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.internal_static_io_prometheus_client_MetricFamily_descriptor;
+        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.internal_static_io_prometheus_client_MetricFamily_descriptor;
       }
 
       @java.lang.Override
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily getDefaultInstanceForType() {
-        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily.getDefaultInstance();
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily getDefaultInstanceForType() {
+        return io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily.getDefaultInstance();
       }
 
       @java.lang.Override
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily build() {
-        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily result = buildPartial();
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily build() {
+        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily result = buildPartial();
         if (!result.isInitialized()) {
           throw newUninitializedMessageException(result);
         }
@@ -14257,15 +14305,15 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
       }
 
       @java.lang.Override
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily buildPartial() {
-        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily(this);
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily buildPartial() {
+        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily result = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily(this);
         buildPartialRepeatedFields(result);
         if (bitField0_ != 0) { buildPartial0(result); }
         onBuilt();
         return result;
       }
 
-      private void buildPartialRepeatedFields(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily result) {
+      private void buildPartialRepeatedFields(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily result) {
         if (metricBuilder_ == null) {
           if (((bitField0_ & 0x00000008) != 0)) {
             metric_ = java.util.Collections.unmodifiableList(metric_);
@@ -14277,7 +14325,7 @@ private void buildPartialRepeatedFields(io.prometheus.metrics.expositionformats.
         }
       }
 
-      private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily result) {
+      private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily result) {
         int from_bitField0_ = bitField0_;
         int to_bitField0_ = 0;
         if (((from_bitField0_ & 0x00000001) != 0)) {
@@ -14301,16 +14349,16 @@ private void buildPartial0(io.prometheus.metrics.expositionformats.generated.com
 
       @java.lang.Override
       public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily) {
-          return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily)other);
+        if (other instanceof io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily) {
+          return mergeFrom((io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily)other);
         } else {
           super.mergeFrom(other);
           return this;
         }
       }
 
-      public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily other) {
-        if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily.getDefaultInstance()) return this;
+      public Builder mergeFrom(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily other) {
+        if (other == io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily.getDefaultInstance()) return this;
         if (other.hasName()) {
           name_ = other.name_;
           bitField0_ |= 0x00000001;
@@ -14393,8 +14441,8 @@ public Builder mergeFrom(
               } // case 18
               case 24: {
                 int tmpRaw = input.readEnum();
-                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricType tmpValue =
-                    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricType.forNumber(tmpRaw);
+                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricType tmpValue =
+                    io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricType.forNumber(tmpRaw);
                 if (tmpValue == null) {
                   mergeUnknownVarintField(3, tmpRaw);
                 } else {
@@ -14404,9 +14452,9 @@ public Builder mergeFrom(
                 break;
               } // case 24
               case 34: {
-                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric m =
+                io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric m =
                     input.readMessage(
-                        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric.parser(),
+                        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric.parser(),
                         extensionRegistry);
                 if (metricBuilder_ == null) {
                   ensureMetricIsMutable();
@@ -14611,16 +14659,16 @@ public Builder setHelpBytes(
        * @return The type.
        */
       @java.lang.Override
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricType getType() {
-        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricType result = io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricType.forNumber(type_);
-        return result == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricType.COUNTER : result;
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricType getType() {
+        io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricType result = io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricType.forNumber(type_);
+        return result == null ? io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricType.COUNTER : result;
       }
       /**
        * optional .io.prometheus.client.MetricType type = 3;
        * @param value The type to set.
        * @return This builder for chaining.
        */
-      public Builder setType(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricType value) {
+      public Builder setType(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricType value) {
         if (value == null) { throw new NullPointerException(); }
         bitField0_ |= 0x00000004;
         type_ = value.getNumber();
@@ -14638,22 +14686,22 @@ public Builder clearType() {
         return this;
       }
 
-      private java.util.List metric_ =
+      private java.util.List metric_ =
         java.util.Collections.emptyList();
       private void ensureMetricIsMutable() {
         if (!((bitField0_ & 0x00000008) != 0)) {
-          metric_ = new java.util.ArrayList(metric_);
+          metric_ = new java.util.ArrayList(metric_);
           bitField0_ |= 0x00000008;
          }
       }
 
       private com.google.protobuf.RepeatedFieldBuilder<
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricOrBuilder> metricBuilder_;
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricOrBuilder> metricBuilder_;
 
       /**
        * repeated .io.prometheus.client.Metric metric = 4;
        */
-      public java.util.List getMetricList() {
+      public java.util.List getMetricList() {
         if (metricBuilder_ == null) {
           return java.util.Collections.unmodifiableList(metric_);
         } else {
@@ -14673,7 +14721,7 @@ public int getMetricCount() {
       /**
        * repeated .io.prometheus.client.Metric metric = 4;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric getMetric(int index) {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric getMetric(int index) {
         if (metricBuilder_ == null) {
           return metric_.get(index);
         } else {
@@ -14684,7 +14732,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
        * repeated .io.prometheus.client.Metric metric = 4;
        */
       public Builder setMetric(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric value) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric value) {
         if (metricBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -14701,7 +14749,7 @@ public Builder setMetric(
        * repeated .io.prometheus.client.Metric metric = 4;
        */
       public Builder setMetric(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric.Builder builderForValue) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric.Builder builderForValue) {
         if (metricBuilder_ == null) {
           ensureMetricIsMutable();
           metric_.set(index, builderForValue.build());
@@ -14714,7 +14762,7 @@ public Builder setMetric(
       /**
        * repeated .io.prometheus.client.Metric metric = 4;
        */
-      public Builder addMetric(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric value) {
+      public Builder addMetric(io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric value) {
         if (metricBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -14731,7 +14779,7 @@ public Builder addMetric(io.prometheus.metrics.expositionformats.generated.com_g
        * repeated .io.prometheus.client.Metric metric = 4;
        */
       public Builder addMetric(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric value) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric value) {
         if (metricBuilder_ == null) {
           if (value == null) {
             throw new NullPointerException();
@@ -14748,7 +14796,7 @@ public Builder addMetric(
        * repeated .io.prometheus.client.Metric metric = 4;
        */
       public Builder addMetric(
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric.Builder builderForValue) {
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric.Builder builderForValue) {
         if (metricBuilder_ == null) {
           ensureMetricIsMutable();
           metric_.add(builderForValue.build());
@@ -14762,7 +14810,7 @@ public Builder addMetric(
        * repeated .io.prometheus.client.Metric metric = 4;
        */
       public Builder addMetric(
-          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric.Builder builderForValue) {
+          int index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric.Builder builderForValue) {
         if (metricBuilder_ == null) {
           ensureMetricIsMutable();
           metric_.add(index, builderForValue.build());
@@ -14776,7 +14824,7 @@ public Builder addMetric(
        * repeated .io.prometheus.client.Metric metric = 4;
        */
       public Builder addAllMetric(
-          java.lang.Iterable values) {
+          java.lang.Iterable values) {
         if (metricBuilder_ == null) {
           ensureMetricIsMutable();
           com.google.protobuf.AbstractMessageLite.Builder.addAll(
@@ -14816,14 +14864,14 @@ public Builder removeMetric(int index) {
       /**
        * repeated .io.prometheus.client.Metric metric = 4;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric.Builder getMetricBuilder(
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric.Builder getMetricBuilder(
           int index) {
         return internalGetMetricFieldBuilder().getBuilder(index);
       }
       /**
        * repeated .io.prometheus.client.Metric metric = 4;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricOrBuilder getMetricOrBuilder(
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricOrBuilder getMetricOrBuilder(
           int index) {
         if (metricBuilder_ == null) {
           return metric_.get(index);  } else {
@@ -14833,7 +14881,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
       /**
        * repeated .io.prometheus.client.Metric metric = 4;
        */
-      public java.util.List 
+      public java.util.List 
            getMetricOrBuilderList() {
         if (metricBuilder_ != null) {
           return metricBuilder_.getMessageOrBuilderList();
@@ -14844,31 +14892,31 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
       /**
        * repeated .io.prometheus.client.Metric metric = 4;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric.Builder addMetricBuilder() {
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric.Builder addMetricBuilder() {
         return internalGetMetricFieldBuilder().addBuilder(
-            io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric.getDefaultInstance());
+            io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric.getDefaultInstance());
       }
       /**
        * repeated .io.prometheus.client.Metric metric = 4;
        */
-      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric.Builder addMetricBuilder(
+      public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric.Builder addMetricBuilder(
           int index) {
         return internalGetMetricFieldBuilder().addBuilder(
-            index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric.getDefaultInstance());
+            index, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric.getDefaultInstance());
       }
       /**
        * repeated .io.prometheus.client.Metric metric = 4;
        */
-      public java.util.List 
+      public java.util.List 
            getMetricBuilderList() {
         return internalGetMetricFieldBuilder().getBuilderList();
       }
       private com.google.protobuf.RepeatedFieldBuilder<
-          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricOrBuilder> 
+          io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricOrBuilder> 
           internalGetMetricFieldBuilder() {
         if (metricBuilder_ == null) {
           metricBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.Metric.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricOrBuilder>(
+              io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.Metric.Builder, io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricOrBuilder>(
                   metric_,
                   ((bitField0_ & 0x00000008) != 0),
                   getParentForChildren(),
@@ -14962,12 +15010,12 @@ public Builder setUnitBytes(
     }
 
     // @@protoc_insertion_point(class_scope:io.prometheus.client.MetricFamily)
-    private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily DEFAULT_INSTANCE;
+    private static final io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily DEFAULT_INSTANCE;
     static {
-      DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily();
+      DEFAULT_INSTANCE = new io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily();
     }
 
-    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily getDefaultInstance() {
+    public static io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily getDefaultInstance() {
       return DEFAULT_INSTANCE;
     }
 
@@ -15003,7 +15051,7 @@ public com.google.protobuf.Parser getParserForType() {
     }
 
     @java.lang.Override
-    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics.MetricFamily getDefaultInstanceForType() {
+    public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics.MetricFamily getDefaultInstanceForType() {
       return DEFAULT_INSTANCE;
     }
 
@@ -15128,7 +15176,7 @@ public io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_3
       "\002\022\013\n\007UNTYPED\020\003\022\r\n\tHISTOGRAM\020\004\022\023\n\017GAUGE_H" +
       "ISTOGRAM\020\005B\212\001\nLio.prometheus.metrics.exp" +
       "ositionformats.generated.com_google_prot" +
-      "obuf_4_34_1Z:github.com/prometheus/clien" +
+      "obuf_4_35_0Z:github.com/prometheus/clien" +
       "t_model/go;io_prometheus_client"
     };
     descriptor = com.google.protobuf.Descriptors.FileDescriptor
diff --git a/prometheus-metrics-exposition-formats/src/main/java/io/prometheus/metrics/expositionformats/generated/Metrics.java b/prometheus-metrics-exposition-formats/src/main/java/io/prometheus/metrics/expositionformats/generated/Metrics.java
index fe6e7ae8d..231d33d7d 100644
--- a/prometheus-metrics-exposition-formats/src/main/java/io/prometheus/metrics/expositionformats/generated/Metrics.java
+++ b/prometheus-metrics-exposition-formats/src/main/java/io/prometheus/metrics/expositionformats/generated/Metrics.java
@@ -1,6 +1,6 @@
 package io.prometheus.metrics.expositionformats.generated;
 
 public final class Metrics
-    extends io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_34_1.Metrics {
+    extends io.prometheus.metrics.expositionformats.generated.com_google_protobuf_4_35_0.Metrics {
   private Metrics() {}
 }

From ecf030a46ffb1e6a18063c9666da557383b9afc1 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 21 May 2026 14:44:52 -0400
Subject: [PATCH 20/74] fix(deps): update dependency
 io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to
 v2.28.1-alpha (#2132)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha](https://redirect.github.com/open-telemetry/opentelemetry-java-instrumentation)
| `2.28.0-alpha` → `2.28.1-alpha` |
![age](https://developer.mend.io/api/mc/badges/age/maven/io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha/2.28.1-alpha?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha/2.28.0-alpha/2.28.1-alpha?slim=true)
|

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).



Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Jay DeLuca 
---
 examples/example-otel-jvm-runtime-metrics/pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/examples/example-otel-jvm-runtime-metrics/pom.xml b/examples/example-otel-jvm-runtime-metrics/pom.xml
index cc3ebf5c3..9b0911e9f 100644
--- a/examples/example-otel-jvm-runtime-metrics/pom.xml
+++ b/examples/example-otel-jvm-runtime-metrics/pom.xml
@@ -28,7 +28,7 @@
       
         io.opentelemetry.instrumentation
         opentelemetry-instrumentation-bom-alpha
-        2.28.0-alpha
+        2.28.1-alpha
         pom
         import
       

From c3a72b53fdb6d96ac8a419a80f5bd64437221d41 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 21 May 2026 14:45:29 -0400
Subject: [PATCH 21/74] fix(deps): update dependency
 io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to
 v2.28.1-alpha (#2133)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha](https://redirect.github.com/open-telemetry/opentelemetry-java-instrumentation)
| `2.28.0-alpha` → `2.28.1-alpha` |
![age](https://developer.mend.io/api/mc/badges/age/maven/io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha/2.28.1-alpha?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha/2.28.0-alpha/2.28.1-alpha?slim=true)
|

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).



Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Jay DeLuca 
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 0b2d2c21a..943cc3d19 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
     4.35.0
     33.6.0-jre
     6.0.3
-    2.28.0-alpha
+    2.28.1-alpha
     8
     25
     0.70

From d44170f14f5afbc0fb20b630d8732c91feae5c03 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 22 May 2026 09:10:54 +0200
Subject: [PATCH 22/74] chore(deps): update dependency
 org.mock-server:mockserver-netty-no-dependencies to v6 (#2131)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[org.mock-server:mockserver-netty-no-dependencies](https://www.mock-server.com)
([source](https://redirect.github.com/mock-server/mockserver-monorepo))
| `5.15.0` → `6.0.0` |
![age](https://developer.mend.io/api/mc/badges/age/maven/org.mock-server:mockserver-netty-no-dependencies/6.0.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.mock-server:mockserver-netty-no-dependencies/5.15.0/6.0.0?slim=true)
|

---

### Release Notes

mock-server/mockserver-monorepo (org.mock-server:mockserver-netty-no-dependencies) ### [`v6.0.0`](https://redirect.github.com/mock-server/mockserver-monorepo/blob/HEAD/changelog.md#600---2026-05-21) ##### Added **Protocol & transport** - gRPC protocol mocking without a grpc-java dependency: upload a Protobuf descriptor and mock unary, client-streaming, server-streaming, and bidirectional-streaming RPCs; `GrpcStreamResponse` supports multi-frame streaming responses - GraphQL body matching: whitespace-normalised query comparison, `operationName` matching, and `variablesSchema` JSON Schema validation for variables - binary request/response mocking via `BinaryRequestDefinition` and `BinaryResponse` for non-HTTP protocols - DNS mocking with `dnsEnabled`/`dnsPort` configuration and support for A, AAAA, CNAME, MX, SRV, TXT, and PTR record types - IPv6 CONNECT proxy support including correctly bracketed IPv6 address handling in the `CONNECT` tunnel **Request matching** - probabilistic expectation matching: set a `percentage` field (0–100) on an expectation so only a fraction of matching requests are served by it, enabling fault-injection scenarios (fixes [#​2122](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2122)) - HTTP method factory methods on `HttpRequest`: `HttpRequest.get(path)`, `.post(path)`, `.put(path)`, `.delete(path)`, `.patch(path)`, `.head(path)`, `.options(path)` for more concise expectation definitions (fixes [#​1509](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1509)) **Responses & actions** - multi-response expectations: define an `httpResponses` list with a `responseMode` of `SEQUENTIAL` (cycle repeatedly through the list in order) or `RANDOM` (pick at random) to serve different responses on successive matched requests - multi-action expectations: compose response, forward, and callback actions in a single expectation with a primary action and post-action callbacks - stateful scenarios with atomic state transitions: gate expectations behind named states and advance through them by setting `newScenarioState` on the expectation, making it straightforward to model multi-step protocols - CRUD simulation via `PUT /mockserver/crud`: supply a data model and MockServer auto-generates a fully stateful REST API (list, create, read, update, delete) backed by an in-memory store - `FileBody` response body type that loads content from a file path at response time, useful for large or binary payloads (fixes [#​2163](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2163)) - in-memory file store: upload files via `PUT /mockserver/files/store`, retrieve via `PUT /mockserver/files/retrieve`, list via `PUT /mockserver/files/list`, and delete via `PUT /mockserver/files/delete`; stored files can be referenced by `FileBody` (fixes [#​1652](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1652)) - `respondBeforeBody` flag on the request matcher to dispatch the configured response (and optionally close the connection) before MockServer reads the request body, useful for reproducing client behaviour when a server responds and closes mid-upload (fixes [#​1831](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1831)) **Delays & timing** - response delays with statistical distributions (uniform, Gaussian, log-normal) for realistic latency simulation (fixes [#​1688](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1688)) - global response delay via `mockserver.globalResponseDelayMillis` configuration property to add a baseline delay to every response - connection timeout emulation via `mockserver.connectionDelayMillis` configuration property: a configurable delay before protocol detection fires, so slow-connect scenarios can be tested without a real network (fixes [#​1604](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1604)) - chunked dribble delay via `ConnectionOptions.withChunkSize()` / `withChunkDelay()` to drip-feed any response body in configurable-size chunks at a configurable rate **Response templates** - template helper functions: JWT generation, string manipulation, JSON path extraction, date arithmetic, and math operations available inside JavaScript, Velocity, and Mustache templates **Record & replay** - HAR 1.2 export: pass `format=HAR` to the retrieve API to get a standard HAR file of all recorded requests and responses (fixes [#​2175](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2175)) - automatic persistence of recorded expectations: `persistRecordedExpectations` and `persistedRecordedExpectationsPath` configuration properties save recorded traffic to disk so it survives restarts (fixes [#​2175](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2175)) **Debugging & diagnostics** - per-expectation match count tracking: each expectation now exposes an invocation counter so tests can assert exactly how many times an endpoint was hit - closest-match tracking: when a request does not match any expectation, MockServer identifies the expectation with the most fields satisfied and surfaces it via the API and dashboard - `debugMismatch()` client method and `PUT /mockserver/debugMismatch` endpoint to programmatically retrieve the closest-match analysis for the last unmatched request - match failure hints: actionable suggestions attached to `EXPECTATION_NOT_MATCHED` log events to guide correction of common mistakes - "Why didn't this match?" debug dialog in the dashboard: click any unmatched request to see a field-by-field comparison against the closest expectation with per-field pass/fail indicators - expectation ID included in `EXPECTATION_NOT_MATCHED` log messages to make it easier to correlate log output with the intended expectation (fixes [#​1937](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1937)) **Logging** - compact log format: set `mockserver.compactLogFormat=true` to emit single-line JSON log entries instead of multi-line formatted output (fixes [#​1510](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1510)) - per-category log level overrides via `mockserver.logLevelOverrides` so individual event types can have different log levels (fixes [#​1694](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1694)) - correlation ID retrieval: `retrieveLogsByCorrelationId()` client method and a correlationId chip in the dashboard for tracing a single request across all related log events - `retrieveLogEntries()` client method returning typed `LogEntry` objects with optional time-range filtering; pass `LOG_ENTRIES` as the format to the retrieve API for programmatic access - custom log event listener via a `Consumer` callback registered with the `Configuration` object, enabling integration with external observability tools (fixes [#​1960](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1960)) **Proxy & forwarding configuration** - `mockserver.forwardDefaultHostHeader` configuration property: set a specific `Host` header value to send on all forwarded requests, overriding the original client `Host` header (fixes [#​1782](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1782)) - `mockserver.proxyRemoteHost` and `mockserver.proxyRemotePort` configuration properties to route all proxy traffic through an upstream proxy (fixes [#​1753](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1753)) - request forwarding timings captured per forwarded request: both connect time and total round-trip time are available in the log and dashboard (fixes [#​1574](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1574)) **OpenAPI** - OpenAPI callback support: MockServer reads `callbacks` entries in an OpenAPI specification and automatically creates `AfterAction` webhook expectations (fixes [#​1483](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1483)) **TLS & security** - BouncyCastle FIPS provider support for environments that require FIPS 140-2 compliant cryptography (fixes [#​1769](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1769)) - support for custom TLS protocols TLSv1.2 and TLSv1.3 - better error messages when MockServerClient fails due to TLS or networking errors **Client & test integration** - `@MockServerTest` now applies `mockserver.*` prefixed properties to the per-instance MockServer `Configuration` object, enabling declarative configuration of `initializationClass`, `logLevel`, `maxExpectations`, and other settings directly in the annotation (fixes [#​1554](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1554)) - Jackson `StreamReadConstraints` maximum string length raised to 100 MB to handle large JSON bodies without `StreamConstraintsException` (fixes [#​1754](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1754)) **Build & deployment** - Maven plugin `initializationJson` now accepts glob patterns to load multiple expectation files from a directory (fixes [#​2231](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2231)) - `mockserver/mockserver:graaljs` Docker image tag that bundles the GraalJS engine JARs, enabling native ECMAScript 2022 support in response templates without Nashorn - Docker HEALTHCHECK instruction added to all official images so container orchestrators can determine readiness without an external probe - Helm chart `podLabels` value to attach arbitrary labels to MockServer pods, useful for service-mesh injection and internal routing rules (fixes [#​1884](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1884)) ##### Changed - BREAKING: removed implicit reliance on internal java-certificate-classes (thanks to [@​Arkinator](https://redirect.github.com/Arkinator)) - BREAKING: the `classifier=shaded` form of `mockserver-client-java`, `mockserver-netty`, `mockserver-junit-jupiter`, `mockserver-junit-rule`, and `mockserver-spring-test-listener` is no longer published. Use the corresponding `*-no-dependencies` artifactId instead (e.g. depend on `mockserver-netty-no-dependencies` rather than `mockserver-netty` with `shaded`). The `*-no-dependencies` variants are now proper Maven modules and are the supported way to consume a shaded MockServer jar. ##### Fixed **Proxy & forwarding** - proxy forwarding failures now return `502 Bad Gateway` instead of `404 Not Found`, making it clearer to clients that the upstream could not be reached (fixes [#​1519](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1519)) - `Host` header updated to match the forwarding target to prevent `421 Misdirected Request` errors from strict servers (fixes [#​1897](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1897)) - request/response bodies with `Content-Encoding` are now re-compressed correctly when forwarding, preventing garbled bodies on the upstream (fixes [#​1668](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1668)) - `Transfer-Encoding` header preserved on forwarded responses; spurious `Content-Length` header no longer added when `Transfer-Encoding` is present (fixes [#​1733](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1733)) **Request & response handling** - cookie values starting with `!` were corrupted in forwarded responses (fixes [#​1875](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1875)) - duplicate query parameter values are now preserved instead of being deduplicated (fixes [#​1866](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1866)) - binary response bodies (e.g. `application/octet-stream; charset=utf-8`) were corrupted because a `charset` parameter in `Content-Type` caused the body to be treated as a string; now correctly treated as binary (fixes [#​1910](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1910)) - JSON body serialization preserved numeric precision — `0.00` was incorrectly serialized as `0.0` (fixes [#​1740](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1740)) **OpenAPI** - `ByteArraySchema` (`string` format `byte`) properties were omitted from generated OpenAPI examples (fixes [#​1788](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1788)) - `$ref` inside OpenAPI example values was not resolved, leading to raw `$ref` strings in generated responses (fixes [#​1474](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1474)) - `allOf`/`anyOf`/`oneOf` composed schemas now generate merged example responses (fixes [#​1852](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1852)) - OAS 3.0 boolean `exclusiveMinimum`/`exclusiveMaximum` now correctly translated to JSON Schema Draft-07 numeric format (fixes [#​1896](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1896)) - OpenAPI 3.1 `types` array field now correctly preserved during schema serialization (fixes [#​1940](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1940)) **XML** - XSD schemas with `xs:include` or `xs:import` using relative paths now resolve correctly (fixes [#​2118](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2118)) **JUnit & Spring integration** - `@MockServerTest` field injection now works in `@Nested` JUnit 5 test classes (fixes [#​1979](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1979)) - double server start when `@MockServerSettings` (carrying `@ExtendWith`) is combined with explicit `MockServerExtension` registration is now prevented (fixes [#​1977](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1977)) - `clientCertificateChain`, `localAddress`, and `remoteAddress` fields on `HttpRequest` were serialized but not deserialized — both directions now work (fixes [#​1973](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1973)) - `MockServerClient` parameter injection now works with `@TestInstance(PER_CLASS)` where the test instance is created before `@BeforeAll` (fixes [#​1621](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1621)) - `ClassNotFoundException` for callback classes when running in a Spring Boot uber JAR (fixes [#​1571](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1571)) **Dashboard & WebSocket** - dashboard WebSocket returned 404 when MockServer was running behind a reverse proxy with a path prefix (fixes [#​1693](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1693)) - HTTP/2 `CONNECT` proxy no longer hangs when the client advertises `h2` via ALPN (fixes [#​1933](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1933)) - WebSocket upgrade over HTTP/2 is now rejected cleanly instead of hanging the dashboard (fixes [#​1803](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1803)) **Concurrency & thread safety** - `Times.remainingTimes()` made thread-safe with `AtomicInteger` to prevent race conditions under concurrent load (fixes [#​1834](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1834)) - `XmlStringMatcher` made thread-safe by creating a new `DiffBuilder` per match instead of sharing one (fixes [#​1796](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1796)) - Disruptor ring buffer is drained before `verify()` to prevent false-positive or false-negative results under high throughput (fixes [#​1757](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1757)) - expired TTL expectations are now filtered from the event bus and event bus subscribers are cleared after publish to prevent stale matches (fixes [#​1847](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1847), [#​1874](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1874)) **TLS & mTLS** - mTLS (data-plane) enforcement moved from transport layer to application layer, fixing scenarios where client certificate validation was applied to non-mTLS connections (fixes [#​1766](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1766)) **Docker & deployment** - Docker image and standalone executable JAR produced no log output because the shaded server JAR did not include an SLF4J logging provider (fixes [#​2097](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2097)) - `*-no-dependencies` shaded artifacts leaked their un-shaded source module (and its transitive dependencies) onto consumers' classpaths; these artifacts are now truly dependency-free - `netty-tcnative` native libraries no longer bundled in the shaded JAR, preventing native library conflicts (fixes [#​1778](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1778)) - Helm chart sub-chart deployments generated conflicting Kubernetes resource names when chart name was omitted (fixes [#​1752](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1752)) **Glob & file initialization** - glob brace expansion in `initializationJson` path failed to find the starting directory in some environments (fixes [#​1715](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1715)) - `WebSocket` channel leak when the `CircularHashMap` evicted the oldest callback client (fixes [#​1543](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1543)) - verify failure message incorrectly said "was not found" even when matching requests existed; message now accurately describes the mismatch (fixes [#​1789](https://redirect.github.com/mock-server/mockserver-monorepo/issues/1789))
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- prometheus-metrics-exporter-pushgateway/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prometheus-metrics-exporter-pushgateway/pom.xml b/prometheus-metrics-exporter-pushgateway/pom.xml index 4fc7e3b0e..4e10a8e0e 100644 --- a/prometheus-metrics-exporter-pushgateway/pom.xml +++ b/prometheus-metrics-exporter-pushgateway/pom.xml @@ -29,7 +29,7 @@ org.mock-server mockserver-netty-no-dependencies - 5.15.0 + 6.0.0 test From c53cac09529a6f437f6570531906cbc1a4ce4e64 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 22 May 2026 09:10:57 +0200 Subject: [PATCH 23/74] chore(deps): update otel/opentelemetry-collector-contrib docker tag to v0.152.1 (#2130) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Update | Change | |---|---|---| | [otel/opentelemetry-collector-contrib](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases) | patch | `0.152.0` → `0.152.1` | --- ### Release Notes
open-telemetry/opentelemetry-collector-releases (otel/opentelemetry-collector-contrib) ### [`v0.152.1`](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/blob/HEAD/CHANGELOG.md#v01521) [Compare Source](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/compare/v0.152.0...v0.152.1)
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- examples/example-exemplars-tail-sampling/docker-compose.yaml | 2 +- examples/example-exporter-opentelemetry/docker-compose.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/example-exemplars-tail-sampling/docker-compose.yaml b/examples/example-exemplars-tail-sampling/docker-compose.yaml index 901103ab6..63909bb15 100644 --- a/examples/example-exemplars-tail-sampling/docker-compose.yaml +++ b/examples/example-exemplars-tail-sampling/docker-compose.yaml @@ -36,7 +36,7 @@ services: - -jar - /example-greeting-service.jar collector: - image: otel/opentelemetry-collector-contrib:0.152.0@sha256:f41d7995565df3733b7568702073a9c490792f9c6ac60684fe6a4da21a313f8d + image: otel/opentelemetry-collector-contrib:0.152.1@sha256:fa1f6ea8dabd3042fabf4411eed7fa52f253edd8940140bec89a573e62a24eb7 network_mode: host volumes: - ./config/otelcol-config.yaml:/config.yaml diff --git a/examples/example-exporter-opentelemetry/docker-compose.yaml b/examples/example-exporter-opentelemetry/docker-compose.yaml index 1803d0426..7e72b4cfc 100644 --- a/examples/example-exporter-opentelemetry/docker-compose.yaml +++ b/examples/example-exporter-opentelemetry/docker-compose.yaml @@ -13,7 +13,7 @@ services: #- -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005 - /example-exporter-opentelemetry.jar collector: - image: otel/opentelemetry-collector-contrib:0.152.0@sha256:f41d7995565df3733b7568702073a9c490792f9c6ac60684fe6a4da21a313f8d + image: otel/opentelemetry-collector-contrib:0.152.1@sha256:fa1f6ea8dabd3042fabf4411eed7fa52f253edd8940140bec89a573e62a24eb7 network_mode: host volumes: - ./config/otelcol-config.yaml:/config.yaml From 5f5333ebb888201c0ed39bd9a095de78adb81751 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 22 May 2026 09:11:10 +0200 Subject: [PATCH 24/74] chore(deps): update actions/stale action to v10.3.0 (#2134) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [actions/stale](https://redirect.github.com/actions/stale) | action | minor | `v10.2.0` → `v10.3.0` | --- ### Release Notes
actions/stale (actions/stale) ### [`v10.3.0`](https://redirect.github.com/actions/stale/compare/v10.2.0...v10.3.0) [Compare Source](https://redirect.github.com/actions/stale/compare/v10.2.0...v10.3.0)
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- .github/workflows/issue-management-stale-action.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/issue-management-stale-action.yml b/.github/workflows/issue-management-stale-action.yml index 495904d22..f06dfb4ec 100644 --- a/.github/workflows/issue-management-stale-action.yml +++ b/.github/workflows/issue-management-stale-action.yml @@ -25,7 +25,7 @@ jobs: # Handle stale PRs # - After 120 days inactive: Adds "stale" label + warning comment # - After 30 more days inactive: Closes - - uses: actions/stale@b5d41d4e1d5dceea10e7104786b73624c18a190f # v10.2.0 + - uses: actions/stale@eb5cf3af3ac0a1aa4c9c45633dd1ae542a27a899 # v10.3.0 with: days-before-issue-stale: -1 days-before-issue-close: -1 @@ -43,7 +43,7 @@ jobs: # Handle stale issues # - After 360 days (12 months) inactive: Adds "stale" label + warning comment # - After 30 more days inactive: Closes - - uses: actions/stale@b5d41d4e1d5dceea10e7104786b73624c18a190f # v10.2.0 + - uses: actions/stale@eb5cf3af3ac0a1aa4c9c45633dd1ae542a27a899 # v10.3.0 with: days-before-issue-stale: 360 days-before-issue-close: 30 From 23d75297d586ba25143e9bb03184df4cddbd601f Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Fri, 22 May 2026 09:15:58 +0200 Subject: [PATCH 25/74] test: validate Micrometer vanilla compatibility (#2121) Draft validation PR for the unmodified Micrometer compatibility story. This intentionally does **not** depend on #2114. Vanilla Micrometer does not use the typed descriptor API and does not implement the #1800 registration metadata hooks, so this PR validates the patch-compatible path independently of typed descriptors. This validates upstream `micrometer-metrics/micrometer@main` against: - current `main`, which already includes #2100 and #2124 (reserved suffix stripping in `PrometheusNaming.sanitizeMetricName()`). - Micrometer compatibility test tooling/workflow from zeitlinger/client_java#1. Local validation: - `mise run lint` - `MICROMETER_DIR=/tmp/micrometer-compat-vanilla-2124 mise run micrometer:test` --------- Signed-off-by: Gregor Zeitlinger Co-authored-by: Jay DeLuca Signed-off-by: Jay DeLuca --- .github/renovate-tracked-deps.json | 5 + .../workflows/micrometer-compatibility.yml | 43 +++++ .mise/lib/micrometer_compat.py | 147 ++++++++++++++++++ .mise/tasks/micrometer/prepare.py | 26 ++++ .mise/tasks/micrometer/test-class.py | 28 ++++ .mise/tasks/micrometer/test.py | 28 ++++ 6 files changed, 277 insertions(+) create mode 100644 .github/workflows/micrometer-compatibility.yml create mode 100755 .mise/lib/micrometer_compat.py create mode 100755 .mise/tasks/micrometer/prepare.py create mode 100755 .mise/tasks/micrometer/test-class.py create mode 100755 .mise/tasks/micrometer/test.py diff --git a/.github/renovate-tracked-deps.json b/.github/renovate-tracked-deps.json index adfef7f3e..41cab4338 100644 --- a/.github/renovate-tracked-deps.json +++ b/.github/renovate-tracked-deps.json @@ -36,6 +36,11 @@ "mise" ] }, + ".github/workflows/micrometer-compatibility.yml": { + "regex": [ + "mise" + ] + }, ".github/workflows/lint.yml": { "regex": [ "mise" diff --git a/.github/workflows/micrometer-compatibility.yml b/.github/workflows/micrometer-compatibility.yml new file mode 100644 index 000000000..0bb49d1f2 --- /dev/null +++ b/.github/workflows/micrometer-compatibility.yml @@ -0,0 +1,43 @@ +--- +name: Micrometer Compatibility + +on: + pull_request: + workflow_dispatch: + inputs: + micrometer-repository: + description: Micrometer repository to test, in owner/name form + required: false + default: micrometer-metrics/micrometer + micrometer-ref: + description: Micrometer branch, tag, or commit to test + required: false + default: main + +permissions: {} + +jobs: + micrometer-compatibility: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + persist-credentials: false + - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 + with: + version: v2026.5.5 + sha256: 3aaab5c05a8a94a93b42b4f581779bbd5c44ddb251e7f3639fc671ec5c6aab8a + - name: Cache local Maven repository + uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + - name: Run Micrometer compatibility tests + run: | + if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then + export MICROMETER_REPOSITORY="${{ github.event.inputs.micrometer-repository }}" + export MICROMETER_REF="${{ github.event.inputs.micrometer-ref }}" + fi + mise run micrometer:test diff --git a/.mise/lib/micrometer_compat.py b/.mise/lib/micrometer_compat.py new file mode 100755 index 000000000..808a6f91f --- /dev/null +++ b/.mise/lib/micrometer_compat.py @@ -0,0 +1,147 @@ +#!/usr/bin/env python3 + +from __future__ import annotations + +import os +import subprocess +import xml.etree.ElementTree as ET +from pathlib import Path +from typing import Optional + + +DEFAULT_MICROMETER_DIR = Path( + os.environ.get("MICROMETER_DIR", "/tmp/micrometer-compat") +) +DEFAULT_MICROMETER_REPOSITORY = os.environ.get( + "MICROMETER_REPOSITORY", "micrometer-metrics/micrometer" +) +DEFAULT_MICROMETER_REMOTE = os.environ.get("MICROMETER_REMOTE", "origin") +DEFAULT_MICROMETER_REF = os.environ.get("MICROMETER_REF", "main") +DEFAULT_INIT_SCRIPT = Path( + os.environ.get("MICROMETER_INIT_SCRIPT", "/tmp/micrometer-prom-local.init.gradle") +) +DEFAULT_PROM_VERSION = os.environ.get("PROM_VERSION") + + +def run_cmd(cmd: list[str], cwd: Optional[Path] = None) -> None: + subprocess.run(cmd, cwd=cwd, check=True) + + +def micrometer_repository_url(repository: str) -> str: + return f"https://github.com/{repository}.git" + + +def check_clean_worktree(micrometer_dir: Path) -> None: + result = subprocess.run( + ["git", "status", "--short"], + cwd=micrometer_dir, + check=True, + capture_output=True, + text=True, + ) + if result.stdout.strip(): + raise RuntimeError( + f"{micrometer_dir} has uncommitted changes; use a clean clone or set MICROMETER_DIR" + ) + + +def get_prom_version(root_dir: Path = Path.cwd()) -> str: + configured_version = DEFAULT_PROM_VERSION + if configured_version: + return configured_version + pom = ET.parse(root_dir / "pom.xml") + root = pom.getroot() + version = root.findtext("./{*}version") + if not version: + version = root.findtext("./{*}parent/{*}version") + if not version: + raise RuntimeError("could not determine Prometheus version from pom.xml") + return version + + +def write_init_script( + init_script: Path = DEFAULT_INIT_SCRIPT, prom_version: Optional[str] = None +) -> None: + if prom_version is None: + prom_version = get_prom_version() + init_script.write_text( + f"""allprojects {{ + repositories {{ + mavenLocal() + mavenCentral() + gradlePluginPortal() + }} + configurations.configureEach {{ + resolutionStrategy.eachDependency {{ details -> + if (details.requested.group == 'io.prometheus') {{ + details.useVersion('{prom_version}') + details.because( + 'Use local prom_client_java artifacts for downstream compatibility testing' + ) + }} + }} + }} +}} +""", + encoding="utf-8", + ) + + +def prepare_repo( + micrometer_dir: Path = DEFAULT_MICROMETER_DIR, + repository: str = DEFAULT_MICROMETER_REPOSITORY, + remote: str = DEFAULT_MICROMETER_REMOTE, + ref: str = DEFAULT_MICROMETER_REF, +) -> None: + repository_url = micrometer_repository_url(repository) + if (micrometer_dir / ".git").is_dir(): + check_clean_worktree(micrometer_dir) + run_cmd( + ["git", "remote", "set-url", remote, repository_url], cwd=micrometer_dir + ) + run_cmd(["git", "fetch", remote, ref], cwd=micrometer_dir) + else: + run_cmd( + [ + "git", + "clone", + repository_url, + str(micrometer_dir), + ] + ) + run_cmd(["git", "fetch", remote, ref], cwd=micrometer_dir) + run_cmd( + ["git", "checkout", "-B", "micrometer-compat", "FETCH_HEAD"], + cwd=micrometer_dir, + ) + + +def install_local_artifacts(root_dir: Path = Path.cwd()) -> None: + run_cmd( + [ + "./mvnw", + "install", + "-DskipTests", + "-Dcoverage.skip=true", + "-Dcheckstyle.skip=true", + "-Dwarnings=-nowarn", + ], + cwd=root_dir, + ) + + +def run_gradle_test( + test_selector: Optional[str] = None, + micrometer_dir: Path = DEFAULT_MICROMETER_DIR, + init_script: Path = DEFAULT_INIT_SCRIPT, +) -> None: + cmd = [ + "./gradlew", + "--no-daemon", + "-I", + str(init_script), + ":micrometer-registry-prometheus:test", + ] + if test_selector: + cmd.extend(["--tests", test_selector]) + run_cmd(cmd, cwd=micrometer_dir) diff --git a/.mise/tasks/micrometer/prepare.py b/.mise/tasks/micrometer/prepare.py new file mode 100755 index 000000000..ba13acf69 --- /dev/null +++ b/.mise/tasks/micrometer/prepare.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python3 + +# [MISE] description="Install local artifacts and check out a target Micrometer ref" +# [MISE] alias="micrometer:prepare" + +import sys + + +sys.path.insert(0, ".mise/lib") + + +def main() -> int: + from micrometer_compat import ( + install_local_artifacts, + prepare_repo, + write_init_script, + ) + + install_local_artifacts() + prepare_repo() + write_init_script() + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/.mise/tasks/micrometer/test-class.py b/.mise/tasks/micrometer/test-class.py new file mode 100755 index 000000000..89ae436de --- /dev/null +++ b/.mise/tasks/micrometer/test-class.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python3 + +# [MISE] description="Run Micrometer PrometheusMeterRegistryTest against a target Micrometer ref" +# [MISE] alias="micrometer:test-class" + +import sys + + +sys.path.insert(0, ".mise/lib") + + +def main() -> int: + from micrometer_compat import ( + install_local_artifacts, + prepare_repo, + run_gradle_test, + write_init_script, + ) + + install_local_artifacts() + prepare_repo() + write_init_script() + run_gradle_test("io.micrometer.prometheusmetrics.PrometheusMeterRegistryTest") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/.mise/tasks/micrometer/test.py b/.mise/tasks/micrometer/test.py new file mode 100755 index 000000000..40316f569 --- /dev/null +++ b/.mise/tasks/micrometer/test.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python3 + +# [MISE] description="Run Micrometer Prometheus registry tests against a target Micrometer ref" +# [MISE] alias="micrometer:test" + +import sys + + +sys.path.insert(0, ".mise/lib") + + +def main() -> int: + from micrometer_compat import ( + install_local_artifacts, + prepare_repo, + run_gradle_test, + write_init_script, + ) + + install_local_artifacts() + prepare_repo() + write_init_script() + run_gradle_test() + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) From f6505a4a33dd87bcc6cc6d3797377055c72b3530 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 22 May 2026 15:16:04 +0200 Subject: [PATCH 26/74] chore(deps): update node.js to v24.16.0 (#2135) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Update | Change | |---|---|---| | [node](https://nodejs.org) ([source](https://redirect.github.com/nodejs/node)) | minor | `24.15.0` → `24.16.0` | --- ### Release Notes
nodejs/node (node) ### [`v24.16.0`](https://redirect.github.com/nodejs/node/releases/tag/v24.16.0): 2026-05-21, Version 24.16.0 'Krypton' (LTS), @​aduh95 [Compare Source](https://redirect.github.com/nodejs/node/compare/v24.15.0...v24.16.0) ##### Notable Changes - \[[`b267f6bca3`](https://redirect.github.com/nodejs/node/commit/b267f6bca3)] - **(SEMVER-MINOR)** **crypto**: implement `randomUUIDv7()` (nabeel378) [#​62553](https://redirect.github.com/nodejs/node/pull/62553) - \[[`ec2451b9cd`](https://redirect.github.com/nodejs/node/commit/ec2451b9cd)] - **(SEMVER-MINOR)** **debugger**: add edit-free runtime expression probes to `node inspect` (Joyee Cheung) [#​62713](https://redirect.github.com/nodejs/node/pull/62713) - \[[`9705f628d9`](https://redirect.github.com/nodejs/node/commit/9705f628d9)] - **(SEMVER-MINOR)** **fs**: add signal option to `fs.stat()` (Mert Can Altin) [#​57775](https://redirect.github.com/nodejs/node/pull/57775) - \[[`40ccfdecf9`](https://redirect.github.com/nodejs/node/commit/40ccfdecf9)] - **(SEMVER-MINOR)** **fs**: expose `frsize` field in `statfs` (Jinho Jang) [#​62277](https://redirect.github.com/nodejs/node/pull/62277) - \[[`d7188af5c9`](https://redirect.github.com/nodejs/node/commit/d7188af5c9)] - **(SEMVER-MINOR)** **http**: harden `ClientRequest` options merge (Matteo Collina) [#​63082](https://redirect.github.com/nodejs/node/pull/63082) - \[[`aa1d8a9afc`](https://redirect.github.com/nodejs/node/commit/aa1d8a9afc)] - **(SEMVER-MINOR)** **http**: add `req.signal` to `IncomingMessage` (Akshat) [#​62541](https://redirect.github.com/nodejs/node/pull/62541) - \[[`6f37f7e240`](https://redirect.github.com/nodejs/node/commit/6f37f7e240)] - **(SEMVER-MINOR)** **stream**: propagate destruction in `duplexPair` (Ahmed Elhor) [#​61098](https://redirect.github.com/nodejs/node/pull/61098) - \[[`d14029be7f`](https://redirect.github.com/nodejs/node/commit/d14029be7f)] - **(SEMVER-MINOR)** **test\_runner**: support test order randomization (Pietro Marchini) [#​61747](https://redirect.github.com/nodejs/node/pull/61747) - \[[`d142c584cd`](https://redirect.github.com/nodejs/node/commit/d142c584cd)] - **(SEMVER-MINOR)** **test\_runner**: align mock timeout api (sangwook) [#​62820](https://redirect.github.com/nodejs/node/pull/62820) - \[[`01a9552585`](https://redirect.github.com/nodejs/node/commit/01a9552585)] - **(SEMVER-MINOR)** **test\_runner**: add mock-timers support for `AbortSignal.timeout` (DeveloperViraj) [#​60751](https://redirect.github.com/nodejs/node/pull/60751) - \[[`00705a459a`](https://redirect.github.com/nodejs/node/commit/00705a459a)] - **(SEMVER-MINOR)** **util**: colorize text with hex colors (Guilherme Araújo) [#​61556](https://redirect.github.com/nodejs/node/pull/61556) ##### Commits - \[[`dd72df060d`](https://redirect.github.com/nodejs/node/commit/dd72df060d)] - **assert,util**: fix stale nested cycle memo entries (Ruben Bridgewater) [#​62509](https://redirect.github.com/nodejs/node/pull/62509) - \[[`add94f4bc3`](https://redirect.github.com/nodejs/node/commit/add94f4bc3)] - **build**: track PDL files as inputs in inspector GN build (Robo) [#​62888](https://redirect.github.com/nodejs/node/pull/62888) - \[[`1b1eb9e334`](https://redirect.github.com/nodejs/node/commit/1b1eb9e334)] - **build**: remove redundant -fuse-linker-plugin from GCC LTO flags (Daniel Lando) [#​62667](https://redirect.github.com/nodejs/node/pull/62667) - \[[`8752b604ec`](https://redirect.github.com/nodejs/node/commit/8752b604ec)] - **crypto**: deduplicate and canonicalize CryptoKey usages (Filip Skokan) [#​62902](https://redirect.github.com/nodejs/node/pull/62902) - \[[`341947e7fd`](https://redirect.github.com/nodejs/node/commit/341947e7fd)] - **crypto**: reject unintended raw key format string input (Filip Skokan) [#​62974](https://redirect.github.com/nodejs/node/pull/62974) - \[[`28a78747fc`](https://redirect.github.com/nodejs/node/commit/28a78747fc)] - **crypto**: remove Argon2 KDF derivation from its job setup (Filip Skokan) [#​62863](https://redirect.github.com/nodejs/node/pull/62863) - \[[`16e8c2b54d`](https://redirect.github.com/nodejs/node/commit/16e8c2b54d)] - **crypto**: fix unsigned conversion of 4-byte RSA publicExponent (DeepView Autofix) [#​62839](https://redirect.github.com/nodejs/node/pull/62839) - \[[`eeae754a87`](https://redirect.github.com/nodejs/node/commit/eeae754a87)] - **crypto**: reject inherited key type names (Jonathan Lopes) [#​62875](https://redirect.github.com/nodejs/node/pull/62875) - \[[`9dd5540325`](https://redirect.github.com/nodejs/node/commit/9dd5540325)] - **crypto**: add memory tracking for secureContext openssl objects (Mert Can Altin) [#​59051](https://redirect.github.com/nodejs/node/pull/59051) - \[[`b267f6bca3`](https://redirect.github.com/nodejs/node/commit/b267f6bca3)] - **(SEMVER-MINOR)** **crypto**: implement randomUUIDv7() (nabeel378) [#​62553](https://redirect.github.com/nodejs/node/pull/62553) - \[[`7597d204c1`](https://redirect.github.com/nodejs/node/commit/7597d204c1)] - **crypto**: add support for [`Ed25519`](https://redirect.github.com/nodejs/node/commit/Ed25519) context parameter (Filip Skokan) [#​62474](https://redirect.github.com/nodejs/node/pull/62474) - \[[`4bf85845da`](https://redirect.github.com/nodejs/node/commit/4bf85845da)] - **debugger**: move ProbeInspectorSession and helpers to separate files (Joyee Cheung) [#​63013](https://redirect.github.com/nodejs/node/pull/63013) - \[[`ec2451b9cd`](https://redirect.github.com/nodejs/node/commit/ec2451b9cd)] - **(SEMVER-MINOR)** **debugger**: add edit-free runtime expression probes to `node inspect` (Joyee Cheung) [#​62713](https://redirect.github.com/nodejs/node/pull/62713) - \[[`83e98f77b7`](https://redirect.github.com/nodejs/node/commit/83e98f77b7)] - **deps**: update corepack to 0.35.0 (Node.js GitHub Bot) [#​63375](https://redirect.github.com/nodejs/node/pull/63375) - \[[`ec8c6b939a`](https://redirect.github.com/nodejs/node/commit/ec8c6b939a)] - **deps**: V8: cherry-pick [`657d8de`](https://redirect.github.com/nodejs/node/commit/657d8de27427) (Guy Bedford) [#​62784](https://redirect.github.com/nodejs/node/pull/62784) - \[[`722c0c3274`](https://redirect.github.com/nodejs/node/commit/722c0c3274)] - **deps**: update nghttp3 to 1.14.0 (Node.js GitHub Bot) [#​61187](https://redirect.github.com/nodejs/node/pull/61187) - \[[`5304db93d3`](https://redirect.github.com/nodejs/node/commit/5304db93d3)] - **deps**: update nghttp3 to 1.13.1 (Node.js GitHub Bot) [#​60046](https://redirect.github.com/nodejs/node/pull/60046) - \[[`e073b3811d`](https://redirect.github.com/nodejs/node/commit/e073b3811d)] - **deps**: update nghttp3 to 1.11.0 (James M Snell) [#​59249](https://redirect.github.com/nodejs/node/pull/59249) - \[[`1d00313fb2`](https://redirect.github.com/nodejs/node/commit/1d00313fb2)] - **deps**: update ngtcp2 to 1.14.0 (James M Snell) [#​59249](https://redirect.github.com/nodejs/node/pull/59249) - \[[`8b3a4fc18f`](https://redirect.github.com/nodejs/node/commit/8b3a4fc18f)] - **deps**: update amaro to 1.1.9 (Node.js GitHub Bot) [#​63090](https://redirect.github.com/nodejs/node/pull/63090) - \[[`62fe0cfcd1`](https://redirect.github.com/nodejs/node/commit/62fe0cfcd1)] - **deps**: update llhttp to 9.4.1 (Node.js GitHub Bot) [#​63045](https://redirect.github.com/nodejs/node/pull/63045) - \[[`137e09c8e9`](https://redirect.github.com/nodejs/node/commit/137e09c8e9)] - **deps**: update corepack to 0.34.7 (Node.js GitHub Bot) [#​62810](https://redirect.github.com/nodejs/node/pull/62810) - \[[`14a4cb8fbc`](https://redirect.github.com/nodejs/node/commit/14a4cb8fbc)] - **deps**: update timezone to 2026b (Node.js GitHub Bot) [#​62962](https://redirect.github.com/nodejs/node/pull/62962) - \[[`3e1036583a`](https://redirect.github.com/nodejs/node/commit/3e1036583a)] - **deps**: upgrade npm to 11.13.0 (npm team) [#​62898](https://redirect.github.com/nodejs/node/pull/62898) - \[[`01dfe5961c`](https://redirect.github.com/nodejs/node/commit/01dfe5961c)] - **deps**: cherry-pick [libuv/libuv@`439a54b`](https://redirect.github.com/libuv/libuv/commit/439a54b) (skooch) [#​62881](https://redirect.github.com/nodejs/node/pull/62881) - \[[`6cd368b10c`](https://redirect.github.com/nodejs/node/commit/6cd368b10c)] - **deps**: update sqlite to 3.53.0 (Node.js GitHub Bot) [#​62699](https://redirect.github.com/nodejs/node/pull/62699) - \[[`f218a4f553`](https://redirect.github.com/nodejs/node/commit/f218a4f553)] - **deps**: update nbytes to 0.1.4 (Node.js GitHub Bot) [#​62698](https://redirect.github.com/nodejs/node/pull/62698) - \[[`b47688524a`](https://redirect.github.com/nodejs/node/commit/b47688524a)] - **deps**: update archs files for openssl-3.5.6 (Node.js GitHub Bot) [#​62629](https://redirect.github.com/nodejs/node/pull/62629) - \[[`d202e2d343`](https://redirect.github.com/nodejs/node/commit/d202e2d343)] - **deps**: upgrade openssl sources to openssl-3.5.6 (Node.js GitHub Bot) [#​62629](https://redirect.github.com/nodejs/node/pull/62629) - \[[`2faba66341`](https://redirect.github.com/nodejs/node/commit/2faba66341)] - **deps**: update minimatch to 10.2.5 (Node.js GitHub Bot) [#​62594](https://redirect.github.com/nodejs/node/pull/62594) - \[[`fa46c90c5d`](https://redirect.github.com/nodejs/node/commit/fa46c90c5d)] - **deps**: update googletest to [`d72f9c8`](https://redirect.github.com/nodejs/node/commit/d72f9c8aea6817cdf1ca0ac10887f328de7f3da2) (Node.js GitHub Bot) [#​62593](https://redirect.github.com/nodejs/node/pull/62593) - \[[`099ded5713`](https://redirect.github.com/nodejs/node/commit/099ded5713)] - **deps**: update simdjson to 4.6.1 (Node.js GitHub Bot) [#​62592](https://redirect.github.com/nodejs/node/pull/62592) - \[[`7ce95afe96`](https://redirect.github.com/nodejs/node/commit/7ce95afe96)] - **deps**: libuv: cherry-pick [`aabb765`](https://redirect.github.com/nodejs/node/commit/aabb7651de) (Santiago Gimeno) [#​62561](https://redirect.github.com/nodejs/node/pull/62561) - \[[`57ef845623`](https://redirect.github.com/nodejs/node/commit/57ef845623)] - **deps**: update icu to 78.3 (Node.js GitHub Bot) [#​62324](https://redirect.github.com/nodejs/node/pull/62324) - \[[`493ac40e12`](https://redirect.github.com/nodejs/node/commit/493ac40e12)] - **deps**: update libuv to 1.52.1 (Node.js GitHub Bot) [#​61829](https://redirect.github.com/nodejs/node/pull/61829) - \[[`b39508b368`](https://redirect.github.com/nodejs/node/commit/b39508b368)] - **deps**: update undici to 7.25.0 (Node.js GitHub Bot) [#​63011](https://redirect.github.com/nodejs/node/pull/63011) - \[[`cb67a925e9`](https://redirect.github.com/nodejs/node/commit/cb67a925e9)] - **deps**: use npm undici\@​seven tag in `update-undici.sh` (Matteo Collina) [#​62739](https://redirect.github.com/nodejs/node/pull/62739) - \[[`aa1e0bc28b`](https://redirect.github.com/nodejs/node/commit/aa1e0bc28b)] - **doc**: fix typos and inconsistencies in crypto.md and webcrypto.md (Filip Skokan) [#​62828](https://redirect.github.com/nodejs/node/pull/62828) - \[[`f2a1735ed9`](https://redirect.github.com/nodejs/node/commit/f2a1735ed9)] - **doc**: fix duplicate word "to to" in util.styleText (Daijiro Wachi) [#​62917](https://redirect.github.com/nodejs/node/pull/62917) - \[[`b6378e215c`](https://redirect.github.com/nodejs/node/commit/b6378e215c)] - **doc**: fix node-config-schema (Сковорода Никита Андреевич) [#​61596](https://redirect.github.com/nodejs/node/pull/61596) - \[[`233894a9ce`](https://redirect.github.com/nodejs/node/commit/233894a9ce)] - **doc**: fix the TypeScript Execute (tsx) project link (David Thornton) [#​63093](https://redirect.github.com/nodejs/node/pull/63093) - \[[`5d97919f8f`](https://redirect.github.com/nodejs/node/commit/5d97919f8f)] - **doc**: correct diagnostics\_channel built-in channel names (Bryan English) [#​62995](https://redirect.github.com/nodejs/node/pull/62995) - \[[`2a9ccc927e`](https://redirect.github.com/nodejs/node/commit/2a9ccc927e)] - **doc**: use mjs/cjs blocks for callbackify null reason example (Daijiro Wachi) [#​62884](https://redirect.github.com/nodejs/node/pull/62884) - \[[`ef413b5358`](https://redirect.github.com/nodejs/node/commit/ef413b5358)] - **doc**: fix typo in test.md (Rich Trott) [#​62960](https://redirect.github.com/nodejs/node/pull/62960) - \[[`76f21c5070`](https://redirect.github.com/nodejs/node/commit/76f21c5070)] - **doc**: correct typo in PR contribution instructions (Mike McCready) [#​62738](https://redirect.github.com/nodejs/node/pull/62738) - \[[`ca02af1f7d`](https://redirect.github.com/nodejs/node/commit/ca02af1f7d)] - **doc**: fix duplicate word "of of" in postMessageToThread (Daijiro Wachi) [#​62917](https://redirect.github.com/nodejs/node/pull/62917) - \[[`46c99ed526`](https://redirect.github.com/nodejs/node/commit/46c99ed526)] - **doc**: fix duplicate word "for for" in compile cache (Daijiro Wachi) [#​62917](https://redirect.github.com/nodejs/node/pull/62917) - \[[`1a60851734`](https://redirect.github.com/nodejs/node/commit/1a60851734)] - **doc**: fix typo in dns.lookup options description (Daijiro Wachi) [#​62882](https://redirect.github.com/nodejs/node/pull/62882) - \[[`169b5ea2ed`](https://redirect.github.com/nodejs/node/commit/169b5ea2ed)] - **doc**: fix Argon2 parameter bounds (Tobias Nießen) [#​62868](https://redirect.github.com/nodejs/node/pull/62868) - \[[`9a3a190f4e`](https://redirect.github.com/nodejs/node/commit/9a3a190f4e)] - **doc**: clarify diffieHellman.generateKeys recomputes same key (Kit Dallege) [#​62205](https://redirect.github.com/nodejs/node/pull/62205) - \[[`0fba9e87d6`](https://redirect.github.com/nodejs/node/commit/0fba9e87d6)] - **doc**: remove Ayase-252 and meixg from triagger team (Antoine du Hamel) [#​62841](https://redirect.github.com/nodejs/node/pull/62841) - \[[`9c700f3446`](https://redirect.github.com/nodejs/node/commit/9c700f3446)] - **doc**: clarify dns.lookup() callback signature when all is true (eungi) [#​62800](https://redirect.github.com/nodejs/node/pull/62800) - \[[`6b7280bc17`](https://redirect.github.com/nodejs/node/commit/6b7280bc17)] - **doc**: add experimental modules lifetime policy (Paolo Insogna) [#​62753](https://redirect.github.com/nodejs/node/pull/62753) - \[[`ce47ea31c9`](https://redirect.github.com/nodejs/node/commit/ce47ea31c9)] - **doc**: clarify process.\_debugProcess() in Permission Model (Fahad Khan) [#​62537](https://redirect.github.com/nodejs/node/pull/62537) - \[[`ba01633757`](https://redirect.github.com/nodejs/node/commit/ba01633757)] - **doc**: fix typo in devcontainer guide (Rohan Santhosh Kumar) [#​62687](https://redirect.github.com/nodejs/node/pull/62687) - \[[`70b4d5839b`](https://redirect.github.com/nodejs/node/commit/70b4d5839b)] - **doc**: clarify Backport-PR-URL metadata added automatically (Mike McCready) [#​62668](https://redirect.github.com/nodejs/node/pull/62668) - \[[`8126d1c3eb`](https://redirect.github.com/nodejs/node/commit/8126d1c3eb)] - **doc**: update WPT test runner README.md (Filip Skokan) [#​62680](https://redirect.github.com/nodejs/node/pull/62680) - \[[`978afea4b5`](https://redirect.github.com/nodejs/node/commit/978afea4b5)] - **doc**: fix spelling in release announcement guidance (Rohan Santhosh Kumar) [#​62663](https://redirect.github.com/nodejs/node/pull/62663) - \[[`1684ab8ff8`](https://redirect.github.com/nodejs/node/commit/1684ab8ff8)] - **doc**: note non-monotonic clock in crypto.randomUUIDv7 (nabeel378) [#​62600](https://redirect.github.com/nodejs/node/pull/62600) - \[[`86d4f07930`](https://redirect.github.com/nodejs/node/commit/86d4f07930)] - **doc**: update bug bounty program (Rafael Gonzaga) [#​62590](https://redirect.github.com/nodejs/node/pull/62590) - \[[`736ed8a08f`](https://redirect.github.com/nodejs/node/commit/736ed8a08f)] - **doc**: document TransformStream transformer.cancel option (Tom Pereira) [#​62566](https://redirect.github.com/nodejs/node/pull/62566) - \[[`938af9be01`](https://redirect.github.com/nodejs/node/commit/938af9be01)] - **doc**: mention test runner retry attemp is zero based (Moshe Atlow) [#​62504](https://redirect.github.com/nodejs/node/pull/62504) - \[[`94433e450f`](https://redirect.github.com/nodejs/node/commit/94433e450f)] - **doc,src,test**: fix dead inspector help URL (semimikoh) [#​62745](https://redirect.github.com/nodejs/node/pull/62745) - \[[`ddf1f01659`](https://redirect.github.com/nodejs/node/commit/ddf1f01659)] - **esm**: add `ERR_REQUIRE_ESM_RACE_CONDITION` (Antoine du Hamel) [#​62462](https://redirect.github.com/nodejs/node/pull/62462) - \[[`4a506acd16`](https://redirect.github.com/nodejs/node/commit/4a506acd16)] - **fs**: add followSymlinks option to glob (Matteo Collina) [#​62695](https://redirect.github.com/nodejs/node/pull/62695) - \[[`f4ea495f9b`](https://redirect.github.com/nodejs/node/commit/f4ea495f9b)] - **fs**: restore fs patchability in ESM loader (Joyee Cheung) [#​62835](https://redirect.github.com/nodejs/node/pull/62835) - \[[`63c111cd60`](https://redirect.github.com/nodejs/node/commit/63c111cd60)] - **fs**: validate position argument before length === 0 early return (Edy Silva) [#​62674](https://redirect.github.com/nodejs/node/pull/62674) - \[[`9705f628d9`](https://redirect.github.com/nodejs/node/commit/9705f628d9)] - **(SEMVER-MINOR)** **fs**: add signal option to fs.stat() (Mert Can Altin) [#​57775](https://redirect.github.com/nodejs/node/pull/57775) - \[[`40ccfdecf9`](https://redirect.github.com/nodejs/node/commit/40ccfdecf9)] - **(SEMVER-MINOR)** **fs**: expose frsize field in statfs (Jinho Jang) [#​62277](https://redirect.github.com/nodejs/node/pull/62277) - \[[`717476a24e`](https://redirect.github.com/nodejs/node/commit/717476a24e)] - **http**: emit 'drain' on OutgoingMessage only after buffers drain (Robert Nagy) [#​62936](https://redirect.github.com/nodejs/node/pull/62936) - \[[`d7188af5c9`](https://redirect.github.com/nodejs/node/commit/d7188af5c9)] - **(SEMVER-MINOR)** **http**: harden ClientRequest options merge (Matteo Collina) [#​63082](https://redirect.github.com/nodejs/node/pull/63082) - \[[`64f15c274a`](https://redirect.github.com/nodejs/node/commit/64f15c274a)] - **http**: fix leaked error listener on sync HTTP req create + destroy (Tim Perry) [#​62872](https://redirect.github.com/nodejs/node/pull/62872) - \[[`5c4798d799`](https://redirect.github.com/nodejs/node/commit/5c4798d799)] - **http**: fix no\_proxy leading-dot suffix matching (Daijiro Wachi) [#​62333](https://redirect.github.com/nodejs/node/pull/62333) - \[[`9f3bc70ae5`](https://redirect.github.com/nodejs/node/commit/9f3bc70ae5)] - **http**: cleanup pipeline queue (Robert Nagy) [#​62534](https://redirect.github.com/nodejs/node/pull/62534) - \[[`aa1d8a9afc`](https://redirect.github.com/nodejs/node/commit/aa1d8a9afc)] - **(SEMVER-MINOR)** **http**: add req.signal to IncomingMessage (Akshat) [#​62541](https://redirect.github.com/nodejs/node/pull/62541) - \[[`900dc758ff`](https://redirect.github.com/nodejs/node/commit/900dc758ff)] - **http2**: expose writable stream state on compat response (T) [#​63003](https://redirect.github.com/nodejs/node/pull/63003) - \[[`b3bfe35912`](https://redirect.github.com/nodejs/node/commit/b3bfe35912)] - **inspector**: coerce key and value to string in webstorage events (Ali Hassan) [#​62616](https://redirect.github.com/nodejs/node/pull/62616) - \[[`3dc3fb6ad8`](https://redirect.github.com/nodejs/node/commit/3dc3fb6ad8)] - **inspector**: return errors when CDP protocol event emission fails (Ryuhei Shima) [#​62162](https://redirect.github.com/nodejs/node/pull/62162) - \[[`4f3f21bd7c`](https://redirect.github.com/nodejs/node/commit/4f3f21bd7c)] - **inspector**: auto collect webstorage data (Ryuhei Shima) [#​62145](https://redirect.github.com/nodejs/node/pull/62145) - \[[`36cc04189d`](https://redirect.github.com/nodejs/node/commit/36cc04189d)] - **inspector**: initial support storage inspection (Ryuhei Shima) [#​61139](https://redirect.github.com/nodejs/node/pull/61139) - \[[`1718bc3b9b`](https://redirect.github.com/nodejs/node/commit/1718bc3b9b)] - **inspector**: fix absolute URLs in network http (bugyaluwang) [#​62955](https://redirect.github.com/nodejs/node/pull/62955) - \[[`97e32c7a74`](https://redirect.github.com/nodejs/node/commit/97e32c7a74)] - **lib**: avoid quadratic shift() in startup snapshot callback (Daijiro Wachi) [#​62914](https://redirect.github.com/nodejs/node/pull/62914) - \[[`25d2e999de`](https://redirect.github.com/nodejs/node/commit/25d2e999de)] - **lib**: harden kKeyOps lookup with null prototype (Filip Skokan) [#​62877](https://redirect.github.com/nodejs/node/pull/62877) - \[[`37d3913c8f`](https://redirect.github.com/nodejs/node/commit/37d3913c8f)] - **lib**: short-circuit WebIDL BufferSource SAB check (Filip Skokan) [#​62833](https://redirect.github.com/nodejs/node/pull/62833) - \[[`430c69d25f`](https://redirect.github.com/nodejs/node/commit/430c69d25f)] - **lib**: use js-only implementation of `isDataView()` (René) [#​62780](https://redirect.github.com/nodejs/node/pull/62780) - \[[`3ba0add6a0`](https://redirect.github.com/nodejs/node/commit/3ba0add6a0)] - **lib**: fix lint in internal/webstreams/util.js (Filip Skokan) [#​62806](https://redirect.github.com/nodejs/node/pull/62806) - \[[`9b95c41398`](https://redirect.github.com/nodejs/node/commit/9b95c41398)] - **lib**: fix sequence argument handling in Blob constructor (Ms2ger) [#​62179](https://redirect.github.com/nodejs/node/pull/62179) - \[[`314dacdbee`](https://redirect.github.com/nodejs/node/commit/314dacdbee)] - **lib**: improve Web Cryptography key validation ordering (Filip Skokan) [#​62749](https://redirect.github.com/nodejs/node/pull/62749) - \[[`3d18162430`](https://redirect.github.com/nodejs/node/commit/3d18162430)] - **lib**: reject SharedArrayBuffer in web APIs per spec (Ali Hassan) [#​62632](https://redirect.github.com/nodejs/node/pull/62632) - \[[`ada3ce879d`](https://redirect.github.com/nodejs/node/commit/ada3ce879d)] - **lib**: defer AbortSignal.any() following (sangwook) [#​62367](https://redirect.github.com/nodejs/node/pull/62367) - \[[`b2981ec7eb`](https://redirect.github.com/nodejs/node/commit/b2981ec7eb)] - **meta**: bump actions/download-artifact from 8.0.0 to 8.0.1 (dependabot\[bot]) [#​62549](https://redirect.github.com/nodejs/node/pull/62549) - \[[`7cd20667b5`](https://redirect.github.com/nodejs/node/commit/7cd20667b5)] - **meta**: bump github/codeql-action from 4.35.1 to 4.35.3 (dependabot\[bot]) [#​63074](https://redirect.github.com/nodejs/node/pull/63074) - \[[`91a07cfe9f`](https://redirect.github.com/nodejs/node/commit/91a07cfe9f)] - **meta**: bump Mozilla-Actions/sccache-action from 0.0.9 to 0.0.10 (dependabot\[bot]) [#​63073](https://redirect.github.com/nodejs/node/pull/63073) - \[[`09e17fe47c`](https://redirect.github.com/nodejs/node/commit/09e17fe47c)] - **meta**: add automation policy (Chengzhong Wu) [#​62871](https://redirect.github.com/nodejs/node/pull/62871) - \[[`59e7fb7986`](https://redirect.github.com/nodejs/node/commit/59e7fb7986)] - **meta**: move VoltrexKeyva to emeritus (Matteo Collina) [#​62895](https://redirect.github.com/nodejs/node/pull/62895) - \[[`1e2915cfa6`](https://redirect.github.com/nodejs/node/commit/1e2915cfa6)] - **meta**: bump peter-evans/create-pull-request from 8.1.0 to 8.1.1 (dependabot\[bot]) [#​62845](https://redirect.github.com/nodejs/node/pull/62845) - \[[`0253c6e2be`](https://redirect.github.com/nodejs/node/commit/0253c6e2be)] - **meta**: bump step-security/harden-runner from 2.16.1 to 2.19.0 (dependabot\[bot]) [#​62844](https://redirect.github.com/nodejs/node/pull/62844) - \[[`f503675b86`](https://redirect.github.com/nodejs/node/commit/f503675b86)] - **meta**: bump actions/setup-node from 6.3.0 to 6.4.0 (dependabot\[bot]) [#​62842](https://redirect.github.com/nodejs/node/pull/62842) - \[[`5e14e4d26e`](https://redirect.github.com/nodejs/node/commit/5e14e4d26e)] - **meta**: broaden stale bot (Aviv Keller) [#​62658](https://redirect.github.com/nodejs/node/pull/62658) - \[[`795db76f87`](https://redirect.github.com/nodejs/node/commit/795db76f87)] - **meta**: pass release version to release worker (flakey5) [#​62777](https://redirect.github.com/nodejs/node/pull/62777) - \[[`ef384fe39f`](https://redirect.github.com/nodejs/node/commit/ef384fe39f)] - **meta**: add QUIC to CODEOWNERS (Tim Perry) [#​62652](https://redirect.github.com/nodejs/node/pull/62652) - \[[`67e0ac568d`](https://redirect.github.com/nodejs/node/commit/67e0ac568d)] - **meta**: move Michael to emeritus (Michael Dawson) [#​62536](https://redirect.github.com/nodejs/node/pull/62536) - \[[`5dad616393`](https://redirect.github.com/nodejs/node/commit/5dad616393)] - **meta**: populate apt list for slim runner in update-openssl workflow (René) [#​62628](https://redirect.github.com/nodejs/node/pull/62628) - \[[`a869d25d8a`](https://redirect.github.com/nodejs/node/commit/a869d25d8a)] - **meta**: bump step-security/harden-runner from 2.15.0 to 2.16.1 (dependabot\[bot]) [#​62550](https://redirect.github.com/nodejs/node/pull/62550) - \[[`769efc0403`](https://redirect.github.com/nodejs/node/commit/769efc0403)] - **meta**: bump actions/setup-node from 6.2.0 to 6.3.0 (dependabot\[bot]) [#​62548](https://redirect.github.com/nodejs/node/pull/62548) - \[[`73fcc2b055`](https://redirect.github.com/nodejs/node/commit/73fcc2b055)] - **meta**: bump github/codeql-action from 4.32.4 to 4.35.1 (dependabot\[bot]) [#​62547](https://redirect.github.com/nodejs/node/pull/62547) - \[[`6c001246fe`](https://redirect.github.com/nodejs/node/commit/6c001246fe)] - **meta**: bump codecov/codecov-action from 5.5.2 to 6.0.0 (dependabot\[bot]) [#​62545](https://redirect.github.com/nodejs/node/pull/62545) - \[[`5ee40d6a03`](https://redirect.github.com/nodejs/node/commit/5ee40d6a03)] - **meta**: bump actions/cache from 5.0.3 to 5.0.4 (dependabot\[bot]) [#​62543](https://redirect.github.com/nodejs/node/pull/62543) - \[[`ca16ad8a05`](https://redirect.github.com/nodejs/node/commit/ca16ad8a05)] - **meta**: require DCO signoff in commit message guidelines (James M Snell) [#​62510](https://redirect.github.com/nodejs/node/pull/62510) - \[[`db9497fc41`](https://redirect.github.com/nodejs/node/commit/db9497fc41)] - **meta**: expand memory leak DoS criteria to all DoS (Joyee Cheung) [#​62505](https://redirect.github.com/nodejs/node/pull/62505) - \[[`13b7d08b8d`](https://redirect.github.com/nodejs/node/commit/13b7d08b8d)] - **module**: remove duplicated checks from `_resolveFilename` (Antoine du Hamel) [#​62729](https://redirect.github.com/nodejs/node/pull/62729) - \[[`6b53efb53a`](https://redirect.github.com/nodejs/node/commit/6b53efb53a)] - **module,win**: fix long subpath import (Stefan Stojanovic) [#​62101](https://redirect.github.com/nodejs/node/pull/62101) - \[[`841dfbf6fc`](https://redirect.github.com/nodejs/node/commit/841dfbf6fc)] - **node-api**: update libuv ABI stability note (Chengzhong Wu) [#​62789](https://redirect.github.com/nodejs/node/pull/62789) - \[[`01090f2aa1`](https://redirect.github.com/nodejs/node/commit/01090f2aa1)] - **node-api**: add napi\_create\_external\_sharedarraybuffer (Ben Noordhuis) [#​62623](https://redirect.github.com/nodejs/node/pull/62623) - \[[`87443b4355`](https://redirect.github.com/nodejs/node/commit/87443b4355)] - **node-api**: execute tsfn finalizer after queue drains when aborted (Kevin Eady) [#​61956](https://redirect.github.com/nodejs/node/pull/61956) - \[[`e95570c054`](https://redirect.github.com/nodejs/node/commit/e95570c054)] - **process**: handle rejections only when needed (Gürgün Dayıoğlu) [#​62919](https://redirect.github.com/nodejs/node/pull/62919) - \[[`37d49f3219`](https://redirect.github.com/nodejs/node/commit/37d49f3219)] - **process**: optimize asyncHandledRejections by using FixedQueue (Gürgün Dayıoğlu) [#​60854](https://redirect.github.com/nodejs/node/pull/60854) - \[[`f697c55e38`](https://redirect.github.com/nodejs/node/commit/f697c55e38)] - **quic**: add QuicEndpoint.listening & QuicStream.destroy() and tests (Tim Perry) [#​62648](https://redirect.github.com/nodejs/node/pull/62648) - \[[`c128942b69`](https://redirect.github.com/nodejs/node/commit/c128942b69)] - **quic**: fixup token verification to handle zero expiration (James M Snell) [#​62620](https://redirect.github.com/nodejs/node/pull/62620) - \[[`abb881ec92`](https://redirect.github.com/nodejs/node/commit/abb881ec92)] - **quic**: support multiple ALPN negotiation (James M Snell) [#​62620](https://redirect.github.com/nodejs/node/pull/62620) - \[[`476926c2ad`](https://redirect.github.com/nodejs/node/commit/476926c2ad)] - **quic**: apply multiple TLS context improvements and SNI support (James M Snell) [#​62620](https://redirect.github.com/nodejs/node/pull/62620) - \[[`76d9c24b95`](https://redirect.github.com/nodejs/node/commit/76d9c24b95)] - **quic**: implement rapidhash for hashing improvements (James M Snell) [#​62620](https://redirect.github.com/nodejs/node/pull/62620) - \[[`08726cd43d`](https://redirect.github.com/nodejs/node/commit/08726cd43d)] - **quic**: move quic behind compile time flag (Matteo Collina) [#​61444](https://redirect.github.com/nodejs/node/pull/61444) - \[[`ea4f19aaa7`](https://redirect.github.com/nodejs/node/commit/ea4f19aaa7)] - **quic**: use arena allocation for packets (James M Snell) [#​62589](https://redirect.github.com/nodejs/node/pull/62589) - \[[`21e9239e2a`](https://redirect.github.com/nodejs/node/commit/21e9239e2a)] - **quic**: fixup linting/formatting issues (James M Snell) [#​62387](https://redirect.github.com/nodejs/node/pull/62387) - \[[`edeed4303b`](https://redirect.github.com/nodejs/node/commit/edeed4303b)] - **quic**: update http3 impl details (James M Snell) [#​62387](https://redirect.github.com/nodejs/node/pull/62387) - \[[`7f3a85e6aa`](https://redirect.github.com/nodejs/node/commit/7f3a85e6aa)] - **quic**: fix a handful of bugs and missing functionality (James M Snell) [#​62387](https://redirect.github.com/nodejs/node/pull/62387) - \[[`45c1ebddf8`](https://redirect.github.com/nodejs/node/commit/45c1ebddf8)] - **quic**: copy options.certs buffer instead of detaching (Chengzhong Wu) [#​61403](https://redirect.github.com/nodejs/node/pull/61403) - \[[`a31a8ee680`](https://redirect.github.com/nodejs/node/commit/a31a8ee680)] - **quic**: reduce boilerplate and other minor cleanups (James M Snell) [#​59342](https://redirect.github.com/nodejs/node/pull/59342) - \[[`3be70ff43a`](https://redirect.github.com/nodejs/node/commit/3be70ff43a)] - **quic**: multiple fixups and updates (James M Snell) [#​59342](https://redirect.github.com/nodejs/node/pull/59342) - \[[`b91a93444c`](https://redirect.github.com/nodejs/node/commit/b91a93444c)] - **quic**: update more of the quic to the new compile guard (James M Snell) [#​59342](https://redirect.github.com/nodejs/node/pull/59342) - \[[`ca0080c164`](https://redirect.github.com/nodejs/node/commit/ca0080c164)] - **quic**: few additional small comment edits in cid.h (James M Snell) [#​59342](https://redirect.github.com/nodejs/node/pull/59342) - \[[`6553202d83`](https://redirect.github.com/nodejs/node/commit/6553202d83)] - **quic**: fixup NO\_ERROR macro conflict on windows (James M Snell) [#​59381](https://redirect.github.com/nodejs/node/pull/59381) - \[[`6df1508ac2`](https://redirect.github.com/nodejs/node/commit/6df1508ac2)] - **quic**: fixup windows coverage compile error (James M Snell) [#​59381](https://redirect.github.com/nodejs/node/pull/59381) - \[[`b2b0bf8b04`](https://redirect.github.com/nodejs/node/commit/b2b0bf8b04)] - **quic**: update the guard to check openssl version (James M Snell) [#​59249](https://redirect.github.com/nodejs/node/pull/59249) - \[[`5556b154bd`](https://redirect.github.com/nodejs/node/commit/5556b154bd)] - **quic**: start re-enabling quic with openssl 3.5 (James M Snell) [#​59249](https://redirect.github.com/nodejs/node/pull/59249) - \[[`2ca42c8263`](https://redirect.github.com/nodejs/node/commit/2ca42c8263)] - **repl**: keep reference count for `process.on('newListener')` (Anna Henningsen) [#​61895](https://redirect.github.com/nodejs/node/pull/61895) - \[[`2f37f9177f`](https://redirect.github.com/nodejs/node/commit/2f37f9177f)] - **sqlite**: use OneByte for ASCII text and internalize col names (Ali Hassan) [#​61954](https://redirect.github.com/nodejs/node/pull/61954) - \[[`3c96ae1b2f`](https://redirect.github.com/nodejs/node/commit/3c96ae1b2f)] - **sqlite**: add serialize() and deserialize() (Ali Hassan) [#​62579](https://redirect.github.com/nodejs/node/pull/62579) - \[[`be4d2f3a4c`](https://redirect.github.com/nodejs/node/commit/be4d2f3a4c)] - **sqlite**: enable Percentile extension (Jurj Andrei George) [#​61295](https://redirect.github.com/nodejs/node/pull/61295) - \[[`dafed453b2`](https://redirect.github.com/nodejs/node/commit/dafed453b2)] - **src**: clean up experimental flag variables (Antoine du Hamel) [#​62759](https://redirect.github.com/nodejs/node/pull/62759) - \[[`dca1e6aeea`](https://redirect.github.com/nodejs/node/commit/dca1e6aeea)] - **src**: expose help texts into node-config-schema.json (Pietro Marchini) [#​58680](https://redirect.github.com/nodejs/node/pull/58680) - \[[`28c4f44eb1`](https://redirect.github.com/nodejs/node/commit/28c4f44eb1)] - **src**: add permission support to config file (Marco Ippolito) [#​60746](https://redirect.github.com/nodejs/node/pull/60746) - \[[`f49175b220`](https://redirect.github.com/nodejs/node/commit/f49175b220)] - **src**: fix small compile warning in quic/streams.cc (James M Snell) [#​60118](https://redirect.github.com/nodejs/node/pull/60118) - \[[`c9d4a446d8`](https://redirect.github.com/nodejs/node/commit/c9d4a446d8)] - **src**: cleanup quic TransportParams class (James M Snell) [#​59884](https://redirect.github.com/nodejs/node/pull/59884) - \[[`99bb02fd9e`](https://redirect.github.com/nodejs/node/commit/99bb02fd9e)] - **src**: swap dotenv and config file parsing order (Marco Ippolito) [#​63035](https://redirect.github.com/nodejs/node/pull/63035) - \[[`ecb4d49b7b`](https://redirect.github.com/nodejs/node/commit/ecb4d49b7b)] - **src**: add missing \ for abort() declaration (Charles Kerr) [#​63001](https://redirect.github.com/nodejs/node/pull/63001) - \[[`b6219b6362`](https://redirect.github.com/nodejs/node/commit/b6219b6362)] - **src**: fix crash in GetErrorSource() for invalid using syntax (semimikoh) [#​62770](https://redirect.github.com/nodejs/node/pull/62770) - \[[`b5ca5ad4c5`](https://redirect.github.com/nodejs/node/commit/b5ca5ad4c5)] - **src**: simplify `TCPWrap::Connect` signature (Anna Henningsen) [#​62929](https://redirect.github.com/nodejs/node/pull/62929) - \[[`ef7ffce7cf`](https://redirect.github.com/nodejs/node/commit/ef7ffce7cf)] - **src**: use DCHECK in AsyncWrap::MakeCallback instead emiting a warning (Gerhard Stöbich) [#​62795](https://redirect.github.com/nodejs/node/pull/62795) - \[[`cd9890a5ab`](https://redirect.github.com/nodejs/node/commit/cd9890a5ab)] - **src**: fix MaybeStackBuffer char\_traits deprecation warning (om-ghante) [#​62507](https://redirect.github.com/nodejs/node/pull/62507) - \[[`c70ff44aee`](https://redirect.github.com/nodejs/node/commit/c70ff44aee)] - **src**: use context-free V8 message column getters (René) [#​62778](https://redirect.github.com/nodejs/node/pull/62778) - \[[`06c405f1d7`](https://redirect.github.com/nodejs/node/commit/06c405f1d7)] - **src**: coerce `spawnSync` args to string once (Antoine du Hamel) [#​62633](https://redirect.github.com/nodejs/node/pull/62633) - \[[`6151999ad6`](https://redirect.github.com/nodejs/node/commit/6151999ad6)] - **src**: use stack allocation for small string encoding (Ali Hassan) [#​62431](https://redirect.github.com/nodejs/node/pull/62431) - \[[`a71a4ac7a3`](https://redirect.github.com/nodejs/node/commit/a71a4ac7a3)] - **src**: add contextify interceptor debug logs (Chengzhong Wu) [#​62460](https://redirect.github.com/nodejs/node/pull/62460) - \[[`ad9a2909c2`](https://redirect.github.com/nodejs/node/commit/ad9a2909c2)] - **src**: workaround AIX libc++ std::filesystem bug (Richard Lau) [#​62788](https://redirect.github.com/nodejs/node/pull/62788) - \[[`7792f1ae47`](https://redirect.github.com/nodejs/node/commit/7792f1ae47)] - **stream**: copyedit `webstreams/adapter.js` (Antoine du Hamel) [#​63034](https://redirect.github.com/nodejs/node/pull/63034) - \[[`1397d8ce5c`](https://redirect.github.com/nodejs/node/commit/1397d8ce5c)] - **stream**: remove duplicated utility (Antoine du Hamel) [#​63031](https://redirect.github.com/nodejs/node/pull/63031) - \[[`ff86b1d64f`](https://redirect.github.com/nodejs/node/commit/ff86b1d64f)] - **stream**: simplify `setPromiseHandled` utility (Antoine du Hamel) [#​63032](https://redirect.github.com/nodejs/node/pull/63032) - \[[`24a078149a`](https://redirect.github.com/nodejs/node/commit/24a078149a)] - **stream**: validate ReadableStream.from iterator objects (Daeyeon Jeong) [#​62911](https://redirect.github.com/nodejs/node/pull/62911) - \[[`cfb1fa9680`](https://redirect.github.com/nodejs/node/commit/cfb1fa9680)] - **stream**: reject duplicate nested transferables (Daeyeon Jeong) [#​62831](https://redirect.github.com/nodejs/node/pull/62831) - \[[`d0c913758a`](https://redirect.github.com/nodejs/node/commit/d0c913758a)] - **stream**: ensuring cross-destruction in \_duplexify to prevent leaks (Daijiro Wachi) [#​62824](https://redirect.github.com/nodejs/node/pull/62824) - \[[`978f5c15d7`](https://redirect.github.com/nodejs/node/commit/978f5c15d7)] - **stream**: simplify `readableStreamFromIterable` (Antoine du Hamel) [#​62651](https://redirect.github.com/nodejs/node/pull/62651) - \[[`3527646ba5`](https://redirect.github.com/nodejs/node/commit/3527646ba5)] - **stream**: fix nested compose error propagation (Matteo Collina) [#​62556](https://redirect.github.com/nodejs/node/pull/62556) - \[[`dfb9edef4f`](https://redirect.github.com/nodejs/node/commit/dfb9edef4f)] - **stream**: allow shared array buffer sources in writable webstream adapter (René) [#​62163](https://redirect.github.com/nodejs/node/pull/62163) - \[[`f00cdab627`](https://redirect.github.com/nodejs/node/commit/f00cdab627)] - **stream**: simplify `createPromiseCallback` (Antoine du Hamel) [#​62650](https://redirect.github.com/nodejs/node/pull/62650) - \[[`3ed783535f`](https://redirect.github.com/nodejs/node/commit/3ed783535f)] - **stream**: fix writev unhandled rejection in fromWeb (sangwook) [#​62297](https://redirect.github.com/nodejs/node/pull/62297) - \[[`29b196694c`](https://redirect.github.com/nodejs/node/commit/29b196694c)] - **stream**: noop pause/resume on destroyed streams (Robert Nagy) [#​62557](https://redirect.github.com/nodejs/node/pull/62557) - \[[`d73dbb9fc8`](https://redirect.github.com/nodejs/node/commit/d73dbb9fc8)] - **stream**: refactor duplexify to be less suceptible to prototype pollution (Antoine du Hamel) [#​62559](https://redirect.github.com/nodejs/node/pull/62559) - \[[`6f37f7e240`](https://redirect.github.com/nodejs/node/commit/6f37f7e240)] - **(SEMVER-MINOR)** **stream**: propagate destruction in duplexPair (Ahmed Elhor) [#​61098](https://redirect.github.com/nodejs/node/pull/61098) - \[[`b8816580e9`](https://redirect.github.com/nodejs/node/commit/b8816580e9)] - **test**: generate `localstorage.db` in a temp dir (Chengzhong Wu) [#​62660](https://redirect.github.com/nodejs/node/pull/62660) - \[[`31a863fd29`](https://redirect.github.com/nodejs/node/commit/31a863fd29)] - **test**: update WPT for url to [`258f285`](https://redirect.github.com/nodejs/node/commit/258f285de0) (Node.js GitHub Bot) [#​63087](https://redirect.github.com/nodejs/node/pull/63087) - \[[`d0d19bd8e3`](https://redirect.github.com/nodejs/node/commit/d0d19bd8e3)] - **test**: update WPT for streams to [`f8f26a3`](https://redirect.github.com/nodejs/node/commit/f8f26a372f) (Node.js GitHub Bot) [#​62864](https://redirect.github.com/nodejs/node/pull/62864) - \[[`f50ac5bc78`](https://redirect.github.com/nodejs/node/commit/f50ac5bc78)] - **test**: improve config-file permission test coverage (Rafael Gonzaga) [#​60929](https://redirect.github.com/nodejs/node/pull/60929) - \[[`a0f90000f4`](https://redirect.github.com/nodejs/node/commit/a0f90000f4)] - **test**: export isRiscv64 from common module (Jamie Magee) [#​62609](https://redirect.github.com/nodejs/node/pull/62609) - \[[`da4dd8646f`](https://redirect.github.com/nodejs/node/commit/da4dd8646f)] - **test**: normalize known inspector crash as completion (Joyee Cheung) [#​62851](https://redirect.github.com/nodejs/node/pull/62851) - \[[`b7fdd94a4c`](https://redirect.github.com/nodejs/node/commit/b7fdd94a4c)] - **test**: account for RFC 7919 FFDHE negotiation in OpenSSL 4.0 (Filip Skokan) [#​62805](https://redirect.github.com/nodejs/node/pull/62805) - \[[`375a993aaf`](https://redirect.github.com/nodejs/node/commit/375a993aaf)] - **test**: skip tls-deprecated secp256k1 on OpenSSL 4.0 (Filip Skokan) [#​62805](https://redirect.github.com/nodejs/node/pull/62805) - \[[`698d8287d1`](https://redirect.github.com/nodejs/node/commit/698d8287d1)] - **test**: use an always invalid cipher and cover OpenSSL 4.0 behaviours (Filip Skokan) [#​62805](https://redirect.github.com/nodejs/node/pull/62805) - \[[`036bc6f300`](https://redirect.github.com/nodejs/node/commit/036bc6f300)] - **test**: use valid DER OCSP responses (Filip Skokan) [#​62805](https://redirect.github.com/nodejs/node/pull/62805) - \[[`3aa9938da8`](https://redirect.github.com/nodejs/node/commit/3aa9938da8)] - **test**: skip test-tls-error-stack when engines are unsupported (Filip Skokan) [#​62805](https://redirect.github.com/nodejs/node/pull/62805) - \[[`947f1ae246`](https://redirect.github.com/nodejs/node/commit/947f1ae246)] - **test**: accept renamed OpenSSL 4.0 error code and reason (Filip Skokan) [#​62805](https://redirect.github.com/nodejs/node/pull/62805) - \[[`afdd355622`](https://redirect.github.com/nodejs/node/commit/afdd355622)] - **test**: update test/addons/openssl-binding for OpenSSL 4.0 (Filip Skokan) [#​62805](https://redirect.github.com/nodejs/node/pull/62805) - \[[`8637524a99`](https://redirect.github.com/nodejs/node/commit/8637524a99)] - **test**: mark test-snapshot-reproducible flaky (Filip Skokan) [#​62808](https://redirect.github.com/nodejs/node/pull/62808) - \[[`c22d34134b`](https://redirect.github.com/nodejs/node/commit/c22d34134b)] - **test**: check contextify contextual store behavior in strict mode (René) [#​62571](https://redirect.github.com/nodejs/node/pull/62571) - \[[`0b4e0d3c94`](https://redirect.github.com/nodejs/node/commit/0b4e0d3c94)] - **test**: update tls junk data error expectations (Filip Skokan) [#​62629](https://redirect.github.com/nodejs/node/pull/62629) - \[[`85d83c2cdb`](https://redirect.github.com/nodejs/node/commit/85d83c2cdb)] - **test**: ensure WPT report is in out/wpt (Filip Skokan) [#​62637](https://redirect.github.com/nodejs/node/pull/62637) - \[[`9e21711c60`](https://redirect.github.com/nodejs/node/commit/9e21711c60)] - **test**: improve WPT runner summary (Filip Skokan) [#​62636](https://redirect.github.com/nodejs/node/pull/62636) - \[[`e04e2c9ac1`](https://redirect.github.com/nodejs/node/commit/e04e2c9ac1)] - **test**: skip url WPT subtests instead of modifying test script (Filip Skokan) [#​62635](https://redirect.github.com/nodejs/node/pull/62635) - \[[`7b1211f88c`](https://redirect.github.com/nodejs/node/commit/7b1211f88c)] - **test**: capture negative utimes mtime at call time (Yuya Inoue) [#​62490](https://redirect.github.com/nodejs/node/pull/62490) - \[[`f1a6e9fcc7`](https://redirect.github.com/nodejs/node/commit/f1a6e9fcc7)] - **test**: allow skipping individual WPT subtests (Filip Skokan) [#​62517](https://redirect.github.com/nodejs/node/pull/62517) - \[[`23f927542e`](https://redirect.github.com/nodejs/node/commit/23f927542e)] - **test**: use on-disk fixture for test-npm-install (Joyee Cheung) [#​62584](https://redirect.github.com/nodejs/node/pull/62584) - \[[`4739c45879`](https://redirect.github.com/nodejs/node/commit/4739c45879)] - **test**: update WPT for url to [`7a3645b`](https://redirect.github.com/nodejs/node/commit/7a3645b79a) (Node.js GitHub Bot) [#​62591](https://redirect.github.com/nodejs/node/pull/62591) - \[[`f68189b839`](https://redirect.github.com/nodejs/node/commit/f68189b839)] - **test\_runner**: add `testId` to test events (Moshe Atlow) [#​62772](https://redirect.github.com/nodejs/node/pull/62772) - \[[`5c2770446e`](https://redirect.github.com/nodejs/node/commit/5c2770446e)] - **test\_runner**: publish to TracingChannel for OTel instrumentation (Moshe Atlow) [#​62502](https://redirect.github.com/nodejs/node/pull/62502) - \[[`d14029be7f`](https://redirect.github.com/nodejs/node/commit/d14029be7f)] - **(SEMVER-MINOR)** **test\_runner**: support test order randomization (Pietro Marchini) [#​61747](https://redirect.github.com/nodejs/node/pull/61747) - \[[`3f74a58979`](https://redirect.github.com/nodejs/node/commit/3f74a58979)] - **test\_runner**: update node-config-schema (Pietro Marchini) [#​58680](https://redirect.github.com/nodejs/node/pull/58680) - \[[`60c83f6199`](https://redirect.github.com/nodejs/node/commit/60c83f6199)] - **test\_runner**: fix failing suite hooks when marked with `todo` (Moshe Atlow) [#​63097](https://redirect.github.com/nodejs/node/pull/63097) - \[[`d142c584cd`](https://redirect.github.com/nodejs/node/commit/d142c584cd)] - **(SEMVER-MINOR)** **test\_runner**: align mock timeout api (sangwook) [#​62820](https://redirect.github.com/nodejs/node/pull/62820) - \[[`3e72065ed6`](https://redirect.github.com/nodejs/node/commit/3e72065ed6)] - **test\_runner**: fix suite rerun edge case (Moshe Atlow) [#​62860](https://redirect.github.com/nodejs/node/pull/62860) - \[[`01a9552585`](https://redirect.github.com/nodejs/node/commit/01a9552585)] - **(SEMVER-MINOR)** **test\_runner**: add mock-timers support for AbortSignal.timeout (DeveloperViraj) [#​60751](https://redirect.github.com/nodejs/node/pull/60751) - \[[`dd43efffa6`](https://redirect.github.com/nodejs/node/commit/dd43efffa6)] - **test\_runner**: add passed, attempt, and diagnostic to SuiteContext (Moshe Atlow) [#​62504](https://redirect.github.com/nodejs/node/pull/62504) - \[[`a12dc445cc`](https://redirect.github.com/nodejs/node/commit/a12dc445cc)] - **tools**: add a check for clean git tree after tests (Antoine du Hamel) [#​62661](https://redirect.github.com/nodejs/node/pull/62661) - \[[`5b49178375`](https://redirect.github.com/nodejs/node/commit/5b49178375)] - **tools**: use LTS Node.js in notify-on-push workflow (Nenad Spasenic) [#​63084](https://redirect.github.com/nodejs/node/pull/63084) - \[[`5a93bde5bb`](https://redirect.github.com/nodejs/node/commit/5a93bde5bb)] - **tools**: update gr2m/create-or-update-pull-request-action to v1.10.1 (Mike McCready) [#​63065](https://redirect.github.com/nodejs/node/pull/63065) - \[[`b133019d19`](https://redirect.github.com/nodejs/node/commit/b133019d19)] - **tools**: simplify `update-undici.sh` (Antoine du Hamel) [#​63044](https://redirect.github.com/nodejs/node/pull/63044) - \[[`04d3538074`](https://redirect.github.com/nodejs/node/commit/04d3538074)] - **tools**: do not run `test-linux` on unrelated tools changes (Antoine du Hamel) [#​63037](https://redirect.github.com/nodejs/node/pull/63037) - \[[`4d396ac4a5`](https://redirect.github.com/nodejs/node/commit/4d396ac4a5)] - **tools**: bump the eslint group in /tools/eslint with 4 updates (dependabot\[bot]) [#​62848](https://redirect.github.com/nodejs/node/pull/62848) - \[[`9354bf40e7`](https://redirect.github.com/nodejs/node/commit/9354bf40e7)] - **tools**: update gyp-next to 0.22.1 (Node.js GitHub Bot) [#​62961](https://redirect.github.com/nodejs/node/pull/62961) - \[[`c23db1ca85`](https://redirect.github.com/nodejs/node/commit/c23db1ca85)] - **tools**: fix commit linter for semver-major release proposals (Antoine du Hamel) [#​62993](https://redirect.github.com/nodejs/node/pull/62993) - \[[`6e097ee3f1`](https://redirect.github.com/nodejs/node/commit/6e097ee3f1)] - **tools**: consolidate and simplify .editorconfig deps section (Daijiro Wachi) [#​62887](https://redirect.github.com/nodejs/node/pull/62887) - \[[`a47ea6d6ea`](https://redirect.github.com/nodejs/node/commit/a47ea6d6ea)] - **tools**: set bot as author of tools-deps-update PRs (Antoine du Hamel) [#​62856](https://redirect.github.com/nodejs/node/pull/62856) - \[[`00e86f0471`](https://redirect.github.com/nodejs/node/commit/00e86f0471)] - **tools**: bump brace-expansion from 5.0.4 to 5.0.5 in /tools/eslint (dependabot\[bot]) [#​62458](https://redirect.github.com/nodejs/node/pull/62458) - \[[`cd7e262e75`](https://redirect.github.com/nodejs/node/commit/cd7e262e75)] - **tools**: bump brace-expansion in /tools/clang-format (dependabot\[bot]) [#​62467](https://redirect.github.com/nodejs/node/pull/62467) - \[[`bfc1319bc8`](https://redirect.github.com/nodejs/node/commit/bfc1319bc8)] - **tools**: exclude [@​node-core/doc-kit](https://redirect.github.com/node-core/doc-kit) from dependabot cooldown (Levi Zim) [#​62775](https://redirect.github.com/nodejs/node/pull/62775) - \[[`a932fbd10b`](https://redirect.github.com/nodejs/node/commit/a932fbd10b)] - **tools**: re-enable undici WPTs in daily wpt.fyi job (Filip Skokan) [#​62677](https://redirect.github.com/nodejs/node/pull/62677) - \[[`f7bd9e3055`](https://redirect.github.com/nodejs/node/commit/f7bd9e3055)] - **tools**: update gyp-next to 0.22.0 (Node.js GitHub Bot) [#​62697](https://redirect.github.com/nodejs/node/pull/62697) - \[[`c400d46d87`](https://redirect.github.com/nodejs/node/commit/c400d46d87)] - **tools**: improve backport review script (Antoine du Hamel) [#​62573](https://redirect.github.com/nodejs/node/pull/62573) - \[[`be23b75814`](https://redirect.github.com/nodejs/node/commit/be23b75814)] - **tools**: improve output for unexpected passes in WTP tests (Antoine du Hamel) [#​62587](https://redirect.github.com/nodejs/node/pull/62587) - \[[`609c013ece`](https://redirect.github.com/nodejs/node/commit/609c013ece)] - **tools**: revert OpenSSL update workflow to ubuntu-latest (Richard Lau) [#​62627](https://redirect.github.com/nodejs/node/pull/62627) - \[[`81bac1ebfd`](https://redirect.github.com/nodejs/node/commit/81bac1ebfd)] - **tools**: bump the eslint group in /tools/eslint with 2 updates (dependabot\[bot]) [#​62552](https://redirect.github.com/nodejs/node/pull/62552) - \[[`1fee26522d`](https://redirect.github.com/nodejs/node/commit/1fee26522d)] - **tools**: allow triagers to queue a PR for CI until it's reviewed (Antoine du Hamel) [#​62524](https://redirect.github.com/nodejs/node/pull/62524) - \[[`332088f929`](https://redirect.github.com/nodejs/node/commit/332088f929)] - **tools**: do not run `commit-lint` on release proposals (Antoine du Hamel) [#​62523](https://redirect.github.com/nodejs/node/pull/62523) - \[[`9a25fc8a4d`](https://redirect.github.com/nodejs/node/commit/9a25fc8a4d)] - **url**: process crash via malformed UNC hostname in pathToFileURL() (Nicola Del Gobbo) [#​62574](https://redirect.github.com/nodejs/node/pull/62574) - \[[`7bd08ff60a`](https://redirect.github.com/nodejs/node/commit/7bd08ff60a)] - **url**: optimize URLSearchParams set/delete duplicate handling (Gürgün Dayıoğlu) [#​62266](https://redirect.github.com/nodejs/node/pull/62266) - \[[`2d636388fa`](https://redirect.github.com/nodejs/node/commit/2d636388fa)] - **url**: align default argument handling for URLPattern with webidl (Filip Skokan) [#​62719](https://redirect.github.com/nodejs/node/pull/62719) - \[[`00705a459a`](https://redirect.github.com/nodejs/node/commit/00705a459a)] - **(SEMVER-MINOR)** **util**: colorize text with hex colors (Guilherme Araújo) [#​61556](https://redirect.github.com/nodejs/node/pull/61556) - \[[`0e2adb3e45`](https://redirect.github.com/nodejs/node/commit/0e2adb3e45)] - **watch**: track worker entry files in watch mode (SudhansuBandha) [#​62368](https://redirect.github.com/nodejs/node/pull/62368) - \[[`c58fe38211`](https://redirect.github.com/nodejs/node/commit/c58fe38211)] - **watch**: fix --env-file-if-exists crashing on linux if the file is missing (Efe) [#​61870](https://redirect.github.com/nodejs/node/pull/61870)
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- mise.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mise.toml b/mise.toml index 35fbec943..ee0e83a8d 100644 --- a/mise.toml +++ b/mise.toml @@ -2,7 +2,7 @@ "go:github.com/grafana/oats" = "0.6.1" hugo = "0.161.1" java = "temurin-25.0.3+9.0.LTS" -node = "24.15.0" +node = "24.16.0" protoc = "35.0" # Linters From 5d0bedf6ed2dfb82698f948f314bc79a7a1777b3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 May 2026 11:33:49 +0200 Subject: [PATCH 27/74] chore(deps): update linters (#2138) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit > ℹ️ **Note** > > This PR body was truncated due to platform limits. This PR contains the following updates: | Package | Update | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---|---| | [aqua:jonwiggins/xmloxide](https://redirect.github.com/jonwiggins/xmloxide) | patch | `0.4.2` → `0.4.3` | ![age](https://developer.mend.io/api/mc/badges/age/github-tags/jonwiggins%2fxmloxide/0.4.3?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/github-tags/jonwiggins%2fxmloxide/0.4.2/0.4.3?slim=true) | | [aqua:owenlamont/ryl](https://redirect.github.com/owenlamont/ryl) | minor | `0.8.0` → `0.10.0` | ![age](https://developer.mend.io/api/mc/badges/age/github-tags/owenlamont%2fryl/0.10.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/github-tags/owenlamont%2fryl/0.8.0/0.10.0?slim=true) | | [editorconfig-checker](https://redirect.github.com/editorconfig-checker/editorconfig-checker) | minor | `v3.6.1` → `3.7.0` | ![age](https://developer.mend.io/api/mc/badges/age/github-releases/editorconfig-checker%2feditorconfig-checker/3.7.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/github-releases/editorconfig-checker%2feditorconfig-checker/3.6.1/3.7.0?slim=true) | | [npm:renovate](https://renovatebot.com) ([source](https://redirect.github.com/renovatebot/renovate)) | minor | `43.144.0` → `43.150.0` | ![age](https://developer.mend.io/api/mc/badges/age/npm/renovate/43.150.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/renovate/43.144.0/43.150.0?slim=true) | | [ruff](https://redirect.github.com/astral-sh/ruff) | patch | `0.15.12` → `0.15.14` | ![age](https://developer.mend.io/api/mc/badges/age/github-releases/astral-sh%2fruff/0.15.14?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/github-releases/astral-sh%2fruff/0.15.12/0.15.14?slim=true) | | [rumdl](https://redirect.github.com/rvben/rumdl) | minor | `0.1.84` → `0.2.0` | ![age](https://developer.mend.io/api/mc/badges/age/github-releases/rvben%2frumdl/v0.2.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/github-releases/rvben%2frumdl/v0.1.84/v0.2.0?slim=true) | | [typos](https://redirect.github.com/crate-ci/typos) | patch | `1.46.1` → `1.46.3` | ![age](https://developer.mend.io/api/mc/badges/age/github-releases/crate-ci%2ftypos/1.46.3?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/github-releases/crate-ci%2ftypos/1.46.1/1.46.3?slim=true) | --- ### Release Notes
jonwiggins/xmloxide (aqua:jonwiggins/xmloxide) ### [`v0.4.3`](https://redirect.github.com/jonwiggins/xmloxide/blob/HEAD/CHANGELOG.md#043---2026-05-04) [Compare Source](https://redirect.github.com/jonwiggins/xmloxide/compare/v0.4.2...v0.4.3) ##### Fixed - **Exclusive C14N: emit `xmlns=""` default-namespace undeclaration** when an element with no default namespace is canonicalized inside scope of an inherited default namespace ([#​16](https://redirect.github.com/jonwiggins/xmloxide/issues/16), thanks [@​williamareynolds](https://redirect.github.com/williamareynolds)). Previously the undeclaration was only emitted in inclusive C14N. Per Canonical XML 1.0 §2.3 (inherited by Exclusive C14N §3), the empty default namespace must be made explicit so the canonical form correctly reflects the element's namespace context. ##### CI / Maintenance - Bump `actions/checkout` 4.3.1 → 6.0.2 across all workflows ([#​14](https://redirect.github.com/jonwiggins/xmloxide/issues/14)) - Bump `actions/download-artifact` v4 → v8.0.1 in release workflow ([#​13](https://redirect.github.com/jonwiggins/xmloxide/issues/13)) - Bump `actions/upload-artifact` v4 → v7.0.1 in release workflow ([#​15](https://redirect.github.com/jonwiggins/xmloxide/issues/15)) - Bump `softprops/action-gh-release` v2 → v3.0.0 in release workflow ([#​12](https://redirect.github.com/jonwiggins/xmloxide/issues/12)) - Bump `taiki-e/install-action` 2.75.19 → 2.75.26 in release workflow ([#​17](https://redirect.github.com/jonwiggins/xmloxide/issues/17)) - Remove `bench.yml` workflow — the regression check required a `gh-pages` branch that was never created, so it had been failing on every PR. Run benchmarks locally with `cargo bench`.
owenlamont/ryl (aqua:owenlamont/ryl) ### [`v0.10.0`](https://redirect.github.com/owenlamont/ryl/releases/tag/v0.10.0) [Compare Source](https://redirect.github.com/owenlamont/ryl/compare/v0.9.2...v0.10.0) #### What's Changed - build(deps): bump the actions-dependencies group with 2 updates by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​219](https://redirect.github.com/owenlamont/ryl/pull/219) - test: add property-style tests for safe --fix invariants by [@​owenlamont](https://redirect.github.com/owenlamont) in [#​220](https://redirect.github.com/owenlamont/ryl/pull/220) - Implement partial safe --fix for trailing-spaces, document-start, document-end, empty-lines (closes [#​221](https://redirect.github.com/owenlamont/ryl/issues/221)) by [@​owenlamont](https://redirect.github.com/owenlamont) in [#​223](https://redirect.github.com/owenlamont/ryl/pull/223) - chore: refresh dependencies and linters by [@​create-pr-workflow-auth](https://redirect.github.com/create-pr-workflow-auth)\[bot] in [#​224](https://redirect.github.com/owenlamont/ryl/pull/224) - Add stdin input support via `-` positional (closes [#​209](https://redirect.github.com/owenlamont/ryl/issues/209)) by [@​owenlamont](https://redirect.github.com/owenlamont) in [#​225](https://redirect.github.com/owenlamont/ryl/pull/225) **Full Changelog**: ### [`v0.9.2`](https://redirect.github.com/owenlamont/ryl/releases/tag/v0.9.2) [Compare Source](https://redirect.github.com/owenlamont/ryl/compare/v0.9.1...v0.9.2) #### What's Changed - build(deps): bump taiki-e/install-action from 2.75.22 to 2.75.28 in the actions-dependencies group by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​210](https://redirect.github.com/owenlamont/ryl/pull/210) - chore: refresh dependencies and linters by [@​create-pr-workflow-auth](https://redirect.github.com/create-pr-workflow-auth)\[bot] in [#​211](https://redirect.github.com/owenlamont/ryl/pull/211) - build(deps): bump taiki-e/install-action from 2.75.28 to 2.77.2 in the actions-dependencies group by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​212](https://redirect.github.com/owenlamont/ryl/pull/212) - chore: refresh dependencies and linters by [@​create-pr-workflow-auth](https://redirect.github.com/create-pr-workflow-auth)\[bot] in [#​213](https://redirect.github.com/owenlamont/ryl/pull/213) - 205 create a proper documentation page for ryl by [@​owenlamont](https://redirect.github.com/owenlamont) in [#​215](https://redirect.github.com/owenlamont/ryl/pull/215) - fix(package): allowlist publish contents and drop dev-only bin by [@​owenlamont](https://redirect.github.com/owenlamont) in [#​216](https://redirect.github.com/owenlamont/ryl/pull/216) - docs: refresh benchmark image and unpin from a tag by [@​owenlamont](https://redirect.github.com/owenlamont) in [#​217](https://redirect.github.com/owenlamont/ryl/pull/217) **Full Changelog**: ### [`v0.9.1`](https://redirect.github.com/owenlamont/ryl/releases/tag/v0.9.1) [Compare Source](https://redirect.github.com/owenlamont/ryl/compare/v0.9.0...v0.9.1) #### What's Changed - Fix quoted-string autofix edge cases by [@​owenlamont](https://redirect.github.com/owenlamont) in [#​207](https://redirect.github.com/owenlamont/ryl/pull/207) **Full Changelog**: ### [`v0.9.0`](https://redirect.github.com/owenlamont/ryl/releases/tag/v0.9.0) [Compare Source](https://redirect.github.com/owenlamont/ryl/compare/v0.8.0...v0.9.0) #### What's Changed - Add --fix support for quoted-strings rule by [@​owenlamont](https://redirect.github.com/owenlamont) in [#​202](https://redirect.github.com/owenlamont/ryl/pull/202) - chore: refresh dependencies and linters by [@​create-pr-workflow-auth](https://redirect.github.com/create-pr-workflow-auth)\[bot] in [#​203](https://redirect.github.com/owenlamont/ryl/pull/203) **Full Changelog**:
editorconfig-checker/editorconfig-checker (editorconfig-checker) ### [`v3.7.0`](https://redirect.github.com/editorconfig-checker/editorconfig-checker/blob/HEAD/CHANGELOG.md#370-2026-05-25) [Compare Source](https://redirect.github.com/editorconfig-checker/editorconfig-checker/compare/v3.6.1...v3.7.0) ##### Features - **files:** expand glob patterns in passed-file args ([#​190](https://redirect.github.com/editorconfig-checker/editorconfig-checker/issues/190)) ([#​558](https://redirect.github.com/editorconfig-checker/editorconfig-checker/issues/558)) ([4c0f326](https://redirect.github.com/editorconfig-checker/editorconfig-checker/commit/4c0f326cfa71fb0dd80c0c71b1844b2550ed799e)) ##### Bug Fixes - **cli:** auto-enable no-color when output format is github-actions ([#​557](https://redirect.github.com/editorconfig-checker/editorconfig-checker/issues/557)) ([9f4014c](https://redirect.github.com/editorconfig-checker/editorconfig-checker/commit/9f4014ce0944f601472e5cbfaec31f711890c780)) - detect binary files before decoding to prevent false text ([#​550](https://redirect.github.com/editorconfig-checker/editorconfig-checker/issues/550)) ([f47b30c](https://redirect.github.com/editorconfig-checker/editorconfig-checker/commit/f47b30c96713107bc4fe0b7a05e79a293c4874dd))
renovatebot/renovate (npm:renovate) ### [`v43.150.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.150.0) [Compare Source](https://redirect.github.com/renovatebot/renovate/compare/43.149.0...43.150.0) ##### Features - **manager/asdf:** support `apm` ([#​42865](https://redirect.github.com/renovatebot/renovate/issues/42865)) ([4faae3e](https://redirect.github.com/renovatebot/renovate/commit/4faae3e76d2b07e24d5788f2f36e9f80ffb1e30a)) ##### Miscellaneous Chores - **datasource:** fix log messages ([#​42963](https://redirect.github.com/renovatebot/renovate/issues/42963)) ([3049ef2](https://redirect.github.com/renovatebot/renovate/commit/3049ef224457c00bf1315f28991ce85a85f4ed24)) ### [`v43.149.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.149.0) [Compare Source](https://redirect.github.com/renovatebot/renovate/compare/43.148.0...43.149.0) ##### Features - **mise:** automagically support all tools through Mise Registry ([#​42783](https://redirect.github.com/renovatebot/renovate/issues/42783)) ([2bd478f](https://redirect.github.com/renovatebot/renovate/commit/2bd478fff4071e09972b051ab5801ff48c101d04)), closes [#​42250](https://redirect.github.com/renovatebot/renovate/issues/42250) ##### Miscellaneous Chores - **tools:** pre-format output JSON files ([#​42941](https://redirect.github.com/renovatebot/renovate/issues/42941)) ([836afde](https://redirect.github.com/renovatebot/renovate/commit/836afde2733dd40c819b124f2afa1dd457a11608)) ##### Continuous Integration - validate docker build succeeds ([#​42962](https://redirect.github.com/renovatebot/renovate/issues/42962)) ([8c9c0ef](https://redirect.github.com/renovatebot/renovate/commit/8c9c0ef2306db74e30ef1ecb09c4de43edeb95e1)) ### [`v43.148.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.148.0) [Compare Source](https://redirect.github.com/renovatebot/renovate/compare/43.147.0...43.148.0) ##### Features - **presets/monorepos:** add conform ([#​42903](https://redirect.github.com/renovatebot/renovate/issues/42903)) ([d8b2759](https://redirect.github.com/renovatebot/renovate/commit/d8b27590065886efa6588f0beea689f22fcff796)) ##### Bug Fixes - **deps:** update ghcr.io/renovatebot/base-image docker tag to v13.40.1 (main) ([#​42957](https://redirect.github.com/renovatebot/renovate/issues/42957)) ([e3c7cd8](https://redirect.github.com/renovatebot/renovate/commit/e3c7cd84bce22060341eb6d6037e9cfc02c1d3db)) - **gerrit:** defer change creation to `createPr()` ([#​39250](https://redirect.github.com/renovatebot/renovate/issues/39250)) ([1bbe824](https://redirect.github.com/renovatebot/renovate/commit/1bbe82400ede9b4ed24ac9dca4684f48fb8e07c7)), closes [#​41382](https://redirect.github.com/renovatebot/renovate/issues/41382) ##### Documentation - **mend-hosted:** add link directly to header ([#​42960](https://redirect.github.com/renovatebot/renovate/issues/42960)) ([f9634b3](https://redirect.github.com/renovatebot/renovate/commit/f9634b3d137e1c3e76eae82784af830c5094fa11)) ##### Miscellaneous Chores - update pnpm configuration ([#​42952](https://redirect.github.com/renovatebot/renovate/issues/42952)) ([36b0b2e](https://redirect.github.com/renovatebot/renovate/commit/36b0b2e48b27014f901d5c6072681525b6120f62)) ##### Code Refactoring - **gomod:** extract `deriveGoToolchainConstraints` function ([#​42956](https://redirect.github.com/renovatebot/renovate/issues/42956)) ([1054439](https://redirect.github.com/renovatebot/renovate/commit/1054439929ac6396a9acae66d73df071b2ae75a5)) ##### Tests - remove TODOs ([#​42958](https://redirect.github.com/renovatebot/renovate/issues/42958)) ([bdddddf](https://redirect.github.com/renovatebot/renovate/commit/bdddddf57ac4d4b837ca2294b672730d7c392f09)) ##### Build System - add pnpm workspace config to docker context ([#​42961](https://redirect.github.com/renovatebot/renovate/issues/42961)) ([2d67a50](https://redirect.github.com/renovatebot/renovate/commit/2d67a50690e26059a3c88bafb287aff81e7daa37)) ### [`v43.147.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.147.0) [Compare Source](https://redirect.github.com/renovatebot/renovate/compare/43.146.0...43.147.0) ##### Features - **manager:** add proto manager for .prototools files ([#​42908](https://redirect.github.com/renovatebot/renovate/issues/42908)) ([e5f067c](https://redirect.github.com/renovatebot/renovate/commit/e5f067cccef2f16e5a639f8d8735d77a2840ee86)) - **terraform-provider:** add OpenTofu registry API support ([#​42343](https://redirect.github.com/renovatebot/renovate/issues/42343)) ([677e2a6](https://redirect.github.com/renovatebot/renovate/commit/677e2a606e5e4b6afb0f336e0188f8d740afc11c)) ##### Documentation - note cleanup after `enabled=false` ([#​42943](https://redirect.github.com/renovatebot/renovate/issues/42943)) ([7344b93](https://redirect.github.com/renovatebot/renovate/commit/7344b93bb0e79ca2269eefe957f4d4bbf291d5b0)) ##### Continuous Integration - set repo context for gh cli ([#​42954](https://redirect.github.com/renovatebot/renovate/issues/42954)) ([28c3144](https://redirect.github.com/renovatebot/renovate/commit/28c3144400b498a414e4e19713555a700806272e)) ### [`v43.146.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.146.0) [Compare Source](https://redirect.github.com/renovatebot/renovate/compare/43.145.0...43.146.0) ##### Features - **deps:** update ghcr.io/renovatebot/base-image docker tag to v13.40.0 (main) ([#​42951](https://redirect.github.com/renovatebot/renovate/issues/42951)) ([ab62bd5](https://redirect.github.com/renovatebot/renovate/commit/ab62bd5a2b57012ce60bc7494183b7f9b6460328)) ### [`v43.145.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.145.0) [Compare Source](https://redirect.github.com/renovatebot/renovate/compare/43.144.0...43.145.0) ##### Features - **deps:** update ghcr.io/renovatebot/base-image docker tag to v13.39.0 (main) ([#​42950](https://redirect.github.com/renovatebot/renovate/issues/42950)) ([0073e1f](https://redirect.github.com/renovatebot/renovate/commit/0073e1f002675d940cb99bf7a414de786f4e2d70)) ##### Miscellaneous Chores - **deps:** update dependency [@​smithy/util-stream](https://redirect.github.com/smithy/util-stream) to v4.5.24 (main) ([#​42947](https://redirect.github.com/renovatebot/renovate/issues/42947)) ([887fb02](https://redirect.github.com/renovatebot/renovate/commit/887fb026a6a182f20fba054247b348c7679511bd)) - **deps:** update dependency nock to v14.0.13 (main) ([#​42949](https://redirect.github.com/renovatebot/renovate/issues/42949)) ([7e38d70](https://redirect.github.com/renovatebot/renovate/commit/7e38d70b7c92d2f57081ac6517e72dc2ec6b445b))
astral-sh/ruff (ruff) ### [`v0.15.14`](https://redirect.github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#01514) [Compare Source](https://redirect.github.com/astral-sh/ruff/compare/0.15.13...0.15.14) Released on 2026-05-21. ##### Preview features - \[`airflow`] Implement `airflow-task-implicit-multiple-outputs` (`AIR202`) ([#​25152](https://redirect.github.com/astral-sh/ruff/pull/25152)) - \[`flake8-use-pathlib`] Mark `PTH101` fix as unsafe when first argument is a class attribute annotated as `int` ([#​25086](https://redirect.github.com/astral-sh/ruff/pull/25086)) - \[`pylint`] Implement `too-many-try-statements` (`W0717`) ([#​23970](https://redirect.github.com/astral-sh/ruff/pull/23970)) - \[`ruff`] Add `incorrect-decorator-order` (`RUF074`) ([#​23461](https://redirect.github.com/astral-sh/ruff/pull/23461)) - \[`ruff`] Add `fallible-context-manager` (`RUF075`) ([#​22844](https://redirect.github.com/astral-sh/ruff/pull/22844)) ##### Bug fixes - Fix lambda formatting in interpolated string expressions ([#​25144](https://redirect.github.com/astral-sh/ruff/pull/25144)) - Treat generic `frozenset` annotations as immutable ([#​25251](https://redirect.github.com/astral-sh/ruff/pull/25251)) - \[`flake8-type-checking`] Avoid `strict` behavior when `future-annotations` are enabled (`TC001`, `TC002`, `TC003`) ([#​25035](https://redirect.github.com/astral-sh/ruff/pull/25035)) - \[`pylint`] Avoid false positives in `else` clause (`PLR1733`) ([#​25177](https://redirect.github.com/astral-sh/ruff/pull/25177)) ##### Rule changes - \[`flake8-comprehensions`] Skip `C417` for lambdas with positional-only parameters ([#​25272](https://redirect.github.com/astral-sh/ruff/pull/25272)) - \[`flake8-simplify`] Preserve f-string source verbatim in `SIM101` fix ([#​25061](https://redirect.github.com/astral-sh/ruff/pull/25061)) ##### Performance - Avoid unnecessary parser lookahead for operators ([#​25290](https://redirect.github.com/astral-sh/ruff/pull/25290)) ##### Documentation - Update code example setting Neovim LSP log level ([#​25284](https://redirect.github.com/astral-sh/ruff/pull/25284)) ##### Other changes - Add full PEP 798 support ([#​25104](https://redirect.github.com/astral-sh/ruff/pull/25104)) - Add a parser recursion limit ([#​24810](https://redirect.github.com/astral-sh/ruff/pull/24810)) - Update various `ruff_python_stdlib` APIs ([#​25273](https://redirect.github.com/astral-sh/ruff/pull/25273)) ##### Contributors - [@​ocaballeror](https://redirect.github.com/ocaballeror) - [@​lerebear](https://redirect.github.com/lerebear) - [@​samuelcolvin](https://redirect.github.com/samuelcolvin) - [@​baltasarblanco](https://redirect.github.com/baltasarblanco) - [@​aconal-com](https://redirect.github.com/aconal-com) - [@​anishgirianish](https://redirect.github.com/anishgirianish) - [@​JelleZijlstra](https://redirect.github.com/JelleZijlstra) - [@​AlexWaygood](https://redirect.github.com/AlexWaygood) - [@​ntBre](https://redirect.github.com/ntBre) - [@​adityasingh2400](https://redirect.github.com/adityasingh2400) - [@​charliermarsh](https://redirect.github.com/charliermarsh) - [@​Dev-iL](https://redirect.github.com/Dev-iL) - [@​neutrinoceros](https://redirect.github.com/neutrinoceros) - [@​shivamtiwari3](https://redirect.github.com/shivamtiwari3) - [@​Dev-X25874](https://redirect.github.com/Dev-X25874) ### [`v0.15.13`](https://redirect.github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#01513) [Compare Source](https://redirect.github.com/astral-sh/ruff/compare/0.15.12...0.15.13) Released on 2026-05-14. ##### Preview features - Add a rule to flag lazy imports that are eagerly evaluated ([#​25016](https://redirect.github.com/astral-sh/ruff/pull/25016)) - \[`pylint`] Standardize diagnostic message (`PLR0914`, `PLR0917`) ([#​24996](https://redirect.github.com/astral-sh/ruff/pull/24996)) ##### Bug fixes - Fix `F811` false positive for class methods ([#​24933](https://redirect.github.com/astral-sh/ruff/pull/24933)) - Fix setting selection for multi-folder workspace ([#​24819](https://redirect.github.com/astral-sh/ruff/pull/24819)) - \[`eradicate`] Fix false positive for lines with leading whitespace (`ERA001`) ([#​25122](https://redirect.github.com/astral-sh/ruff/pull/25122)) - \[`flake8-pyi`] Fix false positive for f-string debug specifier (`PYI016`) ([#​24098](https://redirect.github.com/astral-sh/ruff/pull/24098)) ##### Rule changes - Always include panic payload in panic diagnostic message ([#​24873](https://redirect.github.com/astral-sh/ruff/pull/24873)) - Restrict `PYI034` for in-place operations to enclosing class ([#​24511](https://redirect.github.com/astral-sh/ruff/pull/24511)) - Improve error message for parameters that are declared `global` ([#​24902](https://redirect.github.com/astral-sh/ruff/pull/24902)) - Update known stdlib ([#​25103](https://redirect.github.com/astral-sh/ruff/pull/25103)) ##### Performance - \[`isort`] Avoid constructing `glob::Pattern`s for literal known modules ([#​25123](https://redirect.github.com/astral-sh/ruff/pull/25123)) ##### CLI - Add TOML examples to `--config` help text ([#​25013](https://redirect.github.com/astral-sh/ruff/pull/25013)) - Colorize ruff check 'All checks passed' ([#​25085](https://redirect.github.com/astral-sh/ruff/pull/25085)) ##### Configuration - Increase max allowed value of `line-length` setting ([#​24962](https://redirect.github.com/astral-sh/ruff/pull/24962)) ##### Documentation - Add `D203` to rules that conflict with the formatter ([#​25044](https://redirect.github.com/astral-sh/ruff/pull/25044)) - Clarify `COM819` and formatter interaction ([#​25045](https://redirect.github.com/astral-sh/ruff/pull/25045)) - Clarify that `NotImplemented` is a value, not an exception (`F901`) ([#​25054](https://redirect.github.com/astral-sh/ruff/pull/25054)) - Update number of lint rules supported ([#​24942](https://redirect.github.com/astral-sh/ruff/pull/24942)) ##### Other changes - Simplify the playground's markdown template ([#​24924](https://redirect.github.com/astral-sh/ruff/pull/24924)) ##### Contributors - [@​MichaReiser](https://redirect.github.com/MichaReiser) - [@​brian-c11](https://redirect.github.com/brian-c11) - [@​Andrej730](https://redirect.github.com/Andrej730) - [@​denyszhak](https://redirect.github.com/denyszhak) - [@​darestack](https://redirect.github.com/darestack) - [@​sharkdp](https://redirect.github.com/sharkdp) - [@​charliermarsh](https://redirect.github.com/charliermarsh) - [@​EkriirkE](https://redirect.github.com/EkriirkE) - [@​eyupcanakman](https://redirect.github.com/eyupcanakman) - [@​Hrk84ya](https://redirect.github.com/Hrk84ya) - [@​thernstig](https://redirect.github.com/thernstig) - [@​ntBre](https://redirect.github.com/ntBre)
rvben/rumdl (rumdl) ### [`v0.2.0`](https://redirect.github.com/rvben/rumdl/releases/tag/v0.2.0) [Compare Source](https://redirect.github.com/rvben/rumdl/compare/v0.1.96...v0.2.0) ##### Added - **lsp**: improve link completion ranking, ignores, and absolute paths ([0ac911e](https://redirect.github.com/rvben/rumdl/commit/0ac911ec4836803b57ddebf289f75d83fab31ac4)) - **flavor**: add support for MyST (Markedly Structured Text) ([#​637](https://redirect.github.com/rvben/rumdl/issues/637)) ([3455840](https://redirect.github.com/rvben/rumdl/commit/3455840e1424961128cbfaddcd929f43eb60fda7)) ##### Fixed - **md007**: close ordered-ancestor exemption leak across deeper nested quotes ([0fa6180](https://redirect.github.com/rvben/rumdl/commit/0fa61809228b8f3b9d6708a9f86d3943415f7018)) - **md007**: flag misindented top-level unordered list items ([f277892](https://redirect.github.com/rvben/rumdl/commit/f277892545500e5fddf839e41a0a2341cc18fd7d)) - **md007**: apply ordered-ancestor exemption only to genuinely nested sublists ([#​638](https://redirect.github.com/rvben/rumdl/issues/638)) ([4c96cf7](https://redirect.github.com/rvben/rumdl/commit/4c96cf701b183c3842753aad5646e500b45b44d3)) - **md013**: reflow list-item prose in normalize mode without false length warnings ([#​639](https://redirect.github.com/rvben/rumdl/issues/639)) ([0816967](https://redirect.github.com/rvben/rumdl/commit/08169672b6039a44bd57fab8f56bc1f9bd1c7a3c)) - **cross-file**: honor inline-disable and per-file-ignores on lint-cache fast path ([05c77e4](https://redirect.github.com/rvben/rumdl/commit/05c77e4f4b4003c3e62aec0ef7d0ec354fa87acf)) #### Downloads | File | Platform | Checksum | | -------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------- | | [rumdl-v0.2.0-x86\_64-unknown-linux-gnu.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-x86_64-unknown-linux-gnu.tar.gz) | Linux x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.0-x86\_64-unknown-linux-musl.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-x86_64-unknown-linux-musl.tar.gz) | Linux x86\_64 (musl) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.0-aarch64-unknown-linux-gnu.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.0-aarch64-unknown-linux-musl.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-aarch64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.0-x86\_64-apple-darwin.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-x86_64-apple-darwin.tar.gz) | macOS x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-x86_64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.2.0-aarch64-apple-darwin.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-aarch64-apple-darwin.tar.gz) | macOS ARM64 (Apple Silicon) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-aarch64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.2.0-x86\_64-pc-windows-msvc.zip](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-x86_64-pc-windows-msvc.zip) | Windows x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-x86_64-pc-windows-msvc.zip.sha256) | #### Installation ##### Using uv (Recommended) ```bash uv tool install rumdl ``` ##### Using pip ```bash pip install rumdl ``` ##### Using pipx ```bash pipx install rumdl ``` ##### Direct Download Download the appropriate binary for your platform from the table above, extract it, and add it to your PATH. ### [`v0.1.96`](https://redirect.github.com/rvben/rumdl/releases/tag/v0.1.96) [Compare Source](https://redirect.github.com/rvben/rumdl/compare/v0.1.95...v0.1.96) ##### Fixed - **md073**: protect code-span contents from link/image stripping ([530e41d](https://redirect.github.com/rvben/rumdl/commit/530e41d61c5d34dcb517fa677816c69e5c2ea884)) - **md073**: preserve inline code spans and emphasis in generated TOC entries ([#​634](https://redirect.github.com/rvben/rumdl/issues/634)) ([897c76a](https://redirect.github.com/rvben/rumdl/commit/897c76a8fb48395dabde8030fffc02cc22b0d0e7)) - **md057**: handle trailing-slash directory links that include a fragment or query ([539a6d0](https://redirect.github.com/rvben/rumdl/commit/539a6d087b332e097abc85cce56ea478840184cc)) - **md057**: eliminate duplicate warnings for broken relative links and accept existing directory targets ([#​631](https://redirect.github.com/rvben/rumdl/issues/631), [#​632](https://redirect.github.com/rvben/rumdl/issues/632)) ([6a37ada](https://redirect.github.com/rvben/rumdl/commit/6a37ada04337079f08e656087c6d681a78181d46)) #### Downloads | File | Platform | Checksum | | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------- | | [rumdl-v0.1.96-x86\_64-unknown-linux-gnu.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.96/rumdl-v0.1.96-x86_64-unknown-linux-gnu.tar.gz) | Linux x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.96/rumdl-v0.1.96-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.1.96-x86\_64-unknown-linux-musl.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.96/rumdl-v0.1.96-x86_64-unknown-linux-musl.tar.gz) | Linux x86\_64 (musl) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.96/rumdl-v0.1.96-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.1.96-aarch64-unknown-linux-gnu.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.96/rumdl-v0.1.96-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.96/rumdl-v0.1.96-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.1.96-aarch64-unknown-linux-musl.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.96/rumdl-v0.1.96-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.96/rumdl-v0.1.96-aarch64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.1.96-x86\_64-apple-darwin.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.96/rumdl-v0.1.96-x86_64-apple-darwin.tar.gz) | macOS x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.96/rumdl-v0.1.96-x86_64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.1.96-aarch64-apple-darwin.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.96/rumdl-v0.1.96-aarch64-apple-darwin.tar.gz) | macOS ARM64 (Apple Silicon) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.96/rumdl-v0.1.96-aarch64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.1.96-x86\_64-pc-windows-msvc.zip](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.96/rumdl-v0.1.96-x86_64-pc-windows-msvc.zip) | Windows x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.96/rumdl-v0.1.96-x86_64-pc-windows-msvc.zip.sha256) | #### Installation ##### Using uv (Recommended) ```bash uv tool install rumdl ``` ##### Using pip ```bash pip install rumdl ``` ##### Using pipx ```bash pipx install rumdl ``` ##### Direct Download Download the appropriate binary for your platform from the table above, extract it, and add it to your PATH. ### [`v0.1.95`](https://redirect.github.com/rvben/rumdl/releases/tag/v0.1.95) [Compare Source](https://redirect.github.com/rvben/rumdl/compare/v0.1.94...v0.1.95) ##### Added - **md010**: add code\_blocks config option, consistent code-block handling ([#​630](https://redirect.github.com/rvben/rumdl/issues/630)) ([b98ca52](https://redirect.github.com/rvben/rumdl/commit/b98ca52b73cecd923c03ce98f505a5afefe20435)) - **md010**: add code\_blocks config option (default false) ([2c95e17](https://redirect.github.com/rvben/rumdl/commit/2c95e1786a1aaf63af8c767f57b469c146982ae7)) ##### Fixed - **md010**: treat fenced and indented code blocks consistently ([#​630](https://redirect.github.com/rvben/rumdl/issues/630)) ([435df34](https://redirect.github.com/rvben/rumdl/commit/435df34db542402a2e2f07db12308391bf41a032)) #### Downloads | File | Platform | Checksum | | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------- | | [rumdl-v0.1.95-x86\_64-unknown-linux-gnu.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.95/rumdl-v0.1.95-x86_64-unknown-linux-gnu.tar.gz) | Linux x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.95/rumdl-v0.1.95-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.1.95-x86\_64-unknown-linux-musl.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.95/rumdl-v0.1.95-x86_64-unknown-linux-musl.tar.gz) | Linux x86\_64 (musl) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.95/rumdl-v0.1.95-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.1.95-aarch64-unknown-linux-gnu.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.95/rumdl-v0.1.95-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.95/rumdl-v0.1.95-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.1.95-aarch64-unknown-linux-musl.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.95/rumdl-v0.1.95-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.95/rumdl-v0.1.95-aarch64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.1.95-x86\_64-apple-darwin.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.95/rumdl-v0.1.95-x86_64-apple-darwin.tar.gz) | macOS x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.95/rumdl-v0.1.95-x86_64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.1.95-aarch64-apple-darwin.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.95/rumdl-v0.1.95-aarch64-apple-darwin.tar.gz) | macOS ARM64 (Apple Silicon) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.95/rumdl-v0.1.95-aarch64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.1.95-x86\_64-pc-windows-msvc.zip](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.95/rumdl-v0.1.95-x86_64-pc-windows-msvc.zip) | Windows x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.95/rumdl-v0.1.95-x86_64-pc-windows-msvc.zip.sha256) | #### Installation ##### Using uv (Recommended) ```bash uv tool install rumdl ``` ##### Using pip ```bash pip install rumdl ``` ##### Using pipx ```bash pipx install rumdl ``` ##### Direct Download Download the appropriate binary for your platform from the table above, extract it, and add it to your PATH. ### [`v0.1.94`](https://redirect.github.com/rvben/rumdl/releases/tag/v0.1.94) [Compare Source](https://redirect.github.com/rvben/rumdl/compare/v0.1.93...v0.1.94) ##### Added - **md080**: add heading-anchor-collision rule ([df9146d](https://redirect.github.com/rvben/rumdl/commit/df9146d808ee1069958fe8c272ad8dac0079f1c3)) ##### Fixed - **docs**: match unwrapped 'N lint rules' counts in guard ([8a768bf](https://redirect.github.com/rvben/rumdl/commit/8a768bf6922a0db4d5ec94737864de25b2f483cc)) - **docs**: make rule-count guard fail on unwrapped counts ([07226b8](https://redirect.github.com/rvben/rumdl/commit/07226b88e4b16064c47f79af7757c65c5eea4518)) - **md049**: neutralize inline-code dollars before math filtering ([28a73dd](https://redirect.github.com/rvben/rumdl/commit/28a73dd2516dda07a6204159a8808b52f86cd19c)) - **md049,md080**: code-block-aware math filter; mark MD080 unfixable ([49e1150](https://redirect.github.com/rvben/rumdl/commit/49e1150c87a96928a8f884bdbf828794d21ee37c)) - **math**: drop unmatched line-start $$ opener instead of swallowing document ([f02f63f](https://redirect.github.com/rvben/rumdl/commit/f02f63f65c0bc22f0ff8912bf162b3c34a6c3318)) - **math**: unify $$ math model across rules and make MD049 byte-accurate ([bf05e5c](https://redirect.github.com/rvben/rumdl/commit/bf05e5cde555df213f3d6c53112502666f7e9661)) - **math**: align line map with byte model for multi-pair dollar lines ([1a21816](https://redirect.github.com/rvben/rumdl/commit/1a218163cbc27fbebd6044995f79a5a6d541aeda)) - align math line map with byte model; run heading rules for blockquote-only docs ([444482b](https://redirect.github.com/rvben/rumdl/commit/444482b04b7b92532df00a009c379ee1cb5a0dea)) - **md080**: mirror MD051 anchor model instead of per-rule HTML guards ([e38730d](https://redirect.github.com/rvben/rumdl/commit/e38730d169058b128d4d4a4adabfb6cf1f7e7965)) - **md080**: allow markdown-enabled HTML blocks through the skip ([7d48cb7](https://redirect.github.com/rvben/rumdl/commit/7d48cb7d4c7edb5203e61d33e6ab333510470c0d)) - **md080**: skip blockquote headings inside HTML blocks ([334d301](https://redirect.github.com/rvben/rumdl/commit/334d3010e7a2588106346beca932402f610a821c)) - **md080**: address codex review findings ([cb5acc3](https://redirect.github.com/rvben/rumdl/commit/cb5acc3d8b0446f9528868c13b71ea9cdd54e647)) - **math**: close line-level math state at the fence, ignore prose $$ ([540b624](https://redirect.github.com/rvben/rumdl/commit/540b624ca39cded5085f4c1f421df72529914870)) - **math**: require line-start opener for $$ display blocks ([89e1a60](https://redirect.github.com/rvben/rumdl/commit/89e1a60f766971b7964889ba5defe72b772bac00)) - **math**: close $$ display blocks when fence shares a line with content ([f839492](https://redirect.github.com/rvben/rumdl/commit/f839492a34157fef1bb5ac80688209aea410d0b9)) ##### Performance - **md049**: binary-search merged math ranges for membership ([feafbf8](https://redirect.github.com/rvben/rumdl/commit/feafbf8c9c7974399967ec6bc787d31a47f1a761)) - **md049**: precompute math ranges once instead of per span ([00d3a83](https://redirect.github.com/rvben/rumdl/commit/00d3a83e16c89bb694947b9c6035b75a33d6005f)) #### Downloads | File | Platform | Checksum | | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------- | | [rumdl-v0.1.94-x86\_64-unknown-linux-gnu.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.94/rumdl-v0.1.94-x86_64-unknown-linux-gnu.tar.gz) | Linux x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.94/rumdl-v0.1.94-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.1.94-x86\_64-unknown-linux-musl.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.94/rumdl-v0.1.94-x86_64-unknown-linux-musl.tar.gz) | Linux x86\_64 (musl) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.94/rumdl-v0.1.94-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.1.94-aarch64-unknown-linux-gnu.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.94/rumdl-v0.1.94-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.94/rumdl-v0.1.94-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.1.94-aarch64-unknown-linux-musl.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.94/rumdl-v0.1.94-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.94/rumdl-v0.1.94-aarch64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.1.94-x86\_64-apple-darwin.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.94/rumdl-v0.1.94-x86_64-apple-darwin.tar.gz) | macOS x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.94/rumdl-v0.1.94-x86_64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.1.94-aarch64-apple-darwin.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.94/rumdl-v0.1.94-aarch64-apple-darwin.tar.gz) | macOS ARM64 (Apple Silicon) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.94/rumdl-v0.1.94-aarch64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.1.94-x86\_64-pc-windows-msvc.zip](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.94/rumdl-v0.1.94-x86_64-pc-windows-msvc.zip) | Windows x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.94/rumdl-v0.1.94-x86_64-pc-windows-msvc.zip.sha256) | #### Installation ##### Using uv (Recommended) ```bash uv tool install rumdl ``` ##### Using pip ```bash pip install rumdl ``` ##### Using pipx ```bash pipx install rumdl ``` ##### Direct Download Download the appropriate binary for your platform from the table above, extract it, and add it to your PATH. ### [`v0.1.93`](https://redirect.github.com/rvben/rumdl/releases/tag/v0.1.93) [Compare Source](https://redirect.github.com/rvben/rumdl/compare/v0.1.92...v0.1.93) ##### Added - **quarto**: add MD078 missing-chunk-labels and MD079 chunk-label-spaces ([818cba4](https://redirect.github.com/rvben/rumdl/commit/818cba4df79cae1e339d976faba08ab15ef16db7)) ##### Fixed - **md079**: flag whitespace in quoted positional chunk labels ([ea069c5](https://redirect.github.com/rvben/rumdl/commit/ea069c5023dcbca9ff683b259f37eaf4ac8a31bc)) - **quarto**: harden chunk header parser against codex review findings ([9ee8e28](https://redirect.github.com/rvben/rumdl/commit/9ee8e2892dfed842c8688f35e535b9c953093e1e)) - **test**: drive pipeline idempotency tests through real fix coordinator ([5f9fdb9](https://redirect.github.com/rvben/rumdl/commit/5f9fdb9efd818611ba75034ba5ed8f9b5d781931)) - **test**: remove redundant default on MD077 unit struct ([6b383b0](https://redirect.github.com/rvben/rumdl/commit/6b383b0a46be1ddbc1a9311b3323486265c75e6e)) #### Downloads | File | Platform | Checksum | | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------- | | [rumdl-v0.1.93-x86\_64-unknown-linux-gnu.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.93/rumdl-v0.1.93-x86_64-unknown-linux-gnu.tar.gz) | Linux x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.93/rumdl-v0.1.93-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.1.93-x86\_64-unknown-linux-musl.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.93/rumdl-v0.1.93-x86_64-unknown-linux-musl.tar.gz) | Linux x86\_64 (musl) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.93/rumdl-v0.1.93-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.1.93-aarch64-unknown-linux-gnu.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.93/rumdl-v0.1.93-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.93/rumdl-v0.1.93-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.1.93-aarch64-unknown-linux-musl.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.93/rumdl-v0.1.93-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.93/rumdl-v0.1.93-aarch64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.1.93-x86\_64-apple-darwin.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.93/rumdl-v0.1.93-x86_64-apple-darwin.tar.gz) | macOS x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.93/rumdl-v0.1.93-x86_64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.1.93-aarch64-apple-darwin.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.93/rumdl-v0.1.93-aarch64-apple-darwin.tar.gz) | macOS ARM64 (Apple Silicon) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.93/rumdl-v0.1.93-aarch64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.1.93-x86\_64-pc-windows-msvc.zip](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.93/rumdl-v0.1.93-x86_64-pc-windows-msvc.zip) | Windows x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.93/rumdl-v0.1.93-x86_64-pc-windows-msvc.zip.sha256) | #### Installation ##### Using uv (Recommended) ```bash uv tool install rumdl ``` ##### Using pip ```bash pip install rumdl ``` ##### Using pipx ```bash pipx install rumdl ``` ##### Direct Download Download the appropriate binary for your platform from the table above, extract it, and add it to your PATH. ### [`v0.1.92`](https://redirect.github.com/rvben/rumdl/releases/tag/v0.1.92) [Compare Source](https://redirect.github.com/rvben/rumdl/compare/v0.1.91...v0.1.92) ##### Added - **config**: accept \[rules.X] wrapper as alias for \[X] ([229ff7d](https://redirect.github.com/rvben/rumdl/commit/229ff7de14afa950991f42265860fc1da54ef6c8)) ##### Fixed - **md060**: accept single-space empty cells in compact style ([9518a81](https://redirect.github.com/rvben/rumdl/commit/9518a815f272822dd0e208f87c81c001e90689e8)) ##### Downloads | File | Platform | Checksum | | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------- | | [rumdl-v0.1.92-x86\_64-unknown-linux-gnu.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.92/rumdl-v0.1.92-x86_64-unknown-linux-gnu.tar.gz) | Linux x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.92/rumdl-v0.1.92-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.1.92-x86\_64-unknown-linux-musl.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.92/rumdl-v0.1.92-x86_64-unknown-linux-musl.tar.gz) | Linux x86\_64 (musl) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.92/rumdl-v0.1.92-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.1.92-aarch64-unknown-linux-gnu.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.92/rumdl-v0.1.92-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.92/rumdl-v0.1.92-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.1.92-aarch64-unknown-linux-musl.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.92/rumdl-v0.1.92-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.92/rumdl-v0.1.92-aarch64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.1.92-x86\_64-apple-darwin.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.92/rumdl-v0.1.92-x86_64-apple-darwin.tar.gz) | macOS x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.92/rumdl-v0.1.92-x86_64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.1.92-aarch64-apple-darwin.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.92/rumdl-v0.1.92-aarch64-apple-darwin.tar.gz) | macOS ARM64 (Apple Silicon) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.92/rumdl-v0.1.92-aarch64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.1.92-x86\_64-pc-windows-msvc.zip](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.92/rumdl-v0.1.92-x86_64-pc-windows-msvc.zip) | Windows x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.92/rumdl-v0.1.92-x86_64-pc-windows-msvc.zip.sha256) | ##### Installation ##### Using uv (Recommended) ```bash uv tool install rumdl ``` ##### Using pip ```bash pip install rumdl ``` ##### Using pipx ```bash pipx install rumdl ``` ##### Direct Download Download the appropriate binary for your platform from the table above, extract it, and add it to your PATH. ### [`v0.1.91`](https://redirect.github.com/rvben/rumdl/releases/tag/v0.1.91) [Compare Source](https://redirect.github.com/rvben/rumdl/compare/v0.1.90...v0.1.91) ##### Fixed - **cache**: stabilize `hash_config` across identical config loads, eliminating spurious "configuration hash changed" cache misses caused by `HashMap` iteration order ([#​622](https://redirect.github.com/rvben/rumdl/issues/622), fixes [#​621](https://redirect.github.com/rvben/rumdl/issues/621)) ([f46be05](https://redirect.github.com/rvben/rumdl/commit/f46be05814e3241f82cc67c2fd40343d2506d379)) — thanks [@​mattiasgronlund](https://redirect.github.com/mattiasgronlund) - **ci**: branch off upstream master in sync-schemastore ([787a7ea](https://redirect.github.com/rvben/rumdl/commit/787a7eaf003f29a843f8ffc38128612c2919245a)) #### Downloads | File | Platform | Checksum | | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------- | | [rumdl-v0.1.91-x86\_64-unknown-linux-gnu.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.91/rumdl-v0.1.91-x86_64-unknown-linux-gnu.tar.gz) | Linux x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.91/rumdl-v0.1.91-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.1.91-x86\_64-unknown-linux-musl.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.91/rumdl-v0.1.91-x86_64-unknown-linux-musl.tar.gz) | Linux x86\_64 (musl) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.91/rumdl-v0.1.91-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.1.91-aarch64-unknown-linux-gnu.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.91/rumdl-v0.1.91-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.91/rumdl-v0.1.91-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.1.91-aarch64-unknown-linux-musl.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.91/rumdl-v0.1.91-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.91/rumdl-v0.1.91-aarch64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.1.91-x86\_64-apple-darwin.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.91/rumdl-v0.1.91-x86_64-apple-darwin.tar.gz) | macOS x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.91/rumdl-v0.1.91-x86_64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.1.91-aarch64-apple-darwin.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.91/rumdl-v0.1.91-aarch64-apple-darwin.tar.gz) | macOS ARM64 (Apple Silicon) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.91/rumdl-v0.1.91-aarch64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.1.91-x86\_64-pc-windows-msvc.zip](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.91/rumdl-v0.1.91-x86_64-pc-windows-msvc.zip) | Windows x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.1.91/rumdl-v0.1.91-x86_64-pc-windows-msvc.zip.sha256) | #### Installation ##### Using uv (Recommended) ```bash uv tool install rumdl ``` ##### Using pip ```bash pip install rumdl ``` ##### Using pipx ```bash pipx install rumdl ``` ##### Direct Download Download the appropriate binary for your platform from the table above, extract it, and add it to your PATH. ### [`v0.1.90`](https://redirect.github.com/rvben/rumdl/releases/tag/v0.1.90) [Compare Source](https://redirect.github.com/rvben/rumdl/compare/v0.1.89...v0.1.90) ##### Added - **cache**: add structured cache miss reasons for verbose mode ([#​618](https://redirect.github.com/rvben/rumdl/issues/618)) ([5c4f418](https://redirect.github.com/rvben/rumdl/commit/5c4f418a4de7d43d7bc6fae650ab77e75ccd312e)) ##### Fixed - **cli**: allow --profile output in --silent mode ([#​619](https://redirect.github.com/rvben/rumdl/issues/619)) ([d9cde4d](https://redirect.github.com/rvben/rumdl/commit/d9cde4d6f3f02f2b3b5184f36c63a91ee30664a > ✂ **Note** > > PR body was truncated to here.
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - "before 4am on Monday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- mise.toml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/mise.toml b/mise.toml index ee0e83a8d..965495ddc 100644 --- a/mise.toml +++ b/mise.toml @@ -8,19 +8,19 @@ protoc = "35.0" # Linters actionlint = "1.7.12" "aqua:grafana/flint" = "0.22.2" -"aqua:jonwiggins/xmloxide" = "v0.4.2" -"aqua:owenlamont/ryl" = "0.8.0" +"aqua:jonwiggins/xmloxide" = "v0.4.3" +"aqua:owenlamont/ryl" = "0.10.0" biome = "2.4.12" -editorconfig-checker = "v3.6.1" +editorconfig-checker = "3.7.0" google-java-format = "1.35.0" lychee = "0.24.2" -"npm:renovate" = "43.144.0" -ruff = "0.15.12" -rumdl = "0.1.84" +"npm:renovate" = "43.150.0" +ruff = "0.15.14" +rumdl = "0.2.0" shellcheck = "v0.11.0" shfmt = "3.13.1" taplo = "0.10.0" -typos = "1.46.1" +typos = "1.46.3" [env] FLINT_CONFIG_DIR = ".github/config" From a72cb6de8d3e990cc58ed075a137f0aef35493dd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 May 2026 11:35:10 +0200 Subject: [PATCH 28/74] chore(deps): update dependency mise to v2026.5.15 (#2137) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Update | Change | |---|---|---| | [mise](https://redirect.github.com/jdx/mise) | patch | `v2026.5.11` → `v2026.5.15` | | [mise](https://redirect.github.com/jdx/mise) | patch | `v2026.5.5` → `v2026.5.15` | --- ### Release Notes
jdx/mise (mise) ### [`v2026.5.15`](https://redirect.github.com/jdx/mise/releases/tag/v2026.5.15): : loongarch64 and riscv64 support [Compare Source](https://redirect.github.com/jdx/mise/compare/v2026.5.14...v2026.5.15) A small release that recognizes `loongarch64` and `riscv64` as valid platform arches and refreshes the conda (rattler) backend. ##### Fixed - Add `loongarch64` and `riscv64` to the set of arches accepted by `Platform::validate()`. Previously, lockfiles targeting `linux-riscv64` or `linux-loongarch64` would fall back to the common platform set instead of resolving to the requested single platform, so installs on those machines couldn't use lockfile-authoritative platform selection ([#​10038](https://redirect.github.com/jdx/mise/pull/10038) by [@​k0tran](https://redirect.github.com/k0tran)). ##### Changed - Bump `rattler` (used by the conda backend) from 0.42 to 0.43, picking up upstream fixes for missing symlinks during Windows installs, deterministic path ordering from `link_package_sync`, and accepting full URLs as the OAuth issuer host ([#​10030](https://redirect.github.com/jdx/mise/pull/10030)). ##### New Contributors - [@​k0tran](https://redirect.github.com/k0tran) made their first contribution in [#​10038](https://redirect.github.com/jdx/mise/pull/10038) **Full Changelog**: ##### 💚 Sponsor mise mise is built by [@​jdx](https://redirect.github.com/jdx) under [**en.dev**](https://en.dev) — an independent studio making developer tooling (mise, [aube](https://aube.en.dev/), and more). Development is funded by sponsors. If mise saves you or your team time, please consider sponsoring at [en.dev](https://en.dev). Individual and company sponsorships keep mise fast, free, and independent. ### [`v2026.5.14`](https://redirect.github.com/jdx/mise/releases/tag/v2026.5.14): : Reject wrong-arch release assets [Compare Source](https://redirect.github.com/jdx/mise/compare/v2026.5.13...v2026.5.14) A small fix release that hardens GitHub release asset auto-selection against picking binaries for the wrong CPU architecture. #### Fixed - **(github)** Asset auto-selection now hard-rejects any candidate whose filename explicitly declares a non-matching architecture, even when other scoring bonuses (preferred name, archive type, libc match) would otherwise rank it first. This fixes cases like `cargo-msrv` on aarch64 Linux, where `cargo-msrv-x86_64-unknown-linux-gnu-*.tgz` was being chosen over no-match-better-than-wrong-match. Explicit `asset_pattern` configuration is unchanged ([#​10018](https://redirect.github.com/jdx/mise/pull/10018) by [@​jdx](https://redirect.github.com/jdx)). **Full Changelog**: #### 💚 Sponsor mise mise is built by [@​jdx](https://redirect.github.com/jdx) under [**en.dev**](https://en.dev) — an independent studio making developer tooling (mise, [aube](https://aube.en.dev/), and more). Development is funded by sponsors. If mise saves you or your team time, please consider sponsoring at [en.dev](https://en.dev). Individual and company sponsorships keep mise fast, free, and independent. ### [`v2026.5.13`](https://redirect.github.com/jdx/mise/releases/tag/v2026.5.13): : Safer npm installs, faster shell completions [Compare Source](https://redirect.github.com/jdx/mise/compare/v2026.5.12...v2026.5.13) A focused release that tightens npm install safety by default, removes network calls from shell completion generation, and fixes asset picking so primary release binaries beat related sub-archives. #### Added - **(npm)** The npm backend now passes `--ignore-scripts=true` by default when installing through `npm`, and no longer adds Bun's `--trust` flag automatically. `npm_args` and `bun_args` remain the user escape hatches and are appended after the defaults, so you can opt back in per tool ([#​9913](https://redirect.github.com/jdx/mise/pull/9913) by [@​risu729](https://redirect.github.com/risu729)): ```toml [tools] # opt back into npm lifecycle scripts for one tool "npm:some-tool" = { version = "latest", npm_args = "--ignore-scripts=false" } # opt into Bun's broad install-time script trust "npm:other-tool" = { version = "latest", bun_args = "--trust" } ``` For dependency build approvals, prefer `aube` or `pnpm` with `--allow-build=`; see the refreshed npm backend docs. #### Fixed - **(completion)** `mise completion` is often invoked on shell init. It no longer refreshes remote version metadata while building the toolset, so slow networks and timeouts don't delay every new shell ([#​10010](https://redirect.github.com/jdx/mise/pull/10010) by [@​sargunv-headway](https://redirect.github.com/sargunv-headway)). - **(github)** Auto-detection scoring now gives a small bonus to assets whose platform-stripped filename matches the repo/tool name, and treats `manylinux*` / `musllinux*` asset names as Linux with the right glibc/musl libc. This fixes installs like `opengrep/opengrep`, where `opengrep-core_linux_aarch64.tar.gz` was previously winning over the primary `opengrep_*` binary. Explicit `asset_pattern` configuration is unchanged ([#​10008](https://redirect.github.com/jdx/mise/pull/10008) by [@​risu729](https://redirect.github.com/risu729)). - **(shim)** Optioned tool aliases (e.g. GitHub `tool_alias` entries with per-alias `asset_pattern` / `bin_path`) are now visible to runtime symlink and shim rebuilds. Previously these alias backends bypassed the global backend cache and could be missed after install, leaving `latest` symlinks or executable shims unbuilt ([#​9848](https://redirect.github.com/jdx/mise/pull/9848) by [@​risu729](https://redirect.github.com/risu729)). - **(release)** The embedded `mise-plugins` vfox plugin set now includes `vfox-groovy`, `vfox-php`, and `vfox-scala` as fallbacks after the default asdf backend ([#​9832](https://redirect.github.com/jdx/mise/pull/9832) by [@​risu729](https://redirect.github.com/risu729)). - **(doctor)** The `mise doctor` version-check request now uses the regular HTTP client and the configured `http_timeout` (controllable via `MISE_HTTP_TIMEOUT`), instead of an unconfigurable 3s timeout. Timeout error messages now point at the real setting ([#​9977](https://redirect.github.com/jdx/mise/pull/9977) by [@​risu729](https://redirect.github.com/risu729)). - **(config)** Tool options coming from the install manifest are tracked as their own source layer, kept below config and inline backend args in precedence, and no longer serialized back out as inline backend args ([#​9958](https://redirect.github.com/jdx/mise/pull/9958) by [@​risu729](https://redirect.github.com/risu729)). #### Changed - **(registry)** `vector` now uses the aqua backend, which has Vector-specific `vdev-*` release filtering. This avoids resolving stray `vdev-*` GitHub releases as the latest Vector ([#​10011](https://redirect.github.com/jdx/mise/pull/10011) by [@​jdx](https://redirect.github.com/jdx)). - **(registry)** `vale` now tracks its updated aqua-registry location ([#​10002](https://redirect.github.com/jdx/mise/pull/10002) by [@​eread](https://redirect.github.com/eread)). - **(dotnet)** The .NET backend reads `prerelease` (and other tool options) through a local typed option reader, with the legacy package-flag fallback preserved ([#​9962](https://redirect.github.com/jdx/mise/pull/9962) by [@​risu729](https://redirect.github.com/risu729)). **Full Changelog**: #### 💚 Sponsor mise mise is built by [@​jdx](https://redirect.github.com/jdx) under [**en.dev**](https://en.dev) — an independent studio making developer tooling (mise, [aube](https://aube.en.dev/), and more). Development is funded by sponsors. If mise saves you or your team time, please consider sponsoring at [en.dev](https://en.dev). Individual and company sponsorships keep mise fast, free, and independent. ### [`v2026.5.12`](https://redirect.github.com/jdx/mise/releases/tag/v2026.5.12): : minimum-release-age, global edit, and install_env fixes [Compare Source](https://redirect.github.com/jdx/mise/compare/v2026.5.11...v2026.5.12) A focused release that renames the release-age cutoff flag to something more discoverable, deprecates the legacy `default_packages_file` mechanism, and fixes several `install_env` propagation gaps across backends. #### Added - **(cli)** `mise edit --global` / `-g` opens the global config file (`~/.config/mise/config.toml`, or `$MISE_GLOBAL_CONFIG_FILE` if set), bringing `mise edit` in line with `mise use --global`, `mise settings set --global`, and other commands. A positional path still wins over the flag ([#​9953](https://redirect.github.com/jdx/mise/pull/9953) by [@​fru1tworld](https://redirect.github.com/fru1tworld)). - **(cli)** The release-age cutoff flag on `mise install`, `use`, `upgrade`, and `latest` has been renamed from `--before` to `--minimum-release-age`, matching the per-tool option and global setting of the same name. The old `--before` spelling is kept as a hidden alias so existing scripts keep working ([#​9768](https://redirect.github.com/jdx/mise/pull/9768) by [@​risu729](https://redirect.github.com/risu729)): ```sh mise latest node --minimum-release-age 2024-01-01 mise install --minimum-release-age 90d ``` #### Fixed - **(aqua)** Verify cosign bundles that ship a long-lived public key via `cosign.opts --key` locally, instead of routing them through `sigstore-verify`'s unsupported public-key bundle path. This fixes installs like `aqua:stackrox/kube-linter@0.8.3`, which previously failed with `public key verification not yet supported` ([#​9972](https://redirect.github.com/jdx/mise/pull/9972) by [@​jdx](https://redirect.github.com/jdx)). - **(backend)** Per-tool `install_env` is now passed into tool-level `postinstall` hook commands ([#​9930](https://redirect.github.com/jdx/mise/pull/9930) by [@​risu729](https://redirect.github.com/risu729)) and applied to command-backed install paths across package-manager backends, vfox `cmd.exec` hooks, SPM build/probe commands, and core language install-time commands ([#​9929](https://redirect.github.com/jdx/mise/pull/9929) by [@​risu729](https://redirect.github.com/risu729)). - **(cargo)** Fall back to `cargo install` (instead of `cargo-binstall`) when tool options require source-build feature selection. `cargo-binstall` is still used for compatible options such as `bin`, `crate`, and `locked` ([#​9928](https://redirect.github.com/jdx/mise/pull/9928) by [@​risu729](https://redirect.github.com/risu729)). - **(config)** Restore the `env_file` setting and the `MISE_ENV_FILE` env var, which had been incorrectly marked deprecated. `env._.file` in `mise.toml` is the right replacement for legacy top-level `env_file` entries, but it's not behaviorally equivalent to `MISE_ENV_FILE=.env`, which uses `FindUp` from the current directory ([#​9903](https://redirect.github.com/jdx/mise/pull/9903) by [@​risu729](https://redirect.github.com/risu729)). #### Changed - **(core)** Default package files are now on a deprecation timeline ([#​9970](https://redirect.github.com/jdx/mise/pull/9970) by [@​jdx](https://redirect.github.com/jdx)). The settings `go.default_packages_file`, `node.default_packages_file`, `python.default_packages_file`, and `ruby.default_packages_file` (i.e. `~/.default-go-packages`, `~/.default-npm-packages`, `~/.default-python-packages`, `~/.default-gems`) will start emitting a warning in `2026.11.0` and be removed in `2027.11.0`. The recommended replacements are package-manager backends for CLIs: ```toml [tools] "npm:typescript" = "latest" "pipx:black" = "latest" "gem:rubocop" = "latest" "go:github.com/jesseduffield/lazygit" = "latest" ``` or a tool-level `postinstall` hook for packages that really should be installed into every runtime version: ```toml [tools] node = { version = "22", postinstall = "npm install -g typescript" } ``` - **(cli)** User-facing help, docs, and the man page now use tool/backend wording instead of plugin/runtime where tools are not necessarily plugins, including renaming `MISE_${PLUGIN}_VERSION` references to `MISE_${TOOL}_VERSION`. `mise tool-alias` now prefers `--tool` as the primary long flag, with `--plugin` retained as an alias ([#​9906](https://redirect.github.com/jdx/mise/pull/9906) by [@​risu729](https://redirect.github.com/risu729)). - **(registry)** The `qsv` shorthand now resolves to `aqua:dathere/qsv` first, falling back to the existing `github:dathere/qsv` and `asdf:vjda/asdf-qsv` entries ([#​9910](https://redirect.github.com/jdx/mise/pull/9910) by [@​risu729](https://redirect.github.com/risu729)). - **(snap)** The snap package is now built and published for `arm64` in addition to `amd64`, so `snap install mise` works on arm64 desktops ([#​9948](https://redirect.github.com/jdx/mise/pull/9948) by [@​jnsgruk](https://redirect.github.com/jnsgruk)). #### New Contributors - [@​jnsgruk](https://redirect.github.com/jnsgruk) made their first contribution in [#​9948](https://redirect.github.com/jdx/mise/pull/9948) - [@​fru1tworld](https://redirect.github.com/fru1tworld) made their first contribution in [#​9953](https://redirect.github.com/jdx/mise/pull/9953) **Full Changelog**: #### 💚 Sponsor mise mise is built by [@​jdx](https://redirect.github.com/jdx) under [**en.dev**](https://en.dev) — an independent studio making developer tooling (mise, [aube](https://aube.en.dev/), and more). Development is funded by sponsors. If mise saves you or your team time, please consider sponsoring at [en.dev](https://en.dev). Individual and company sponsorships keep mise fast, free, and independent.
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - "before 4am on Monday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- .github/workflows/acceptance-tests.yml | 4 ++-- .github/workflows/build.yml | 4 ++-- .github/workflows/generate-protobuf.yml | 4 ++-- .github/workflows/github-pages.yaml | 4 ++-- .github/workflows/java-version-matrix-tests.yml | 4 ++-- .github/workflows/lint.yml | 4 ++-- .github/workflows/micrometer-compatibility.yml | 4 ++-- .github/workflows/native-tests.yml | 4 ++-- .github/workflows/nightly-benchmarks.yml | 4 ++-- .github/workflows/release.yml | 4 ++-- .github/workflows/test-release-build.yml | 4 ++-- 11 files changed, 22 insertions(+), 22 deletions(-) diff --git a/.github/workflows/acceptance-tests.yml b/.github/workflows/acceptance-tests.yml index ab76a3a15..05dd3ef29 100644 --- a/.github/workflows/acceptance-tests.yml +++ b/.github/workflows/acceptance-tests.yml @@ -15,7 +15,7 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.11 - sha256: 9bb41ae4dbe2bcdfdbe36cf3c737a8bdb72035c03af3b7218a70780988f62b9b + version: v2026.5.15 + sha256: a86aa65c8ca48a548c3f9904853489383bb8cdebfd8f2cf8ddd18b675e03bbf4 - name: Run acceptance tests run: mise run acceptance-test diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a8cb434f8..c36fe660d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,8 +14,8 @@ jobs: persist-credentials: false - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.11 - sha256: 9bb41ae4dbe2bcdfdbe36cf3c737a8bdb72035c03af3b7218a70780988f62b9b + version: v2026.5.15 + sha256: a86aa65c8ca48a548c3f9904853489383bb8cdebfd8f2cf8ddd18b675e03bbf4 - name: Cache local Maven repository uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: diff --git a/.github/workflows/generate-protobuf.yml b/.github/workflows/generate-protobuf.yml index be70d2f59..e55f737d3 100644 --- a/.github/workflows/generate-protobuf.yml +++ b/.github/workflows/generate-protobuf.yml @@ -21,8 +21,8 @@ jobs: persist-credentials: true - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.11 - sha256: 9bb41ae4dbe2bcdfdbe36cf3c737a8bdb72035c03af3b7218a70780988f62b9b + version: v2026.5.15 + sha256: a86aa65c8ca48a548c3f9904853489383bb8cdebfd8f2cf8ddd18b675e03bbf4 - name: Cache local Maven repository uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: diff --git a/.github/workflows/github-pages.yaml b/.github/workflows/github-pages.yaml index 6a2960c69..a6d93c6b1 100644 --- a/.github/workflows/github-pages.yaml +++ b/.github/workflows/github-pages.yaml @@ -39,8 +39,8 @@ jobs: fetch-depth: 0 - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.11 - sha256: 9bb41ae4dbe2bcdfdbe36cf3c737a8bdb72035c03af3b7218a70780988f62b9b + version: v2026.5.15 + sha256: a86aa65c8ca48a548c3f9904853489383bb8cdebfd8f2cf8ddd18b675e03bbf4 cache: "false" - name: Setup Pages id: pages diff --git a/.github/workflows/java-version-matrix-tests.yml b/.github/workflows/java-version-matrix-tests.yml index 8e88f692e..4ca690033 100644 --- a/.github/workflows/java-version-matrix-tests.yml +++ b/.github/workflows/java-version-matrix-tests.yml @@ -33,8 +33,8 @@ jobs: - name: Set up mise uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.11 - sha256: 9bb41ae4dbe2bcdfdbe36cf3c737a8bdb72035c03af3b7218a70780988f62b9b + version: v2026.5.15 + sha256: a86aa65c8ca48a548c3f9904853489383bb8cdebfd8f2cf8ddd18b675e03bbf4 - name: Cache local Maven repository uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index a09824b2f..c106a0961 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -23,8 +23,8 @@ jobs: - name: Setup mise uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.11 - sha256: 9bb41ae4dbe2bcdfdbe36cf3c737a8bdb72035c03af3b7218a70780988f62b9b + version: v2026.5.15 + sha256: a86aa65c8ca48a548c3f9904853489383bb8cdebfd8f2cf8ddd18b675e03bbf4 - name: Lint env: diff --git a/.github/workflows/micrometer-compatibility.yml b/.github/workflows/micrometer-compatibility.yml index 0bb49d1f2..efd0afb41 100644 --- a/.github/workflows/micrometer-compatibility.yml +++ b/.github/workflows/micrometer-compatibility.yml @@ -25,8 +25,8 @@ jobs: persist-credentials: false - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.5 - sha256: 3aaab5c05a8a94a93b42b4f581779bbd5c44ddb251e7f3639fc671ec5c6aab8a + version: v2026.5.15 + sha256: a86aa65c8ca48a548c3f9904853489383bb8cdebfd8f2cf8ddd18b675e03bbf4 - name: Cache local Maven repository uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: diff --git a/.github/workflows/native-tests.yml b/.github/workflows/native-tests.yml index 498a56e12..4c3c19ccd 100644 --- a/.github/workflows/native-tests.yml +++ b/.github/workflows/native-tests.yml @@ -15,8 +15,8 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.11 - sha256: 9bb41ae4dbe2bcdfdbe36cf3c737a8bdb72035c03af3b7218a70780988f62b9b + version: v2026.5.15 + sha256: a86aa65c8ca48a548c3f9904853489383bb8cdebfd8f2cf8ddd18b675e03bbf4 working_directory: .mise/envs/native - name: Run native tests working-directory: .mise/envs/native diff --git a/.github/workflows/nightly-benchmarks.yml b/.github/workflows/nightly-benchmarks.yml index 7679da505..da1b1cf2e 100644 --- a/.github/workflows/nightly-benchmarks.yml +++ b/.github/workflows/nightly-benchmarks.yml @@ -36,8 +36,8 @@ jobs: - name: Setup mise uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.11 - sha256: 9bb41ae4dbe2bcdfdbe36cf3c737a8bdb72035c03af3b7218a70780988f62b9b + version: v2026.5.15 + sha256: a86aa65c8ca48a548c3f9904853489383bb8cdebfd8f2cf8ddd18b675e03bbf4 - name: Cache local Maven repository uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0de811dc2..3d04e1174 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -29,8 +29,8 @@ jobs: - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.11 - sha256: 9bb41ae4dbe2bcdfdbe36cf3c737a8bdb72035c03af3b7218a70780988f62b9b + version: v2026.5.15 + sha256: a86aa65c8ca48a548c3f9904853489383bb8cdebfd8f2cf8ddd18b675e03bbf4 cache: false - name: Build release version diff --git a/.github/workflows/test-release-build.yml b/.github/workflows/test-release-build.yml index 44dcc0083..aaa12430a 100644 --- a/.github/workflows/test-release-build.yml +++ b/.github/workflows/test-release-build.yml @@ -20,8 +20,8 @@ jobs: fetch-depth: 0 - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.11 - sha256: 9bb41ae4dbe2bcdfdbe36cf3c737a8bdb72035c03af3b7218a70780988f62b9b + version: v2026.5.15 + sha256: a86aa65c8ca48a548c3f9904853489383bb8cdebfd8f2cf8ddd18b675e03bbf4 - name: Cache local Maven repository uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: From 6ca6cfb74c3a0c91c2affe0e69a6e97be18478dc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 May 2026 09:44:05 +0000 Subject: [PATCH 29/74] chore(deps): update dependency org.apache.maven.plugins:maven-site-plugin to v3.22.0 (#2136) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [org.apache.maven.plugins:maven-site-plugin](https://maven.apache.org/plugins/) ([source](https://redirect.github.com/apache/maven-site-plugin)) | `3.21.0` → `3.22.0` | ![age](https://developer.mend.io/api/mc/badges/age/maven/org.apache.maven.plugins:maven-site-plugin/3.22.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.apache.maven.plugins:maven-site-plugin/3.21.0/3.22.0?slim=true) | --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 943cc3d19..ba74f7560 100644 --- a/pom.xml +++ b/pom.xml @@ -165,7 +165,7 @@ maven-site-plugin - 3.21.0 + 3.22.0 From 5a3b60eb434ae53c895275b2f786b966bac3f448 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 May 2026 15:33:24 +0200 Subject: [PATCH 30/74] fix(deps): update dependency io.dropwizard.metrics:metrics-core to v4.2.39 (#2139) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [io.dropwizard.metrics:metrics-core](https://metrics.dropwizard.io) ([source](https://redirect.github.com/dropwizard/metrics)) | `4.2.38` → `4.2.39` | ![age](https://developer.mend.io/api/mc/badges/age/maven/io.dropwizard.metrics:metrics-core/4.2.39?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.dropwizard.metrics:metrics-core/4.2.38/4.2.39?slim=true) | --- ### Release Notes
dropwizard/metrics (io.dropwizard.metrics:metrics-core) ### [`v4.2.39`](https://redirect.github.com/dropwizard/metrics/compare/v4.2.38...v4.2.39)
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- prometheus-metrics-instrumentation-dropwizard/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prometheus-metrics-instrumentation-dropwizard/pom.xml b/prometheus-metrics-instrumentation-dropwizard/pom.xml index 01bceb8e4..0f4c1ead3 100644 --- a/prometheus-metrics-instrumentation-dropwizard/pom.xml +++ b/prometheus-metrics-instrumentation-dropwizard/pom.xml @@ -37,7 +37,7 @@ io.dropwizard.metrics metrics-core - 4.2.38 + 4.2.39 provided From 42d570f42b2a9b39efb56fb9e5692e3e712c6701 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 May 2026 15:33:33 +0200 Subject: [PATCH 31/74] fix(deps): update dependency io.dropwizard.metrics5:metrics-core to v5.0.7 (#2140) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [io.dropwizard.metrics5:metrics-core](https://metrics.dropwizard.io) ([source](https://redirect.github.com/dropwizard/metrics)) | `5.0.6` → `5.0.7` | ![age](https://developer.mend.io/api/mc/badges/age/maven/io.dropwizard.metrics5:metrics-core/5.0.7?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.dropwizard.metrics5:metrics-core/5.0.6/5.0.7?slim=true) | --- ### Release Notes
dropwizard/metrics (io.dropwizard.metrics5:metrics-core) ### [`v5.0.7`](https://redirect.github.com/dropwizard/metrics/compare/v5.0.6...v5.0.7) [Compare Source](https://redirect.github.com/dropwizard/metrics/compare/v5.0.6...v5.0.7)
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- prometheus-metrics-instrumentation-dropwizard5/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prometheus-metrics-instrumentation-dropwizard5/pom.xml b/prometheus-metrics-instrumentation-dropwizard5/pom.xml index 1b973bf58..ffee45702 100644 --- a/prometheus-metrics-instrumentation-dropwizard5/pom.xml +++ b/prometheus-metrics-instrumentation-dropwizard5/pom.xml @@ -30,7 +30,7 @@ io.dropwizard.metrics5 metrics-core - 5.0.6 + 5.0.7 provided From 4f9af430593a6d9334bc57030b583e067c4ec114 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 May 2026 15:33:42 +0200 Subject: [PATCH 32/74] chore(deps): update otel/opentelemetry-collector-contrib docker tag to v0.153.0 (#2141) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Update | Change | |---|---|---| | [otel/opentelemetry-collector-contrib](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases) | minor | `0.152.1` → `0.153.0` | --- ### Release Notes
open-telemetry/opentelemetry-collector-releases (otel/opentelemetry-collector-contrib) ### [`v0.153.0`](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/blob/HEAD/CHANGELOG.md#v01530) [Compare Source](https://redirect.github.com/open-telemetry/opentelemetry-collector-releases/compare/v0.152.1...v0.153.0)
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- examples/example-exemplars-tail-sampling/docker-compose.yaml | 2 +- examples/example-exporter-opentelemetry/docker-compose.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/example-exemplars-tail-sampling/docker-compose.yaml b/examples/example-exemplars-tail-sampling/docker-compose.yaml index 63909bb15..049d6ffb4 100644 --- a/examples/example-exemplars-tail-sampling/docker-compose.yaml +++ b/examples/example-exemplars-tail-sampling/docker-compose.yaml @@ -36,7 +36,7 @@ services: - -jar - /example-greeting-service.jar collector: - image: otel/opentelemetry-collector-contrib:0.152.1@sha256:fa1f6ea8dabd3042fabf4411eed7fa52f253edd8940140bec89a573e62a24eb7 + image: otel/opentelemetry-collector-contrib:0.153.0@sha256:93aad750175cbf1a973ae1c5886c3371f4d800f61be25cdd26870b8441ffe9fa network_mode: host volumes: - ./config/otelcol-config.yaml:/config.yaml diff --git a/examples/example-exporter-opentelemetry/docker-compose.yaml b/examples/example-exporter-opentelemetry/docker-compose.yaml index 7e72b4cfc..8ebc81fb6 100644 --- a/examples/example-exporter-opentelemetry/docker-compose.yaml +++ b/examples/example-exporter-opentelemetry/docker-compose.yaml @@ -13,7 +13,7 @@ services: #- -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005 - /example-exporter-opentelemetry.jar collector: - image: otel/opentelemetry-collector-contrib:0.152.1@sha256:fa1f6ea8dabd3042fabf4411eed7fa52f253edd8940140bec89a573e62a24eb7 + image: otel/opentelemetry-collector-contrib:0.153.0@sha256:93aad750175cbf1a973ae1c5886c3371f4d800f61be25cdd26870b8441ffe9fa network_mode: host volumes: - ./config/otelcol-config.yaml:/config.yaml From 2f614a305e373c97fd44fa9869df340e4255d214 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Tue, 26 May 2026 17:33:15 +0200 Subject: [PATCH 33/74] chore: use mise lock for enhanced security (#2142) downgraded node - to see if renovate updates work --------- Signed-off-by: Gregor Zeitlinger Signed-off-by: Jay DeLuca --- .github/config/flint.toml | 2 +- .github/workflows/build.yml | 2 + mise.lock | 607 ++++++++++++++++++ mise.toml | 3 +- .../generate-protobuf.sh | 2 +- 5 files changed, 613 insertions(+), 3 deletions(-) create mode 100644 mise.lock diff --git a/.github/config/flint.toml b/.github/config/flint.toml index e11556a6a..08d4e8ab6 100644 --- a/.github/config/flint.toml +++ b/.github/config/flint.toml @@ -1,6 +1,6 @@ [settings] # These paths are generated, vendored, or handled by other checks. -exclude = ["CHANGELOG.md", "**/src/main/generated/**", "docs/themes/**", "mvnw", "simpleclient-archive/**"] +exclude = ["CHANGELOG.md", "**/src/main/generated/**", "docs/themes/**", "mvnw", "simpleclient-archive/**", "mise.lock"] setup_migration_version = 2 [checks.renovate-deps] diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c36fe660d..c37aca7b9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,6 +16,8 @@ jobs: with: version: v2026.5.15 sha256: a86aa65c8ca48a548c3f9904853489383bb8cdebfd8f2cf8ddd18b675e03bbf4 + install_args: --locked # prevents update of mise.lock - we check for clean git in "mise run generate" + - name: Cache local Maven repository uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: diff --git a/mise.lock b/mise.lock new file mode 100644 index 000000000..9a5024cab --- /dev/null +++ b/mise.lock @@ -0,0 +1,607 @@ +# @generated - this file is auto-generated by `mise lock` https://mise.en.dev/dev-tools/mise-lock.html + +[[tools.actionlint]] +version = "1.7.12" +backend = "aqua:rhysd/actionlint" + +[tools.actionlint."platforms.linux-arm64"] +checksum = "sha256:325e971b6ba9bfa504672e29be93c24981eeb1c07576d730e9f7c8805afff0c6" +url = "https://github.com/rhysd/actionlint/releases/download/v1.7.12/actionlint_1.7.12_linux_arm64.tar.gz" +provenance = "github-attestations" + +[tools.actionlint."platforms.linux-arm64-musl"] +checksum = "sha256:325e971b6ba9bfa504672e29be93c24981eeb1c07576d730e9f7c8805afff0c6" +url = "https://github.com/rhysd/actionlint/releases/download/v1.7.12/actionlint_1.7.12_linux_arm64.tar.gz" +provenance = "github-attestations" + +[tools.actionlint."platforms.linux-x64"] +checksum = "sha256:8aca8db96f1b94770f1b0d72b6dddcb1ebb8123cb3712530b08cc387b349a3d8" +url = "https://github.com/rhysd/actionlint/releases/download/v1.7.12/actionlint_1.7.12_linux_amd64.tar.gz" +provenance = "github-attestations" + +[tools.actionlint."platforms.linux-x64-musl"] +checksum = "sha256:8aca8db96f1b94770f1b0d72b6dddcb1ebb8123cb3712530b08cc387b349a3d8" +url = "https://github.com/rhysd/actionlint/releases/download/v1.7.12/actionlint_1.7.12_linux_amd64.tar.gz" +provenance = "github-attestations" + +[tools.actionlint."platforms.macos-arm64"] +checksum = "sha256:aba9ced2dee8d27fecca3dc7feb1a7f9a52caefa1eb46f3271ea66b6e0e6953f" +url = "https://github.com/rhysd/actionlint/releases/download/v1.7.12/actionlint_1.7.12_darwin_arm64.tar.gz" +provenance = "github-attestations" + +[tools.actionlint."platforms.macos-x64"] +checksum = "sha256:5b44c3bc2255115c9b69e30efc0fecdf498fdb63c5d58e17084fd5f16324c644" +url = "https://github.com/rhysd/actionlint/releases/download/v1.7.12/actionlint_1.7.12_darwin_amd64.tar.gz" +provenance = "github-attestations" + +[tools.actionlint."platforms.windows-x64"] +checksum = "sha256:6e7241b51e6817ea6a047693d8e6fed13b31819c9a0dd6c5a726e1592d22f6e9" +url = "https://github.com/rhysd/actionlint/releases/download/v1.7.12/actionlint_1.7.12_windows_amd64.zip" +provenance = "github-attestations" + +[[tools."aqua:grafana/flint"]] +version = "0.22.2" +backend = "aqua:grafana/flint" + +[tools."aqua:grafana/flint"."platforms.linux-arm64"] +checksum = "sha256:cbe96f8df0e6ec86499304f913a1d697989d13594306828396a90a9986389544" +url = "https://github.com/grafana/flint/releases/download/v0.22.2/flint-aarch64-unknown-linux-gnu.tar.gz" +provenance = "github-attestations" + +[tools."aqua:grafana/flint"."platforms.linux-arm64-musl"] +provenance = "github-attestations" + +[tools."aqua:grafana/flint"."platforms.linux-x64"] +checksum = "sha256:b0c6d3b9dfc609a3cbce3b9cdde191a14df18c5d5064e819b795cef5f616fc0d" +url = "https://github.com/grafana/flint/releases/download/v0.22.2/flint-x86_64-unknown-linux-gnu.tar.gz" +provenance = "github-attestations" + +[tools."aqua:grafana/flint"."platforms.linux-x64-musl"] +provenance = "github-attestations" + +[tools."aqua:grafana/flint"."platforms.macos-arm64"] +checksum = "sha256:8592382abe9f471308aad24996e690bbf718d24323901c91756a891395931dc5" +url = "https://github.com/grafana/flint/releases/download/v0.22.2/flint-aarch64-apple-darwin.tar.gz" +provenance = "github-attestations" + +[tools."aqua:grafana/flint"."platforms.macos-x64"] +checksum = "sha256:7a673571e67e5bb64a132dfa8535af3664bb4b32d4f881a21cc80d0b0727e1f4" +url = "https://github.com/grafana/flint/releases/download/v0.22.2/flint-x86_64-apple-darwin.tar.gz" +provenance = "github-attestations" + +[tools."aqua:grafana/flint"."platforms.windows-x64"] +checksum = "sha256:0a020a5db952ed17faafcf12461d15e51a6ba3439aed8f4ef9709e0008f33883" +url = "https://github.com/grafana/flint/releases/download/v0.22.2/flint-x86_64-pc-windows-msvc.zip" +provenance = "github-attestations" + +[[tools."aqua:jonwiggins/xmloxide"]] +version = "v0.4.3" +backend = "aqua:jonwiggins/xmloxide" + +[tools."aqua:jonwiggins/xmloxide"."platforms.linux-arm64"] +checksum = "sha256:abb840c558fdc94b4c1eddb1e4a3901d6c8129dcb76f387428dc2b30a7364967" +url = "https://github.com/jonwiggins/xmloxide/releases/download/v0.4.3/xmllint_linux-aarch64" + +[tools."aqua:jonwiggins/xmloxide"."platforms.linux-arm64-musl"] +checksum = "sha256:abb840c558fdc94b4c1eddb1e4a3901d6c8129dcb76f387428dc2b30a7364967" +url = "https://github.com/jonwiggins/xmloxide/releases/download/v0.4.3/xmllint_linux-aarch64" + +[tools."aqua:jonwiggins/xmloxide"."platforms.linux-x64"] +checksum = "sha256:46ccd30ff3a242b3d01ab72366cc3b6762882be604ebceaa32123a40d0af2dfc" +url = "https://github.com/jonwiggins/xmloxide/releases/download/v0.4.3/xmllint_linux-x86-64" + +[tools."aqua:jonwiggins/xmloxide"."platforms.linux-x64-musl"] +checksum = "sha256:46ccd30ff3a242b3d01ab72366cc3b6762882be604ebceaa32123a40d0af2dfc" +url = "https://github.com/jonwiggins/xmloxide/releases/download/v0.4.3/xmllint_linux-x86-64" + +[tools."aqua:jonwiggins/xmloxide"."platforms.macos-arm64"] +checksum = "sha256:6a2cb055e63ae97d75cd346c34138a9e31626e1dfc0983006c422c203b5cc288" +url = "https://github.com/jonwiggins/xmloxide/releases/download/v0.4.3/xmllint_darwin-aarch64" + +[tools."aqua:jonwiggins/xmloxide"."platforms.macos-x64"] +checksum = "sha256:e83cbba88862d009405b5ce9e48025ff84b683a39a0832dde2db5395cb54734f" +url = "https://github.com/jonwiggins/xmloxide/releases/download/v0.4.3/xmllint_darwin-x86-64" + +[tools."aqua:jonwiggins/xmloxide"."platforms.windows-x64"] +checksum = "sha256:22872cad20b8ce8ccab28c42ce17acc9aa64b82cbad7d130ee74196cd74cd414" +url = "https://github.com/jonwiggins/xmloxide/releases/download/v0.4.3/xmllint_windows-x86-64.exe" + +[[tools."aqua:owenlamont/ryl"]] +version = "0.10.0" +backend = "aqua:owenlamont/ryl" + +[tools."aqua:owenlamont/ryl"."platforms.linux-arm64"] +checksum = "sha256:1e7a404b17d761321fb703f4b00c92e970f4836be7e8a7adc6a80130cf310f79" +url = "https://github.com/owenlamont/ryl/releases/download/v0.10.0/ryl-aarch64-unknown-linux-musl.tar.gz" +provenance = "github-attestations" + +[tools."aqua:owenlamont/ryl"."platforms.linux-arm64-musl"] +checksum = "sha256:1e7a404b17d761321fb703f4b00c92e970f4836be7e8a7adc6a80130cf310f79" +url = "https://github.com/owenlamont/ryl/releases/download/v0.10.0/ryl-aarch64-unknown-linux-musl.tar.gz" +provenance = "github-attestations" + +[tools."aqua:owenlamont/ryl"."platforms.linux-x64"] +checksum = "sha256:bb1c24a36c5c5a57383af9f019768e185c23b1a98f458ffae0a0a0ab0c7a0146" +url = "https://github.com/owenlamont/ryl/releases/download/v0.10.0/ryl-x86_64-unknown-linux-musl.tar.gz" +provenance = "github-attestations" + +[tools."aqua:owenlamont/ryl"."platforms.linux-x64-musl"] +checksum = "sha256:bb1c24a36c5c5a57383af9f019768e185c23b1a98f458ffae0a0a0ab0c7a0146" +url = "https://github.com/owenlamont/ryl/releases/download/v0.10.0/ryl-x86_64-unknown-linux-musl.tar.gz" +provenance = "github-attestations" + +[tools."aqua:owenlamont/ryl"."platforms.macos-arm64"] +checksum = "sha256:996b1f8400ee6b1cd1411efb7febc7bcf79f61b6025feec804da8cd826b2cbc0" +url = "https://github.com/owenlamont/ryl/releases/download/v0.10.0/ryl-aarch64-apple-darwin.tar.gz" +provenance = "github-attestations" + +[tools."aqua:owenlamont/ryl"."platforms.windows-x64"] +checksum = "sha256:e9f767f3ba8f7604cf4a7e23d54d57aabcf0242c6cda0be595e21a5cb61ac821" +url = "https://github.com/owenlamont/ryl/releases/download/v0.10.0/ryl-x86_64-pc-windows-msvc.zip" +provenance = "github-attestations" + +[[tools.biome]] +version = "2.4.12" +backend = "aqua:biomejs/biome" + +[tools.biome."platforms.linux-arm64"] +checksum = "sha256:8c01c56aa0701e12142de057ff4a0a220e73c32f7e606935024223c8650f069a" +url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.4.12/biome-linux-arm64" +provenance = "github-attestations" + +[tools.biome."platforms.linux-arm64-musl"] +checksum = "sha256:8334e330fdc3eca2461928071704092b615831035108b1761386981262570f2c" +url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.4.12/biome-linux-arm64-musl" +provenance = "github-attestations" + +[tools.biome."platforms.linux-x64"] +checksum = "sha256:a0c50f60ed0a3c24450f5561eff58c8b9a91708c6b3f2f9ecd398a825d4a0861" +url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.4.12/biome-linux-x64" +provenance = "github-attestations" + +[tools.biome."platforms.linux-x64-musl"] +checksum = "sha256:09acbdcd294e40e1f5c493e58f56f78cf2522c9d9b9f4609323c05689e8dc4bd" +url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.4.12/biome-linux-x64-musl" +provenance = "github-attestations" + +[tools.biome."platforms.macos-arm64"] +checksum = "sha256:ac5775441d77af4ef9f61827e6058b2ec21db469102c94ccd9d1c48d09d5c461" +url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.4.12/biome-darwin-arm64" +provenance = "github-attestations" + +[tools.biome."platforms.macos-x64"] +checksum = "sha256:2617d939c0076743cbc597d9e1531628a0346eb19e6916f9374cb6e8f203fe3b" +url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.4.12/biome-darwin-x64" +provenance = "github-attestations" + +[tools.biome."platforms.windows-x64"] +checksum = "sha256:bb4309a0c05caf7377fc071b770d503c5e052a45f8ddea3c9dca34890f202189" +url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.4.12/biome-win32-x64.exe" +provenance = "github-attestations" + +[[tools.editorconfig-checker]] +version = "3.7.0" +backend = "aqua:editorconfig-checker/editorconfig-checker" + +[tools.editorconfig-checker."platforms.linux-arm64"] +checksum = "sha256:e978f3f0940469989930311af8e101dd9ce8c2ee4da69264f3d76a3787e961ad" +url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.7.0/ec-linux-arm64.tar.gz" + +[tools.editorconfig-checker."platforms.linux-arm64-musl"] +checksum = "sha256:e978f3f0940469989930311af8e101dd9ce8c2ee4da69264f3d76a3787e961ad" +url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.7.0/ec-linux-arm64.tar.gz" + +[tools.editorconfig-checker."platforms.linux-x64"] +checksum = "sha256:9a0c3a5170bffa24f9e5f0def53d285777b6c5284a95367f40d399d0b76af552" +url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.7.0/ec-linux-amd64.tar.gz" + +[tools.editorconfig-checker."platforms.linux-x64-musl"] +checksum = "sha256:9a0c3a5170bffa24f9e5f0def53d285777b6c5284a95367f40d399d0b76af552" +url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.7.0/ec-linux-amd64.tar.gz" + +[tools.editorconfig-checker."platforms.macos-arm64"] +checksum = "sha256:727e6ef506c6fbe7719cc29c69b495715b64514a00059f3f179077bfad0580e5" +url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.7.0/ec-darwin-arm64.tar.gz" + +[tools.editorconfig-checker."platforms.macos-x64"] +checksum = "sha256:6cd2e4aa2a374d391e3baeaae43fc28906fd15b09490f5669eee206a63eef00a" +url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.7.0/ec-darwin-amd64.tar.gz" + +[tools.editorconfig-checker."platforms.windows-x64"] +checksum = "sha256:9c6b8a4cd7ccc5826ab96d34c460f37ab18b9cb50607d3ee9eb743fc47335da7" +url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.7.0/ec-windows-amd64.zip" + +[[tools."go:github.com/grafana/oats"]] +version = "0.6.1" +backend = "go:github.com/grafana/oats" + +[[tools.google-java-format]] +version = "1.35.0" +backend = "aqua:google/google-java-format" + +[tools.google-java-format."platforms.linux-arm64"] +checksum = "sha256:a69b2e85deb681f3eae4c946b948908e162e76ef27d752fa31830866dd7aa764" +url = "https://github.com/google/google-java-format/releases/download/v1.35.0/google-java-format_linux-arm64" + +[tools.google-java-format."platforms.linux-arm64-musl"] +checksum = "sha256:a69b2e85deb681f3eae4c946b948908e162e76ef27d752fa31830866dd7aa764" +url = "https://github.com/google/google-java-format/releases/download/v1.35.0/google-java-format_linux-arm64" + +[tools.google-java-format."platforms.linux-x64"] +checksum = "sha256:e0f95ad6d26b8fbd5b1e3fd3014f8306c4eb3b29d2a6b15fab62d0a364629437" +url = "https://github.com/google/google-java-format/releases/download/v1.35.0/google-java-format_linux-x86-64" + +[tools.google-java-format."platforms.linux-x64-musl"] +checksum = "sha256:e0f95ad6d26b8fbd5b1e3fd3014f8306c4eb3b29d2a6b15fab62d0a364629437" +url = "https://github.com/google/google-java-format/releases/download/v1.35.0/google-java-format_linux-x86-64" + +[tools.google-java-format."platforms.macos-arm64"] +checksum = "sha256:563f066c324687885b5f4039325f8952fbb9aaf3d67c68e0b2eafccc8069d3b8" +url = "https://github.com/google/google-java-format/releases/download/v1.35.0/google-java-format_darwin-arm64" + +[tools.google-java-format."platforms.windows-x64"] +checksum = "sha256:2451e70f7805ce51dc026c0ca6b76b689b20c99c5e5769412ae5235f59f3a427" +url = "https://github.com/google/google-java-format/releases/download/v1.35.0/google-java-format_windows-x86-64.exe" + +[[tools.hugo]] +version = "0.161.1" +backend = "aqua:gohugoio/hugo" + +[tools.hugo."platforms.linux-arm64"] +checksum = "sha256:382371ec3208236fb854ced51781f859b6c27a7d066b8fe90594eba14ba76d00" +url = "https://github.com/gohugoio/hugo/releases/download/v0.161.1/hugo_0.161.1_linux-arm64.tar.gz" + +[tools.hugo."platforms.linux-arm64-musl"] +checksum = "sha256:382371ec3208236fb854ced51781f859b6c27a7d066b8fe90594eba14ba76d00" +url = "https://github.com/gohugoio/hugo/releases/download/v0.161.1/hugo_0.161.1_linux-arm64.tar.gz" + +[tools.hugo."platforms.linux-x64"] +checksum = "sha256:fae28bf7909c1a42d1365b89d2e9e3d4194fbe5968ae0dd5504f562381018a1d" +url = "https://github.com/gohugoio/hugo/releases/download/v0.161.1/hugo_0.161.1_linux-amd64.tar.gz" + +[tools.hugo."platforms.linux-x64-musl"] +checksum = "sha256:fae28bf7909c1a42d1365b89d2e9e3d4194fbe5968ae0dd5504f562381018a1d" +url = "https://github.com/gohugoio/hugo/releases/download/v0.161.1/hugo_0.161.1_linux-amd64.tar.gz" + +[tools.hugo."platforms.macos-arm64"] +checksum = "sha256:b12e1cbebacf61f9cf67e0046c835142e70c829da7c16b05c1ec64a68885ee80" +url = "https://github.com/gohugoio/hugo/releases/download/v0.161.1/hugo_0.161.1_darwin-universal.pkg" + +[tools.hugo."platforms.macos-x64"] +checksum = "sha256:b12e1cbebacf61f9cf67e0046c835142e70c829da7c16b05c1ec64a68885ee80" +url = "https://github.com/gohugoio/hugo/releases/download/v0.161.1/hugo_0.161.1_darwin-universal.pkg" + +[tools.hugo."platforms.windows-x64"] +checksum = "sha256:7f8d030b37600c60bf2a782611257e6a768934fbe7724c1f3a1a501e6724cf0d" +url = "https://github.com/gohugoio/hugo/releases/download/v0.161.1/hugo_0.161.1_windows-amd64.zip" + +[[tools.java]] +version = "temurin-25.0.3+9.0.LTS" +backend = "core:java" + +[tools.java."platforms.linux-arm64"] +checksum = "sha256:3e4287cb98870ba824ed698854bdc27cff984254caf66dd12cc291e7bfdde26b" +url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.3%2B9/OpenJDK25U-jdk_aarch64_linux_hotspot_25.0.3_9.tar.gz" + +[tools.java."platforms.linux-arm64-musl"] +checksum = "sha256:6ed368e93049d3b188c045fce0b20953bbea92fe0614dbbf4d3fd8daad7be3b2" +url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.3%2B9/OpenJDK25U-jdk_aarch64_alpine-linux_hotspot_25.0.3_9.tar.gz" + +[tools.java."platforms.linux-x64"] +checksum = "sha256:69264a7a211bf5029830d07bc3370f879769d62ebc5b5488e90c9343a2da0e1f" +url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.3%2B9/OpenJDK25U-jdk_x64_linux_hotspot_25.0.3_9.tar.gz" + +[tools.java."platforms.linux-x64-musl"] +checksum = "sha256:51c2415b370aac7c3796b0c4663c8fcf91bc22d76f03df95b25fa5667cb5fdd8" +url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.3%2B9/OpenJDK25U-jdk_x64_alpine-linux_hotspot_25.0.3_9.tar.gz" + +[tools.java."platforms.macos-arm64"] +checksum = "sha256:7baab4d69a15554e119b86ff78d40e3fdc28819b5b322955c913cebfe3f6a37c" +url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.3%2B9/OpenJDK25U-jdk_aarch64_mac_hotspot_25.0.3_9.tar.gz" + +[tools.java."platforms.macos-x64"] +checksum = "sha256:4c539a18b4d656960ff6766727e9ca546fc17f7a29714dba9e7b47bdcb37c447" +url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.3%2B9/OpenJDK25U-jdk_x64_mac_hotspot_25.0.3_9.tar.gz" + +[tools.java."platforms.windows-x64"] +checksum = "sha256:709312cd0420296d9b9de917fe6e28a5b979e875ee5ab91783fb79bcd5857235" +url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.3%2B9/OpenJDK25U-jdk_x64_windows_hotspot_25.0.3_9.zip" + +[[tools.lychee]] +version = "0.24.2" +backend = "aqua:lycheeverse/lychee" + +[tools.lychee."platforms.linux-arm64"] +checksum = "sha256:5d0b0e3aeab240f41920c633a6eaf97599be6eedda034b36e858ede7dba5e535" +url = "https://github.com/lycheeverse/lychee/releases/download/lychee-v0.24.2/lychee-aarch64-unknown-linux-musl.tar.gz" + +[tools.lychee."platforms.linux-arm64-musl"] +checksum = "sha256:5d0b0e3aeab240f41920c633a6eaf97599be6eedda034b36e858ede7dba5e535" +url = "https://github.com/lycheeverse/lychee/releases/download/lychee-v0.24.2/lychee-aarch64-unknown-linux-musl.tar.gz" + +[tools.lychee."platforms.linux-x64"] +checksum = "sha256:73657a111819a30c47c08352896796f23d64e4eb2b3ed39b6d32149241566fc5" +url = "https://github.com/lycheeverse/lychee/releases/download/lychee-v0.24.2/lychee-x86_64-unknown-linux-musl.tar.gz" + +[tools.lychee."platforms.linux-x64-musl"] +checksum = "sha256:73657a111819a30c47c08352896796f23d64e4eb2b3ed39b6d32149241566fc5" +url = "https://github.com/lycheeverse/lychee/releases/download/lychee-v0.24.2/lychee-x86_64-unknown-linux-musl.tar.gz" + +[tools.lychee."platforms.macos-arm64"] +checksum = "sha256:c9d3740ea2d891854d37116c9fba840f37b6e7c89d330e7db84ac333631c4977" +url = "https://github.com/lycheeverse/lychee/releases/download/lychee-v0.24.2/lychee-aarch64-apple-darwin.tar.gz" + +[tools.lychee."platforms.macos-x64"] +checksum = "sha256:887503a9cff667d322b8d0892b40bf49976eb9507af8483220a3706cdad55978" +url = "https://github.com/lycheeverse/lychee/releases/download/lychee-v0.24.2/lychee-x86_64-apple-darwin.tar.gz" + +[tools.lychee."platforms.windows-x64"] +checksum = "sha256:32975d1493ee1a975d6bb41e4fb56fe419cb442ded628bb772ba2e614acfacad" +url = "https://github.com/lycheeverse/lychee/releases/download/lychee-v0.24.2/lychee-x86_64-pc-windows-msvc.zip" + +[[tools.node]] +version = "24.15.0" +backend = "core:node" + +[tools.node."platforms.linux-arm64"] +checksum = "sha256:73afc234d558c24919875f51c2d1ea002a2ada4ea6f83601a383869fefa64eed" +url = "https://nodejs.org/dist/v24.15.0/node-v24.15.0-linux-arm64.tar.gz" + +[tools.node."platforms.linux-arm64-musl"] +checksum = "sha256:31e98aa960a067da91edffd5d93bc46657b5d2a8029612c359f5f2ac0060152a" +url = "https://unofficial-builds.nodejs.org/download/release/v24.15.0/node-v24.15.0-linux-arm64-musl.tar.gz" + +[tools.node."platforms.linux-x64"] +checksum = "sha256:44836872d9aec49f1e6b52a9a922872db9a2b02d235a616a5681b6a85fec8d89" +url = "https://nodejs.org/dist/v24.15.0/node-v24.15.0-linux-x64.tar.gz" + +[tools.node."platforms.linux-x64-musl"] +checksum = "sha256:f55af5bd489c5347b113ca6594cae00a54b30ba57ac5875324311bfc6f4762e3" +url = "https://unofficial-builds.nodejs.org/download/release/v24.15.0/node-v24.15.0-linux-x64-musl.tar.gz" + +[tools.node."platforms.macos-arm64"] +checksum = "sha256:372331b969779ab5d15b949884fc6eaf88d5afe87bde8ba881d6400b9100ffc4" +url = "https://nodejs.org/dist/v24.15.0/node-v24.15.0-darwin-arm64.tar.gz" + +[tools.node."platforms.macos-x64"] +checksum = "sha256:ffd5ee293467927f3ee731a553eb88fd1f48cf74eebc2d74a6babe4af228673b" +url = "https://nodejs.org/dist/v24.15.0/node-v24.15.0-darwin-x64.tar.gz" + +[tools.node."platforms.windows-x64"] +checksum = "sha256:cc5149eabd53779ce1e7bdc5401643622d0c7e6800ade18928a767e940bb0e62" +url = "https://nodejs.org/dist/v24.15.0/node-v24.15.0-win-x64.zip" + +[[tools."npm:renovate"]] +version = "43.150.0" +backend = "npm:renovate" + +[[tools.protoc]] +version = "35.0" +backend = "aqua:protocolbuffers/protobuf/protoc" + +[tools.protoc."platforms.linux-arm64"] +checksum = "sha256:36b518ac14d90351cc6598228ed2bbe5afe4e357b1af470b07e0ec1609875de2" +url = "https://github.com/protocolbuffers/protobuf/releases/download/v35.0/protoc-35.0-linux-aarch_64.zip" + +[tools.protoc."platforms.linux-arm64-musl"] +checksum = "sha256:36b518ac14d90351cc6598228ed2bbe5afe4e357b1af470b07e0ec1609875de2" +url = "https://github.com/protocolbuffers/protobuf/releases/download/v35.0/protoc-35.0-linux-aarch_64.zip" + +[tools.protoc."platforms.linux-x64"] +checksum = "sha256:a45cda0989c17dd950db55f6fbe1e5814c50fda08e87aa422980ac1f89dddbbc" +url = "https://github.com/protocolbuffers/protobuf/releases/download/v35.0/protoc-35.0-linux-x86_64.zip" + +[tools.protoc."platforms.linux-x64-musl"] +checksum = "sha256:a45cda0989c17dd950db55f6fbe1e5814c50fda08e87aa422980ac1f89dddbbc" +url = "https://github.com/protocolbuffers/protobuf/releases/download/v35.0/protoc-35.0-linux-x86_64.zip" + +[tools.protoc."platforms.macos-arm64"] +checksum = "sha256:45444963204757fd3e2fbe304bc1fdadfb488d8556ff099c4cc06575eab88976" +url = "https://github.com/protocolbuffers/protobuf/releases/download/v35.0/protoc-35.0-osx-aarch_64.zip" + +[tools.protoc."platforms.macos-x64"] +checksum = "sha256:3580c2d115fccb5b0239960c8f70f8da14787b1973a46b2f39c315ad71c11e01" +url = "https://github.com/protocolbuffers/protobuf/releases/download/v35.0/protoc-35.0-osx-x86_64.zip" + +[tools.protoc."platforms.windows-x64"] +checksum = "sha256:d1cede9e308cc3eb072392af1c02ccae4bdd3d2f374ec2970dbd8cdfdaa91363" +url = "https://github.com/protocolbuffers/protobuf/releases/download/v35.0/protoc-35.0-win64.zip" + +[[tools.ruff]] +version = "0.15.14" +backend = "aqua:astral-sh/ruff" + +[tools.ruff."platforms.linux-arm64"] +checksum = "sha256:1693dfc1f402a81b32ff4fee5f8b494857a1a857a2b8d63cad88d9d39c201297" +url = "https://github.com/astral-sh/ruff/releases/download/0.15.14/ruff-aarch64-unknown-linux-musl.tar.gz" +provenance = "github-attestations" + +[tools.ruff."platforms.linux-arm64-musl"] +checksum = "sha256:1693dfc1f402a81b32ff4fee5f8b494857a1a857a2b8d63cad88d9d39c201297" +url = "https://github.com/astral-sh/ruff/releases/download/0.15.14/ruff-aarch64-unknown-linux-musl.tar.gz" +provenance = "github-attestations" + +[tools.ruff."platforms.linux-x64"] +checksum = "sha256:e380c9cf14764b7134434c49d445d13c6e3db732cfd18d72c4bc2316a6dbb82e" +url = "https://github.com/astral-sh/ruff/releases/download/0.15.14/ruff-x86_64-unknown-linux-musl.tar.gz" +provenance = "github-attestations" + +[tools.ruff."platforms.linux-x64-musl"] +checksum = "sha256:e380c9cf14764b7134434c49d445d13c6e3db732cfd18d72c4bc2316a6dbb82e" +url = "https://github.com/astral-sh/ruff/releases/download/0.15.14/ruff-x86_64-unknown-linux-musl.tar.gz" +provenance = "github-attestations" + +[tools.ruff."platforms.macos-arm64"] +checksum = "sha256:953243859467ed3f4f2bc6c11e241cd42a11ed42605b33d971dc2b174772da7d" +url = "https://github.com/astral-sh/ruff/releases/download/0.15.14/ruff-aarch64-apple-darwin.tar.gz" +provenance = "github-attestations" + +[tools.ruff."platforms.macos-x64"] +checksum = "sha256:537f569780fc71f63238f1f43dc04285b24fddbc6eea7219a9a18f408bdd869d" +url = "https://github.com/astral-sh/ruff/releases/download/0.15.14/ruff-x86_64-apple-darwin.tar.gz" +provenance = "github-attestations" + +[tools.ruff."platforms.windows-x64"] +checksum = "sha256:c589a77b0e112c374e9a5e0c42a7fb18d8725c5322ae261e343f66d1c87f0a5e" +url = "https://github.com/astral-sh/ruff/releases/download/0.15.14/ruff-x86_64-pc-windows-msvc.zip" +provenance = "github-attestations" + +[[tools.rumdl]] +version = "0.2.0" +backend = "aqua:rvben/rumdl" + +[tools.rumdl."platforms.linux-arm64"] +checksum = "sha256:1897d6e510d4b9c0dc13f79d36e870c7e7420443aaa0215173466cd188ae90cb" +url = "https://github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-aarch64-unknown-linux-musl.tar.gz" +provenance = "github-attestations" + +[tools.rumdl."platforms.linux-arm64-musl"] +checksum = "sha256:1897d6e510d4b9c0dc13f79d36e870c7e7420443aaa0215173466cd188ae90cb" +url = "https://github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-aarch64-unknown-linux-musl.tar.gz" +provenance = "github-attestations" + +[tools.rumdl."platforms.linux-x64"] +checksum = "sha256:00730abe083bf5164d02ce3387c5e95d6d9b12acf65412527ea18778c0725624" +url = "https://github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-x86_64-unknown-linux-musl.tar.gz" +provenance = "github-attestations" + +[tools.rumdl."platforms.linux-x64-musl"] +checksum = "sha256:00730abe083bf5164d02ce3387c5e95d6d9b12acf65412527ea18778c0725624" +url = "https://github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-x86_64-unknown-linux-musl.tar.gz" +provenance = "github-attestations" + +[tools.rumdl."platforms.macos-arm64"] +checksum = "sha256:e4a45f970e695c4cc218380a57531d72ae3384512867a308251569fd5456906c" +url = "https://github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-aarch64-apple-darwin.tar.gz" +provenance = "github-attestations" + +[tools.rumdl."platforms.macos-x64"] +checksum = "sha256:760726e893e665fd0d3d8057f71f27ea7f9ff370bf33d3e7bdb833c2ec557ca0" +url = "https://github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-x86_64-apple-darwin.tar.gz" +provenance = "github-attestations" + +[tools.rumdl."platforms.windows-x64"] +checksum = "sha256:e3e492b331329dddc87777da376acfa4f7f5c1c4d1a8264bd8941d8f1a713735" +url = "https://github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-x86_64-pc-windows-msvc.zip" +provenance = "github-attestations" + +[[tools.shellcheck]] +version = "v0.11.0" +backend = "aqua:koalaman/shellcheck" + +[tools.shellcheck."platforms.linux-arm64"] +checksum = "sha256:12b331c1d2db6b9eb13cfca64306b1b157a86eb69db83023e261eaa7e7c14588" +url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.linux.aarch64.tar.xz" + +[tools.shellcheck."platforms.linux-arm64-musl"] +checksum = "sha256:12b331c1d2db6b9eb13cfca64306b1b157a86eb69db83023e261eaa7e7c14588" +url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.linux.aarch64.tar.xz" + +[tools.shellcheck."platforms.linux-x64"] +checksum = "sha256:8c3be12b05d5c177a04c29e3c78ce89ac86f1595681cab149b65b97c4e227198" +url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.linux.x86_64.tar.xz" + +[tools.shellcheck."platforms.linux-x64-musl"] +checksum = "sha256:8c3be12b05d5c177a04c29e3c78ce89ac86f1595681cab149b65b97c4e227198" +url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.linux.x86_64.tar.xz" + +[tools.shellcheck."platforms.macos-arm64"] +checksum = "sha256:56affdd8de5527894dca6dc3d7e0a99a873b0f004d7aabc30ae407d3f48b0a79" +url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.darwin.aarch64.tar.xz" + +[tools.shellcheck."platforms.macos-x64"] +checksum = "sha256:3c89db4edcab7cf1c27bff178882e0f6f27f7afdf54e859fa041fca10febe4c6" +url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.darwin.x86_64.tar.xz" + +[tools.shellcheck."platforms.windows-x64"] +checksum = "sha256:8a4e35ab0b331c85d73567b12f2a444df187f483e5079ceffa6bda1faa2e740e" +url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.zip" + +[[tools.shfmt]] +version = "3.13.1" +backend = "aqua:mvdan/sh" + +[tools.shfmt."platforms.linux-arm64"] +checksum = "sha256:32d92acaa5cd8abb29fc49dac123dc412442d5713967819d8af2c29f1b3857c7" +url = "https://github.com/mvdan/sh/releases/download/v3.13.1/shfmt_v3.13.1_linux_arm64" + +[tools.shfmt."platforms.linux-arm64-musl"] +checksum = "sha256:32d92acaa5cd8abb29fc49dac123dc412442d5713967819d8af2c29f1b3857c7" +url = "https://github.com/mvdan/sh/releases/download/v3.13.1/shfmt_v3.13.1_linux_arm64" + +[tools.shfmt."platforms.linux-x64"] +checksum = "sha256:fb096c5d1ac6beabbdbaa2874d025badb03ee07929f0c9ff67563ce8c75398b1" +url = "https://github.com/mvdan/sh/releases/download/v3.13.1/shfmt_v3.13.1_linux_amd64" + +[tools.shfmt."platforms.linux-x64-musl"] +checksum = "sha256:fb096c5d1ac6beabbdbaa2874d025badb03ee07929f0c9ff67563ce8c75398b1" +url = "https://github.com/mvdan/sh/releases/download/v3.13.1/shfmt_v3.13.1_linux_amd64" + +[tools.shfmt."platforms.macos-arm64"] +checksum = "sha256:9680526be4a66ea1ffe988ed08af58e1400fe1e4f4aef5bd88b20bb9b3da33f8" +url = "https://github.com/mvdan/sh/releases/download/v3.13.1/shfmt_v3.13.1_darwin_arm64" + +[tools.shfmt."platforms.macos-x64"] +checksum = "sha256:6feedafc72915794163114f512348e2437d080d0047ef8b8fa2ec63b575f12af" +url = "https://github.com/mvdan/sh/releases/download/v3.13.1/shfmt_v3.13.1_darwin_amd64" + +[tools.shfmt."platforms.windows-x64"] +checksum = "sha256:60cd368533d0ad73fa86d93d5bbf95ef40587245ce684ed138c1b31557b5fe97" +url = "https://github.com/mvdan/sh/releases/download/v3.13.1/shfmt_v3.13.1_windows_amd64.exe" + +[[tools.taplo]] +version = "0.10.0" +backend = "aqua:tamasfe/taplo" + +[tools.taplo."platforms.linux-arm64"] +url = "https://github.com/tamasfe/taplo/releases/download/0.10.0/taplo-linux-aarch64.gz" + +[tools.taplo."platforms.linux-arm64-musl"] +url = "https://github.com/tamasfe/taplo/releases/download/0.10.0/taplo-linux-aarch64.gz" + +[tools.taplo."platforms.linux-x64"] +url = "https://github.com/tamasfe/taplo/releases/download/0.10.0/taplo-linux-x86_64.gz" + +[tools.taplo."platforms.linux-x64-musl"] +url = "https://github.com/tamasfe/taplo/releases/download/0.10.0/taplo-linux-x86_64.gz" + +[tools.taplo."platforms.macos-arm64"] +url = "https://github.com/tamasfe/taplo/releases/download/0.10.0/taplo-darwin-aarch64.gz" + +[tools.taplo."platforms.macos-x64"] +url = "https://github.com/tamasfe/taplo/releases/download/0.10.0/taplo-darwin-x86_64.gz" + +[tools.taplo."platforms.windows-x64"] +url = "https://github.com/tamasfe/taplo/releases/download/0.10.0/taplo-windows-x86_64.zip" + +[[tools.typos]] +version = "1.46.3" +backend = "aqua:crate-ci/typos" + +[tools.typos."platforms.linux-arm64"] +checksum = "sha256:3cbc11f8f476e07d8cef3dbd5c898d4e800b6c8a03c292ca4e0e571265958491" +url = "https://github.com/crate-ci/typos/releases/download/v1.46.3/typos-v1.46.3-aarch64-unknown-linux-musl.tar.gz" + +[tools.typos."platforms.linux-arm64-musl"] +checksum = "sha256:3cbc11f8f476e07d8cef3dbd5c898d4e800b6c8a03c292ca4e0e571265958491" +url = "https://github.com/crate-ci/typos/releases/download/v1.46.3/typos-v1.46.3-aarch64-unknown-linux-musl.tar.gz" + +[tools.typos."platforms.linux-x64"] +checksum = "sha256:a8b422b8ed79de732a31a705a9899e0a29124f8dc2f0a0f54dc127154ceb3b93" +url = "https://github.com/crate-ci/typos/releases/download/v1.46.3/typos-v1.46.3-x86_64-unknown-linux-musl.tar.gz" + +[tools.typos."platforms.linux-x64-musl"] +checksum = "sha256:a8b422b8ed79de732a31a705a9899e0a29124f8dc2f0a0f54dc127154ceb3b93" +url = "https://github.com/crate-ci/typos/releases/download/v1.46.3/typos-v1.46.3-x86_64-unknown-linux-musl.tar.gz" + +[tools.typos."platforms.macos-arm64"] +checksum = "sha256:503d4b0b2035d96fb286b5dc8594bda6a587cc76c1ad1022aa36a2634d42ae4b" +url = "https://github.com/crate-ci/typos/releases/download/v1.46.3/typos-v1.46.3-aarch64-apple-darwin.tar.gz" + +[tools.typos."platforms.macos-x64"] +checksum = "sha256:70da5d5753674df9411e9df417380bb085acb6dc5e140b4c4799443db4dee407" +url = "https://github.com/crate-ci/typos/releases/download/v1.46.3/typos-v1.46.3-x86_64-apple-darwin.tar.gz" + +[tools.typos."platforms.windows-x64"] +checksum = "sha256:612c427950ad2d1939e8284f4d6af42d9ea5d185e98d535977d1ba94b0f14fdc" +url = "https://github.com/crate-ci/typos/releases/download/v1.46.3/typos-v1.46.3-x86_64-pc-windows-msvc.zip" diff --git a/mise.toml b/mise.toml index 965495ddc..24b95e9da 100644 --- a/mise.toml +++ b/mise.toml @@ -2,7 +2,7 @@ "go:github.com/grafana/oats" = "0.6.1" hugo = "0.161.1" java = "temurin-25.0.3+9.0.LTS" -node = "24.16.0" +node = "24.15.0" protoc = "35.0" # Linters @@ -32,6 +32,7 @@ description = "CI Build" run = "./mvnw clean install" env.REQUIRE_PROTO_UP_TO_DATE = "true" env.PROTO_GENERATION = "true" + [tasks.clean] description = "clean all modules" run = "./mvnw clean" diff --git a/prometheus-metrics-exposition-formats/generate-protobuf.sh b/prometheus-metrics-exposition-formats/generate-protobuf.sh index f1526fb1c..97b82e280 100755 --- a/prometheus-metrics-exposition-formats/generate-protobuf.sh +++ b/prometheus-metrics-exposition-formats/generate-protobuf.sh @@ -59,6 +59,6 @@ STATUS=$(git status --porcelain) if [[ ${REQUIRE_PROTO_UP_TO_DATE:-false} == "true" && -n "$STATUS" ]]; then help echo "Local changes:" - echo "$STATUS" + git diff exit 1 fi From 7721cdb2987bf30989510a177633bbeddeb1f623 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 28 May 2026 08:23:14 +0200 Subject: [PATCH 34/74] chore(deps): update dependency org.apache.maven.plugins:maven-surefire-plugin to v3.5.6 (#2149) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [org.apache.maven.plugins:maven-surefire-plugin](https://maven.apache.org/surefire/) ([source](https://redirect.github.com/apache/maven-surefire)) | `3.5.5` → `3.5.6` | ![age](https://developer.mend.io/api/mc/badges/age/maven/org.apache.maven.plugins:maven-surefire-plugin/3.5.6?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.apache.maven.plugins:maven-surefire-plugin/3.5.5/3.5.6?slim=true) | --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ba74f7560..f6eaeca36 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@
maven-surefire-plugin - 3.5.5 + 3.5.6 maven-jar-plugin From 7a4a93933586f35bfb21245163a5b30837a418bf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 28 May 2026 08:23:39 +0200 Subject: [PATCH 35/74] chore(deps): update dependency org.apache.maven.plugins:maven-failsafe-plugin to v3.5.6 (#2148) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [org.apache.maven.plugins:maven-failsafe-plugin](https://maven.apache.org/surefire/) ([source](https://redirect.github.com/apache/maven-surefire)) | `3.5.5` → `3.5.6` | ![age](https://developer.mend.io/api/mc/badges/age/maven/org.apache.maven.plugins:maven-failsafe-plugin/3.5.6?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.apache.maven.plugins:maven-failsafe-plugin/3.5.5/3.5.6?slim=true) | --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f6eaeca36..f4038017f 100644 --- a/pom.xml +++ b/pom.xml @@ -174,7 +174,7 @@ maven-failsafe-plugin - 3.5.5 + 3.5.6 maven-dependency-plugin From 2cc68fc7cecd4f235bf9a18778fbb87a5b573d5d Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Thu, 28 May 2026 02:36:13 -0400 Subject: [PATCH 36/74] chore: Create codeql and ossf scorecard workflows (#2147) References from otel isntrumentation: * https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/.github/workflows/codeql.yml * https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/.github/workflows/ossf-scorecard.yml Signed-off-by: Jay DeLuca --- .github/workflows/codeql.yml | 64 +++++++++++++++++++++++++++++++++ .github/workflows/scorecard.yml | 46 ++++++++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 .github/workflows/codeql.yml create mode 100644 .github/workflows/scorecard.yml diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 000000000..ecc673510 --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,64 @@ +--- +name: CodeQL Security Analysis + +on: + push: + branches: [main] + pull_request: + branches: [main] + schedule: + - cron: "29 13 * * 2" # Weekly Tuesday 13:29 UTC + +permissions: {} + +jobs: + analyze: + name: Analyze Java + runs-on: ubuntu-24.04 + permissions: + actions: read # required for github/codeql-action/init to get workflow details + contents: read + security-events: write # required for github/codeql-action/analyze to upload SARIF + steps: + - name: Checkout repository + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + persist-credentials: false + + - name: Set up Java + uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5 + with: + distribution: temurin + java-version: "25" + + - name: Cache Maven repository + uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-codeql-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven-codeql- + ${{ runner.os }}-maven- + + - name: Initialize CodeQL + uses: github/codeql-action/init@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4.36.0 + with: + languages: java + tools: linked + queries: security-extended + + # Do not use autobuild — the multi-module Maven structure requires explicit + # build invocation so that CodeQL can trace the compilation correctly. + # Do not use mise-action here — CodeQL needs to trace the raw Maven build. + - name: Build (CodeQL traces the build) + run: > + ./mvnw clean compile + -DskipTests + -Dcoverage.skip=true + -Dcheckstyle.skip=true + -Djavadoc.skip=true + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4.36.0 + with: + category: /language:java diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml new file mode 100644 index 000000000..934b781b8 --- /dev/null +++ b/.github/workflows/scorecard.yml @@ -0,0 +1,46 @@ +--- +name: OSSF Scorecard + +on: + push: + branches: [main] + schedule: + - cron: "43 6 * * 5" # Weekly Friday 06:43 UTC + workflow_dispatch: + +permissions: {} + +jobs: + analysis: + name: Scorecard analysis + runs-on: ubuntu-24.04 + # Prevents fork runs from failing due to missing write permissions or secrets. + if: ${{ github.repository == 'prometheus/client_java' }} + permissions: + contents: read + security-events: write # required to upload SARIF results + id-token: write # required by scorecard-action for OIDC token + steps: + - name: Checkout repository + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + persist-credentials: false + + - name: Run OSSF Scorecard analysis + uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3 + with: + results_file: results.sarif + results_format: sarif + publish_results: true + + - name: Upload artifact + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + with: + name: SARIF file + path: results.sarif + retention-days: 5 + + - name: Upload to code scanning + uses: github/codeql-action/upload-sarif@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4.36.0 + with: + sarif_file: results.sarif From 93fa5038d7b58be7705caae1900b526d3cf30b9f Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Thu, 28 May 2026 02:37:11 -0400 Subject: [PATCH 37/74] chore: move narrowly-used test deps out of root pom (#2146) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The root `pom.xml` was declaring `junit-pioneer`, `awaitility`, `wiremock`, and `guava` (test scope) as global test dependencies, adding them to the classpath of all 24 core modules. Each is only actually needed by 1–3 modules. Signed-off-by: Jay DeLuca Co-authored-by: Claude Sonnet 4.6 (1M context) Signed-off-by: Jay DeLuca --- .../it-exporter/it-exporter-test/pom.xml | 6 ++++ pom.xml | 33 ++----------------- prometheus-metrics-config/pom.xml | 9 +++++ prometheus-metrics-core/pom.xml | 12 +++++++ .../pom.xml | 24 ++++++++++++++ .../pom.xml | 24 ++++++++++++++ 6 files changed, 78 insertions(+), 30 deletions(-) diff --git a/integration-tests/it-exporter/it-exporter-test/pom.xml b/integration-tests/it-exporter/it-exporter-test/pom.xml index 9b221feb4..b9c368dc9 100644 --- a/integration-tests/it-exporter/it-exporter-test/pom.xml +++ b/integration-tests/it-exporter/it-exporter-test/pom.xml @@ -23,5 +23,11 @@ ${project.version} test
+ + com.google.guava + guava + ${guava.version} + test + diff --git a/pom.xml b/pom.xml index f4038017f..3db416abe 100644 --- a/pom.xml +++ b/pom.xml @@ -22,6 +22,9 @@ --module-name-need-to-be-overridden-- 4.35.0 33.6.0-jre + 2.3.0 + 4.3.0 + 3.13.2 6.0.3 2.28.1-alpha 8 @@ -92,42 +95,12 @@ 3.27.7 test - - com.google.guava - guava - ${guava.version} - test - org.slf4j slf4j-simple 2.0.18 test - - org.junit-pioneer - junit-pioneer - 2.3.0 - test - - - org.awaitility - awaitility - 4.3.0 - test - - - org.wiremock - wiremock - 3.13.2 - test - - - org.hamcrest - hamcrest-core - - - diff --git a/prometheus-metrics-config/pom.xml b/prometheus-metrics-config/pom.xml index 9a2b01c88..d505248e7 100644 --- a/prometheus-metrics-config/pom.xml +++ b/prometheus-metrics-config/pom.xml @@ -20,4 +20,13 @@ io.prometheus.metrics.config + + + org.junit-pioneer + junit-pioneer + ${junit-pioneer.version} + test + + + diff --git a/prometheus-metrics-core/pom.xml b/prometheus-metrics-core/pom.xml index d7e9e17b4..3ba812f1d 100644 --- a/prometheus-metrics-core/pom.xml +++ b/prometheus-metrics-core/pom.xml @@ -50,5 +50,17 @@ 3.6.1 test + + org.awaitility + awaitility + ${awaitility.version} + test + + + com.google.guava + guava + ${guava.version} + test + diff --git a/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml b/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml index 93a5c6200..308ee761e 100644 --- a/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml +++ b/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml @@ -94,6 +94,30 @@ opentelemetry-sdk-testing test + + org.wiremock + wiremock + ${wiremock.version} + test + + + org.hamcrest + hamcrest-core + + + + + org.awaitility + awaitility + ${awaitility.version} + test + + + com.google.guava + guava + ${guava.version} + test + diff --git a/prometheus-metrics-exporter-opentelemetry/pom.xml b/prometheus-metrics-exporter-opentelemetry/pom.xml index e4aa7fa2f..415882bb4 100644 --- a/prometheus-metrics-exporter-opentelemetry/pom.xml +++ b/prometheus-metrics-exporter-opentelemetry/pom.xml @@ -95,6 +95,30 @@ opentelemetry-sdk-testing test + + org.wiremock + wiremock + ${wiremock.version} + test + + + org.hamcrest + hamcrest-core + + + + + org.awaitility + awaitility + ${awaitility.version} + test + + + com.google.guava + guava + ${guava.version} + test + From 6cd3a5914555e5ab3579bda277ad0bedde73fc09 Mon Sep 17 00:00:00 2001 From: Julien <291750+roidelapluie@users.noreply.github.com> Date: Thu, 28 May 2026 14:24:36 +0200 Subject: [PATCH 38/74] chore: remove stale PROMBOT_GITHUB_TOKEN TODO comment (#2150) Signed-off-by: Julien Pivotto <291750+roidelapluie@users.noreply.github.com> Signed-off-by: Jay DeLuca --- .github/workflows/generate-protobuf.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/generate-protobuf.yml b/.github/workflows/generate-protobuf.yml index e55f737d3..38853ad48 100644 --- a/.github/workflows/generate-protobuf.yml +++ b/.github/workflows/generate-protobuf.yml @@ -56,7 +56,6 @@ jobs: fi # Note: GITHUB_TOKEN pushes don't trigger CI re-runs. # Close and reopen the PR to trigger CI after this commit. - # TODO: switch to PROMBOT_GITHUB_TOKEN once it's added to this repo. git config user.name "github-actions[bot]" git config user.email "41898282+github-actions[bot]@users.noreply.github.com" git add '*.java' From e721934e24c9cc9f7e853d71f5133c80c572d274 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Thu, 28 May 2026 14:24:52 +0200 Subject: [PATCH 39/74] chore: revert lock file - as it's not working yet (#2153) See https://github.com/renovatebot/renovate/pull/43606 Signed-off-by: Gregor Zeitlinger Signed-off-by: Jay DeLuca --- .github/config/flint.toml | 2 +- .github/workflows/build.yml | 2 - mise.lock | 607 ------------------------------------ mise.toml | 2 +- 4 files changed, 2 insertions(+), 611 deletions(-) delete mode 100644 mise.lock diff --git a/.github/config/flint.toml b/.github/config/flint.toml index 08d4e8ab6..e11556a6a 100644 --- a/.github/config/flint.toml +++ b/.github/config/flint.toml @@ -1,6 +1,6 @@ [settings] # These paths are generated, vendored, or handled by other checks. -exclude = ["CHANGELOG.md", "**/src/main/generated/**", "docs/themes/**", "mvnw", "simpleclient-archive/**", "mise.lock"] +exclude = ["CHANGELOG.md", "**/src/main/generated/**", "docs/themes/**", "mvnw", "simpleclient-archive/**"] setup_migration_version = 2 [checks.renovate-deps] diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c37aca7b9..c36fe660d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,8 +16,6 @@ jobs: with: version: v2026.5.15 sha256: a86aa65c8ca48a548c3f9904853489383bb8cdebfd8f2cf8ddd18b675e03bbf4 - install_args: --locked # prevents update of mise.lock - we check for clean git in "mise run generate" - - name: Cache local Maven repository uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: diff --git a/mise.lock b/mise.lock deleted file mode 100644 index 9a5024cab..000000000 --- a/mise.lock +++ /dev/null @@ -1,607 +0,0 @@ -# @generated - this file is auto-generated by `mise lock` https://mise.en.dev/dev-tools/mise-lock.html - -[[tools.actionlint]] -version = "1.7.12" -backend = "aqua:rhysd/actionlint" - -[tools.actionlint."platforms.linux-arm64"] -checksum = "sha256:325e971b6ba9bfa504672e29be93c24981eeb1c07576d730e9f7c8805afff0c6" -url = "https://github.com/rhysd/actionlint/releases/download/v1.7.12/actionlint_1.7.12_linux_arm64.tar.gz" -provenance = "github-attestations" - -[tools.actionlint."platforms.linux-arm64-musl"] -checksum = "sha256:325e971b6ba9bfa504672e29be93c24981eeb1c07576d730e9f7c8805afff0c6" -url = "https://github.com/rhysd/actionlint/releases/download/v1.7.12/actionlint_1.7.12_linux_arm64.tar.gz" -provenance = "github-attestations" - -[tools.actionlint."platforms.linux-x64"] -checksum = "sha256:8aca8db96f1b94770f1b0d72b6dddcb1ebb8123cb3712530b08cc387b349a3d8" -url = "https://github.com/rhysd/actionlint/releases/download/v1.7.12/actionlint_1.7.12_linux_amd64.tar.gz" -provenance = "github-attestations" - -[tools.actionlint."platforms.linux-x64-musl"] -checksum = "sha256:8aca8db96f1b94770f1b0d72b6dddcb1ebb8123cb3712530b08cc387b349a3d8" -url = "https://github.com/rhysd/actionlint/releases/download/v1.7.12/actionlint_1.7.12_linux_amd64.tar.gz" -provenance = "github-attestations" - -[tools.actionlint."platforms.macos-arm64"] -checksum = "sha256:aba9ced2dee8d27fecca3dc7feb1a7f9a52caefa1eb46f3271ea66b6e0e6953f" -url = "https://github.com/rhysd/actionlint/releases/download/v1.7.12/actionlint_1.7.12_darwin_arm64.tar.gz" -provenance = "github-attestations" - -[tools.actionlint."platforms.macos-x64"] -checksum = "sha256:5b44c3bc2255115c9b69e30efc0fecdf498fdb63c5d58e17084fd5f16324c644" -url = "https://github.com/rhysd/actionlint/releases/download/v1.7.12/actionlint_1.7.12_darwin_amd64.tar.gz" -provenance = "github-attestations" - -[tools.actionlint."platforms.windows-x64"] -checksum = "sha256:6e7241b51e6817ea6a047693d8e6fed13b31819c9a0dd6c5a726e1592d22f6e9" -url = "https://github.com/rhysd/actionlint/releases/download/v1.7.12/actionlint_1.7.12_windows_amd64.zip" -provenance = "github-attestations" - -[[tools."aqua:grafana/flint"]] -version = "0.22.2" -backend = "aqua:grafana/flint" - -[tools."aqua:grafana/flint"."platforms.linux-arm64"] -checksum = "sha256:cbe96f8df0e6ec86499304f913a1d697989d13594306828396a90a9986389544" -url = "https://github.com/grafana/flint/releases/download/v0.22.2/flint-aarch64-unknown-linux-gnu.tar.gz" -provenance = "github-attestations" - -[tools."aqua:grafana/flint"."platforms.linux-arm64-musl"] -provenance = "github-attestations" - -[tools."aqua:grafana/flint"."platforms.linux-x64"] -checksum = "sha256:b0c6d3b9dfc609a3cbce3b9cdde191a14df18c5d5064e819b795cef5f616fc0d" -url = "https://github.com/grafana/flint/releases/download/v0.22.2/flint-x86_64-unknown-linux-gnu.tar.gz" -provenance = "github-attestations" - -[tools."aqua:grafana/flint"."platforms.linux-x64-musl"] -provenance = "github-attestations" - -[tools."aqua:grafana/flint"."platforms.macos-arm64"] -checksum = "sha256:8592382abe9f471308aad24996e690bbf718d24323901c91756a891395931dc5" -url = "https://github.com/grafana/flint/releases/download/v0.22.2/flint-aarch64-apple-darwin.tar.gz" -provenance = "github-attestations" - -[tools."aqua:grafana/flint"."platforms.macos-x64"] -checksum = "sha256:7a673571e67e5bb64a132dfa8535af3664bb4b32d4f881a21cc80d0b0727e1f4" -url = "https://github.com/grafana/flint/releases/download/v0.22.2/flint-x86_64-apple-darwin.tar.gz" -provenance = "github-attestations" - -[tools."aqua:grafana/flint"."platforms.windows-x64"] -checksum = "sha256:0a020a5db952ed17faafcf12461d15e51a6ba3439aed8f4ef9709e0008f33883" -url = "https://github.com/grafana/flint/releases/download/v0.22.2/flint-x86_64-pc-windows-msvc.zip" -provenance = "github-attestations" - -[[tools."aqua:jonwiggins/xmloxide"]] -version = "v0.4.3" -backend = "aqua:jonwiggins/xmloxide" - -[tools."aqua:jonwiggins/xmloxide"."platforms.linux-arm64"] -checksum = "sha256:abb840c558fdc94b4c1eddb1e4a3901d6c8129dcb76f387428dc2b30a7364967" -url = "https://github.com/jonwiggins/xmloxide/releases/download/v0.4.3/xmllint_linux-aarch64" - -[tools."aqua:jonwiggins/xmloxide"."platforms.linux-arm64-musl"] -checksum = "sha256:abb840c558fdc94b4c1eddb1e4a3901d6c8129dcb76f387428dc2b30a7364967" -url = "https://github.com/jonwiggins/xmloxide/releases/download/v0.4.3/xmllint_linux-aarch64" - -[tools."aqua:jonwiggins/xmloxide"."platforms.linux-x64"] -checksum = "sha256:46ccd30ff3a242b3d01ab72366cc3b6762882be604ebceaa32123a40d0af2dfc" -url = "https://github.com/jonwiggins/xmloxide/releases/download/v0.4.3/xmllint_linux-x86-64" - -[tools."aqua:jonwiggins/xmloxide"."platforms.linux-x64-musl"] -checksum = "sha256:46ccd30ff3a242b3d01ab72366cc3b6762882be604ebceaa32123a40d0af2dfc" -url = "https://github.com/jonwiggins/xmloxide/releases/download/v0.4.3/xmllint_linux-x86-64" - -[tools."aqua:jonwiggins/xmloxide"."platforms.macos-arm64"] -checksum = "sha256:6a2cb055e63ae97d75cd346c34138a9e31626e1dfc0983006c422c203b5cc288" -url = "https://github.com/jonwiggins/xmloxide/releases/download/v0.4.3/xmllint_darwin-aarch64" - -[tools."aqua:jonwiggins/xmloxide"."platforms.macos-x64"] -checksum = "sha256:e83cbba88862d009405b5ce9e48025ff84b683a39a0832dde2db5395cb54734f" -url = "https://github.com/jonwiggins/xmloxide/releases/download/v0.4.3/xmllint_darwin-x86-64" - -[tools."aqua:jonwiggins/xmloxide"."platforms.windows-x64"] -checksum = "sha256:22872cad20b8ce8ccab28c42ce17acc9aa64b82cbad7d130ee74196cd74cd414" -url = "https://github.com/jonwiggins/xmloxide/releases/download/v0.4.3/xmllint_windows-x86-64.exe" - -[[tools."aqua:owenlamont/ryl"]] -version = "0.10.0" -backend = "aqua:owenlamont/ryl" - -[tools."aqua:owenlamont/ryl"."platforms.linux-arm64"] -checksum = "sha256:1e7a404b17d761321fb703f4b00c92e970f4836be7e8a7adc6a80130cf310f79" -url = "https://github.com/owenlamont/ryl/releases/download/v0.10.0/ryl-aarch64-unknown-linux-musl.tar.gz" -provenance = "github-attestations" - -[tools."aqua:owenlamont/ryl"."platforms.linux-arm64-musl"] -checksum = "sha256:1e7a404b17d761321fb703f4b00c92e970f4836be7e8a7adc6a80130cf310f79" -url = "https://github.com/owenlamont/ryl/releases/download/v0.10.0/ryl-aarch64-unknown-linux-musl.tar.gz" -provenance = "github-attestations" - -[tools."aqua:owenlamont/ryl"."platforms.linux-x64"] -checksum = "sha256:bb1c24a36c5c5a57383af9f019768e185c23b1a98f458ffae0a0a0ab0c7a0146" -url = "https://github.com/owenlamont/ryl/releases/download/v0.10.0/ryl-x86_64-unknown-linux-musl.tar.gz" -provenance = "github-attestations" - -[tools."aqua:owenlamont/ryl"."platforms.linux-x64-musl"] -checksum = "sha256:bb1c24a36c5c5a57383af9f019768e185c23b1a98f458ffae0a0a0ab0c7a0146" -url = "https://github.com/owenlamont/ryl/releases/download/v0.10.0/ryl-x86_64-unknown-linux-musl.tar.gz" -provenance = "github-attestations" - -[tools."aqua:owenlamont/ryl"."platforms.macos-arm64"] -checksum = "sha256:996b1f8400ee6b1cd1411efb7febc7bcf79f61b6025feec804da8cd826b2cbc0" -url = "https://github.com/owenlamont/ryl/releases/download/v0.10.0/ryl-aarch64-apple-darwin.tar.gz" -provenance = "github-attestations" - -[tools."aqua:owenlamont/ryl"."platforms.windows-x64"] -checksum = "sha256:e9f767f3ba8f7604cf4a7e23d54d57aabcf0242c6cda0be595e21a5cb61ac821" -url = "https://github.com/owenlamont/ryl/releases/download/v0.10.0/ryl-x86_64-pc-windows-msvc.zip" -provenance = "github-attestations" - -[[tools.biome]] -version = "2.4.12" -backend = "aqua:biomejs/biome" - -[tools.biome."platforms.linux-arm64"] -checksum = "sha256:8c01c56aa0701e12142de057ff4a0a220e73c32f7e606935024223c8650f069a" -url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.4.12/biome-linux-arm64" -provenance = "github-attestations" - -[tools.biome."platforms.linux-arm64-musl"] -checksum = "sha256:8334e330fdc3eca2461928071704092b615831035108b1761386981262570f2c" -url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.4.12/biome-linux-arm64-musl" -provenance = "github-attestations" - -[tools.biome."platforms.linux-x64"] -checksum = "sha256:a0c50f60ed0a3c24450f5561eff58c8b9a91708c6b3f2f9ecd398a825d4a0861" -url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.4.12/biome-linux-x64" -provenance = "github-attestations" - -[tools.biome."platforms.linux-x64-musl"] -checksum = "sha256:09acbdcd294e40e1f5c493e58f56f78cf2522c9d9b9f4609323c05689e8dc4bd" -url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.4.12/biome-linux-x64-musl" -provenance = "github-attestations" - -[tools.biome."platforms.macos-arm64"] -checksum = "sha256:ac5775441d77af4ef9f61827e6058b2ec21db469102c94ccd9d1c48d09d5c461" -url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.4.12/biome-darwin-arm64" -provenance = "github-attestations" - -[tools.biome."platforms.macos-x64"] -checksum = "sha256:2617d939c0076743cbc597d9e1531628a0346eb19e6916f9374cb6e8f203fe3b" -url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.4.12/biome-darwin-x64" -provenance = "github-attestations" - -[tools.biome."platforms.windows-x64"] -checksum = "sha256:bb4309a0c05caf7377fc071b770d503c5e052a45f8ddea3c9dca34890f202189" -url = "https://github.com/biomejs/biome/releases/download/%40biomejs/biome%402.4.12/biome-win32-x64.exe" -provenance = "github-attestations" - -[[tools.editorconfig-checker]] -version = "3.7.0" -backend = "aqua:editorconfig-checker/editorconfig-checker" - -[tools.editorconfig-checker."platforms.linux-arm64"] -checksum = "sha256:e978f3f0940469989930311af8e101dd9ce8c2ee4da69264f3d76a3787e961ad" -url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.7.0/ec-linux-arm64.tar.gz" - -[tools.editorconfig-checker."platforms.linux-arm64-musl"] -checksum = "sha256:e978f3f0940469989930311af8e101dd9ce8c2ee4da69264f3d76a3787e961ad" -url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.7.0/ec-linux-arm64.tar.gz" - -[tools.editorconfig-checker."platforms.linux-x64"] -checksum = "sha256:9a0c3a5170bffa24f9e5f0def53d285777b6c5284a95367f40d399d0b76af552" -url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.7.0/ec-linux-amd64.tar.gz" - -[tools.editorconfig-checker."platforms.linux-x64-musl"] -checksum = "sha256:9a0c3a5170bffa24f9e5f0def53d285777b6c5284a95367f40d399d0b76af552" -url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.7.0/ec-linux-amd64.tar.gz" - -[tools.editorconfig-checker."platforms.macos-arm64"] -checksum = "sha256:727e6ef506c6fbe7719cc29c69b495715b64514a00059f3f179077bfad0580e5" -url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.7.0/ec-darwin-arm64.tar.gz" - -[tools.editorconfig-checker."platforms.macos-x64"] -checksum = "sha256:6cd2e4aa2a374d391e3baeaae43fc28906fd15b09490f5669eee206a63eef00a" -url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.7.0/ec-darwin-amd64.tar.gz" - -[tools.editorconfig-checker."platforms.windows-x64"] -checksum = "sha256:9c6b8a4cd7ccc5826ab96d34c460f37ab18b9cb50607d3ee9eb743fc47335da7" -url = "https://github.com/editorconfig-checker/editorconfig-checker/releases/download/v3.7.0/ec-windows-amd64.zip" - -[[tools."go:github.com/grafana/oats"]] -version = "0.6.1" -backend = "go:github.com/grafana/oats" - -[[tools.google-java-format]] -version = "1.35.0" -backend = "aqua:google/google-java-format" - -[tools.google-java-format."platforms.linux-arm64"] -checksum = "sha256:a69b2e85deb681f3eae4c946b948908e162e76ef27d752fa31830866dd7aa764" -url = "https://github.com/google/google-java-format/releases/download/v1.35.0/google-java-format_linux-arm64" - -[tools.google-java-format."platforms.linux-arm64-musl"] -checksum = "sha256:a69b2e85deb681f3eae4c946b948908e162e76ef27d752fa31830866dd7aa764" -url = "https://github.com/google/google-java-format/releases/download/v1.35.0/google-java-format_linux-arm64" - -[tools.google-java-format."platforms.linux-x64"] -checksum = "sha256:e0f95ad6d26b8fbd5b1e3fd3014f8306c4eb3b29d2a6b15fab62d0a364629437" -url = "https://github.com/google/google-java-format/releases/download/v1.35.0/google-java-format_linux-x86-64" - -[tools.google-java-format."platforms.linux-x64-musl"] -checksum = "sha256:e0f95ad6d26b8fbd5b1e3fd3014f8306c4eb3b29d2a6b15fab62d0a364629437" -url = "https://github.com/google/google-java-format/releases/download/v1.35.0/google-java-format_linux-x86-64" - -[tools.google-java-format."platforms.macos-arm64"] -checksum = "sha256:563f066c324687885b5f4039325f8952fbb9aaf3d67c68e0b2eafccc8069d3b8" -url = "https://github.com/google/google-java-format/releases/download/v1.35.0/google-java-format_darwin-arm64" - -[tools.google-java-format."platforms.windows-x64"] -checksum = "sha256:2451e70f7805ce51dc026c0ca6b76b689b20c99c5e5769412ae5235f59f3a427" -url = "https://github.com/google/google-java-format/releases/download/v1.35.0/google-java-format_windows-x86-64.exe" - -[[tools.hugo]] -version = "0.161.1" -backend = "aqua:gohugoio/hugo" - -[tools.hugo."platforms.linux-arm64"] -checksum = "sha256:382371ec3208236fb854ced51781f859b6c27a7d066b8fe90594eba14ba76d00" -url = "https://github.com/gohugoio/hugo/releases/download/v0.161.1/hugo_0.161.1_linux-arm64.tar.gz" - -[tools.hugo."platforms.linux-arm64-musl"] -checksum = "sha256:382371ec3208236fb854ced51781f859b6c27a7d066b8fe90594eba14ba76d00" -url = "https://github.com/gohugoio/hugo/releases/download/v0.161.1/hugo_0.161.1_linux-arm64.tar.gz" - -[tools.hugo."platforms.linux-x64"] -checksum = "sha256:fae28bf7909c1a42d1365b89d2e9e3d4194fbe5968ae0dd5504f562381018a1d" -url = "https://github.com/gohugoio/hugo/releases/download/v0.161.1/hugo_0.161.1_linux-amd64.tar.gz" - -[tools.hugo."platforms.linux-x64-musl"] -checksum = "sha256:fae28bf7909c1a42d1365b89d2e9e3d4194fbe5968ae0dd5504f562381018a1d" -url = "https://github.com/gohugoio/hugo/releases/download/v0.161.1/hugo_0.161.1_linux-amd64.tar.gz" - -[tools.hugo."platforms.macos-arm64"] -checksum = "sha256:b12e1cbebacf61f9cf67e0046c835142e70c829da7c16b05c1ec64a68885ee80" -url = "https://github.com/gohugoio/hugo/releases/download/v0.161.1/hugo_0.161.1_darwin-universal.pkg" - -[tools.hugo."platforms.macos-x64"] -checksum = "sha256:b12e1cbebacf61f9cf67e0046c835142e70c829da7c16b05c1ec64a68885ee80" -url = "https://github.com/gohugoio/hugo/releases/download/v0.161.1/hugo_0.161.1_darwin-universal.pkg" - -[tools.hugo."platforms.windows-x64"] -checksum = "sha256:7f8d030b37600c60bf2a782611257e6a768934fbe7724c1f3a1a501e6724cf0d" -url = "https://github.com/gohugoio/hugo/releases/download/v0.161.1/hugo_0.161.1_windows-amd64.zip" - -[[tools.java]] -version = "temurin-25.0.3+9.0.LTS" -backend = "core:java" - -[tools.java."platforms.linux-arm64"] -checksum = "sha256:3e4287cb98870ba824ed698854bdc27cff984254caf66dd12cc291e7bfdde26b" -url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.3%2B9/OpenJDK25U-jdk_aarch64_linux_hotspot_25.0.3_9.tar.gz" - -[tools.java."platforms.linux-arm64-musl"] -checksum = "sha256:6ed368e93049d3b188c045fce0b20953bbea92fe0614dbbf4d3fd8daad7be3b2" -url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.3%2B9/OpenJDK25U-jdk_aarch64_alpine-linux_hotspot_25.0.3_9.tar.gz" - -[tools.java."platforms.linux-x64"] -checksum = "sha256:69264a7a211bf5029830d07bc3370f879769d62ebc5b5488e90c9343a2da0e1f" -url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.3%2B9/OpenJDK25U-jdk_x64_linux_hotspot_25.0.3_9.tar.gz" - -[tools.java."platforms.linux-x64-musl"] -checksum = "sha256:51c2415b370aac7c3796b0c4663c8fcf91bc22d76f03df95b25fa5667cb5fdd8" -url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.3%2B9/OpenJDK25U-jdk_x64_alpine-linux_hotspot_25.0.3_9.tar.gz" - -[tools.java."platforms.macos-arm64"] -checksum = "sha256:7baab4d69a15554e119b86ff78d40e3fdc28819b5b322955c913cebfe3f6a37c" -url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.3%2B9/OpenJDK25U-jdk_aarch64_mac_hotspot_25.0.3_9.tar.gz" - -[tools.java."platforms.macos-x64"] -checksum = "sha256:4c539a18b4d656960ff6766727e9ca546fc17f7a29714dba9e7b47bdcb37c447" -url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.3%2B9/OpenJDK25U-jdk_x64_mac_hotspot_25.0.3_9.tar.gz" - -[tools.java."platforms.windows-x64"] -checksum = "sha256:709312cd0420296d9b9de917fe6e28a5b979e875ee5ab91783fb79bcd5857235" -url = "https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.3%2B9/OpenJDK25U-jdk_x64_windows_hotspot_25.0.3_9.zip" - -[[tools.lychee]] -version = "0.24.2" -backend = "aqua:lycheeverse/lychee" - -[tools.lychee."platforms.linux-arm64"] -checksum = "sha256:5d0b0e3aeab240f41920c633a6eaf97599be6eedda034b36e858ede7dba5e535" -url = "https://github.com/lycheeverse/lychee/releases/download/lychee-v0.24.2/lychee-aarch64-unknown-linux-musl.tar.gz" - -[tools.lychee."platforms.linux-arm64-musl"] -checksum = "sha256:5d0b0e3aeab240f41920c633a6eaf97599be6eedda034b36e858ede7dba5e535" -url = "https://github.com/lycheeverse/lychee/releases/download/lychee-v0.24.2/lychee-aarch64-unknown-linux-musl.tar.gz" - -[tools.lychee."platforms.linux-x64"] -checksum = "sha256:73657a111819a30c47c08352896796f23d64e4eb2b3ed39b6d32149241566fc5" -url = "https://github.com/lycheeverse/lychee/releases/download/lychee-v0.24.2/lychee-x86_64-unknown-linux-musl.tar.gz" - -[tools.lychee."platforms.linux-x64-musl"] -checksum = "sha256:73657a111819a30c47c08352896796f23d64e4eb2b3ed39b6d32149241566fc5" -url = "https://github.com/lycheeverse/lychee/releases/download/lychee-v0.24.2/lychee-x86_64-unknown-linux-musl.tar.gz" - -[tools.lychee."platforms.macos-arm64"] -checksum = "sha256:c9d3740ea2d891854d37116c9fba840f37b6e7c89d330e7db84ac333631c4977" -url = "https://github.com/lycheeverse/lychee/releases/download/lychee-v0.24.2/lychee-aarch64-apple-darwin.tar.gz" - -[tools.lychee."platforms.macos-x64"] -checksum = "sha256:887503a9cff667d322b8d0892b40bf49976eb9507af8483220a3706cdad55978" -url = "https://github.com/lycheeverse/lychee/releases/download/lychee-v0.24.2/lychee-x86_64-apple-darwin.tar.gz" - -[tools.lychee."platforms.windows-x64"] -checksum = "sha256:32975d1493ee1a975d6bb41e4fb56fe419cb442ded628bb772ba2e614acfacad" -url = "https://github.com/lycheeverse/lychee/releases/download/lychee-v0.24.2/lychee-x86_64-pc-windows-msvc.zip" - -[[tools.node]] -version = "24.15.0" -backend = "core:node" - -[tools.node."platforms.linux-arm64"] -checksum = "sha256:73afc234d558c24919875f51c2d1ea002a2ada4ea6f83601a383869fefa64eed" -url = "https://nodejs.org/dist/v24.15.0/node-v24.15.0-linux-arm64.tar.gz" - -[tools.node."platforms.linux-arm64-musl"] -checksum = "sha256:31e98aa960a067da91edffd5d93bc46657b5d2a8029612c359f5f2ac0060152a" -url = "https://unofficial-builds.nodejs.org/download/release/v24.15.0/node-v24.15.0-linux-arm64-musl.tar.gz" - -[tools.node."platforms.linux-x64"] -checksum = "sha256:44836872d9aec49f1e6b52a9a922872db9a2b02d235a616a5681b6a85fec8d89" -url = "https://nodejs.org/dist/v24.15.0/node-v24.15.0-linux-x64.tar.gz" - -[tools.node."platforms.linux-x64-musl"] -checksum = "sha256:f55af5bd489c5347b113ca6594cae00a54b30ba57ac5875324311bfc6f4762e3" -url = "https://unofficial-builds.nodejs.org/download/release/v24.15.0/node-v24.15.0-linux-x64-musl.tar.gz" - -[tools.node."platforms.macos-arm64"] -checksum = "sha256:372331b969779ab5d15b949884fc6eaf88d5afe87bde8ba881d6400b9100ffc4" -url = "https://nodejs.org/dist/v24.15.0/node-v24.15.0-darwin-arm64.tar.gz" - -[tools.node."platforms.macos-x64"] -checksum = "sha256:ffd5ee293467927f3ee731a553eb88fd1f48cf74eebc2d74a6babe4af228673b" -url = "https://nodejs.org/dist/v24.15.0/node-v24.15.0-darwin-x64.tar.gz" - -[tools.node."platforms.windows-x64"] -checksum = "sha256:cc5149eabd53779ce1e7bdc5401643622d0c7e6800ade18928a767e940bb0e62" -url = "https://nodejs.org/dist/v24.15.0/node-v24.15.0-win-x64.zip" - -[[tools."npm:renovate"]] -version = "43.150.0" -backend = "npm:renovate" - -[[tools.protoc]] -version = "35.0" -backend = "aqua:protocolbuffers/protobuf/protoc" - -[tools.protoc."platforms.linux-arm64"] -checksum = "sha256:36b518ac14d90351cc6598228ed2bbe5afe4e357b1af470b07e0ec1609875de2" -url = "https://github.com/protocolbuffers/protobuf/releases/download/v35.0/protoc-35.0-linux-aarch_64.zip" - -[tools.protoc."platforms.linux-arm64-musl"] -checksum = "sha256:36b518ac14d90351cc6598228ed2bbe5afe4e357b1af470b07e0ec1609875de2" -url = "https://github.com/protocolbuffers/protobuf/releases/download/v35.0/protoc-35.0-linux-aarch_64.zip" - -[tools.protoc."platforms.linux-x64"] -checksum = "sha256:a45cda0989c17dd950db55f6fbe1e5814c50fda08e87aa422980ac1f89dddbbc" -url = "https://github.com/protocolbuffers/protobuf/releases/download/v35.0/protoc-35.0-linux-x86_64.zip" - -[tools.protoc."platforms.linux-x64-musl"] -checksum = "sha256:a45cda0989c17dd950db55f6fbe1e5814c50fda08e87aa422980ac1f89dddbbc" -url = "https://github.com/protocolbuffers/protobuf/releases/download/v35.0/protoc-35.0-linux-x86_64.zip" - -[tools.protoc."platforms.macos-arm64"] -checksum = "sha256:45444963204757fd3e2fbe304bc1fdadfb488d8556ff099c4cc06575eab88976" -url = "https://github.com/protocolbuffers/protobuf/releases/download/v35.0/protoc-35.0-osx-aarch_64.zip" - -[tools.protoc."platforms.macos-x64"] -checksum = "sha256:3580c2d115fccb5b0239960c8f70f8da14787b1973a46b2f39c315ad71c11e01" -url = "https://github.com/protocolbuffers/protobuf/releases/download/v35.0/protoc-35.0-osx-x86_64.zip" - -[tools.protoc."platforms.windows-x64"] -checksum = "sha256:d1cede9e308cc3eb072392af1c02ccae4bdd3d2f374ec2970dbd8cdfdaa91363" -url = "https://github.com/protocolbuffers/protobuf/releases/download/v35.0/protoc-35.0-win64.zip" - -[[tools.ruff]] -version = "0.15.14" -backend = "aqua:astral-sh/ruff" - -[tools.ruff."platforms.linux-arm64"] -checksum = "sha256:1693dfc1f402a81b32ff4fee5f8b494857a1a857a2b8d63cad88d9d39c201297" -url = "https://github.com/astral-sh/ruff/releases/download/0.15.14/ruff-aarch64-unknown-linux-musl.tar.gz" -provenance = "github-attestations" - -[tools.ruff."platforms.linux-arm64-musl"] -checksum = "sha256:1693dfc1f402a81b32ff4fee5f8b494857a1a857a2b8d63cad88d9d39c201297" -url = "https://github.com/astral-sh/ruff/releases/download/0.15.14/ruff-aarch64-unknown-linux-musl.tar.gz" -provenance = "github-attestations" - -[tools.ruff."platforms.linux-x64"] -checksum = "sha256:e380c9cf14764b7134434c49d445d13c6e3db732cfd18d72c4bc2316a6dbb82e" -url = "https://github.com/astral-sh/ruff/releases/download/0.15.14/ruff-x86_64-unknown-linux-musl.tar.gz" -provenance = "github-attestations" - -[tools.ruff."platforms.linux-x64-musl"] -checksum = "sha256:e380c9cf14764b7134434c49d445d13c6e3db732cfd18d72c4bc2316a6dbb82e" -url = "https://github.com/astral-sh/ruff/releases/download/0.15.14/ruff-x86_64-unknown-linux-musl.tar.gz" -provenance = "github-attestations" - -[tools.ruff."platforms.macos-arm64"] -checksum = "sha256:953243859467ed3f4f2bc6c11e241cd42a11ed42605b33d971dc2b174772da7d" -url = "https://github.com/astral-sh/ruff/releases/download/0.15.14/ruff-aarch64-apple-darwin.tar.gz" -provenance = "github-attestations" - -[tools.ruff."platforms.macos-x64"] -checksum = "sha256:537f569780fc71f63238f1f43dc04285b24fddbc6eea7219a9a18f408bdd869d" -url = "https://github.com/astral-sh/ruff/releases/download/0.15.14/ruff-x86_64-apple-darwin.tar.gz" -provenance = "github-attestations" - -[tools.ruff."platforms.windows-x64"] -checksum = "sha256:c589a77b0e112c374e9a5e0c42a7fb18d8725c5322ae261e343f66d1c87f0a5e" -url = "https://github.com/astral-sh/ruff/releases/download/0.15.14/ruff-x86_64-pc-windows-msvc.zip" -provenance = "github-attestations" - -[[tools.rumdl]] -version = "0.2.0" -backend = "aqua:rvben/rumdl" - -[tools.rumdl."platforms.linux-arm64"] -checksum = "sha256:1897d6e510d4b9c0dc13f79d36e870c7e7420443aaa0215173466cd188ae90cb" -url = "https://github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-aarch64-unknown-linux-musl.tar.gz" -provenance = "github-attestations" - -[tools.rumdl."platforms.linux-arm64-musl"] -checksum = "sha256:1897d6e510d4b9c0dc13f79d36e870c7e7420443aaa0215173466cd188ae90cb" -url = "https://github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-aarch64-unknown-linux-musl.tar.gz" -provenance = "github-attestations" - -[tools.rumdl."platforms.linux-x64"] -checksum = "sha256:00730abe083bf5164d02ce3387c5e95d6d9b12acf65412527ea18778c0725624" -url = "https://github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-x86_64-unknown-linux-musl.tar.gz" -provenance = "github-attestations" - -[tools.rumdl."platforms.linux-x64-musl"] -checksum = "sha256:00730abe083bf5164d02ce3387c5e95d6d9b12acf65412527ea18778c0725624" -url = "https://github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-x86_64-unknown-linux-musl.tar.gz" -provenance = "github-attestations" - -[tools.rumdl."platforms.macos-arm64"] -checksum = "sha256:e4a45f970e695c4cc218380a57531d72ae3384512867a308251569fd5456906c" -url = "https://github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-aarch64-apple-darwin.tar.gz" -provenance = "github-attestations" - -[tools.rumdl."platforms.macos-x64"] -checksum = "sha256:760726e893e665fd0d3d8057f71f27ea7f9ff370bf33d3e7bdb833c2ec557ca0" -url = "https://github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-x86_64-apple-darwin.tar.gz" -provenance = "github-attestations" - -[tools.rumdl."platforms.windows-x64"] -checksum = "sha256:e3e492b331329dddc87777da376acfa4f7f5c1c4d1a8264bd8941d8f1a713735" -url = "https://github.com/rvben/rumdl/releases/download/v0.2.0/rumdl-v0.2.0-x86_64-pc-windows-msvc.zip" -provenance = "github-attestations" - -[[tools.shellcheck]] -version = "v0.11.0" -backend = "aqua:koalaman/shellcheck" - -[tools.shellcheck."platforms.linux-arm64"] -checksum = "sha256:12b331c1d2db6b9eb13cfca64306b1b157a86eb69db83023e261eaa7e7c14588" -url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.linux.aarch64.tar.xz" - -[tools.shellcheck."platforms.linux-arm64-musl"] -checksum = "sha256:12b331c1d2db6b9eb13cfca64306b1b157a86eb69db83023e261eaa7e7c14588" -url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.linux.aarch64.tar.xz" - -[tools.shellcheck."platforms.linux-x64"] -checksum = "sha256:8c3be12b05d5c177a04c29e3c78ce89ac86f1595681cab149b65b97c4e227198" -url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.linux.x86_64.tar.xz" - -[tools.shellcheck."platforms.linux-x64-musl"] -checksum = "sha256:8c3be12b05d5c177a04c29e3c78ce89ac86f1595681cab149b65b97c4e227198" -url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.linux.x86_64.tar.xz" - -[tools.shellcheck."platforms.macos-arm64"] -checksum = "sha256:56affdd8de5527894dca6dc3d7e0a99a873b0f004d7aabc30ae407d3f48b0a79" -url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.darwin.aarch64.tar.xz" - -[tools.shellcheck."platforms.macos-x64"] -checksum = "sha256:3c89db4edcab7cf1c27bff178882e0f6f27f7afdf54e859fa041fca10febe4c6" -url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.darwin.x86_64.tar.xz" - -[tools.shellcheck."platforms.windows-x64"] -checksum = "sha256:8a4e35ab0b331c85d73567b12f2a444df187f483e5079ceffa6bda1faa2e740e" -url = "https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.zip" - -[[tools.shfmt]] -version = "3.13.1" -backend = "aqua:mvdan/sh" - -[tools.shfmt."platforms.linux-arm64"] -checksum = "sha256:32d92acaa5cd8abb29fc49dac123dc412442d5713967819d8af2c29f1b3857c7" -url = "https://github.com/mvdan/sh/releases/download/v3.13.1/shfmt_v3.13.1_linux_arm64" - -[tools.shfmt."platforms.linux-arm64-musl"] -checksum = "sha256:32d92acaa5cd8abb29fc49dac123dc412442d5713967819d8af2c29f1b3857c7" -url = "https://github.com/mvdan/sh/releases/download/v3.13.1/shfmt_v3.13.1_linux_arm64" - -[tools.shfmt."platforms.linux-x64"] -checksum = "sha256:fb096c5d1ac6beabbdbaa2874d025badb03ee07929f0c9ff67563ce8c75398b1" -url = "https://github.com/mvdan/sh/releases/download/v3.13.1/shfmt_v3.13.1_linux_amd64" - -[tools.shfmt."platforms.linux-x64-musl"] -checksum = "sha256:fb096c5d1ac6beabbdbaa2874d025badb03ee07929f0c9ff67563ce8c75398b1" -url = "https://github.com/mvdan/sh/releases/download/v3.13.1/shfmt_v3.13.1_linux_amd64" - -[tools.shfmt."platforms.macos-arm64"] -checksum = "sha256:9680526be4a66ea1ffe988ed08af58e1400fe1e4f4aef5bd88b20bb9b3da33f8" -url = "https://github.com/mvdan/sh/releases/download/v3.13.1/shfmt_v3.13.1_darwin_arm64" - -[tools.shfmt."platforms.macos-x64"] -checksum = "sha256:6feedafc72915794163114f512348e2437d080d0047ef8b8fa2ec63b575f12af" -url = "https://github.com/mvdan/sh/releases/download/v3.13.1/shfmt_v3.13.1_darwin_amd64" - -[tools.shfmt."platforms.windows-x64"] -checksum = "sha256:60cd368533d0ad73fa86d93d5bbf95ef40587245ce684ed138c1b31557b5fe97" -url = "https://github.com/mvdan/sh/releases/download/v3.13.1/shfmt_v3.13.1_windows_amd64.exe" - -[[tools.taplo]] -version = "0.10.0" -backend = "aqua:tamasfe/taplo" - -[tools.taplo."platforms.linux-arm64"] -url = "https://github.com/tamasfe/taplo/releases/download/0.10.0/taplo-linux-aarch64.gz" - -[tools.taplo."platforms.linux-arm64-musl"] -url = "https://github.com/tamasfe/taplo/releases/download/0.10.0/taplo-linux-aarch64.gz" - -[tools.taplo."platforms.linux-x64"] -url = "https://github.com/tamasfe/taplo/releases/download/0.10.0/taplo-linux-x86_64.gz" - -[tools.taplo."platforms.linux-x64-musl"] -url = "https://github.com/tamasfe/taplo/releases/download/0.10.0/taplo-linux-x86_64.gz" - -[tools.taplo."platforms.macos-arm64"] -url = "https://github.com/tamasfe/taplo/releases/download/0.10.0/taplo-darwin-aarch64.gz" - -[tools.taplo."platforms.macos-x64"] -url = "https://github.com/tamasfe/taplo/releases/download/0.10.0/taplo-darwin-x86_64.gz" - -[tools.taplo."platforms.windows-x64"] -url = "https://github.com/tamasfe/taplo/releases/download/0.10.0/taplo-windows-x86_64.zip" - -[[tools.typos]] -version = "1.46.3" -backend = "aqua:crate-ci/typos" - -[tools.typos."platforms.linux-arm64"] -checksum = "sha256:3cbc11f8f476e07d8cef3dbd5c898d4e800b6c8a03c292ca4e0e571265958491" -url = "https://github.com/crate-ci/typos/releases/download/v1.46.3/typos-v1.46.3-aarch64-unknown-linux-musl.tar.gz" - -[tools.typos."platforms.linux-arm64-musl"] -checksum = "sha256:3cbc11f8f476e07d8cef3dbd5c898d4e800b6c8a03c292ca4e0e571265958491" -url = "https://github.com/crate-ci/typos/releases/download/v1.46.3/typos-v1.46.3-aarch64-unknown-linux-musl.tar.gz" - -[tools.typos."platforms.linux-x64"] -checksum = "sha256:a8b422b8ed79de732a31a705a9899e0a29124f8dc2f0a0f54dc127154ceb3b93" -url = "https://github.com/crate-ci/typos/releases/download/v1.46.3/typos-v1.46.3-x86_64-unknown-linux-musl.tar.gz" - -[tools.typos."platforms.linux-x64-musl"] -checksum = "sha256:a8b422b8ed79de732a31a705a9899e0a29124f8dc2f0a0f54dc127154ceb3b93" -url = "https://github.com/crate-ci/typos/releases/download/v1.46.3/typos-v1.46.3-x86_64-unknown-linux-musl.tar.gz" - -[tools.typos."platforms.macos-arm64"] -checksum = "sha256:503d4b0b2035d96fb286b5dc8594bda6a587cc76c1ad1022aa36a2634d42ae4b" -url = "https://github.com/crate-ci/typos/releases/download/v1.46.3/typos-v1.46.3-aarch64-apple-darwin.tar.gz" - -[tools.typos."platforms.macos-x64"] -checksum = "sha256:70da5d5753674df9411e9df417380bb085acb6dc5e140b4c4799443db4dee407" -url = "https://github.com/crate-ci/typos/releases/download/v1.46.3/typos-v1.46.3-x86_64-apple-darwin.tar.gz" - -[tools.typos."platforms.windows-x64"] -checksum = "sha256:612c427950ad2d1939e8284f4d6af42d9ea5d185e98d535977d1ba94b0f14fdc" -url = "https://github.com/crate-ci/typos/releases/download/v1.46.3/typos-v1.46.3-x86_64-pc-windows-msvc.zip" diff --git a/mise.toml b/mise.toml index 24b95e9da..ad08f6eec 100644 --- a/mise.toml +++ b/mise.toml @@ -2,7 +2,7 @@ "go:github.com/grafana/oats" = "0.6.1" hugo = "0.161.1" java = "temurin-25.0.3+9.0.LTS" -node = "24.15.0" +node = "24.16.0" protoc = "35.0" # Linters From 617c0a7fa5e738e2878fe94c40b16490cbb120ff Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 28 May 2026 14:25:28 +0200 Subject: [PATCH 40/74] chore(deps): update dependency org.apache.maven.plugins:maven-dependency-plugin to v3.11.0 (#2151) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [org.apache.maven.plugins:maven-dependency-plugin](https://maven.apache.org/plugins/) ([source](https://redirect.github.com/apache/maven-dependency-plugin)) | `3.10.0` → `3.11.0` | ![age](https://developer.mend.io/api/mc/badges/age/maven/org.apache.maven.plugins:maven-dependency-plugin/3.11.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.apache.maven.plugins:maven-dependency-plugin/3.10.0/3.11.0?slim=true) | --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3db416abe..f9c25d9e2 100644 --- a/pom.xml +++ b/pom.xml @@ -151,7 +151,7 @@ maven-dependency-plugin - 3.10.0 + 3.11.0 maven-javadoc-plugin From cf834200d0591c3b8b67616b6b2dc12c2502afd8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 28 May 2026 14:25:40 +0200 Subject: [PATCH 41/74] chore(deps): update dependency org.mock-server:mockserver-netty-no-dependencies to v6.1.0 (#2145) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [org.mock-server:mockserver-netty-no-dependencies](https://www.mock-server.com) ([source](https://redirect.github.com/mock-server/mockserver-monorepo)) | `6.0.0` → `6.1.0` | ![age](https://developer.mend.io/api/mc/badges/age/maven/org.mock-server:mockserver-netty-no-dependencies/6.1.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.mock-server:mockserver-netty-no-dependencies/6.0.0/6.1.0?slim=true) | --- ### Release Notes
mock-server/mockserver-monorepo (org.mock-server:mockserver-netty-no-dependencies) ### [`v6.1.0`](https://redirect.github.com/mock-server/mockserver-monorepo/blob/HEAD/changelog.md#610---2026-05-27) ##### Security - SSRF protection for forward and forward-template actions: new `mockserver.forwardProxyBlockPrivateNetworks` property (default `false` for backwards compatibility) rejects forward targets that resolve to loopback, link-local, RFC 1918 private, or cloud metadata addresses (e.g. `169.254.169.254`). Enable in hardened or multi-tenant deployments where untrusted callers can register expectations. A future major release is expected to flip the default to `true`. - ReDoS protection in regex matchers: regex evaluation now runs on a shared cached daemon-thread pool with a configurable timeout `mockserver.regexMatchingTimeoutMillis` (default `5000`ms). Patterns that exceed the budget are treated as non-matches and a WARN log entry is written, so a pathological pattern cannot wedge a Netty worker. - XPath DoS protection: XPath evaluation in body matching now uses the same shared timeout executor with `mockserver.xpathMatchingTimeoutMillis` (default `5000`ms). - Cryptographically secure randomness: `UUIDService` and `TemplateFunctions` now use `SecureRandom` instead of `java.util.Random` for UUID generation, `rand_int`/`rand_int_10`/`rand_int_100`, and `rand_bytes` template helpers. - Loud insecure-mode warning logs at startup / SSL-context init: a WARN is emitted when (a) the forward proxy trusts all TLS certificates (`forwardProxyTLSX509CertificatesTrustManagerType=ANY`), (b) Velocity class loading is enabled (`velocityDisallowClassLoading=false`), (c) JavaScript templates have no class restrictions (`javascriptDisallowedClasses` empty), or (d) `tlsProtocols` includes the deprecated TLSv1 / TLSv1.1. - `mockserver.tlsAllowInsecureProtocols` configuration property (default `true` for backwards compatibility): when set to `false`, any `TLSv1` or `TLSv1.1` entries in `mockserver.tlsProtocols` are filtered out before the SSL context is built, giving users an opt-in hardened TLS profile without having to rewrite their existing `tlsProtocols` value. A future major release is expected to flip this default to `false`. ##### Added - First-class LLM and agent mocking: new `httpLlmResponse` action type lets you mock LLM provider APIs at the semantic level — describe the model's reply (text, tool calls, stop reason, usage) and MockServer produces the byte-correct provider wire format. Supports all 7 major providers: Anthropic Messages, OpenAI Chat Completions, OpenAI Responses, Google Gemini, AWS Bedrock, Azure OpenAI, and Ollama. Non-streaming responses return provider-correct JSON; streaming responses generate the full SSE event sequence (e.g. `message_start` through `message_stop` for Anthropic, `chat.completion.chunk` with `finish_reason` for OpenAI) with configurable timing physics (`timeToFirstToken`, `tokensPerSecond`, `jitter`). OpenAI embeddings are also supported with deterministic vector generation via `deterministicFromInput()`. - Conversation-aware matchers for multi-turn agent testing: `whenTurnIndex(n)`, `whenLatestMessageContains(text)`, `whenLatestMessageRole(role)`, and `whenContainsToolResultFor(toolName)` predicates match against the parsed `messages` array in the inbound request body, enabling scripted multi-turn conversations where turn 1 returns a `tool_use` and turn 2 (after the agent sends a `tool_result`) returns the final answer. All predicates compose with AND semantics and integrate with the scenario state machine for automatic turn advancement. - Per-session conversation isolation via `isolateBy(header("x-session-id"))`, `isolateBy(queryParameter("agent"))`, or `isolateBy(cookie("sid"))`: each unique value of the configured attribute gets independent scenario state, so concurrent agents sharing the same mocked endpoint do not interfere. Missing attributes fall back to shared state gracefully. - `mock_llm_completion` MCP tool: set up a single-turn LLM expectation from the MCP control plane, specifying provider, path, model, text, tool calls, and streaming mode - `create_llm_conversation` MCP tool: build a multi-turn scenario-chained LLM conversation with optional per-session isolation from the MCP control plane; returns the generated scenario name and per-turn state values - LLM Response badge in the dashboard expectation row showing provider, model, and text preview; Conversation view extended with a scripted-turns panel - `mockserver.maxLlmConversationBodySize` configuration property (default 1 MiB; clamped to 16 KiB - 64 MiB; env var `MOCKSERVER_MAX_LLM_CONVERSATION_BODY_SIZE`): request bodies larger than this limit skip conversation-aware parsing and are treated as no-match, preventing DoS via oversized JSON payloads - Custom json-unit matcher support for JSON body matching: implement `org.mockserver.matchers.CustomJsonUnitMatcherProvider` and point `mockserver.customJsonUnitMatchersClass` at it to register named Hamcrest matchers that JSON body expectations can reference via the `${json-unit.matches:name}` placeholder (e.g. `{ "price": "${json-unit.matches:largerThan}" }`); misconfigured providers are logged at WARN and ignored, so matching never fails because of an unloadable extension (fixes [#​2279](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2279)) - `http2Enabled` configuration property to disable HTTP/2: when set to false ALPN no longer advertises `h2` (and h2c is not detected) so HTTP/2 capable clients fall back to HTTP/1.1 - Agent-friendly mismatch diagnostics: `explain_unmatched_requests` MCP tool and `PUT /mockserver/explainUnmatched` REST endpoint return recent requests that matched no expectation, each with ranked closest-expectation diffs and actionable remediation hints (e.g., "use method POST not GET", "add missing header Authorization"); `debug_request_mismatch` results are now ranked by closeness and include remediation hints; new `mockserver://unmatched` MCP resource - `create_expectations_from_recorded_traffic` MCP tool: converts traffic recorded by MockServer's forwarding/proxy mode into active mock expectations in one call, enabling an "observe then mock" workflow; supports `method`/`path` filtering and `preview` mode to inspect expectations before activating them - OpenAPI contract verification MCP tools: `verify_traffic_against_openapi` validates recorded request-response pairs against an OpenAPI spec (passive conformance checking); `run_contract_test` sends example requests derived from an OpenAPI spec to a running service and validates the responses (active contract testing); both return structured per-operation pass/fail results with validation errors - OpenAPI resiliency testing MCP tool: `run_resiliency_test` sends deliberately malformed and boundary-case requests derived from an OpenAPI spec to a running service (omitting required fields, type violations, numeric/string boundary violations, oversized strings, malformed JSON) and classifies each outcome as HANDLED (4xx) or UNEXPECTED (5xx/2xx/error); returns per-mutation results with operation summaries - Deterministic LLM record/replay: `record_llm_fixtures` MCP tool snapshots LLM/MCP traffic recorded through MockServer's forwarding proxy into a committable JSON fixture file with secrets automatically redacted (Authorization, api-key, Cookie, etc.); SSE streaming responses (Anthropic, OpenAI, etc.) are converted to `HttpSseResponse` actions for faithful event-by-event replay; `load_expectations_from_file` MCP tool loads fixture files as active expectations for offline, deterministic, zero-cost test replay ##### Changed - **BREAKING** Inbound HTTP/1.1 and HTTP/2 request bodies are now capped at 10 MiB by default (`mockserver.maxRequestBodySize`). Previously unbounded. Requests larger than the limit are rejected with `413 Payload Too Large`. Raise the limit (e.g. `-Dmockserver.maxRequestBodySize=52428800`) if you intentionally mock large uploads. - **BREAKING** Upstream response bodies received when MockServer is acting as a proxy or forwarder are now capped at 50 MiB by default (`mockserver.maxResponseBodySize`). Previously unbounded. Raise if you forward to services that legitimately return larger payloads. - Each published JAR (including the `-no-dependencies` shaded artifacts) now declares a stable `Automatic-Module-Name` in its `MANIFEST.MF`, so downstream JPMS consumers can `requires` MockServer modules with names that no longer change with each version: `org.mockserver.core` (`mockserver-core`), `org.mockserver.client` (`mockserver-client-java`), `org.mockserver.netty` (`mockserver-netty`), `org.mockserver.test` (`mockserver-testing`), `org.mockserver.testing` (`mockserver-integration-testing`), `org.mockserver.junit.rule` (`mockserver-junit-rule`), `org.mockserver.junit.jupiter` (`mockserver-junit-jupiter`), `org.mockserver.springtest` (`mockserver-spring-test-listener`), `org.mockserver.examples` (`mockserver-examples`), `org.mockserver.maven` (`mockserver-maven-plugin`); each `*-no-dependencies` shaded variant shares its unshaded counterpart's module name and is an alternative packaging (place only one on the JPMS module path) ##### Fixed - Dynamic CA / SSL certificate generation no longer fails when `dynamicallyCreateCertificateAuthorityCertificate=true` (or any auto-generated server certificate path) is used: the four `Configuration` fluent setters for `certificateAuthorityCertificate`, `certificateAuthorityPrivateKey`, `privateKeyPath`, and `x509CertificatePath` no longer file-existence-check at set-time, because the internal generator sets these to the destination path before the file is written. User-supplied path typos are still surfaced by `CertificateConfigurationValidator` at TLS-init time. - HTTP/2 requests through the HTTPS CONNECT forward proxy no longer hang and emit a GOAWAY after \~30s; the internal relay now negotiates HTTP/1.1 or HTTP/2 per connection via ALPN instead of mismatching its TLS layer and codec (fixes [#​2260](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2260)) - Docker image and standalone executable JAR produced no log output because the shaded server JAR did not include an SLF4J logging provider (fixes [#​2097](https://redirect.github.com/mock-server/mockserver-monorepo/issues/2097)) - `*-no-dependencies` shaded artifacts leaked their un-shaded source module (and its transitive dependencies) onto consumers' classpaths; these artifacts are now truly dependency-free
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- prometheus-metrics-exporter-pushgateway/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prometheus-metrics-exporter-pushgateway/pom.xml b/prometheus-metrics-exporter-pushgateway/pom.xml index 4e10a8e0e..c7b63fb96 100644 --- a/prometheus-metrics-exporter-pushgateway/pom.xml +++ b/prometheus-metrics-exporter-pushgateway/pom.xml @@ -29,7 +29,7 @@ org.mock-server mockserver-netty-no-dependencies - 6.0.0 + 6.1.0 test From 834209d53cb0ee7a67448a7b816980d4d10a0de9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 28 May 2026 14:38:38 +0200 Subject: [PATCH 42/74] chore(deps): update dependency hugo to v0.162.0 (#2143) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Update | Change | |---|---|---| | [hugo](https://redirect.github.com/gohugoio/hugo) | minor | `0.161.1` → `0.162.0` | --- ### Release Notes
gohugoio/hugo (hugo) ### [`v0.162.0`](https://redirect.github.com/gohugoio/hugo/releases/tag/v0.162.0) [Compare Source](https://redirect.github.com/gohugoio/hugo/compare/v0.161.1...v0.162.0) The notable new feature in this release is support for [AVIF images](https://gohugo.io/configuration/imaging/#avif-images) (both encoder and decoder). There's a [demo site](https://redirect.github.com/bep/hdrsdr.com) set up that demonstrates the difference between HDR AVIF and SDR JPEG images. Note that that demo is only really interesting if viewed on an HDR capable screen (e.g. Apple Retina). ##### Security fixes There are some notable security fixes in this release. ##### Security fixes in Go This release upgrades from Go 1.26.1 to 126.3, which brings a set of security fixes. Some relevant for Hugo are: - XSS in html/template (CVE-2026-39826 & CVE-2026-39823): Two separate vulnerabilities where escaper bypasses in html/template could lead to Cross-Site Scripting (XSS). - html/template: Fixes an issue where JS template literal contexts were incorrectly tracked across template branches, which could lead to improper content escaping. ##### Security fixes and hardening in Hugo The following changes either fix a concrete issue or reduce the default attack surface of `hugo` builds. - **Disallow `text/html` content files by default** ([e41a064](https://redirect.github.com/gohugoio/hugo/commit/e41a06447d)). A new `security.allowContent` policy gates which content media types may be used for pages under `/content`. `text/html` is denied by default; sites that rely on hand-authored or adapter-emitted HTML content can opt back in with `security.allowContent = ['.*']`. - **Re-check `security.http.urls` on every redirect hop in `resources.GetRemote`** ([86fbb0f](https://redirect.github.com/gohugoio/hugo/commit/86fbb0f7a8)). - **Reject symlinked entries in `resources.Get`** ([f8b5fa0](https://redirect.github.com/gohugoio/hugo/commit/f8b5fa09a6)). **We will update this section later with links to CVEs where applicable.** ##### All changes - hugolib: Fix Page.GitInfo for modules with go.mod in a repo subdirectory [`df54219`](https://redirect.github.com/gohugoio/hugo/commit/df542191) [@​bep](https://redirect.github.com/bep) [#​14942](https://redirect.github.com/gohugoio/hugo/issues/14942) - Fix typo in CONTRIBUTING.md [`4bc7cae`](https://redirect.github.com/gohugoio/hugo/commit/4bc7caea) [@​bep](https://redirect.github.com/bep) - resources: Fix the :counter placeholder [`5d51b82`](https://redirect.github.com/gohugoio/hugo/commit/5d51b82a) [@​jmooring](https://redirect.github.com/jmooring) [#​14921](https://redirect.github.com/gohugoio/hugo/issues/14921) - commands: Fix import from Jekyll [`81d7762`](https://redirect.github.com/gohugoio/hugo/commit/81d77620) [@​jmooring](https://redirect.github.com/jmooring) [#​14795](https://redirect.github.com/gohugoio/hugo/issues/14795) [#​14906](https://redirect.github.com/gohugoio/hugo/issues/14906) - Fix prevention of direct symlink reads in resources.Get [`f8b5fa0`](https://redirect.github.com/gohugoio/hugo/commit/f8b5fa09) [@​bep](https://redirect.github.com/bep) - commands: Fix github-dark chromastyles [`88d838a`](https://redirect.github.com/gohugoio/hugo/commit/88d838a9) [@​xndvaz](https://redirect.github.com/xndvaz) [#​14831](https://redirect.github.com/gohugoio/hugo/issues/14831) - Disallow HTML content by default [`e41a064`](https://redirect.github.com/gohugoio/hugo/commit/e41a0644) [@​bep](https://redirect.github.com/bep) - Add image processing support for AVIF [`90d9f81`](https://redirect.github.com/gohugoio/hugo/commit/90d9f812) [@​bep](https://redirect.github.com/bep) [#​7837](https://redirect.github.com/gohugoio/hugo/issues/7837) - config: Preserve intentionally empty maps [`80e6084`](https://redirect.github.com/gohugoio/hugo/commit/80e60847) [@​jmooring](https://redirect.github.com/jmooring) [#​14944](https://redirect.github.com/gohugoio/hugo/issues/14944) - hugolib: Merge existing hugo\_stats.json when renderSegments is set [`aeb9a5c`](https://redirect.github.com/gohugoio/hugo/commit/aeb9a5cc) [@​bep](https://redirect.github.com/bep) [#​14939](https://redirect.github.com/gohugoio/hugo/issues/14939) - all: Replace RWMutex struct caches with ConcurrentMap [`c4bbc28`](https://redirect.github.com/gohugoio/hugo/commit/c4bbc280) [@​bep](https://redirect.github.com/bep) - tpl/tplimpl: Consolidate and improve embedded template integration tests [`d8c7021`](https://redirect.github.com/gohugoio/hugo/commit/d8c70218) [@​jmooring](https://redirect.github.com/jmooring) [#​14932](https://redirect.github.com/gohugoio/hugo/issues/14932) - parser: Drop empty sub maps from hugo config output [`ee4f1ac`](https://redirect.github.com/gohugoio/hugo/commit/ee4f1acd) [@​bep](https://redirect.github.com/bep) [#​14855](https://redirect.github.com/gohugoio/hugo/issues/14855) - markup/highlight: Allow overriding type and code via options [`b613365`](https://redirect.github.com/gohugoio/hugo/commit/b6133657) [@​bep](https://redirect.github.com/bep) [#​11872](https://redirect.github.com/gohugoio/hugo/issues/11872) - Update AI assistance disclosure requirements [`d2c821b`](https://redirect.github.com/gohugoio/hugo/commit/d2c821b5) [@​bep](https://redirect.github.com/bep) - hugolib: Use AllTranslated in IsTranslated [`4ed7600`](https://redirect.github.com/gohugoio/hugo/commit/4ed7600f) [@​bep](https://redirect.github.com/bep) - tpl: Simplify sitemap template [`cbe4339`](https://redirect.github.com/gohugoio/hugo/commit/cbe4339a) [@​bep](https://redirect.github.com/bep) [#​14912](https://redirect.github.com/gohugoio/hugo/issues/14912) - tpl: Use AllTranslations in sitemap template [`6475d30`](https://redirect.github.com/gohugoio/hugo/commit/6475d308) [@​bep](https://redirect.github.com/bep) [#​14912](https://redirect.github.com/gohugoio/hugo/issues/14912) [#​14917](https://redirect.github.com/gohugoio/hugo/issues/14917) - tpl/collections: Make dict return nil when no values are provided [`67aede4`](https://redirect.github.com/gohugoio/hugo/commit/67aede43) [@​bep](https://redirect.github.com/bep) - Sync Go template package to 1.26.3 [`87f194b`](https://redirect.github.com/gohugoio/hugo/commit/87f194b2) [@​bep](https://redirect.github.com/bep) [#​14897](https://redirect.github.com/gohugoio/hugo/issues/14897) - Upgrade to Go 1.26.3 [`d81e3c2`](https://redirect.github.com/gohugoio/hugo/commit/d81e3c29) [@​bep](https://redirect.github.com/bep) [#​14897](https://redirect.github.com/gohugoio/hugo/issues/14897) - ci: Check embedded template formatting with gotmplfmt [`7c65a4d`](https://redirect.github.com/gohugoio/hugo/commit/7c65a4db) [@​bep](https://redirect.github.com/bep) - tpl: Run gotmplfmt -w . [`d31a927`](https://redirect.github.com/gohugoio/hugo/commit/d31a9275) [@​bep](https://redirect.github.com/bep) - markup/goldmark/codeblocks: Always split Chroma options into .Options [`c36608c`](https://redirect.github.com/gohugoio/hugo/commit/c36608c5) [@​jmooring](https://redirect.github.com/jmooring) [#​14909](https://redirect.github.com/gohugoio/hugo/issues/14909) - hugolib: Allow empty params front matter [`2f361a8`](https://redirect.github.com/gohugoio/hugo/commit/2f361a8e) [@​xndvaz](https://redirect.github.com/xndvaz) [#​14886](https://redirect.github.com/gohugoio/hugo/issues/14886) - common/hmaps: Merge slice-valued module config into site config [`5559263`](https://redirect.github.com/gohugoio/hugo/commit/55592633) [@​jmooring](https://redirect.github.com/jmooring) [#​13869](https://redirect.github.com/gohugoio/hugo/issues/13869) - tpl: Use GetMatch for both local and global image resources [`656fc04`](https://redirect.github.com/gohugoio/hugo/commit/656fc040) [@​bep](https://redirect.github.com/bep) [#​14062](https://redirect.github.com/gohugoio/hugo/issues/14062) - Revert "markup/tableofcontents: Skip empty TOC levels" [`a20cb5b`](https://redirect.github.com/gohugoio/hugo/commit/a20cb5b1) [@​bep](https://redirect.github.com/bep) [#​14898](https://redirect.github.com/gohugoio/hugo/issues/14898) - tpl/templates: Reject Defer inside partialCached [`4d775cb`](https://redirect.github.com/gohugoio/hugo/commit/4d775cbe) [@​bep](https://redirect.github.com/bep) [#​13492](https://redirect.github.com/gohugoio/hugo/issues/13492) - common/hexec: Make NODE\_PATH a fallback for ESM bare imports [`ae7bf74`](https://redirect.github.com/gohugoio/hugo/commit/ae7bf74b) [@​bep](https://redirect.github.com/bep) [#​13987](https://redirect.github.com/gohugoio/hugo/issues/13987) - config: Allow repeating the root key in /config files [`ba5d812`](https://redirect.github.com/gohugoio/hugo/commit/ba5d8126) [@​bep](https://redirect.github.com/bep) [#​12899](https://redirect.github.com/gohugoio/hugo/issues/12899) [#​14882](https://redirect.github.com/gohugoio/hugo/issues/14882) - Revise test naming guidelines in AGENTS.md [`be4a0df`](https://redirect.github.com/gohugoio/hugo/commit/be4a0df3) [@​bep](https://redirect.github.com/bep) - Update AGENTS.md [`e4cf565`](https://redirect.github.com/gohugoio/hugo/commit/e4cf565c) [@​bep](https://redirect.github.com/bep) - js: Return error for missing batch imports [`9e64953`](https://redirect.github.com/gohugoio/hugo/commit/9e649533) [@​xndvaz](https://redirect.github.com/xndvaz) [#​13737](https://redirect.github.com/gohugoio/hugo/issues/13737) - resources/images: Keep smart crop target size [`f0cfc28`](https://redirect.github.com/gohugoio/hugo/commit/f0cfc28c) [@​xndvaz](https://redirect.github.com/xndvaz) [#​13688](https://redirect.github.com/gohugoio/hugo/issues/13688) - testing: Use synctest where relevant [`16e854a`](https://redirect.github.com/gohugoio/hugo/commit/16e854a4) [@​bep](https://redirect.github.com/bep) - security: Validate redirects against security.http.urls [`86fbb0f`](https://redirect.github.com/gohugoio/hugo/commit/86fbb0f7) [@​bep](https://redirect.github.com/bep) [#​14871](https://redirect.github.com/gohugoio/hugo/issues/14871) - markup/tableofcontents: Skip empty TOC levels [`7d4af7a`](https://redirect.github.com/gohugoio/hugo/commit/7d4af7a1) [@​xndvaz](https://redirect.github.com/xndvaz) [#​7128](https://redirect.github.com/gohugoio/hugo/issues/7128) - Fall back to hugo.buildDate in hugo.BuildDate() in non-vcs builds [`28147cb`](https://redirect.github.com/gohugoio/hugo/commit/28147cb0) [@​bep](https://redirect.github.com/bep) [#​14862](https://redirect.github.com/gohugoio/hugo/issues/14862) - css: Make css.Build's file-loader URLs absolute to web context root [`e51e761`](https://redirect.github.com/gohugoio/hugo/commit/e51e761d) [@​bep](https://redirect.github.com/bep) [#​14849](https://redirect.github.com/gohugoio/hugo/issues/14849) - hugolib: Don't warn about lang/kind/path coming from cascade.params [`7011239`](https://redirect.github.com/gohugoio/hugo/commit/70112392) [@​bep](https://redirect.github.com/bep) [#​14848](https://redirect.github.com/gohugoio/hugo/issues/14848) - markup/goldmark: Unwrap inner HTML for plain code blocks [`694906f`](https://redirect.github.com/gohugoio/hugo/commit/694906f6) [@​cyphercodes](https://redirect.github.com/cyphercodes) [#​14820](https://redirect.github.com/gohugoio/hugo/issues/14820) - tpl/tplimpl: Extend page image lookup to include global resources [`d27b9c0`](https://redirect.github.com/gohugoio/hugo/commit/d27b9c06) [@​ogulcanaydogan](https://redirect.github.com/ogulcanaydogan) [#​14062](https://redirect.github.com/gohugoio/hugo/issues/14062) - security: Allow hostnames starting with digits in default http.urls [`62cef36`](https://redirect.github.com/gohugoio/hugo/commit/62cef367) [@​bep](https://redirect.github.com/bep) [#​14837](https://redirect.github.com/gohugoio/hugo/issues/14837) - commands: Improve description of command flags [`ff22c62`](https://redirect.github.com/gohugoio/hugo/commit/ff22c62a) [@​jmooring](https://redirect.github.com/jmooring) [#​14817](https://redirect.github.com/gohugoio/hugo/issues/14817) - build(deps): bump golang.org/x/net from 0.54.0 to 0.55.0 [`4f444c8`](https://redirect.github.com/gohugoio/hugo/commit/4f444c81) [@​dependabot](https://redirect.github.com/dependabot)\[bot] - build(deps): bump golang.org/x/image from 0.40.0 to 0.41.0 [`fe6c726`](https://redirect.github.com/gohugoio/hugo/commit/fe6c7265) [@​dependabot](https://redirect.github.com/dependabot)\[bot] - build(deps): bump github.com/getkin/kin-openapi from 0.137.0 to 0.138.0 [`6a2a038`](https://redirect.github.com/gohugoio/hugo/commit/6a2a0380) [@​dependabot](https://redirect.github.com/dependabot)\[bot] - build(deps): bump github.com/JohannesKaufmann/html-to-markdown/v2 [`cf1de59`](https://redirect.github.com/gohugoio/hugo/commit/cf1de598) [@​dependabot](https://redirect.github.com/dependabot)\[bot] - build(deps): bump golang.org/x/image from 0.39.0 to 0.40.0 [`97f990c`](https://redirect.github.com/gohugoio/hugo/commit/97f990cc) [@​dependabot](https://redirect.github.com/dependabot)\[bot] - build(deps): bump golang.org/x/tools from 0.44.0 to 0.45.0 [`b99634e`](https://redirect.github.com/gohugoio/hugo/commit/b99634e2) [@​dependabot](https://redirect.github.com/dependabot)\[bot] - build(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 [`fdd977e`](https://redirect.github.com/gohugoio/hugo/commit/fdd977e9) [@​dependabot](https://redirect.github.com/dependabot)\[bot] - build(deps): bump github.com/pelletier/go-toml/v2 from 2.3.0 to 2.3.1 [`123018d`](https://redirect.github.com/gohugoio/hugo/commit/123018de) [@​dependabot](https://redirect.github.com/dependabot)\[bot] - deps: Upgrade to Chroma v2.24.1 [`b88fa8c`](https://redirect.github.com/gohugoio/hugo/commit/b88fa8cc) [@​bep](https://redirect.github.com/bep) [#​14839](https://redirect.github.com/gohugoio/hugo/issues/14839)
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- mise.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mise.toml b/mise.toml index ad08f6eec..26116f1a3 100644 --- a/mise.toml +++ b/mise.toml @@ -1,6 +1,6 @@ [tools] "go:github.com/grafana/oats" = "0.6.1" -hugo = "0.161.1" +hugo = "0.162.0" java = "temurin-25.0.3+9.0.LTS" node = "24.16.0" protoc = "35.0" From 3efad81d280d9a855cd417441d4bedf77d406dc5 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Thu, 28 May 2026 21:22:03 +0200 Subject: [PATCH 43/74] chore: add Zizmor (#2157) Signed-off-by: Gregor Zeitlinger Signed-off-by: Jay DeLuca --- .gitattributes | 3 ++ .github/config/flint.toml | 4 +- .github/renovate-tracked-deps.json | 7 +-- .github/renovate.json5 | 2 +- .../workflows/micrometer-compatibility.yml | 10 ++--- .github/workflows/release-please.yml | 3 +- AGENTS.md | 43 ++++--------------- mise.toml | 3 +- 8 files changed, 26 insertions(+), 49 deletions(-) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..b54b74652 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +CHANGELOG.md linguist-generated +**/src/main/generated/** linguist-generated +docs/** linguist-documentation diff --git a/.github/config/flint.toml b/.github/config/flint.toml index e11556a6a..45ec061d4 100644 --- a/.github/config/flint.toml +++ b/.github/config/flint.toml @@ -1,7 +1,5 @@ [settings] -# These paths are generated, vendored, or handled by other checks. -exclude = ["CHANGELOG.md", "**/src/main/generated/**", "docs/themes/**", "mvnw", "simpleclient-archive/**"] -setup_migration_version = 2 +exclude = ["docs/themes/**", "mvnw", "simpleclient-archive/**"] [checks.renovate-deps] exclude_managers = ["github-actions", "github-runners", "maven"] diff --git a/.github/renovate-tracked-deps.json b/.github/renovate-tracked-deps.json index 41cab4338..5e402b59c 100644 --- a/.github/renovate-tracked-deps.json +++ b/.github/renovate-tracked-deps.json @@ -36,12 +36,12 @@ "mise" ] }, - ".github/workflows/micrometer-compatibility.yml": { + ".github/workflows/lint.yml": { "regex": [ "mise" ] }, - ".github/workflows/lint.yml": { + ".github/workflows/micrometer-compatibility.yml": { "regex": [ "mise" ] @@ -138,7 +138,8 @@ "shellcheck", "shfmt", "taplo", - "typos" + "typos", + "zizmor" ] }, "mvnw": { diff --git a/.github/renovate.json5 b/.github/renovate.json5 index 6628e12ed..4284ec290 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -1,6 +1,6 @@ { $schema: "https://docs.renovatebot.com/renovate-schema.json", - extends: ["config:best-practices", "config:recommended", "github>grafana/flint#v0.22.2"], + extends: ["config:best-practices", "config:recommended", "github>grafana/flint#v0.22.4"], platformCommit: "enabled", automerge: true, ignorePaths: [ diff --git a/.github/workflows/micrometer-compatibility.yml b/.github/workflows/micrometer-compatibility.yml index efd0afb41..6e0cec822 100644 --- a/.github/workflows/micrometer-compatibility.yml +++ b/.github/workflows/micrometer-compatibility.yml @@ -35,9 +35,7 @@ jobs: restore-keys: | ${{ runner.os }}-maven- - name: Run Micrometer compatibility tests - run: | - if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then - export MICROMETER_REPOSITORY="${{ github.event.inputs.micrometer-repository }}" - export MICROMETER_REF="${{ github.event.inputs.micrometer-ref }}" - fi - mise run micrometer:test + env: + MICROMETER_REPOSITORY: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.micrometer-repository || 'micrometer-metrics/micrometer' }} + MICROMETER_REF: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.micrometer-ref || 'main' }} + run: mise run micrometer:test diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index b72ee5457..edc4d177c 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -28,6 +28,7 @@ jobs: if: ${{ steps.release-please.outputs.releases_created == 'true' }} env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + TAG_NAME: ${{ steps.release-please.outputs.tag_name }} run: > gh workflow run release.yml --repo "${GITHUB_REPOSITORY}" - -f tag=${{ steps.release-please.outputs.tag_name }} + -f "tag=${TAG_NAME}" diff --git a/AGENTS.md b/AGENTS.md index f9da50dcd..24481b8e5 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -102,7 +102,15 @@ Pre-built instrumentations: - Do not prefix PR titles with `[codex]`. - Match the PR title type to the primary user-facing change. -## Linting and Validation +## Linting + +Run `mise run lint:fix` before committing changes. +If output includes `fixed`, keep those changes. +If output includes `partial` or `review`, address the remaining issues and +run `mise run lint:fix` again. + +Example output: +flint: fixed: gofmt — commit before pushing | partial: cargo-clippy **CRITICAL**: These checks MUST be run before creating any commits. CI will fail if these checks fail. @@ -117,39 +125,6 @@ commits. CI will fail if these checks fail. - Build succeeds (tests are skipped; run `mise run test` or `mise run test-all` for tests) -### Non-Java Files (Markdown, YAML, JSON, shell scripts) - -- **ALWAYS** run `mise run lint` after modifying non-Java - files (runs super-linter + link checking + BOM check) -- `mise run lint:fix` autofixes linting issues -- Super-linter will **autofix** many issues - (formatting, trailing whitespace, etc.) -- It only reports ERROR-level issues - (configured via `LOG_LEVEL=ERROR` in - `.github/super-linter.env`) -- Common issues caught: - - Lines exceeding 100 characters in Markdown files - - Missing language tags in fenced code blocks - - Table formatting issues - - YAML/JSON syntax errors - -### Running Linters - -```bash -# After modifying Java files (run BEFORE committing) -mise run build - -# After modifying non-Java files (run BEFORE committing) -mise run lint -# or to autofix: mise run lint:fix -``` - -### Before Pushing - -**ALWAYS** run `mise run lint` before pushing to verify -all lints pass. CI runs the same checks and will fail -if any lint is violated. - ## Testing - JUnit 5 (Jupiter) with `@Test` annotations diff --git a/mise.toml b/mise.toml index 26116f1a3..444e6f523 100644 --- a/mise.toml +++ b/mise.toml @@ -7,7 +7,7 @@ protoc = "35.0" # Linters actionlint = "1.7.12" -"aqua:grafana/flint" = "0.22.2" +"aqua:grafana/flint" = "0.22.4" "aqua:jonwiggins/xmloxide" = "v0.4.3" "aqua:owenlamont/ryl" = "0.10.0" biome = "2.4.12" @@ -21,6 +21,7 @@ shellcheck = "v0.11.0" shfmt = "3.13.1" taplo = "0.10.0" typos = "1.46.3" +zizmor = "1.25.2" [env] FLINT_CONFIG_DIR = ".github/config" From ee4a4ada3d77fa7a358ce0e00830ea4fb8c8dfc1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 29 May 2026 09:22:27 +0200 Subject: [PATCH 44/74] chore(deps): update grafana/tempo docker tag to v3 (#2156) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Update | Change | |---|---|---| | grafana/tempo | major | `2.10.5` → `3.0.0` | --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- examples/example-exemplars-tail-sampling/docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/example-exemplars-tail-sampling/docker-compose.yaml b/examples/example-exemplars-tail-sampling/docker-compose.yaml index 049d6ffb4..35940c485 100644 --- a/examples/example-exemplars-tail-sampling/docker-compose.yaml +++ b/examples/example-exemplars-tail-sampling/docker-compose.yaml @@ -52,7 +52,7 @@ services: - --enable-feature=native-histograms - --config.file=/prometheus.yaml tempo: - image: grafana/tempo:2.10.5@sha256:ee21727732c7a7199cb71c3eee9153bbf23f9b0b87619f0555a0cf21a67f1a33 + image: grafana/tempo:3.0.0@sha256:78439f7f7cf3c97122846c13a832e060c6c7ef67dcc814dccf0a5f3f78393a93 network_mode: host volumes: - ./config/tempo-config.yaml:/config.yaml From 7c5e9ef6d721abbfb3dc0e73f6dd2b177f4620f8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 29 May 2026 07:32:29 +0000 Subject: [PATCH 45/74] chore(deps): update prom/prometheus docker tag to v3.12.0 (#2155) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Update | Change | |---|---|---| | [prom/prometheus](https://redirect.github.com/prometheus/prometheus) | minor | `v3.11.3` → `v3.12.0` | --- ### Release Notes
prometheus/prometheus (prom/prometheus) ### [`v3.12.0`](https://redirect.github.com/prometheus/prometheus/compare/v3.11.3...v3.12.0) [Compare Source](https://redirect.github.com/prometheus/prometheus/compare/v3.11.3...v3.12.0)
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- examples/example-custom-buckets/docker-compose.yaml | 2 +- examples/example-exemplars-tail-sampling/docker-compose.yaml | 2 +- examples/example-exporter-opentelemetry/docker-compose.yaml | 2 +- examples/example-native-histogram/docker-compose.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/example-custom-buckets/docker-compose.yaml b/examples/example-custom-buckets/docker-compose.yaml index a0f984c13..2ed1e3d41 100644 --- a/examples/example-custom-buckets/docker-compose.yaml +++ b/examples/example-custom-buckets/docker-compose.yaml @@ -10,7 +10,7 @@ services: - -jar - /example-custom-buckets.jar prometheus: - image: prom/prometheus:v3.11.3@sha256:e4254400b85610324913f0dc4acf92603d9984e7519414c5a12811aa6146acc3 + image: prom/prometheus:v3.12.0@sha256:69f5241418838263316593f7274a304b095c40bcf22e57272865da91bd60a8ac network_mode: host volumes: - ./docker-compose/prometheus.yml:/prometheus.yml diff --git a/examples/example-exemplars-tail-sampling/docker-compose.yaml b/examples/example-exemplars-tail-sampling/docker-compose.yaml index 35940c485..43d71f667 100644 --- a/examples/example-exemplars-tail-sampling/docker-compose.yaml +++ b/examples/example-exemplars-tail-sampling/docker-compose.yaml @@ -43,7 +43,7 @@ services: command: - --config=file:/config.yaml prometheus: - image: prom/prometheus:v3.11.3@sha256:e4254400b85610324913f0dc4acf92603d9984e7519414c5a12811aa6146acc3 + image: prom/prometheus:v3.12.0@sha256:69f5241418838263316593f7274a304b095c40bcf22e57272865da91bd60a8ac network_mode: host volumes: - ./config/prometheus.yaml:/prometheus.yaml diff --git a/examples/example-exporter-opentelemetry/docker-compose.yaml b/examples/example-exporter-opentelemetry/docker-compose.yaml index 8ebc81fb6..3a077501b 100644 --- a/examples/example-exporter-opentelemetry/docker-compose.yaml +++ b/examples/example-exporter-opentelemetry/docker-compose.yaml @@ -20,7 +20,7 @@ services: command: - --config=file:/config.yaml prometheus: - image: prom/prometheus:v3.11.3@sha256:e4254400b85610324913f0dc4acf92603d9984e7519414c5a12811aa6146acc3 + image: prom/prometheus:v3.12.0@sha256:69f5241418838263316593f7274a304b095c40bcf22e57272865da91bd60a8ac network_mode: host volumes: - ./config/prometheus.yaml:/prometheus.yaml diff --git a/examples/example-native-histogram/docker-compose.yaml b/examples/example-native-histogram/docker-compose.yaml index 4ddc509a8..a280d013d 100644 --- a/examples/example-native-histogram/docker-compose.yaml +++ b/examples/example-native-histogram/docker-compose.yaml @@ -10,7 +10,7 @@ services: - -jar - /example-native-histogram.jar prometheus: - image: prom/prometheus:v3.11.3@sha256:e4254400b85610324913f0dc4acf92603d9984e7519414c5a12811aa6146acc3 + image: prom/prometheus:v3.12.0@sha256:69f5241418838263316593f7274a304b095c40bcf22e57272865da91bd60a8ac network_mode: host volumes: - ./docker-compose/prometheus.yml:/prometheus.yml From ec3c545c0002b56844c26d01ea2411436e2c4f81 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 29 May 2026 11:45:42 +0200 Subject: [PATCH 46/74] chore(deps): update module go:github.com/grafana/oats to v0.7.0 (#2159) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [go:github.com/grafana/oats](https://redirect.github.com/grafana/oats) | `0.6.1` → `0.7.0` | ![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgrafana%2foats/v0.7.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgrafana%2foats/v0.6.1/v0.7.0?slim=true) | --- ### Release Notes
grafana/oats (go:github.com/grafana/oats) ### [`v0.7.0`](https://redirect.github.com/grafana/oats/releases/tag/v0.7.0) [Compare Source](https://redirect.github.com/grafana/oats/compare/v0.6.1...v0.7.0) ##### Features - automate immutable binary releases ([#​314](https://redirect.github.com/grafana/oats/issues/314)) ([2eb602a](https://redirect.github.com/grafana/oats/commit/2eb602a72108b30166cebf631e74abed65e32e68)) ##### Bug Fixes - **deps:** update module github.com/onsi/gomega to v1.40.0 ([#​300](https://redirect.github.com/grafana/oats/issues/300)) ([c995bd6](https://redirect.github.com/grafana/oats/commit/c995bd61d9f5fd64a6dd5ec4d91afaeabd2e32cf)) - **deps:** update module github.com/onsi/gomega to v1.41.0 ([#​319](https://redirect.github.com/grafana/oats/issues/319)) ([419de87](https://redirect.github.com/grafana/oats/commit/419de8753399d4de9befbd19c75270239f419dd2)) - **deps:** update module go.opentelemetry.io/collector/pdata to v1.52.0 ([#​231](https://redirect.github.com/grafana/oats/issues/231)) ([f6bdcb8](https://redirect.github.com/grafana/oats/commit/f6bdcb8960ccece3e92b289f04d76ada3257c971)) - **deps:** update module go.opentelemetry.io/collector/pdata to v1.53.0 ([#​240](https://redirect.github.com/grafana/oats/issues/240)) ([d335bd1](https://redirect.github.com/grafana/oats/commit/d335bd12d905fad140d5f5e78b2ceee26023b048)) - **deps:** update module go.opentelemetry.io/collector/pdata to v1.54.0 ([#​257](https://redirect.github.com/grafana/oats/issues/257)) ([c8aa5c1](https://redirect.github.com/grafana/oats/commit/c8aa5c1a1ec57720fc376a998ed9623f81419234)) - **deps:** update module go.opentelemetry.io/collector/pdata to v1.55.0 ([#​267](https://redirect.github.com/grafana/oats/issues/267)) ([05e6a0f](https://redirect.github.com/grafana/oats/commit/05e6a0f99f870162088a635388940ef5a7fc9cad)) - **deps:** update module go.opentelemetry.io/collector/pdata to v1.56.0 ([#​276](https://redirect.github.com/grafana/oats/issues/276)) ([8f269bf](https://redirect.github.com/grafana/oats/commit/8f269bf2debf12b9109d277027cd0eb88d5f4546)) - **deps:** update module go.opentelemetry.io/collector/pdata to v1.57.0 ([#​299](https://redirect.github.com/grafana/oats/issues/299)) ([f9f2434](https://redirect.github.com/grafana/oats/commit/f9f24345d1757d15cb95a777a877f939f071d81b)) - **deps:** update module go.opentelemetry.io/collector/pdata to v1.58.0 ([#​312](https://redirect.github.com/grafana/oats/issues/312)) ([11df7da](https://redirect.github.com/grafana/oats/commit/11df7da667e57a2ed5ae82b629084aecc9a6f66e)) - **deps:** update module go.opentelemetry.io/collector/pdata to v1.59.0 ([#​322](https://redirect.github.com/grafana/oats/issues/322)) ([af98e52](https://redirect.github.com/grafana/oats/commit/af98e52a4a691ad00004834f14d89544e767d284)) - **deps:** update opentelemetry-go monorepo to v1.41.0 ([#​242](https://redirect.github.com/grafana/oats/issues/242)) ([518aefa](https://redirect.github.com/grafana/oats/commit/518aefaf1ecc1f8c1023ff0cb9f2930388d16745)) - **deps:** update opentelemetry-go monorepo to v1.42.0 ([#​248](https://redirect.github.com/grafana/oats/issues/248)) ([694d5d9](https://redirect.github.com/grafana/oats/commit/694d5d9af683ad6f04d9b0efa6dbb160ac382c01)) - **deps:** update opentelemetry-go monorepo to v1.43.0 ([#​271](https://redirect.github.com/grafana/oats/issues/271)) ([c29fad3](https://redirect.github.com/grafana/oats/commit/c29fad3c084603507bd9101382c0e04a88707737)) - reduce lychee retries to avoid compounding GitHub 429s ([#​249](https://redirect.github.com/grafana/oats/issues/249)) ([6733e94](https://redirect.github.com/grafana/oats/commit/6733e94b14ce0a9573f91621f4ffc4b0be50185d)) - **security/unknown:** update module golang.org/x/net to v0.55.0 \[security] ([#​316](https://redirect.github.com/grafana/oats/issues/316)) ([94deefc](https://redirect.github.com/grafana/oats/commit/94deefcce189977402658df107d03002ef3e8a31)) - **security/unknown:** update module golang.org/x/sys to v0.44.0 \[security] ([#​317](https://redirect.github.com/grafana/oats/issues/317)) ([f7ee633](https://redirect.github.com/grafana/oats/commit/f7ee63389458bb44a044e9721967a4ef9fd56a96))
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- mise.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mise.toml b/mise.toml index 444e6f523..f231fff53 100644 --- a/mise.toml +++ b/mise.toml @@ -1,5 +1,5 @@ [tools] -"go:github.com/grafana/oats" = "0.6.1" +"go:github.com/grafana/oats" = "0.7.0" hugo = "0.162.0" java = "temurin-25.0.3+9.0.LTS" node = "24.16.0" From 0aad7b7ada041b1a3d4f581066159d712dcece45 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Fri, 29 May 2026 14:58:32 +0200 Subject: [PATCH 47/74] chore: use protected env (#2162) Signed-off-by: Jay DeLuca --- .github/workflows/release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3d04e1174..0b4e70552 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,6 +11,7 @@ on: jobs: deploy: if: ${{ github.repository == 'prometheus/client_java' }} + environment: release runs-on: ubuntu-24.04 permissions: {} From 168911437bc50dff410475cdd1dd14be605266d7 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Fri, 29 May 2026 14:58:54 +0200 Subject: [PATCH 48/74] ci: avoid cache restore keys on pull requests (#2154) Signed-off-by: Jay DeLuca --- .github/workflows/build.yml | 2 -- .github/workflows/codeql.yml | 4 ---- .github/workflows/java-version-matrix-tests.yml | 3 --- .github/workflows/micrometer-compatibility.yml | 2 -- .github/workflows/multi-version-test.yml | 4 ---- .github/workflows/test-release-build.yml | 2 -- 6 files changed, 17 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c36fe660d..059f34103 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,7 +21,5 @@ jobs: with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven- - name: Run the Maven verify phase run: mise run ci diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index ecc673510..05b7cbaf5 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -36,10 +36,6 @@ jobs: with: path: ~/.m2/repository key: ${{ runner.os }}-maven-codeql-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven-codeql- - ${{ runner.os }}-maven- - - name: Initialize CodeQL uses: github/codeql-action/init@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4.36.0 with: diff --git a/.github/workflows/java-version-matrix-tests.yml b/.github/workflows/java-version-matrix-tests.yml index 4ca690033..83cc61d52 100644 --- a/.github/workflows/java-version-matrix-tests.yml +++ b/.github/workflows/java-version-matrix-tests.yml @@ -41,9 +41,6 @@ jobs: with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven- - - name: Build core library artifacts run: mise exec -- ./mvnw install -DskipTests -Dcoverage.skip=true -Dcheckstyle.skip=true -Dwarnings=-nowarn -pl '!integration-tests' diff --git a/.github/workflows/micrometer-compatibility.yml b/.github/workflows/micrometer-compatibility.yml index 6e0cec822..2f7cdeecf 100644 --- a/.github/workflows/micrometer-compatibility.yml +++ b/.github/workflows/micrometer-compatibility.yml @@ -32,8 +32,6 @@ jobs: with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven- - name: Run Micrometer compatibility tests env: MICROMETER_REPOSITORY: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.micrometer-repository || 'micrometer-metrics/micrometer' }} diff --git a/.github/workflows/multi-version-test.yml b/.github/workflows/multi-version-test.yml index 4e5252826..a0bfeef76 100644 --- a/.github/workflows/multi-version-test.yml +++ b/.github/workflows/multi-version-test.yml @@ -31,9 +31,5 @@ jobs: with: path: ~/.m2/repository key: ${{ runner.os }}-maven-java${{ matrix.java }}-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven-java${{ matrix.java }}- - ${{ runner.os }}-maven- - - name: Build and test on Java ${{ matrix.java }} run: ./mvnw clean install -Dtest.java.version=${{ matrix.java }} -Dcheckstyle.skip=true -Dwarnings=-nowarn -Dcoverage.skip=true diff --git a/.github/workflows/test-release-build.yml b/.github/workflows/test-release-build.yml index aaa12430a..7445bed9c 100644 --- a/.github/workflows/test-release-build.yml +++ b/.github/workflows/test-release-build.yml @@ -27,8 +27,6 @@ jobs: with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven- - name: Build GitHub Pages run: mise run build-gh-pages env: From a28fa05e224114bf8a1f2485bad7b85842daf5dd Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Sat, 30 May 2026 05:41:40 -0400 Subject: [PATCH 49/74] chore: Scope github action permissions (#2163) Signed-off-by: Jay DeLuca --- .github/workflows/generate-protobuf.yml | 40 +++++++++++++++++++++--- .github/workflows/nightly-benchmarks.yml | 34 ++++++++++++++++---- .github/workflows/pr-title.yml | 5 +-- .github/workflows/release-please.yml | 11 ++++--- .github/workflows/release.yml | 2 ++ 5 files changed, 74 insertions(+), 18 deletions(-) diff --git a/.github/workflows/generate-protobuf.yml b/.github/workflows/generate-protobuf.yml index 38853ad48..5a08fde20 100644 --- a/.github/workflows/generate-protobuf.yml +++ b/.github/workflows/generate-protobuf.yml @@ -12,13 +12,12 @@ jobs: generate: runs-on: ubuntu-24.04 permissions: - contents: write + contents: read # checkout + read-only `git fetch origin main` for the verify step steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: ref: ${{ github.ref }} - # zizmor: ignore[artipacked] -- needs credentials to push - persist-credentials: true + persist-credentials: false - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: version: v2026.5.15 @@ -45,15 +44,46 @@ jobs: fi - name: Generate protobuf sources run: mise run generate - - name: Commit and push generated sources + - name: Validate and export generated sources as a patch run: | - git diff --quiet && exit 0 UNEXPECTED=$(git diff --name-only | grep -v '\.java$' || true) if [[ -n "$UNEXPECTED" ]]; then echo "::error::Unexpected files changed:" echo "$UNEXPECTED" exit 1 fi + git diff --binary > /tmp/protobuf-sources.patch + - name: Upload generated patch + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + with: + name: protobuf-sources-patch + path: /tmp/protobuf-sources.patch + retention-days: 5 + + publish: + runs-on: ubuntu-24.04 + needs: generate + permissions: + contents: write # push regenerated sources back to the renovate branch + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + ref: ${{ github.ref }} + # zizmor: ignore[artipacked] -- needs credentials to push + persist-credentials: true + - name: Download generated patch + uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0 + with: + name: protobuf-sources-patch + path: /tmp/patch + - name: Commit and push generated sources + run: | + PATCH=/tmp/patch/protobuf-sources.patch + if [[ ! -s "$PATCH" ]]; then + echo "No generated changes to commit" + exit 0 + fi + git apply "$PATCH" # Note: GITHUB_TOKEN pushes don't trigger CI re-runs. # Close and reopen the PR to trigger CI after this commit. git config user.name "github-actions[bot]" diff --git a/.github/workflows/nightly-benchmarks.yml b/.github/workflows/nightly-benchmarks.yml index da1b1cf2e..a494f6e4d 100644 --- a/.github/workflows/nightly-benchmarks.yml +++ b/.github/workflows/nightly-benchmarks.yml @@ -25,12 +25,12 @@ jobs: benchmark: runs-on: ubuntu-24.04 permissions: - contents: write + contents: read # checkout only steps: - name: Checkout main branch uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: - persist-credentials: true + persist-credentials: false fetch-depth: 0 - name: Setup mise @@ -61,12 +61,34 @@ jobs: env: GITHUB_REPOSITORY: ${{ github.repository }} + - name: Upload benchmark results + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + with: + name: benchmark-results + path: benchmark-results + retention-days: 5 + + publish: + runs-on: ubuntu-24.04 + needs: benchmark + permissions: + contents: write # push generated results to the benchmarks branch + steps: + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + # zizmor: ignore[artipacked] -- needs credentials to push to benchmarks branch + persist-credentials: true + fetch-depth: 0 + + - name: Download benchmark results + uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0 + with: + name: benchmark-results + path: /tmp/benchmark-output + - name: Commit and push results to benchmarks branch run: | - # Save results to a temp location - mkdir -p /tmp/benchmark-output - cp -r benchmark-results/* /tmp/benchmark-output/ - git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" diff --git a/.github/workflows/pr-title.yml b/.github/workflows/pr-title.yml index 76a13e3df..5434323e0 100644 --- a/.github/workflows/pr-title.yml +++ b/.github/workflows/pr-title.yml @@ -6,12 +6,13 @@ on: types: - opened - edited -permissions: - pull-requests: read +permissions: {} jobs: lint: runs-on: ubuntu-latest + permissions: + pull-requests: read # action-semantic-pull-request reads the PR title steps: - uses: amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50 # v6.1.1 env: diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index edc4d177c..9e2b1cf62 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -6,16 +6,17 @@ on: branches: - main -permissions: - actions: write - contents: write - issues: write - pull-requests: write +permissions: {} jobs: release-please: if: ${{ github.repository == 'prometheus/client_java' }} runs-on: ubuntu-24.04 + permissions: + contents: write # release-please creates release commits, tags, and the GitHub release + pull-requests: write # release-please opens/updates the release PR + issues: write # release-please comments on/labels issues included in the release + actions: write # required to trigger release.yml via `gh workflow run` steps: - uses: googleapis/release-please-action@45996ed1f6d02564a971a2fa1b5860e934307cf7 # v5.0 id: release-please diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0b4e70552..f3fbb4186 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -8,6 +8,8 @@ on: description: "Release tag to deploy (e.g. v1.5.1)" required: true +permissions: {} + jobs: deploy: if: ${{ github.repository == 'prometheus/client_java' }} From 5b3d866ed7ca775ce39e7349c4e95dfdb15a3a24 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Jun 2026 10:07:08 +0200 Subject: [PATCH 50/74] chore(deps): update dependency hugo to v0.162.1 (#2158) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Update | Change | |---|---|---| | [hugo](https://redirect.github.com/gohugoio/hugo) | patch | `0.162.0` → `0.162.1` | --- ### Release Notes
gohugoio/hugo (hugo) ### [`v0.162.1`](https://redirect.github.com/gohugoio/hugo/releases/tag/v0.162.1) [Compare Source](https://redirect.github.com/gohugoio/hugo/compare/v0.162.0...v0.162.1) #### What's Changed - modules/npm: Fix false stale warning after npm pack [`59f35cd`](https://redirect.github.com/gohugoio/hugo/commit/59f35cd9) [@​jmooring](https://redirect.github.com/jmooring) [#​14959](https://redirect.github.com/gohugoio/hugo/issues/14959) - Revert "tpl/collections: Make dict return nil when no values are provided" [`c270975`](https://redirect.github.com/gohugoio/hugo/commit/c2709750) [@​bep](https://redirect.github.com/bep) [#​14958](https://redirect.github.com/gohugoio/hugo/issues/14958) - tpl/time: Fix locale-specific month abbreviations [`ea8b48a`](https://redirect.github.com/gohugoio/hugo/commit/ea8b48af) [@​jmooring](https://redirect.github.com/jmooring) [#​14948](https://redirect.github.com/gohugoio/hugo/issues/14948)
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- mise.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mise.toml b/mise.toml index f231fff53..5cc2616ef 100644 --- a/mise.toml +++ b/mise.toml @@ -1,6 +1,6 @@ [tools] "go:github.com/grafana/oats" = "0.7.0" -hugo = "0.162.0" +hugo = "0.162.1" java = "temurin-25.0.3+9.0.LTS" node = "24.16.0" protoc = "35.0" From 7733f21305f4f9a747be797bc6df0377644f89ac Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Jun 2026 10:08:47 +0200 Subject: [PATCH 51/74] chore(deps): update dependency mise to v2026.5.18 (#2165) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Update | Change | |---|---|---| | [mise](https://redirect.github.com/jdx/mise) | patch | `v2026.5.15` → `v2026.5.18` | --- ### Release Notes
jdx/mise (mise) ### [`v2026.5.18`](https://redirect.github.com/jdx/mise/releases/tag/v2026.5.18): : Hook script arrays and lock-identity fixes [Compare Source](https://redirect.github.com/jdx/mise/compare/v2026.5.17...v2026.5.18) A focused release that teaches hooks to accept script arrays, ships an `npm install -g mise` package, and tightens lock identity across several backends so `mise.lock` entries can no longer be reused for option combinations that resolve to a different artifact set. ##### Added - **(config)** Hooks now accept `script`/`scripts` arrays for current-shell hooks ([#​9836](https://redirect.github.com/jdx/mise/pull/9836) by [@​risu729](https://redirect.github.com/risu729)): ```toml [hooks.enter] shell = "bash" script = [ "source completions.sh", "export PROJECT_READY=1", ] ``` Note that `run` is still string-only — to spawn multiple inline commands, use a list of `{ run = "..." }` entries or one multiline `run` string. ##### Fixed - **(env)** PATH entries under mise's installs directory are now treated as mise-managed during `hook-env` reactivation, so an inactive install path like `installs/node/24/bin` inherited from a parent shell can no longer sit ahead of the active project's `installs/node/22.17.1/bin` ([#​10162](https://redirect.github.com/jdx/mise/pull/10162) by [@​risu729](https://redirect.github.com/risu729)). - **(config)** `.miserc.toml` discovery now stops at raw `MISE_CEILING_PATHS` entries (without recursing through the lazy fallback), preventing a parent `.miserc.toml` above the ceiling from injecting `MISE_ENV` ([#​10165](https://redirect.github.com/jdx/mise/pull/10165) by [@​risu729](https://redirect.github.com/risu729)). - **(task)** `mise tasks ls --json`, `tasks info --json`, and the MCP tasks resource now serialize full `run` entries — including single task refs and task groups — instead of script-only strings ([#​10163](https://redirect.github.com/jdx/mise/pull/10163) by [@​risu729](https://redirect.github.com/risu729)). - **(task)** Bump `usage-lib` to 3.4.0 and update the zsh completion to read `displayinsert` pairs from `usage complete-word`, restoring task completions after the `usage-cli` 3.4.0 output change ([#​10181](https://redirect.github.com/jdx/mise/pull/10181) by [@​jdx](https://redirect.github.com/jdx)). - **(installer)** Add the missing `warn` helper used by the standalone installer's checksum fallback paths ([#​10157](https://redirect.github.com/jdx/mise/pull/10157) by [@​risu729](https://redirect.github.com/risu729), recreating [@​olfway](https://redirect.github.com/olfway)'s original fix). ##### Lock identity A batch of fixes ensures `mise lock` selects entries by an identity that actually reflects the installed result, so toggling an option no longer silently reuses a stale lock entry: - **(conda)** Include the conda channel — the same `tool@version` resolved against `conda-forge`, `bioconda`, or a private channel can produce entirely different builds and checksums ([#​9984](https://redirect.github.com/jdx/mise/pull/9984) by [@​risu729](https://redirect.github.com/risu729)). - **(rust)** Include rustup `profile`, `components`, and `targets`, read from both tool options and `rust-toolchain.toml`, with stable sorting ([#​9988](https://redirect.github.com/jdx/mise/pull/9988) by [@​risu729](https://redirect.github.com/risu729)). - **(github)** Include target artifact selectors (`api_url`, `version_prefix`, per-platform `asset_pattern`, direct `url`, `no_app`) for GitHub, GitLab, and Forgejo backends, resolved per target platform ([#​9985](https://redirect.github.com/jdx/mise/pull/9985) by [@​risu729](https://redirect.github.com/risu729)). - **(python)** Include non-default `patch_sysconfig = false` (the interpreter tree differs after install); `virtualenv` stays out as an activation-only overlay ([#​10161](https://redirect.github.com/jdx/mise/pull/10161) by [@​risu729](https://redirect.github.com/risu729)). ##### Changed - **(npm)** mise is now published to npm under the unscoped `mise` package, so `npm install -g mise` and `npx mise` work directly. The legacy `@jdxcode/mise` scoped package continues to be published, and the new wrapper reuses the existing `@jdxcode/mise--` platform tarballs ([#​10183](https://redirect.github.com/jdx/mise/pull/10183) by [@​jdx](https://redirect.github.com/jdx)). **Full Changelog**: ##### 💚 Sponsor mise mise is built by [@​jdx](https://redirect.github.com/jdx) under [**en.dev**](https://en.dev) — an independent studio making developer tooling (mise, [aube](https://aube.en.dev/), and more). Development is funded by sponsors. If mise saves you or your team time, please consider sponsoring at [en.dev](https://en.dev). Individual and company sponsorships keep mise fast, free, and independent. ### [`v2026.5.17`](https://redirect.github.com/jdx/mise/releases/tag/v2026.5.17): : Custom aqua registry cache and Windows fixes [Compare Source](https://redirect.github.com/jdx/mise/compare/v2026.5.16...v2026.5.17) A catch-up release for the tag that shipped the compiled custom aqua registry cache, several Windows task/shim fixes, and a handful of backend install improvements. This release is backfilled without binary assets; use `v2026.5.18` or newer for downloadable artifacts. ##### Added - **(aqua)** Add a compiled custom registry cache to speed up aqua registry lookups and reduce repeated parsing work ([#​9583](https://redirect.github.com/jdx/mise/pull/9583) by [@​jdx](https://redirect.github.com/jdx)). ##### Fixed - **(upgrade)** Handle a lone `v` prefix in `--bump` latest queries ([#​10130](https://redirect.github.com/jdx/mise/pull/10130) by [@​jdx](https://redirect.github.com/jdx)). - **(env)** Force the Unix environment key to uppercase `PATH`, avoiding mixed-case path handling surprises ([#​9927](https://redirect.github.com/jdx/mise/pull/9927) by [@​jdx](https://redirect.github.com/jdx)). - **(http)** Limit fallback retries against the shared versions host ([#​10142](https://redirect.github.com/jdx/mise/pull/10142) by [@​jdx](https://redirect.github.com/jdx)). - **(bun)** Use Bun's native `windows-arm64` build for Bun 1.3.10 and newer ([#​10150](https://redirect.github.com/jdx/mise/pull/10150) by [@​M1noa](https://redirect.github.com/M1noa)). - **(task)** Honor explicit and quoted shell paths on Windows ([#​10148](https://redirect.github.com/jdx/mise/pull/10148) by [@​M1noa](https://redirect.github.com/M1noa)). - **(task)** Convert `PATH` to `/cygdrive` form for Cygwin bash tasks on Windows ([#​10147](https://redirect.github.com/jdx/mise/pull/10147) by [@​M1noa](https://redirect.github.com/M1noa)). - **(ui)** Honor color settings in interactive prompt themes ([#​10151](https://redirect.github.com/jdx/mise/pull/10151) by [@​M1noa](https://redirect.github.com/M1noa)). - **(pipx)** Upgrade the shared pip environment when using version constraints ([#​10138](https://redirect.github.com/jdx/mise/pull/10138) by [@​jdx](https://redirect.github.com/jdx)). - **(shim)** Refresh stale Windows shims after a mise version update ([#​10152](https://redirect.github.com/jdx/mise/pull/10152) by [@​M1noa](https://redirect.github.com/M1noa)). - **(completion)** Keep global `-C`/`--cd` usable in task argument completion ([#​10153](https://redirect.github.com/jdx/mise/pull/10153) by [@​M1noa](https://redirect.github.com/M1noa)). - **(github)** Handle `x86` release assets as `x64` fallbacks where upstreams publish mismatched naming ([#​10103](https://redirect.github.com/jdx/mise/pull/10103) by [@​jdx](https://redirect.github.com/jdx)). - **(github)** Strip OpenGrep platform suffixes before asset matching ([#​10166](https://redirect.github.com/jdx/mise/pull/10166) by [@​jdx](https://redirect.github.com/jdx)). - **(github)** Penalize certificate assets as metadata so they are not selected as install archives ([#​10158](https://redirect.github.com/jdx/mise/pull/10158) by [@​jdx](https://redirect.github.com/jdx)). ##### Changed - Registry: add `herdr` via `github:ogulcancelik/herdr` ([#​10154](https://redirect.github.com/jdx/mise/pull/10154) by [@​ogulcan](https://redirect.github.com/ogulcan)). - Registry: add `databricks-cli` via `aqua:databricks/cli` ([#​10072](https://redirect.github.com/jdx/mise/pull/10072) by [@​nstrug](https://redirect.github.com/nstrug)). - **(spm)** Parse SwiftPM tool options locally ([#​9959](https://redirect.github.com/jdx/mise/pull/9959) by [@​jdx](https://redirect.github.com/jdx)). ##### Documentation - Split glossary aliases into Tool Aliases and Shell Aliases ([#​9983](https://redirect.github.com/jdx/mise/pull/9983) by [@​BenjaminChr](https://redirect.github.com/BenjaminChr)). - Update the webpage tooling copy to use current tools ([#​10170](https://redirect.github.com/jdx/mise/pull/10170) by [@​jdx](https://redirect.github.com/jdx)). **Full Changelog**: ##### 💚 Sponsor mise mise is built by [@​jdx](https://redirect.github.com/jdx) under [**en.dev**](https://en.dev) — an independent studio making developer tooling (mise, [aube](https://aube.en.dev/), and more). Development is funded by sponsors. If mise saves you or your team time, please consider sponsoring at [en.dev](https://en.dev). Individual and company sponsorships keep mise fast, free, and independent. ### [`v2026.5.16`](https://redirect.github.com/jdx/mise/releases/tag/v2026.5.16): : versions-host metadata, fork-bomb fixes, and friendlier upgrades [Compare Source](https://redirect.github.com/jdx/mise/compare/v2026.5.15...v2026.5.16) ##### Added - **(github)** Use the shared `mise-versions` host for release metadata and artifact attestations before falling back to `api.github.com`, dramatically cutting anonymous GitHub API usage in CI/Docker ([#​10127](https://redirect.github.com/jdx/mise/pull/10127) by [@​jdx](https://redirect.github.com/jdx)). - **(node)** New `node.npm_shim` setting (`MISE_NODE_NPM_SHIM`) to opt out of the bundled npm wrapper, letting `corepack` manage `bin/npm` cleanly ([#​10082](https://redirect.github.com/jdx/mise/pull/10082) by [@​jjb](https://redirect.github.com/jjb)). - **(npm)** New `allow_builds` tool option for npm-backend installs that expands to `--allow-build=` for aube and pnpm, accepting a string, array, or `true` for all builds ([#​10116](https://redirect.github.com/jdx/mise/pull/10116) by [@​jdx](https://redirect.github.com/jdx)). ##### Fixed - **(backend)** Strip the system shims dir from `dependency_env` PATH to prevent npm/go shim re-entry fork-bombs in devcontainer/Docker setups using `mise install --system` ([#​10019](https://redirect.github.com/jdx/mise/pull/10019) by [@​andrewjamesbrown](https://redirect.github.com/andrewjamesbrown)). - **(backend)** Improve libc detection on musl distros so installing `gcompat` on Alpine no longer flips mise to glibc binaries ([#​10020](https://redirect.github.com/jdx/mise/pull/10020) by [@​thespags](https://redirect.github.com/thespags)). - **(aqua)** Skip in-place link creation when src and dst alias the same inode (fixes godot install on macOS/APFS) ([#​10012](https://redirect.github.com/jdx/mise/pull/10012) by [@​tvararu](https://redirect.github.com/tvararu)). - **(aqua)** Lock `github_content` packages using raw GitHub content URLs instead of archive URLs ([#​10102](https://redirect.github.com/jdx/mise/pull/10102) by [@​risu729](https://redirect.github.com/risu729)). - **(toolset)** `hook-env` and other prefer-offline flows no longer fetch remote versions to resolve concrete/`latest`/`prefix:*` specs, speeding up shells with many fuzzy tools ([#​10098](https://redirect.github.com/jdx/mise/pull/10098) by [@​jdx](https://redirect.github.com/jdx)). - **(upgrade)** Preserve installed versions still pinned by other tracked project lockfiles during upgrade cleanup ([#​10114](https://redirect.github.com/jdx/mise/pull/10114) by [@​jdx](https://redirect.github.com/jdx)). - **(upgrade)** Improve current version detection so prefix requests like `go = "1.25"` show the best matching installed version in summaries ([#​9973](https://redirect.github.com/jdx/mise/pull/9973) by [@​jdx](https://redirect.github.com/jdx)). - **(lock)** Allow `mise lock` and `mise upgrade` to refresh `mise.lock` even when `locked = true` is set ([#​10111](https://redirect.github.com/jdx/mise/pull/10111) by [@​jdx](https://redirect.github.com/jdx)). - **(install)** Reject install requests whose resolved backend is in `disable_backends`, including explicit syntax like `ubi:owner/repo` ([#​9905](https://redirect.github.com/jdx/mise/pull/9905) by [@​risu729](https://redirect.github.com/risu729)). - **(use)** Reject tool version strings that start with `-` (e.g. `mise use dummy@--version`) ([#​10113](https://redirect.github.com/jdx/mise/pull/10113) by [@​jdx](https://redirect.github.com/jdx)). - **(en)** Preserve `MISE_ENV` / `-E` profile when an activated subshell sources `mise activate` ([#​10124](https://redirect.github.com/jdx/mise/pull/10124) by [@​jdx](https://redirect.github.com/jdx)). - **(unset)** Respect `MISE_GLOBAL_CONFIG_FILE` when running `mise unset` from `$HOME`, matching `mise set`/`use` ([#​10105](https://redirect.github.com/jdx/mise/pull/10105) by [@​jdx](https://redirect.github.com/jdx)). - **(task)** Set `config_root` on tasks loaded from global config so `{{config_root}}` renders correctly ([#​10106](https://redirect.github.com/jdx/mise/pull/10106) by [@​jdx](https://redirect.github.com/jdx)). - **(task)** Render templates and expand `~/` in sandbox `allow_read` / `allow_write` paths ([#​10112](https://redirect.github.com/jdx/mise/pull/10112) by [@​jdx](https://redirect.github.com/jdx)). - **(shim)** Skip dot-prefixed (hidden) executables when generating shims ([#​10123](https://redirect.github.com/jdx/mise/pull/10123) by [@​jdx](https://redirect.github.com/jdx)). - **(pipx)** Combine `--pip-args=VALUE` into a single argv element so pipx's argparse accepts values starting with `--` ([#​10120](https://redirect.github.com/jdx/mise/pull/10120) by [@​iloveitaly](https://redirect.github.com/iloveitaly)). - **(security)** Apply `url_replacements` to the GitHub attestations API base URL ([#​9971](https://redirect.github.com/jdx/mise/pull/9971) by [@​SlaterByte](https://redirect.github.com/SlaterByte)). - Show the mise version in friendly error output ([#​10109](https://redirect.github.com/jdx/mise/pull/10109) by [@​jdx](https://redirect.github.com/jdx)). - **(copr)** Increase build timeout ([#​10071](https://redirect.github.com/jdx/mise/pull/10071) by [@​jdx](https://redirect.github.com/jdx)). ##### Performance - Cache repeated successful path canonicalization across hot PATH/shim/activation lookups ([#​10068](https://redirect.github.com/jdx/mise/pull/10068) by [@​jdx](https://redirect.github.com/jdx)). ##### Changed - Registry: use the npm backend for `npm` on Windows (aqua's standalone `npm/cli` tarball is broken on Windows) ([#​10101](https://redirect.github.com/jdx/mise/pull/10101) by [@​risu729](https://redirect.github.com/risu729)). - Registry: allow narrow dependency builds for npm-primary tools (`wrangler`, `gemini-cli`, `vercel`, `codebuff`, `jules`, `orval`, `serverless`), and drop npm fallbacks for `ast-grep`, `lefthook`, `claude`, `code` ([#​9916](https://redirect.github.com/jdx/mise/pull/9916) by [@​risu729](https://redirect.github.com/risu729)). - Registry: add `modem-dev/hunk` ([#​10051](https://redirect.github.com/jdx/mise/pull/10051) by [@​naoki-mizuno](https://redirect.github.com/naoki-mizuno)), `wacli` ([#​10043](https://redirect.github.com/jdx/mise/pull/10043) by [@​dovocoder](https://redirect.github.com/dovocoder)), `liquibase` via the github backend ([#​10052](https://redirect.github.com/jdx/mise/pull/10052) by [@​benberryallwood](https://redirect.github.com/benberryallwood)), `longbridge-terminal` ([#​10073](https://redirect.github.com/jdx/mise/pull/10073) by [@​hogan-yuan](https://redirect.github.com/hogan-yuan)), and make `aube` more resilient ([#​10092](https://redirect.github.com/jdx/mise/pull/10092) by [@​bgeron](https://redirect.github.com/bgeron), [#​10110](https://redirect.github.com/jdx/mise/pull/10110)). ##### Documentation - Fix Scoop installation section ([#​10059](https://redirect.github.com/jdx/mise/pull/10059) by [@​ofek](https://redirect.github.com/ofek)). - Clarify untrusted config behavior ([#​10097](https://redirect.github.com/jdx/mise/pull/10097) by [@​jdx](https://redirect.github.com/jdx)). - Remove outdated terraform `main.tf` reference ([#​10099](https://redirect.github.com/jdx/mise/pull/10099) by [@​risu729](https://redirect.github.com/risu729)). - Remove broken "How I Use mise" link ([#​10081](https://redirect.github.com/jdx/mise/pull/10081) by [@​HYP3R00T](https://redirect.github.com/HYP3R00T)). ##### 💚 Sponsor mise mise is built by [@​jdx](https://redirect.github.com/jdx) under [**en.dev**](https://en.dev) — an independent studio making developer tooling (mise, [aube](https://aube.en.dev/), and more). Development is funded by sponsors. If mise saves you or your team time, please consider sponsoring at [en.dev](https://en.dev). Individual and company sponsorships keep mise fast, free, and independent.
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - "before 4am on Monday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- .github/workflows/acceptance-tests.yml | 4 ++-- .github/workflows/build.yml | 4 ++-- .github/workflows/generate-protobuf.yml | 4 ++-- .github/workflows/github-pages.yaml | 4 ++-- .github/workflows/java-version-matrix-tests.yml | 4 ++-- .github/workflows/lint.yml | 4 ++-- .github/workflows/micrometer-compatibility.yml | 4 ++-- .github/workflows/native-tests.yml | 4 ++-- .github/workflows/nightly-benchmarks.yml | 4 ++-- .github/workflows/release.yml | 4 ++-- .github/workflows/test-release-build.yml | 4 ++-- 11 files changed, 22 insertions(+), 22 deletions(-) diff --git a/.github/workflows/acceptance-tests.yml b/.github/workflows/acceptance-tests.yml index 05dd3ef29..0b3194e0c 100644 --- a/.github/workflows/acceptance-tests.yml +++ b/.github/workflows/acceptance-tests.yml @@ -15,7 +15,7 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.15 - sha256: a86aa65c8ca48a548c3f9904853489383bb8cdebfd8f2cf8ddd18b675e03bbf4 + version: v2026.5.18 + sha256: cfac593469d028d7ae5fe36e37bd7c59118b5238e92d8a876209578464f24a84 - name: Run acceptance tests run: mise run acceptance-test diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 059f34103..c6be7ed7b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,8 +14,8 @@ jobs: persist-credentials: false - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.15 - sha256: a86aa65c8ca48a548c3f9904853489383bb8cdebfd8f2cf8ddd18b675e03bbf4 + version: v2026.5.18 + sha256: cfac593469d028d7ae5fe36e37bd7c59118b5238e92d8a876209578464f24a84 - name: Cache local Maven repository uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: diff --git a/.github/workflows/generate-protobuf.yml b/.github/workflows/generate-protobuf.yml index 5a08fde20..63efccce0 100644 --- a/.github/workflows/generate-protobuf.yml +++ b/.github/workflows/generate-protobuf.yml @@ -20,8 +20,8 @@ jobs: persist-credentials: false - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.15 - sha256: a86aa65c8ca48a548c3f9904853489383bb8cdebfd8f2cf8ddd18b675e03bbf4 + version: v2026.5.18 + sha256: cfac593469d028d7ae5fe36e37bd7c59118b5238e92d8a876209578464f24a84 - name: Cache local Maven repository uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: diff --git a/.github/workflows/github-pages.yaml b/.github/workflows/github-pages.yaml index a6d93c6b1..bd1b58a47 100644 --- a/.github/workflows/github-pages.yaml +++ b/.github/workflows/github-pages.yaml @@ -39,8 +39,8 @@ jobs: fetch-depth: 0 - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.15 - sha256: a86aa65c8ca48a548c3f9904853489383bb8cdebfd8f2cf8ddd18b675e03bbf4 + version: v2026.5.18 + sha256: cfac593469d028d7ae5fe36e37bd7c59118b5238e92d8a876209578464f24a84 cache: "false" - name: Setup Pages id: pages diff --git a/.github/workflows/java-version-matrix-tests.yml b/.github/workflows/java-version-matrix-tests.yml index 83cc61d52..7c2edf43a 100644 --- a/.github/workflows/java-version-matrix-tests.yml +++ b/.github/workflows/java-version-matrix-tests.yml @@ -33,8 +33,8 @@ jobs: - name: Set up mise uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.15 - sha256: a86aa65c8ca48a548c3f9904853489383bb8cdebfd8f2cf8ddd18b675e03bbf4 + version: v2026.5.18 + sha256: cfac593469d028d7ae5fe36e37bd7c59118b5238e92d8a876209578464f24a84 - name: Cache local Maven repository uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index c106a0961..0e0161674 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -23,8 +23,8 @@ jobs: - name: Setup mise uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.15 - sha256: a86aa65c8ca48a548c3f9904853489383bb8cdebfd8f2cf8ddd18b675e03bbf4 + version: v2026.5.18 + sha256: cfac593469d028d7ae5fe36e37bd7c59118b5238e92d8a876209578464f24a84 - name: Lint env: diff --git a/.github/workflows/micrometer-compatibility.yml b/.github/workflows/micrometer-compatibility.yml index 2f7cdeecf..ebbf1f10c 100644 --- a/.github/workflows/micrometer-compatibility.yml +++ b/.github/workflows/micrometer-compatibility.yml @@ -25,8 +25,8 @@ jobs: persist-credentials: false - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.15 - sha256: a86aa65c8ca48a548c3f9904853489383bb8cdebfd8f2cf8ddd18b675e03bbf4 + version: v2026.5.18 + sha256: cfac593469d028d7ae5fe36e37bd7c59118b5238e92d8a876209578464f24a84 - name: Cache local Maven repository uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: diff --git a/.github/workflows/native-tests.yml b/.github/workflows/native-tests.yml index 4c3c19ccd..81e4ed9b9 100644 --- a/.github/workflows/native-tests.yml +++ b/.github/workflows/native-tests.yml @@ -15,8 +15,8 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.15 - sha256: a86aa65c8ca48a548c3f9904853489383bb8cdebfd8f2cf8ddd18b675e03bbf4 + version: v2026.5.18 + sha256: cfac593469d028d7ae5fe36e37bd7c59118b5238e92d8a876209578464f24a84 working_directory: .mise/envs/native - name: Run native tests working-directory: .mise/envs/native diff --git a/.github/workflows/nightly-benchmarks.yml b/.github/workflows/nightly-benchmarks.yml index a494f6e4d..44377d87f 100644 --- a/.github/workflows/nightly-benchmarks.yml +++ b/.github/workflows/nightly-benchmarks.yml @@ -36,8 +36,8 @@ jobs: - name: Setup mise uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.15 - sha256: a86aa65c8ca48a548c3f9904853489383bb8cdebfd8f2cf8ddd18b675e03bbf4 + version: v2026.5.18 + sha256: cfac593469d028d7ae5fe36e37bd7c59118b5238e92d8a876209578464f24a84 - name: Cache local Maven repository uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f3fbb4186..2e0732b56 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -32,8 +32,8 @@ jobs: - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.15 - sha256: a86aa65c8ca48a548c3f9904853489383bb8cdebfd8f2cf8ddd18b675e03bbf4 + version: v2026.5.18 + sha256: cfac593469d028d7ae5fe36e37bd7c59118b5238e92d8a876209578464f24a84 cache: false - name: Build release version diff --git a/.github/workflows/test-release-build.yml b/.github/workflows/test-release-build.yml index 7445bed9c..9e88dc430 100644 --- a/.github/workflows/test-release-build.yml +++ b/.github/workflows/test-release-build.yml @@ -20,8 +20,8 @@ jobs: fetch-depth: 0 - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: - version: v2026.5.15 - sha256: a86aa65c8ca48a548c3f9904853489383bb8cdebfd8f2cf8ddd18b675e03bbf4 + version: v2026.5.18 + sha256: cfac593469d028d7ae5fe36e37bd7c59118b5238e92d8a876209578464f24a84 - name: Cache local Maven repository uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: From a8689b2310445066e67f00d304cb6e22d112ef80 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Jun 2026 11:01:23 +0200 Subject: [PATCH 52/74] chore(deps): update actions/download-artifact action to v8 (#2164) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [actions/download-artifact](https://redirect.github.com/actions/download-artifact) | action | major | `v7.0.0` → `v8.0.1` | --- ### Release Notes
actions/download-artifact (actions/download-artifact) ### [`v8.0.1`](https://redirect.github.com/actions/download-artifact/releases/tag/v8.0.1) [Compare Source](https://redirect.github.com/actions/download-artifact/compare/v8...v8.0.1) ##### What's Changed - Support for CJK characters in the artifact name by [@​danwkennedy](https://redirect.github.com/danwkennedy) in [#​471](https://redirect.github.com/actions/download-artifact/pull/471) - Add a regression test for artifact name + content-type mismatches by [@​danwkennedy](https://redirect.github.com/danwkennedy) in [#​472](https://redirect.github.com/actions/download-artifact/pull/472) **Full Changelog**: ### [`v8.0.0`](https://redirect.github.com/actions/download-artifact/releases/tag/v8.0.0) [Compare Source](https://redirect.github.com/actions/download-artifact/compare/v8...v8) ##### v8 - What's new ##### Direct downloads To support direct uploads in `actions/upload-artifact`, the action will no longer attempt to unzip all downloaded files. Instead, the action checks the `Content-Type` header ahead of unzipping and skips non-zipped files. Callers wishing to download a zipped file as-is can also set the new `skip-decompress` parameter to `false`. ##### Enforced checks (breaking) A previous release introduced digest checks on the download. If a download hash didn't match the expected hash from the server, the action would log a warning. Callers can now configure the behavior on mismatch with the `digest-mismatch` parameter. To be secure by default, we are now defaulting the behavior to `error` which will fail the workflow run. ##### ESM To support new versions of the @​actions/\* packages, we've upgraded the package to ESM. ##### What's Changed - Don't attempt to un-zip non-zipped downloads by [@​danwkennedy](https://redirect.github.com/danwkennedy) in [#​460](https://redirect.github.com/actions/download-artifact/pull/460) - Add a setting to specify what to do on hash mismatch and default it to `error` by [@​danwkennedy](https://redirect.github.com/danwkennedy) in [#​461](https://redirect.github.com/actions/download-artifact/pull/461) **Full Changelog**: ### [`v8`](https://redirect.github.com/actions/download-artifact/compare/v7...v8) [Compare Source](https://redirect.github.com/actions/download-artifact/compare/v7.0.0...v8)
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- .github/workflows/generate-protobuf.yml | 2 +- .github/workflows/nightly-benchmarks.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/generate-protobuf.yml b/.github/workflows/generate-protobuf.yml index 63efccce0..e096b5881 100644 --- a/.github/workflows/generate-protobuf.yml +++ b/.github/workflows/generate-protobuf.yml @@ -72,7 +72,7 @@ jobs: # zizmor: ignore[artipacked] -- needs credentials to push persist-credentials: true - name: Download generated patch - uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: protobuf-sources-patch path: /tmp/patch diff --git a/.github/workflows/nightly-benchmarks.yml b/.github/workflows/nightly-benchmarks.yml index 44377d87f..a5d877024 100644 --- a/.github/workflows/nightly-benchmarks.yml +++ b/.github/workflows/nightly-benchmarks.yml @@ -82,7 +82,7 @@ jobs: fetch-depth: 0 - name: Download benchmark results - uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: benchmark-results path: /tmp/benchmark-output From c51298eddea431edde73b155038ecfdec1c67ab2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 1 Jun 2026 13:38:52 +0000 Subject: [PATCH 53/74] chore(deps): update linters (#2166) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Update | Change | Pending | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---|---|---| | [aqua:owenlamont/ryl](https://redirect.github.com/owenlamont/ryl) | minor | `0.10.0` → `0.11.0` | | ![age](https://developer.mend.io/api/mc/badges/age/github-tags/owenlamont%2fryl/0.11.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/github-tags/owenlamont%2fryl/0.10.0/0.11.0?slim=true) | | [biome](https://redirect.github.com/biomejs/biome) | patch | `2.4.12` → `2.4.16` | | ![age](https://developer.mend.io/api/mc/badges/age/github-tags/biomejs%2fbiome/2.4.16?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/github-tags/biomejs%2fbiome/2.4.12/2.4.16?slim=true) | | [npm:renovate](https://renovatebot.com) ([source](https://redirect.github.com/renovatebot/renovate)) | minor | `43.150.0` → `43.202.1` | `43.205.3` (+6) | ![age](https://developer.mend.io/api/mc/badges/age/npm/renovate/43.202.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/renovate/43.150.0/43.202.1?slim=true) | | [ruff](https://redirect.github.com/astral-sh/ruff) | patch | `0.15.14` → `0.15.15` | | ![age](https://developer.mend.io/api/mc/badges/age/github-releases/astral-sh%2fruff/0.15.15?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/github-releases/astral-sh%2fruff/0.15.14/0.15.15?slim=true) | | [rumdl](https://redirect.github.com/rvben/rumdl) | patch | `0.2.0` → `0.2.4` | | ![age](https://developer.mend.io/api/mc/badges/age/github-releases/rvben%2frumdl/v0.2.4?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/github-releases/rvben%2frumdl/v0.2.0/v0.2.4?slim=true) | | [typos](https://redirect.github.com/crate-ci/typos) | minor | `1.46.3` → `1.47.0` | | ![age](https://developer.mend.io/api/mc/badges/age/github-releases/crate-ci%2ftypos/1.47.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/github-releases/crate-ci%2ftypos/1.46.3/1.47.0?slim=true) | --- ### Release Notes
owenlamont/ryl (aqua:owenlamont/ryl) ### [`v0.11.0`](https://redirect.github.com/owenlamont/ryl/releases/tag/v0.11.0) [Compare Source](https://redirect.github.com/owenlamont/ryl/compare/v0.10.2...v0.11.0) #### ⚠️ Breaking changes (0.10.2 → 0.11.0) This release is not purely additive. Before upgrading: 1. **TOML `yaml-files` is rejected** — use `[files].yaml` instead. A `ryl.toml` / `.ryl.toml` / `[tool.ryl]` that sets `yaml-files = [...]` now fails with exit 2 (`yaml-files is not valid in TOML; use [files] with yaml = [...]`). YAML (`.yamllint`) configs are unaffected, and `ryl --migrate-configs` converts it for you. 2. **A file matching no source kind is now an error (exit 2), not a silent skip.** This applies both to files passed explicitly (e.g. `ryl README.md`, `ryl $(git diff --name-only)`) and to `ryl - --stdin-filename `. Plain `ryl -` and the `types: [yaml]` pre-commit hook are unaffected. 3. **Multibyte column fix** — `commas` / `colons` / `braces` / `brackets` now report character-based columns. No diagnostics are added or removed, but the reported `col` can shift on lines containing multibyte characters. 4. **Inline disable directives are now strictly yamllint-conformant.** Malformed `# yamllint disable…` comments (extra spaces after `#`, a missing `rule:` prefix, or trailing tokens) are treated as plain comments and no longer suppress diagnostics, matching yamllint exactly. New, opt-in and non-breaking: YAML-in-Markdown linting (`[files].markdown` or the `--markdown` flag) and a preferred `# ryl …` spelling for inline directives (`# yamllint …` still works as a compatibility alias). *** #### What's Changed - Lint YAML embedded in Markdown; add `[files]` source-kind config (closes [#​222](https://redirect.github.com/owenlamont/ryl/issues/222)) by [@​owenlamont](https://redirect.github.com/owenlamont) in [#​237](https://redirect.github.com/owenlamont/ryl/pull/237) - Property tests for rule checkers + char-column fix (closes [#​239](https://redirect.github.com/owenlamont/ryl/issues/239)) by [@​owenlamont](https://redirect.github.com/owenlamont) in [#​240](https://redirect.github.com/owenlamont/ryl/pull/240) - Markdown embedding follow-ups: `--fix` write-back + stdin + `--markdown` (closes [#​236](https://redirect.github.com/owenlamont/ryl/issues/236)) by [@​owenlamont](https://redirect.github.com/owenlamont) in [#​241](https://redirect.github.com/owenlamont/ryl/pull/241) - Support inline rule-disable directives globally (closes [#​242](https://redirect.github.com/owenlamont/ryl/issues/242)) by [@​owenlamont](https://redirect.github.com/owenlamont) in [#​243](https://redirect.github.com/owenlamont/ryl/pull/243) **Full Changelog**: ### [`v0.10.2`](https://redirect.github.com/owenlamont/ryl/releases/tag/v0.10.2) [Compare Source](https://redirect.github.com/owenlamont/ryl/compare/v0.10.1...v0.10.2) #### What's Changed - build(deps): bump taiki-e/install-action from 2.78.1 to 2.79.5 in the actions-dependencies group by [@​dependabot](https://redirect.github.com/dependabot)\[bot] in [#​233](https://redirect.github.com/owenlamont/ryl/pull/233) - Fix char-index vs byte-offset bugs across rules (closes [#​232](https://redirect.github.com/owenlamont/ryl/issues/232)) + release 0.10.2 by [@​owenlamont](https://redirect.github.com/owenlamont) in [#​234](https://redirect.github.com/owenlamont/ryl/pull/234) - Update Rust toolchain from 1.95.0 to 1.96.0 (closes [#​231](https://redirect.github.com/owenlamont/ryl/issues/231)) by [@​owenlamont](https://redirect.github.com/owenlamont) in [#​235](https://redirect.github.com/owenlamont/ryl/pull/235) **Full Changelog**: ### [`v0.10.1`](https://redirect.github.com/owenlamont/ryl/releases/tag/v0.10.1) [Compare Source](https://redirect.github.com/owenlamont/ryl/compare/v0.10.0...v0.10.1) #### What's Changed - Phase 1: migrate event-stream parser from saphyr-parser to granit-parser by [@​owenlamont](https://redirect.github.com/owenlamont) in [#​227](https://redirect.github.com/owenlamont/ryl/pull/227) - Phase 2: vendor saphyr DOM and drop saphyr dependency by [@​owenlamont](https://redirect.github.com/owenlamont) in [#​228](https://redirect.github.com/owenlamont/ryl/pull/228) - Update Rust toolchain from 1.93.1 to 1.95.0 (closes [#​229](https://redirect.github.com/owenlamont/ryl/issues/229)) by [@​owenlamont](https://redirect.github.com/owenlamont) in [#​230](https://redirect.github.com/owenlamont/ryl/pull/230) **Full Changelog**:
biomejs/biome (biome) ### [`v2.4.16`](https://redirect.github.com/biomejs/biome/compare/9dd3271eef16090416b6e77615a01e3bfbcf7993...5f4ea56b1dfb00d839af218e3c6484154073a7eb) [Compare Source](https://redirect.github.com/biomejs/biome/compare/@biomejs/biome@2.4.15...@biomejs/biome@2.4.16) ### [`v2.4.15`](https://redirect.github.com/biomejs/biome/compare/46393e0240944064eb2a33c1810fc4204ced0cf7...9dd3271eef16090416b6e77615a01e3bfbcf7993) [Compare Source](https://redirect.github.com/biomejs/biome/compare/@biomejs/biome@2.4.14...@biomejs/biome@2.4.15) ### [`v2.4.14`](https://redirect.github.com/biomejs/biome/compare/e31615035808fc71d47c3a8ebf1235005d999f78...46393e0240944064eb2a33c1810fc4204ced0cf7) [Compare Source](https://redirect.github.com/biomejs/biome/compare/@biomejs/biome@2.4.13...@biomejs/biome@2.4.14) ### [`v2.4.13`](https://redirect.github.com/biomejs/biome/compare/baaacfc4cc000070742ac54d6394ed74152a204c...e31615035808fc71d47c3a8ebf1235005d999f78) [Compare Source](https://redirect.github.com/biomejs/biome/compare/@biomejs/biome@2.4.12...@biomejs/biome@2.4.13)
renovatebot/renovate (npm:renovate) ### [`v43.202.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.202.1) [Compare Source](https://redirect.github.com/renovatebot/renovate/compare/43.202.0...43.202.1) ##### Miscellaneous Chores - **deps:** update dependency protobufjs\@​8.0.1 to v8.4.2 (main) ([#​43671](https://redirect.github.com/renovatebot/renovate/issues/43671)) ([27dd08d](https://redirect.github.com/renovatebot/renovate/commit/27dd08dc6b89b847c84c14b6f23c1098f2b6e86b)) ##### Build System - **deps:** update dependency protobufjs to v8.4.2 (main) ([#​43670](https://redirect.github.com/renovatebot/renovate/issues/43670)) ([ae1039a](https://redirect.github.com/renovatebot/renovate/commit/ae1039ad331f7c60de701398a895dfc9fc90604b)) ### [`v43.202.0`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.202.0) [Compare Source](https://redirect.github.com/renovatebot/renovate/compare/43.201.3...43.202.0) ##### Features - **deps:** update ghcr.io/renovatebot/base-image docker tag to v13.55.0 (main) ([#​43669](https://redirect.github.com/renovatebot/renovate/issues/43669)) ([f3ed6fb](https://redirect.github.com/renovatebot/renovate/commit/f3ed6fb7507f3008fe5a3e20f3e087afd7035e62)) ### [`v43.201.3`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.201.3) [Compare Source](https://redirect.github.com/renovatebot/renovate/compare/43.201.2...43.201.3) ##### Bug Fixes - **deps:** update ghcr.io/renovatebot/base-image docker tag to v13.54.2 (main) ([#​43668](https://redirect.github.com/renovatebot/renovate/issues/43668)) ([05bd161](https://redirect.github.com/renovatebot/renovate/commit/05bd161ccdddacaed4d226962261c527aec48d0d)) ### [`v43.201.2`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.201.2) [Compare Source](https://redirect.github.com/renovatebot/renovate/compare/43.201.1...43.201.2) ##### Bug Fixes - **deps:** update ghcr.io/renovatebot/base-image docker tag to v13.54.1 (main) ([#​43667](https://redirect.github.com/renovatebot/renovate/issues/43667)) ([7b74cba](https://redirect.github.com/renovatebot/renovate/commit/7b74cba8b051062c4151700dee550814921dc855)) ##### Miscellaneous Chores - **deps:** update dependency protobufjs\@​8.0.1 to v8.4.1 (main) ([#​43666](https://redirect.github.com/renovatebot/renovate/issues/43666)) ([0b6059d](https://redirect.github.com/renovatebot/renovate/commit/0b6059dc1a846b6d0e59d8360647084daa2486e3)) ### [`v43.201.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.201.1) [Compare Source](https://redirect.github.com/renovatebot/renovate/compare/43.200.1...43.201.1) ##### Miscellaneous Chores - **deps:** update dependency [@​smithy/util-stream](https://redirect.github.com/smithy/util-stream) to v4.6.4 (main) ([#​43664](https://redirect.github.com/renovatebot/renovate/issues/43664)) ([e8d3159](https://redirect.github.com/renovatebot/renovate/commit/e8d31597e3c11be52bff486cb0371f007a92a464)) ##### Build System - **deps:** update dependency protobufjs to v8.4.1 (main) ([#​43663](https://redirect.github.com/renovatebot/renovate/issues/43663)) ([779866a](https://redirect.github.com/renovatebot/renovate/commit/779866a1c4dea35a991d1225dd4af480faefb493)) ### [`v43.200.1`](https://redirect.github.com/renovatebot/renovate/releases/tag/43.200.1) [Compare Source](https://redirect.github.com/renovatebot/renovate/compare/43.150.0...43.200.1) ##### Bug Fixes - **deps): Revert "build(deps:** update dependency node to v24.16.0 (main)" ([#​43658](https://redirect.github.com/renovatebot/renovate/issues/43658)) ([249c3bf](https://redirect.github.com/renovatebot/renovate/commit/249c3bfe3be2b3df7cdc07df3064e8295b980d73)), closes [#​43527](https://redirect.github.com/renovatebot/renovate/issues/43527)
astral-sh/ruff (ruff) ### [`v0.15.15`](https://redirect.github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#01515) [Compare Source](https://redirect.github.com/astral-sh/ruff/compare/0.15.14...0.15.15) Released on 2026-05-28. ##### Preview features - Fix Markdown closing fence handling ([#​25310](https://redirect.github.com/astral-sh/ruff/pull/25310)) - \[`pyflakes`] Report duplicate imports in `typing.TYPE_CHECKING` block (`F811`) ([#​22560](https://redirect.github.com/astral-sh/ruff/pull/22560)) ##### Bug fixes - \[`pyflakes`] Treat function-scope bare annotations as locals per PEP 526 (`F821`) ([#​21540](https://redirect.github.com/astral-sh/ruff/pull/21540)) ##### Performance - Avoid redundant `TokenValue` drops in the lexer ([#​25300](https://redirect.github.com/astral-sh/ruff/pull/25300)) - Reduce memory usage by dropping token-excess capacity and improve performance by approximating the initial tokens `Vec` size ([#​25354](https://redirect.github.com/astral-sh/ruff/pull/25354)) - Use `ThinVec` in AST to shrink `Stmt` ([#​25361](https://redirect.github.com/astral-sh/ruff/pull/25361)) ##### Documentation - Fix `line-length` example for `--config` option ([#​25389](https://redirect.github.com/astral-sh/ruff/pull/25389)) - \[`flake8-comprehensions`] Document `RecursionError` edge case in `__len__` (`C416`) ([#​25286](https://redirect.github.com/astral-sh/ruff/pull/25286)) - \[`mccabe`] Improve example (`C901`) ([#​25287](https://redirect.github.com/astral-sh/ruff/pull/25287)) - \[`pyupgrade`] Clarify fix safety docs (`UP007`, `UP045`) ([#​25288](https://redirect.github.com/astral-sh/ruff/pull/25288)) - \[`refurb`] Document `FURB192` exception change for empty sequences ([#​25317](https://redirect.github.com/astral-sh/ruff/pull/25317)) - \[`ruff`] Document false negative for user-defined types (`RUF013`) ([#​25289](https://redirect.github.com/astral-sh/ruff/pull/25289)) ##### Formatter - Fix formatting of lambdas nested within f-strings ([#​25398](https://redirect.github.com/astral-sh/ruff/pull/25398)) ##### Server - Return code action for `codeAction/resolve` requests that contain no or no valid URL ([#​25365](https://redirect.github.com/astral-sh/ruff/pull/25365)) ##### Other changes - Expand semantic syntax errors for invalid walruses ([#​25415](https://redirect.github.com/astral-sh/ruff/pull/25415)) ##### Contributors - [@​chirizxc](https://redirect.github.com/chirizxc) - [@​ntBre](https://redirect.github.com/ntBre) - [@​adityasingh2400](https://redirect.github.com/adityasingh2400) - [@​charliermarsh](https://redirect.github.com/charliermarsh) - [@​fallintoplace](https://redirect.github.com/fallintoplace) - [@​martin-schlossarek](https://redirect.github.com/martin-schlossarek) - [@​MichaReiser](https://redirect.github.com/MichaReiser) - [@​Ruchir28](https://redirect.github.com/Ruchir28)
rvben/rumdl (rumdl) ### [`v0.2.4`](https://redirect.github.com/rvben/rumdl/releases/tag/v0.2.4) [Compare Source](https://redirect.github.com/rvben/rumdl/compare/v0.2.3...v0.2.4) ##### Fixed - **md060**: apply aligned-delimiter when a table auto-compacts past max-width ([663f4ba](https://redirect.github.com/rvben/rumdl/commit/663f4babbb24102bd80924c2d31c9bd7005c61e7)) - **md034**: don't flag URL arguments of MyST colon directives ([d55ed20](https://redirect.github.com/rvben/rumdl/commit/d55ed20eab6a5b7d17f53976af53c019e4d3b0c1)) - **embedded**: gate markdown code block formatting behind code-block-tools opt-in ([bd23ad1](https://redirect.github.com/rvben/rumdl/commit/bd23ad15e02499100f9d76ed24e9aae16b8750b6)) - **md046**: treat MyST directive body as directive, not indented code block ([060bae2](https://redirect.github.com/rvben/rumdl/commit/060bae2292c7e25805abc1d86de709252c607641)) #### Downloads | File | Platform | Checksum | | -------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------- | | [rumdl-v0.2.4-x86\_64-unknown-linux-gnu.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.4/rumdl-v0.2.4-x86_64-unknown-linux-gnu.tar.gz) | Linux x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.4/rumdl-v0.2.4-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.4-x86\_64-unknown-linux-musl.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.4/rumdl-v0.2.4-x86_64-unknown-linux-musl.tar.gz) | Linux x86\_64 (musl) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.4/rumdl-v0.2.4-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.4-aarch64-unknown-linux-gnu.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.4/rumdl-v0.2.4-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.4/rumdl-v0.2.4-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.4-aarch64-unknown-linux-musl.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.4/rumdl-v0.2.4-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.4/rumdl-v0.2.4-aarch64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.4-x86\_64-apple-darwin.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.4/rumdl-v0.2.4-x86_64-apple-darwin.tar.gz) | macOS x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.4/rumdl-v0.2.4-x86_64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.2.4-aarch64-apple-darwin.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.4/rumdl-v0.2.4-aarch64-apple-darwin.tar.gz) | macOS ARM64 (Apple Silicon) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.4/rumdl-v0.2.4-aarch64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.2.4-x86\_64-pc-windows-msvc.zip](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.4/rumdl-v0.2.4-x86_64-pc-windows-msvc.zip) | Windows x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.4/rumdl-v0.2.4-x86_64-pc-windows-msvc.zip.sha256) | #### Installation ##### Using uv (Recommended) ```bash uv tool install rumdl ``` ##### Using pip ```bash pip install rumdl ``` ##### Using pipx ```bash pipx install rumdl ``` ##### Direct Download Download the appropriate binary for your platform from the table above, extract it, and add it to your PATH. ### [`v0.2.3`](https://redirect.github.com/rvben/rumdl/releases/tag/v0.2.3) [Compare Source](https://redirect.github.com/rvben/rumdl/compare/v0.2.2...v0.2.3) ##### Fixed - **code-block-tools**: pipe newline-terminated content to external tools ([497d892](https://redirect.github.com/rvben/rumdl/commit/497d89227f2307cf1f29095cf9024ed2dd878f3d)) #### Downloads | File | Platform | Checksum | | -------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------- | | [rumdl-v0.2.3-x86\_64-unknown-linux-gnu.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.3/rumdl-v0.2.3-x86_64-unknown-linux-gnu.tar.gz) | Linux x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.3/rumdl-v0.2.3-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.3-x86\_64-unknown-linux-musl.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.3/rumdl-v0.2.3-x86_64-unknown-linux-musl.tar.gz) | Linux x86\_64 (musl) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.3/rumdl-v0.2.3-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.3-aarch64-unknown-linux-gnu.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.3/rumdl-v0.2.3-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.3/rumdl-v0.2.3-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.3-aarch64-unknown-linux-musl.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.3/rumdl-v0.2.3-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.3/rumdl-v0.2.3-aarch64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.3-x86\_64-apple-darwin.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.3/rumdl-v0.2.3-x86_64-apple-darwin.tar.gz) | macOS x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.3/rumdl-v0.2.3-x86_64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.2.3-aarch64-apple-darwin.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.3/rumdl-v0.2.3-aarch64-apple-darwin.tar.gz) | macOS ARM64 (Apple Silicon) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.3/rumdl-v0.2.3-aarch64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.2.3-x86\_64-pc-windows-msvc.zip](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.3/rumdl-v0.2.3-x86_64-pc-windows-msvc.zip) | Windows x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.3/rumdl-v0.2.3-x86_64-pc-windows-msvc.zip.sha256) | #### Installation ##### Using uv (Recommended) ```bash uv tool install rumdl ``` ##### Using pip ```bash pip install rumdl ``` ##### Using pipx ```bash pipx install rumdl ``` ##### Direct Download Download the appropriate binary for your platform from the table above, extract it, and add it to your PATH. ### [`v0.2.2`](https://redirect.github.com/rvben/rumdl/releases/tag/v0.2.2) [Compare Source](https://redirect.github.com/rvben/rumdl/compare/v0.2.1...v0.2.2) ##### Fixed - **md081**: treat unset and 0 as distinct emphasis thresholds ([ca992bd](https://redirect.github.com/rvben/rumdl/commit/ca992bd8fa0116024a9dd084b403df7f0edf4aa8)) #### Downloads | File | Platform | Checksum | | -------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------- | | [rumdl-v0.2.2-x86\_64-unknown-linux-gnu.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.2/rumdl-v0.2.2-x86_64-unknown-linux-gnu.tar.gz) | Linux x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.2/rumdl-v0.2.2-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.2-x86\_64-unknown-linux-musl.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.2/rumdl-v0.2.2-x86_64-unknown-linux-musl.tar.gz) | Linux x86\_64 (musl) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.2/rumdl-v0.2.2-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.2-aarch64-unknown-linux-gnu.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.2/rumdl-v0.2.2-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.2/rumdl-v0.2.2-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.2-aarch64-unknown-linux-musl.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.2/rumdl-v0.2.2-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.2/rumdl-v0.2.2-aarch64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.2-x86\_64-apple-darwin.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.2/rumdl-v0.2.2-x86_64-apple-darwin.tar.gz) | macOS x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.2/rumdl-v0.2.2-x86_64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.2.2-aarch64-apple-darwin.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.2/rumdl-v0.2.2-aarch64-apple-darwin.tar.gz) | macOS ARM64 (Apple Silicon) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.2/rumdl-v0.2.2-aarch64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.2.2-x86\_64-pc-windows-msvc.zip](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.2/rumdl-v0.2.2-x86_64-pc-windows-msvc.zip) | Windows x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.2/rumdl-v0.2.2-x86_64-pc-windows-msvc.zip.sha256) | #### Installation ##### Using uv (Recommended) ```bash uv tool install rumdl ``` ##### Using pip ```bash pip install rumdl ``` ##### Using pipx ```bash pipx install rumdl ``` ##### Direct Download Download the appropriate binary for your platform from the table above, extract it, and add it to your PATH. ### [`v0.2.1`](https://redirect.github.com/rvben/rumdl/releases/tag/v0.2.1) [Compare Source](https://redirect.github.com/rvben/rumdl/compare/v0.2.0...v0.2.1) ##### Added - **md081**: add no-excessive-emphasis rule ([7e9ac64](https://redirect.github.com/rvben/rumdl/commit/7e9ac64cab270b59b4bdaf70595fa32a28ffac32)) #### Downloads | File | Platform | Checksum | | -------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------- | | [rumdl-v0.2.1-x86\_64-unknown-linux-gnu.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.1/rumdl-v0.2.1-x86_64-unknown-linux-gnu.tar.gz) | Linux x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.1/rumdl-v0.2.1-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.1-x86\_64-unknown-linux-musl.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.1/rumdl-v0.2.1-x86_64-unknown-linux-musl.tar.gz) | Linux x86\_64 (musl) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.1/rumdl-v0.2.1-x86_64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.1-aarch64-unknown-linux-gnu.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.1/rumdl-v0.2.1-aarch64-unknown-linux-gnu.tar.gz) | Linux ARM64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.1/rumdl-v0.2.1-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [rumdl-v0.2.1-aarch64-unknown-linux-musl.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.1/rumdl-v0.2.1-aarch64-unknown-linux-musl.tar.gz) | Linux ARM64 (musl) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.1/rumdl-v0.2.1-aarch64-unknown-linux-musl.tar.gz.sha256) | | [rumdl-v0.2.1-x86\_64-apple-darwin.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.1/rumdl-v0.2.1-x86_64-apple-darwin.tar.gz) | macOS x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.1/rumdl-v0.2.1-x86_64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.2.1-aarch64-apple-darwin.tar.gz](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.1/rumdl-v0.2.1-aarch64-apple-darwin.tar.gz) | macOS ARM64 (Apple Silicon) | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.1/rumdl-v0.2.1-aarch64-apple-darwin.tar.gz.sha256) | | [rumdl-v0.2.1-x86\_64-pc-windows-msvc.zip](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.1/rumdl-v0.2.1-x86_64-pc-windows-msvc.zip) | Windows x86\_64 | [checksum](https://redirect.github.com/rvben/rumdl/releases/download/v0.2.1/rumdl-v0.2.1-x86_64-pc-windows-msvc.zip.sha256) | #### Installation ##### Using uv (Recommended) ```bash uv tool install rumdl ``` ##### Using pip ```bash pip install rumdl ``` ##### Using pipx ```bash pipx install rumdl ``` ##### Direct Download Download the appropriate binary for your platform from the table above, extract it, and add it to your PATH.
crate-ci/typos (typos) ### [`v1.47.0`](https://redirect.github.com/crate-ci/typos/blob/HEAD/CHANGELOG.md#1470---2026-05-29) [Compare Source](https://redirect.github.com/crate-ci/typos/compare/v1.46.3...v1.47.0) ##### Features - Updated the dictionary with the [May 2026](https://redirect.github.com/crate-ci/typos/issues/1545) changes
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - "before 4am on Monday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). --------- Signed-off-by: Gregor Zeitlinger Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Gregor Zeitlinger Signed-off-by: Jay DeLuca --- .github/renovate-tracked-deps.json | 2 +- mise.toml | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/renovate-tracked-deps.json b/.github/renovate-tracked-deps.json index 5e402b59c..412a82a33 100644 --- a/.github/renovate-tracked-deps.json +++ b/.github/renovate-tracked-deps.json @@ -7,7 +7,7 @@ }, "files": { ".github/renovate.json5": { - "renovate-config-presets": [ + "renovate-config": [ "grafana/flint" ] }, diff --git a/mise.toml b/mise.toml index 5cc2616ef..973ef10a8 100644 --- a/mise.toml +++ b/mise.toml @@ -3,24 +3,24 @@ hugo = "0.162.1" java = "temurin-25.0.3+9.0.LTS" node = "24.16.0" -protoc = "35.0" +protoc = "35" # Linters actionlint = "1.7.12" "aqua:grafana/flint" = "0.22.4" "aqua:jonwiggins/xmloxide" = "v0.4.3" -"aqua:owenlamont/ryl" = "0.10.0" -biome = "2.4.12" +"aqua:owenlamont/ryl" = "0.11.0" +biome = "2.4.16" editorconfig-checker = "3.7.0" google-java-format = "1.35.0" lychee = "0.24.2" -"npm:renovate" = "43.150.0" -ruff = "0.15.14" -rumdl = "0.2.0" +"npm:renovate" = "43.202.1" +ruff = "0.15.15" +rumdl = "0.2.4" shellcheck = "v0.11.0" shfmt = "3.13.1" taplo = "0.10.0" -typos = "1.46.3" +typos = "1.47.0" zizmor = "1.25.2" [env] From 6a97e41f8ecc1de6fe3d21787590291dc27d13b6 Mon Sep 17 00:00:00 2001 From: Doug Hoard Date: Mon, 1 Jun 2026 10:55:12 -0400 Subject: [PATCH 54/74] perf: Refactored sorting to use optimized sort algorithms (#2161) Refactored code to use optimized sort algorithms. Signed-off-by: dhoard Signed-off-by: Jay DeLuca --- .../snapshots/ClassicHistogramBuckets.java | 180 +++++++++++++-- .../metrics/model/snapshots/Labels.java | 206 ++++++++++++++++-- .../snapshots/NativeHistogramBuckets.java | 179 +++++++++++++-- .../model/snapshots/StateSetSnapshot.java | 178 +++++++++++++-- .../ClassicHistogramBucketsTest.java | 108 +++++++++ .../metrics/model/snapshots/LabelsTest.java | 99 +++++++++ .../snapshots/NativeHistogramBucketsTest.java | 99 +++++++++ .../model/snapshots/StateSetSnapshotTest.java | 102 +++++++++ 8 files changed, 1073 insertions(+), 78 deletions(-) diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/ClassicHistogramBuckets.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/ClassicHistogramBuckets.java index 09e75181b..c697bee39 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/ClassicHistogramBuckets.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/ClassicHistogramBuckets.java @@ -110,25 +110,16 @@ private static void sortAndValidate(double[] upperBounds, long[] counts) { validate(upperBounds, counts); } + /** + * Sorts upperBounds and counts in place using introspective quicksort. + * + *

Algorithm: 3-way quicksort with insertion sort for tiny partitions and heapsort fallback at + * the recursion depth limit. Parallel arrays are swapped in lockstep. + * + *

Complexity: O(n log n) average and worst case. + */ private static void sort(double[] upperBounds, long[] counts) { - // Bubblesort. Should be efficient here as in most cases upperBounds is already sorted. - int n = upperBounds.length; - for (int i = 0; i < n - 1; i++) { - for (int j = 0; j < n - i - 1; j++) { - if (upperBounds[j] > upperBounds[j + 1]) { - swap(j, j + 1, upperBounds, counts); - } - } - } - } - - private static void swap(int i, int j, double[] upperBounds, long[] counts) { - double tmpDouble = upperBounds[j]; - upperBounds[j] = upperBounds[i]; - upperBounds[i] = tmpDouble; - long tmpLong = counts[j]; - counts[j] = counts[i]; - counts[i] = tmpLong; + DoubleArraySorter.sort(upperBounds, counts); } private static void validate(double[] upperBounds, long[] counts) { @@ -224,4 +215,157 @@ public ClassicHistogramBuckets build() { return ClassicHistogramBuckets.of(upperBounds, counts); } } + + /** + * In-place introsort for {@code upperBounds} and parallel {@code counts}. + * + *

Uses 3-way quicksort partitioning for large ranges, insertion sort for tiny ranges, and a + * heapsort fallback at the recursion-depth limit to guarantee O(n log n) worst-case complexity. + */ + private static final class DoubleArraySorter { + + private static final int INSERTION_SORT_THRESHOLD = 24; + + private static void sort(double[] upperBounds, long[] counts) { + int right = upperBounds.length - 1; + if (right <= 0) { + return; + } + introSort(upperBounds, counts, 0, right, depthLimit(upperBounds.length)); + } + + private static void introSort( + double[] upperBounds, long[] counts, int left, int right, int depthLimit) { + while (left < right) { + if (right - left + 1 <= INSERTION_SORT_THRESHOLD) { + insertionSort(upperBounds, counts, left, right); + return; + } + if (depthLimit == 0) { + heapSort(upperBounds, counts, left, right); + return; + } + depthLimit--; + + int mid = left + ((right - left) >>> 1); + int pivotIndex = medianOf3(upperBounds, left, mid, right); + double pivot = upperBounds[pivotIndex]; + + int lt = left; + int i = left; + int gt = right; + while (i <= gt) { + int cmp = compare(upperBounds[i], pivot); + if (cmp < 0) { + swap(i, lt, upperBounds, counts); + i++; + lt++; + } else if (cmp > 0) { + swap(i, gt, upperBounds, counts); + gt--; + } else { + i++; + } + } + + if (lt - left < right - gt) { + introSort(upperBounds, counts, left, lt - 1, depthLimit); + left = gt + 1; + } else { + introSort(upperBounds, counts, gt + 1, right, depthLimit); + right = lt - 1; + } + } + } + + private static void insertionSort(double[] upperBounds, long[] counts, int left, int right) { + for (int i = left + 1; i <= right; i++) { + double upperBound = upperBounds[i]; + long count = counts[i]; + int j = i - 1; + while (j >= left && compare(upperBounds[j], upperBound) > 0) { + upperBounds[j + 1] = upperBounds[j]; + counts[j + 1] = counts[j]; + j--; + } + upperBounds[j + 1] = upperBound; + counts[j + 1] = count; + } + } + + private static void heapSort(double[] upperBounds, long[] counts, int left, int right) { + int size = right - left + 1; + for (int i = (size >>> 1) - 1; i >= 0; i--) { + siftDown(upperBounds, counts, left, i, size); + } + for (int end = size - 1; end > 0; end--) { + swap(left, left + end, upperBounds, counts); + siftDown(upperBounds, counts, left, 0, end); + } + } + + private static void siftDown( + double[] upperBounds, long[] counts, int base, int root, int size) { + while (true) { + int child = (root << 1) + 1; + if (child >= size) { + return; + } + int rightChild = child + 1; + if (rightChild < size + && compare(upperBounds[base + child], upperBounds[base + rightChild]) < 0) { + child = rightChild; + } + if (compare(upperBounds[base + root], upperBounds[base + child]) >= 0) { + return; + } + swap(base + root, base + child, upperBounds, counts); + root = child; + } + } + + private static int depthLimit(int length) { + int result = 0; + while (length > 1) { + result++; + length >>>= 1; + } + return result << 1; + } + + private static int medianOf3(double[] upperBounds, int i, int j, int k) { + if (compare(upperBounds[i], upperBounds[j]) > 0) { + int tmp = i; + i = j; + j = tmp; + } + if (compare(upperBounds[j], upperBounds[k]) > 0) { + int tmp = j; + j = k; + k = tmp; + } + if (compare(upperBounds[i], upperBounds[j]) > 0) { + int tmp = i; + i = j; + j = tmp; + } + return j; + } + + private static int compare(double a, double b) { + return Double.compare(a, b); + } + + private static void swap(int i, int j, double[] upperBounds, long[] counts) { + if (i == j) { + return; + } + double upperBound = upperBounds[i]; + upperBounds[i] = upperBounds[j]; + upperBounds[j] = upperBound; + long count = counts[i]; + counts[i] = counts[j]; + counts[j] = count; + } + } } diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Labels.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Labels.java index 31c6ab485..f395d0327 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Labels.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Labels.java @@ -177,31 +177,16 @@ private static void validateNames(String[] names, String[] prometheusNames) { } } + /** + * Sorts all three parallel arrays in place using introspective quicksort. + * + *

Algorithm: 3-way quicksort with insertion sort for tiny partitions and heapsort fallback at + * the recursion depth limit. Parallel arrays are swapped in lockstep. + * + *

Complexity: O(n log n) average and worst case. + */ private static void sort(String[] names, String[] prometheusNames, String[] values) { - // bubblesort - int n = prometheusNames.length; - for (int i = 0; i < n - 1; i++) { - for (int j = 0; j < n - i - 1; j++) { - if (prometheusNames[j].compareTo(prometheusNames[j + 1]) > 0) { - swap(j, j + 1, names, prometheusNames, values); - } - } - } - } - - private static void swap( - int i, int j, String[] names, String[] prometheusNames, String[] values) { - String tmp = names[j]; - names[j] = names[i]; - names[i] = tmp; - tmp = values[j]; - values[j] = values[i]; - values[i] = tmp; - if (prometheusNames != names) { - tmp = prometheusNames[j]; - prometheusNames[j] = prometheusNames[i]; - prometheusNames[i] = tmp; - } + StringArraySorter.sort(names, prometheusNames, values); } @Override @@ -441,4 +426,177 @@ public Labels build() { return Labels.of(names, values); } } + + /** + * In-place introsort for label arrays, keyed by {@code prometheusNames}. + * + *

Uses 3-way quicksort partitioning for large ranges, insertion sort for tiny ranges, and a + * heapsort fallback at the recursion-depth limit to guarantee O(n log n) worst-case complexity. + */ + private static final class StringArraySorter { + + private static final int INSERTION_SORT_THRESHOLD = 24; + + private static void sort(String[] names, String[] prometheusNames, String[] values) { + int right = names.length - 1; + if (right <= 0) { + return; + } + introSort(names, prometheusNames, values, 0, right, depthLimit(names.length)); + } + + private static void introSort( + String[] names, + String[] prometheusNames, + String[] values, + int left, + int right, + int depthLimit) { + while (left < right) { + if (right - left + 1 <= INSERTION_SORT_THRESHOLD) { + insertionSort(names, prometheusNames, values, left, right); + return; + } + if (depthLimit == 0) { + heapSort(names, prometheusNames, values, left, right); + return; + } + depthLimit--; + + int mid = left + ((right - left) >>> 1); + int pivotIndex = medianOf3(prometheusNames, left, mid, right); + String pivot = prometheusNames[pivotIndex]; + + int lt = left; + int i = left; + int gt = right; + while (i <= gt) { + int cmp = compare(prometheusNames[i], pivot); + if (cmp < 0) { + swap(i, lt, names, prometheusNames, values); + i++; + lt++; + } else if (cmp > 0) { + swap(i, gt, names, prometheusNames, values); + gt--; + } else { + i++; + } + } + + if (lt - left < right - gt) { + introSort(names, prometheusNames, values, left, lt - 1, depthLimit); + left = gt + 1; + } else { + introSort(names, prometheusNames, values, gt + 1, right, depthLimit); + right = lt - 1; + } + } + } + + private static void insertionSort( + String[] names, String[] prometheusNames, String[] values, int left, int right) { + for (int i = left + 1; i <= right; i++) { + String name = names[i]; + String prometheusName = prometheusNames[i]; + final String value = values[i]; + int j = i - 1; + while (j >= left && compare(prometheusNames[j], prometheusName) > 0) { + names[j + 1] = names[j]; + if (prometheusNames != names) { + prometheusNames[j + 1] = prometheusNames[j]; + } + values[j + 1] = values[j]; + j--; + } + names[j + 1] = name; + if (prometheusNames != names) { + prometheusNames[j + 1] = prometheusName; + } + values[j + 1] = value; + } + } + + private static void heapSort( + String[] names, String[] prometheusNames, String[] values, int left, int right) { + int size = right - left + 1; + for (int i = (size >>> 1) - 1; i >= 0; i--) { + siftDown(names, prometheusNames, values, left, i, size); + } + for (int end = size - 1; end > 0; end--) { + swap(left, left + end, names, prometheusNames, values); + siftDown(names, prometheusNames, values, left, 0, end); + } + } + + private static void siftDown( + String[] names, String[] prometheusNames, String[] values, int base, int root, int size) { + while (true) { + int child = (root << 1) + 1; + if (child >= size) { + return; + } + int rightChild = child + 1; + if (rightChild < size + && compare(prometheusNames[base + child], prometheusNames[base + rightChild]) < 0) { + child = rightChild; + } + if (compare(prometheusNames[base + root], prometheusNames[base + child]) >= 0) { + return; + } + swap(base + root, base + child, names, prometheusNames, values); + root = child; + } + } + + private static int depthLimit(int length) { + int result = 0; + while (length > 1) { + result++; + length >>>= 1; + } + return result << 1; + } + + private static int medianOf3(String[] values, int i, int j, int k) { + if (compare(values[i], values[j]) > 0) { + int tmp = i; + i = j; + j = tmp; + } + if (compare(values[j], values[k]) > 0) { + int tmp = j; + j = k; + k = tmp; + } + if (compare(values[i], values[j]) > 0) { + int tmp = i; + i = j; + j = tmp; + } + return j; + } + + private static int compare(String left, String right) { + return left.compareTo(right); + } + + private static void swap( + int i, int j, String[] names, String[] prometheusNames, String[] values) { + if (i == j) { + return; + } + String tmp = names[i]; + names[i] = names[j]; + names[j] = tmp; + tmp = values[i]; + values[i] = values[j]; + values[j] = tmp; + if (prometheusNames != names) { + tmp = prometheusNames[i]; + prometheusNames[i] = prometheusNames[j]; + prometheusNames[j] = tmp; + } + } + } } diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/NativeHistogramBuckets.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/NativeHistogramBuckets.java index 3b1214364..111a7d019 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/NativeHistogramBuckets.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/NativeHistogramBuckets.java @@ -107,25 +107,16 @@ private static void sortAndValidate(int[] bucketIndexes, long[] counts) { validate(bucketIndexes, counts); } + /** + * Sorts bucketIndexes and counts in place using introspective quicksort. + * + *

Algorithm: 3-way quicksort with insertion sort for tiny partitions and heapsort fallback at + * the recursion depth limit. Parallel arrays are swapped in lockstep. + * + *

Complexity: O(n log n) average and worst case. + */ private static void sort(int[] bucketIndexes, long[] counts) { - // Bubblesort. Should be efficient here as in most cases bucketIndexes is already sorted. - int n = bucketIndexes.length; - for (int i = 0; i < n - 1; i++) { - for (int j = 0; j < n - i - 1; j++) { - if (bucketIndexes[j] > bucketIndexes[j + 1]) { - swap(j, j + 1, bucketIndexes, counts); - } - } - } - } - - private static void swap(int i, int j, int[] bucketIndexes, long[] counts) { - int tmpInt = bucketIndexes[j]; - bucketIndexes[j] = bucketIndexes[i]; - bucketIndexes[i] = tmpInt; - long tmpLong = counts[j]; - counts[j] = counts[i]; - counts[i] = tmpLong; + IntArraySorter.sort(bucketIndexes, counts); } private static void validate(int[] bucketIndexes, long[] counts) { @@ -166,4 +157,156 @@ public NativeHistogramBuckets build() { return NativeHistogramBuckets.of(bucketIndexes, counts); } } + + /** + * In-place introsort for {@code bucketIndexes} and parallel {@code counts}. + * + *

Uses 3-way quicksort partitioning for large ranges, insertion sort for tiny ranges, and a + * heapsort fallback at the recursion-depth limit to guarantee O(n log n) worst-case complexity. + */ + private static final class IntArraySorter { + + private static final int INSERTION_SORT_THRESHOLD = 24; + + private static void sort(int[] bucketIndexes, long[] counts) { + int right = bucketIndexes.length - 1; + if (right <= 0) { + return; + } + introSort(bucketIndexes, counts, 0, right, depthLimit(bucketIndexes.length)); + } + + private static void introSort( + int[] bucketIndexes, long[] counts, int left, int right, int depthLimit) { + while (left < right) { + if (right - left + 1 <= INSERTION_SORT_THRESHOLD) { + insertionSort(bucketIndexes, counts, left, right); + return; + } + if (depthLimit == 0) { + heapSort(bucketIndexes, counts, left, right); + return; + } + depthLimit--; + + int mid = left + ((right - left) >>> 1); + int pivotIndex = medianOf3(bucketIndexes, left, mid, right); + int pivot = bucketIndexes[pivotIndex]; + + int lt = left; + int i = left; + int gt = right; + while (i <= gt) { + int cmp = compare(bucketIndexes[i], pivot); + if (cmp < 0) { + swap(i, lt, bucketIndexes, counts); + i++; + lt++; + } else if (cmp > 0) { + swap(i, gt, bucketIndexes, counts); + gt--; + } else { + i++; + } + } + + if (lt - left < right - gt) { + introSort(bucketIndexes, counts, left, lt - 1, depthLimit); + left = gt + 1; + } else { + introSort(bucketIndexes, counts, gt + 1, right, depthLimit); + right = lt - 1; + } + } + } + + private static void insertionSort(int[] bucketIndexes, long[] counts, int left, int right) { + for (int i = left + 1; i <= right; i++) { + int bucketIndex = bucketIndexes[i]; + long count = counts[i]; + int j = i - 1; + while (j >= left && compare(bucketIndexes[j], bucketIndex) > 0) { + bucketIndexes[j + 1] = bucketIndexes[j]; + counts[j + 1] = counts[j]; + j--; + } + bucketIndexes[j + 1] = bucketIndex; + counts[j + 1] = count; + } + } + + private static void heapSort(int[] bucketIndexes, long[] counts, int left, int right) { + int size = right - left + 1; + for (int i = (size >>> 1) - 1; i >= 0; i--) { + siftDown(bucketIndexes, counts, left, i, size); + } + for (int end = size - 1; end > 0; end--) { + swap(left, left + end, bucketIndexes, counts); + siftDown(bucketIndexes, counts, left, 0, end); + } + } + + private static void siftDown(int[] bucketIndexes, long[] counts, int base, int root, int size) { + while (true) { + int child = (root << 1) + 1; + if (child >= size) { + return; + } + int rightChild = child + 1; + if (rightChild < size + && compare(bucketIndexes[base + child], bucketIndexes[base + rightChild]) < 0) { + child = rightChild; + } + if (compare(bucketIndexes[base + root], bucketIndexes[base + child]) >= 0) { + return; + } + swap(base + root, base + child, bucketIndexes, counts); + root = child; + } + } + + private static int depthLimit(int length) { + int result = 0; + while (length > 1) { + result++; + length >>>= 1; + } + return result << 1; + } + + private static int medianOf3(int[] bucketIndexes, int i, int j, int k) { + if (compare(bucketIndexes[i], bucketIndexes[j]) > 0) { + int tmp = i; + i = j; + j = tmp; + } + if (compare(bucketIndexes[j], bucketIndexes[k]) > 0) { + int tmp = j; + j = k; + k = tmp; + } + if (compare(bucketIndexes[i], bucketIndexes[j]) > 0) { + int tmp = i; + i = j; + j = tmp; + } + return j; + } + + private static int compare(int a, int b) { + return Integer.compare(a, b); + } + + private static void swap(int i, int j, int[] bucketIndexes, long[] counts) { + if (i == j) { + return; + } + int bucketIndex = bucketIndexes[i]; + bucketIndexes[i] = bucketIndexes[j]; + bucketIndexes[j] = bucketIndex; + long count = counts[i]; + counts[i] = counts[j]; + counts[j] = count; + } + } } diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/StateSetSnapshot.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/StateSetSnapshot.java index 7ca7f36d1..4e6a99cb9 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/StateSetSnapshot.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/StateSetSnapshot.java @@ -164,25 +164,16 @@ public Stream stream() { return asList().stream(); } + /** + * Sorts names and values in place using introspective quicksort. + * + *

Algorithm: 3-way quicksort with insertion sort for tiny partitions and heapsort fallback + * at the recursion depth limit. Parallel arrays are swapped in lockstep. + * + *

Complexity: O(n log n) average and worst case. + */ private static void sort(String[] names, boolean[] values) { - // Bubblesort - int n = names.length; - for (int i = 0; i < n - 1; i++) { - for (int j = 0; j < n - i - 1; j++) { - if (names[j].compareTo(names[j + 1]) > 0) { - swap(j, j + 1, names, values); - } - } - } - } - - private static void swap(int i, int j, String[] names, boolean[] values) { - String tmpName = names[j]; - names[j] = names[i]; - names[i] = tmpName; - boolean tmpValue = values[j]; - values[j] = values[i]; - values[i] = tmpValue; + StringBooleanArraySorter.sort(names, values); } public static Builder builder() { @@ -268,4 +259,155 @@ protected Builder self() { return this; } } + + /** + * In-place introsort for state {@code names} and parallel boolean {@code values}. + * + *

Uses 3-way quicksort partitioning for large ranges, insertion sort for tiny ranges, and a + * heapsort fallback at the recursion-depth limit to guarantee O(n log n) worst-case complexity. + */ + private static final class StringBooleanArraySorter { + + private static final int INSERTION_SORT_THRESHOLD = 24; + + private static void sort(String[] names, boolean[] values) { + int right = names.length - 1; + if (right <= 0) { + return; + } + introSort(names, values, 0, right, depthLimit(names.length)); + } + + private static void introSort( + String[] names, boolean[] values, int left, int right, int depthLimit) { + while (left < right) { + if (right - left + 1 <= INSERTION_SORT_THRESHOLD) { + insertionSort(names, values, left, right); + return; + } + if (depthLimit == 0) { + heapSort(names, values, left, right); + return; + } + depthLimit--; + + int mid = left + ((right - left) >>> 1); + int pivotIndex = medianOf3(names, left, mid, right); + String pivot = names[pivotIndex]; + + int lt = left; + int i = left; + int gt = right; + while (i <= gt) { + int cmp = compare(names[i], pivot); + if (cmp < 0) { + swap(i, lt, names, values); + i++; + lt++; + } else if (cmp > 0) { + swap(i, gt, names, values); + gt--; + } else { + i++; + } + } + + if (lt - left < right - gt) { + introSort(names, values, left, lt - 1, depthLimit); + left = gt + 1; + } else { + introSort(names, values, gt + 1, right, depthLimit); + right = lt - 1; + } + } + } + + private static void insertionSort(String[] names, boolean[] values, int left, int right) { + for (int i = left + 1; i <= right; i++) { + String name = names[i]; + boolean value = values[i]; + int j = i - 1; + while (j >= left && compare(names[j], name) > 0) { + names[j + 1] = names[j]; + values[j + 1] = values[j]; + j--; + } + names[j + 1] = name; + values[j + 1] = value; + } + } + + private static void heapSort(String[] names, boolean[] values, int left, int right) { + int size = right - left + 1; + for (int i = (size >>> 1) - 1; i >= 0; i--) { + siftDown(names, values, left, i, size); + } + for (int end = size - 1; end > 0; end--) { + swap(left, left + end, names, values); + siftDown(names, values, left, 0, end); + } + } + + private static void siftDown(String[] names, boolean[] values, int base, int root, int size) { + while (true) { + int child = (root << 1) + 1; + if (child >= size) { + return; + } + int rightChild = child + 1; + if (rightChild < size && compare(names[base + child], names[base + rightChild]) < 0) { + child = rightChild; + } + if (compare(names[base + root], names[base + child]) >= 0) { + return; + } + swap(base + root, base + child, names, values); + root = child; + } + } + + private static int depthLimit(int length) { + int result = 0; + while (length > 1) { + result++; + length >>>= 1; + } + return result << 1; + } + + private static int medianOf3(String[] names, int i, int j, int k) { + if (compare(names[i], names[j]) > 0) { + int tmp = i; + i = j; + j = tmp; + } + if (compare(names[j], names[k]) > 0) { + int tmp = j; + j = k; + k = tmp; + } + if (compare(names[i], names[j]) > 0) { + int tmp = i; + i = j; + j = tmp; + } + return j; + } + + private static int compare(String left, String right) { + return left.compareTo(right); + } + + private static void swap(int i, int j, String[] names, boolean[] values) { + if (i == j) { + return; + } + String name = names[i]; + names[i] = names[j]; + names[j] = name; + boolean value = values[i]; + values[i] = values[j]; + values[j] = value; + } + } } diff --git a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/ClassicHistogramBucketsTest.java b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/ClassicHistogramBucketsTest.java index d06c2ac70..574ed0720 100644 --- a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/ClassicHistogramBucketsTest.java +++ b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/ClassicHistogramBucketsTest.java @@ -3,8 +3,11 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import java.util.HashMap; import java.util.Iterator; import java.util.List; +import java.util.Map; +import java.util.Random; import java.util.stream.Collectors; import org.junit.jupiter.api.Test; @@ -127,4 +130,109 @@ void compare() { List list = buckets.stream().collect(Collectors.toList()); assertThat(list.get(0)).isNotEqualByComparingTo(list.get(1)); } + + @Test + void testSortSmallInputMaintainsPairs() { + int size = 5; + double[] upperBounds = new double[size]; + long[] counts = new long[size]; + Map expectedCounts = new HashMap<>(); + for (int i = 0; i < size - 1; i++) { + upperBounds[i] = i + 0.5; + counts[i] = 100L + i; + expectedCounts.put(upperBounds[i], counts[i]); + } + upperBounds[size - 1] = Double.POSITIVE_INFINITY; + counts[size - 1] = 200L; + expectedCounts.put(upperBounds[size - 1], counts[size - 1]); + + Random random = new Random(10L); + for (int i = size - 1; i > 0; i--) { + int j = random.nextInt(i + 1); + double upperBound = upperBounds[i]; + upperBounds[i] = upperBounds[j]; + upperBounds[j] = upperBound; + long count = counts[i]; + counts[i] = counts[j]; + counts[j] = count; + } + + ClassicHistogramBuckets buckets = ClassicHistogramBuckets.of(upperBounds, counts); + for (int i = 1; i < buckets.size(); i++) { + assertThat(buckets.getUpperBound(i - 1)).isLessThan(buckets.getUpperBound(i)); + } + for (int i = 0; i < buckets.size(); i++) { + assertThat(buckets.getCount(i)).isEqualTo(expectedCounts.get(buckets.getUpperBound(i))); + } + } + + @Test + void testSortMediumInputMaintainsPairs() { + int size = 25; + double[] upperBounds = new double[size]; + long[] counts = new long[size]; + Map expectedCounts = new HashMap<>(); + for (int i = 0; i < size - 1; i++) { + upperBounds[i] = i + 0.125; + counts[i] = 1000L + i; + expectedCounts.put(upperBounds[i], counts[i]); + } + upperBounds[size - 1] = Double.POSITIVE_INFINITY; + counts[size - 1] = 2000L; + expectedCounts.put(upperBounds[size - 1], counts[size - 1]); + + Random random = new Random(11L); + for (int i = size - 1; i > 0; i--) { + int j = random.nextInt(i + 1); + double upperBound = upperBounds[i]; + upperBounds[i] = upperBounds[j]; + upperBounds[j] = upperBound; + long count = counts[i]; + counts[i] = counts[j]; + counts[j] = count; + } + + ClassicHistogramBuckets buckets = ClassicHistogramBuckets.of(upperBounds, counts); + for (int i = 1; i < buckets.size(); i++) { + assertThat(buckets.getUpperBound(i - 1)).isLessThan(buckets.getUpperBound(i)); + } + for (int i = 0; i < buckets.size(); i++) { + assertThat(buckets.getCount(i)).isEqualTo(expectedCounts.get(buckets.getUpperBound(i))); + } + } + + @Test + void testSortLargeInputMaintainsPairs() { + int size = 64; + double[] upperBounds = new double[size]; + long[] counts = new long[size]; + Map expectedCounts = new HashMap<>(); + for (int i = 0; i < size - 1; i++) { + upperBounds[i] = i + 0.125; + counts[i] = 1000L + i; + expectedCounts.put(upperBounds[i], counts[i]); + } + upperBounds[size - 1] = Double.POSITIVE_INFINITY; + counts[size - 1] = 2000L; + expectedCounts.put(upperBounds[size - 1], counts[size - 1]); + + Random random = new Random(1L); + for (int i = size - 1; i > 0; i--) { + int j = random.nextInt(i + 1); + double upperBound = upperBounds[i]; + upperBounds[i] = upperBounds[j]; + upperBounds[j] = upperBound; + long count = counts[i]; + counts[i] = counts[j]; + counts[j] = count; + } + + ClassicHistogramBuckets buckets = ClassicHistogramBuckets.of(upperBounds, counts); + for (int i = 1; i < buckets.size(); i++) { + assertThat(buckets.getUpperBound(i - 1)).isLessThan(buckets.getUpperBound(i)); + } + for (int i = 0; i < buckets.size(); i++) { + assertThat(buckets.getCount(i)).isEqualTo(expectedCounts.get(buckets.getUpperBound(i))); + } + } } diff --git a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/LabelsTest.java b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/LabelsTest.java index 3dc8f639f..fcc881d25 100644 --- a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/LabelsTest.java +++ b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/LabelsTest.java @@ -3,6 +3,9 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import java.util.HashMap; +import java.util.Map; +import java.util.Random; import org.assertj.core.api.IterableAssert; import org.junit.jupiter.api.Test; @@ -129,4 +132,100 @@ void testDuplicateName() { assertThatExceptionOfType(IllegalArgumentException.class) .isThrownBy(() -> Labels.of("key_one", "v1", "key.one", "v2")); } + + @Test + void testSortSmallInputMaintainsPairs() { + int size = 5; + String[] names = new String[size]; + String[] values = new String[size]; + Map expectedValues = new HashMap<>(); + for (int i = 0; i < size; i++) { + names[i] = i % 2 == 0 ? "even_" + i : "odd." + i; + values[i] = "value-" + i; + expectedValues.put(names[i], values[i]); + } + + Random random = new Random(14L); + for (int i = size - 1; i > 0; i--) { + int j = random.nextInt(i + 1); + String name = names[i]; + names[i] = names[j]; + names[j] = name; + String value = values[i]; + values[i] = values[j]; + values[j] = value; + } + + Labels labels = Labels.of(names, values); + for (int i = 1; i < labels.size(); i++) { + assertThat(labels.getPrometheusName(i - 1)).isLessThan(labels.getPrometheusName(i)); + } + for (int i = 0; i < labels.size(); i++) { + assertThat(labels.getValue(i)).isEqualTo(expectedValues.get(labels.getName(i))); + } + } + + @Test + void testSortMediumInputMaintainsPairs() { + int size = 25; + String[] names = new String[size]; + String[] values = new String[size]; + Map expectedValues = new HashMap<>(); + for (int i = 0; i < size; i++) { + names[i] = i % 2 == 0 ? "even_" + i : "odd." + i; + values[i] = "value-" + i; + expectedValues.put(names[i], values[i]); + } + + Random random = new Random(15L); + for (int i = size - 1; i > 0; i--) { + int j = random.nextInt(i + 1); + String name = names[i]; + names[i] = names[j]; + names[j] = name; + String value = values[i]; + values[i] = values[j]; + values[j] = value; + } + + Labels labels = Labels.of(names, values); + for (int i = 1; i < labels.size(); i++) { + assertThat(labels.getPrometheusName(i - 1)).isLessThan(labels.getPrometheusName(i)); + } + for (int i = 0; i < labels.size(); i++) { + assertThat(labels.getValue(i)).isEqualTo(expectedValues.get(labels.getName(i))); + } + } + + @Test + void testSortLargeInputMaintainsPairs() { + int size = 64; + String[] names = new String[size]; + String[] values = new String[size]; + Map expectedValues = new HashMap<>(); + for (int i = 0; i < size; i++) { + names[i] = i % 2 == 0 ? "even_" + i : "odd." + i; + values[i] = "value-" + i; + expectedValues.put(names[i], values[i]); + } + + Random random = new Random(3L); + for (int i = size - 1; i > 0; i--) { + int j = random.nextInt(i + 1); + String name = names[i]; + names[i] = names[j]; + names[j] = name; + String value = values[i]; + values[i] = values[j]; + values[j] = value; + } + + Labels labels = Labels.of(names, values); + for (int i = 1; i < labels.size(); i++) { + assertThat(labels.getPrometheusName(i - 1)).isLessThan(labels.getPrometheusName(i)); + } + for (int i = 0; i < labels.size(); i++) { + assertThat(labels.getValue(i)).isEqualTo(expectedValues.get(labels.getName(i))); + } + } } diff --git a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/NativeHistogramBucketsTest.java b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/NativeHistogramBucketsTest.java index ed52a7d1a..5bc19a6f5 100644 --- a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/NativeHistogramBucketsTest.java +++ b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/NativeHistogramBucketsTest.java @@ -3,7 +3,10 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import java.util.HashMap; import java.util.Iterator; +import java.util.Map; +import java.util.Random; import org.junit.jupiter.api.Test; class NativeHistogramBucketsTest { @@ -54,4 +57,100 @@ void testImmutable() { iterator.next(); assertThatExceptionOfType(UnsupportedOperationException.class).isThrownBy(iterator::remove); } + + @Test + void testSortSmallInputMaintainsPairs() { + int size = 5; + int[] bucketIndexes = new int[size]; + long[] counts = new long[size]; + Map expectedCounts = new HashMap<>(); + for (int i = 0; i < size; i++) { + bucketIndexes[i] = (i * 3) - 5; + counts[i] = 100L + i; + expectedCounts.put(bucketIndexes[i], counts[i]); + } + + Random random = new Random(12L); + for (int i = size - 1; i > 0; i--) { + int j = random.nextInt(i + 1); + int bucketIndex = bucketIndexes[i]; + bucketIndexes[i] = bucketIndexes[j]; + bucketIndexes[j] = bucketIndex; + long count = counts[i]; + counts[i] = counts[j]; + counts[j] = count; + } + + NativeHistogramBuckets buckets = NativeHistogramBuckets.of(bucketIndexes, counts); + for (int i = 1; i < buckets.size(); i++) { + assertThat(buckets.getBucketIndex(i - 1)).isLessThan(buckets.getBucketIndex(i)); + } + for (int i = 0; i < buckets.size(); i++) { + assertThat(buckets.getCount(i)).isEqualTo(expectedCounts.get(buckets.getBucketIndex(i))); + } + } + + @Test + void testSortMediumInputMaintainsPairs() { + int size = 25; + int[] bucketIndexes = new int[size]; + long[] counts = new long[size]; + Map expectedCounts = new HashMap<>(); + for (int i = 0; i < size; i++) { + bucketIndexes[i] = (i * 3) - 25; + counts[i] = 1000L + i; + expectedCounts.put(bucketIndexes[i], counts[i]); + } + + Random random = new Random(13L); + for (int i = size - 1; i > 0; i--) { + int j = random.nextInt(i + 1); + int bucketIndex = bucketIndexes[i]; + bucketIndexes[i] = bucketIndexes[j]; + bucketIndexes[j] = bucketIndex; + long count = counts[i]; + counts[i] = counts[j]; + counts[j] = count; + } + + NativeHistogramBuckets buckets = NativeHistogramBuckets.of(bucketIndexes, counts); + for (int i = 1; i < buckets.size(); i++) { + assertThat(buckets.getBucketIndex(i - 1)).isLessThan(buckets.getBucketIndex(i)); + } + for (int i = 0; i < buckets.size(); i++) { + assertThat(buckets.getCount(i)).isEqualTo(expectedCounts.get(buckets.getBucketIndex(i))); + } + } + + @Test + void testSortLargeInputMaintainsPairs() { + int size = 64; + int[] bucketIndexes = new int[size]; + long[] counts = new long[size]; + Map expectedCounts = new HashMap<>(); + for (int i = 0; i < size; i++) { + bucketIndexes[i] = (i * 3) - 50; + counts[i] = 1000L + i; + expectedCounts.put(bucketIndexes[i], counts[i]); + } + + Random random = new Random(2L); + for (int i = size - 1; i > 0; i--) { + int j = random.nextInt(i + 1); + int bucketIndex = bucketIndexes[i]; + bucketIndexes[i] = bucketIndexes[j]; + bucketIndexes[j] = bucketIndex; + long count = counts[i]; + counts[i] = counts[j]; + counts[j] = count; + } + + NativeHistogramBuckets buckets = NativeHistogramBuckets.of(bucketIndexes, counts); + for (int i = 1; i < buckets.size(); i++) { + assertThat(buckets.getBucketIndex(i - 1)).isLessThan(buckets.getBucketIndex(i)); + } + for (int i = 0; i < buckets.size(); i++) { + assertThat(buckets.getCount(i)).isEqualTo(expectedCounts.get(buckets.getBucketIndex(i))); + } + } } diff --git a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/StateSetSnapshotTest.java b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/StateSetSnapshotTest.java index 02d16e64f..57696cfd1 100644 --- a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/StateSetSnapshotTest.java +++ b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/StateSetSnapshotTest.java @@ -4,6 +4,9 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType; import java.util.Iterator; +import java.util.Map; +import java.util.Random; +import java.util.TreeMap; import java.util.concurrent.TimeUnit; import org.junit.jupiter.api.Test; @@ -167,4 +170,103 @@ void testLabelsUnique() { .build()) .build()); } + + @Test + void testSortSmallInputMaintainsPairs() { + int size = 5; + String[] names = new String[size]; + boolean[] values = new boolean[size]; + Map expectedValues = new TreeMap<>(); + for (int i = 0; i < size; i++) { + names[i] = "state_" + i; + values[i] = i % 3 == 0; + expectedValues.put(names[i], values[i]); + } + + Random random = new Random(16L); + for (int i = size - 1; i > 0; i--) { + int j = random.nextInt(i + 1); + String name = names[i]; + names[i] = names[j]; + names[j] = name; + boolean value = values[i]; + values[i] = values[j]; + values[j] = value; + } + + StateSetSnapshot.StateSetDataPointSnapshot snapshot = + new StateSetSnapshot.StateSetDataPointSnapshot(names, values, Labels.EMPTY); + for (int i = 1; i < snapshot.size(); i++) { + assertThat(snapshot.getName(i - 1)).isLessThan(snapshot.getName(i)); + } + for (int i = 0; i < snapshot.size(); i++) { + assertThat(snapshot.isTrue(i)).isEqualTo(expectedValues.get(snapshot.getName(i))); + } + } + + @Test + void testSortMediumInputMaintainsPairs() { + int size = 25; + String[] names = new String[size]; + boolean[] values = new boolean[size]; + Map expectedValues = new TreeMap<>(); + for (int i = 0; i < size; i++) { + names[i] = "state_" + i; + values[i] = i % 3 == 0; + expectedValues.put(names[i], values[i]); + } + + Random random = new Random(17L); + for (int i = size - 1; i > 0; i--) { + int j = random.nextInt(i + 1); + String name = names[i]; + names[i] = names[j]; + names[j] = name; + boolean value = values[i]; + values[i] = values[j]; + values[j] = value; + } + + StateSetSnapshot.StateSetDataPointSnapshot snapshot = + new StateSetSnapshot.StateSetDataPointSnapshot(names, values, Labels.EMPTY); + for (int i = 1; i < snapshot.size(); i++) { + assertThat(snapshot.getName(i - 1)).isLessThan(snapshot.getName(i)); + } + for (int i = 0; i < snapshot.size(); i++) { + assertThat(snapshot.isTrue(i)).isEqualTo(expectedValues.get(snapshot.getName(i))); + } + } + + @Test + void testSortLargeInputMaintainsPairs() { + int size = 64; + String[] names = new String[size]; + boolean[] values = new boolean[size]; + Map expectedValues = new TreeMap<>(); + for (int i = 0; i < size; i++) { + names[i] = "state_" + i; + values[i] = i % 3 == 0; + expectedValues.put(names[i], values[i]); + } + + Random random = new Random(4L); + for (int i = size - 1; i > 0; i--) { + int j = random.nextInt(i + 1); + String name = names[i]; + names[i] = names[j]; + names[j] = name; + boolean value = values[i]; + values[i] = values[j]; + values[j] = value; + } + + StateSetSnapshot.StateSetDataPointSnapshot snapshot = + new StateSetSnapshot.StateSetDataPointSnapshot(names, values, Labels.EMPTY); + for (int i = 1; i < snapshot.size(); i++) { + assertThat(snapshot.getName(i - 1)).isLessThan(snapshot.getName(i)); + } + for (int i = 0; i < snapshot.size(); i++) { + assertThat(snapshot.isTrue(i)).isEqualTo(expectedValues.get(snapshot.getName(i))); + } + } } From f1dc469f04187d6c0b6ba0cc9d249ad85fc26cb8 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Mon, 1 Jun 2026 18:52:12 +0200 Subject: [PATCH 55/74] feat: add typed metric family descriptors (#2114) Adds typed metric family descriptors and typed metadata support for the model snapshots. This is the typed-descriptor branch for downstreams that want to provide registration-time metadata explicitly. The #1800 Collector/MultiCollector registration metadata hooks are already optional via default methods, so unmodified downstreams should not need this PR just to keep working. This PR now also deprecates the fragmented registration metadata API (`getPrometheusName()`, `getMetricType()`, `getLabelNames()`, and `getMetadata()` plus the `MultiCollector` variants) in favor of `getMetricFamilyDescriptor()` / `getMetricFamilyDescriptors()`. The deprecated methods remain bridged by default implementations for compatibility. Related validation: - #2121 validates unmodified Micrometer independently of #2114, against `main` + #2124. - #2123 validates a Micrometer branch that explicitly uses `MetricFamilyDescriptor` to implement the existing registration metadata hooks without invoking scrape/sample callbacks during registration. --------- Signed-off-by: Gregor Zeitlinger Signed-off-by: Jay DeLuca --- .../multitarget/SampleMultiCollector.java | 5 + .../metrics/core/metrics/Counter.java | 7 +- .../core/metrics/CounterWithCallback.java | 7 +- .../metrics/core/metrics/Gauge.java | 7 +- .../core/metrics/GaugeWithCallback.java | 7 +- .../metrics/core/metrics/Histogram.java | 7 +- .../prometheus/metrics/core/metrics/Info.java | 13 +- .../core/metrics/MetricWithFixedMetadata.java | 34 +- .../metrics/core/metrics/StateSet.java | 9 +- .../metrics/core/metrics/StatefulMetric.java | 6 +- .../metrics/core/metrics/Summary.java | 7 +- .../core/metrics/SummaryWithCallback.java | 7 +- .../metrics/MetricWithFixedMetadataTest.java | 75 +++++ .../DuplicateNamesProtobufTest.java | 2 +- .../PrometheusTextFormatWriter.java | 3 + .../DuplicateNamesExpositionTest.java | 1 + .../caffeine/CacheMetricsCollector.java | 7 + .../caffeine/CacheMetricsCollectorTest.java | 2 +- .../guava/CacheMetricsCollector.java | 5 + .../guava/CacheMetricsCollectorTest.java | 1 + .../metrics/model/registry/Collector.java | 38 +++ .../model/registry/MultiCollector.java | 41 +++ .../model/registry/PrometheusRegistry.java | 91 +++--- .../model/snapshots/CounterSnapshot.java | 8 + .../metrics/model/snapshots/InfoSnapshot.java | 8 + .../snapshots/MetricFamilyDescriptor.java | 291 ++++++++++++++++++ .../snapshots/MetricMetadataSupport.java | 52 ++++ .../model/snapshots/MetricSnapshot.java | 8 +- .../MultiCollectorNameFilterTest.java | 1 + ...etryExporterRegistryCompatibilityTest.java | 1 + .../registry/PrometheusRegistryTest.java | 79 ++++- .../model/snapshots/CounterSnapshotTest.java | 16 +- .../model/snapshots/GaugeSnapshotTest.java | 6 +- .../model/snapshots/InfoSnapshotTest.java | 8 +- .../snapshots/MetricFamilyDescriptorTest.java | 149 +++++++++ .../model/snapshots/SnapshotTestUtil.java | 7 + 36 files changed, 950 insertions(+), 66 deletions(-) create mode 100644 prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/MetricWithFixedMetadataTest.java create mode 100644 prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/MetricFamilyDescriptor.java create mode 100644 prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/MetricMetadataSupport.java create mode 100644 prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/MetricFamilyDescriptorTest.java diff --git a/examples/example-exporter-multi-target/src/main/java/io/prometheus/metrics/examples/multitarget/SampleMultiCollector.java b/examples/example-exporter-multi-target/src/main/java/io/prometheus/metrics/examples/multitarget/SampleMultiCollector.java index 207c024a5..72e2b28ad 100644 --- a/examples/example-exporter-multi-target/src/main/java/io/prometheus/metrics/examples/multitarget/SampleMultiCollector.java +++ b/examples/example-exporter-multi-target/src/main/java/io/prometheus/metrics/examples/multitarget/SampleMultiCollector.java @@ -77,7 +77,12 @@ protected MetricSnapshots collectMetricSnapshots(PrometheusScrapeRequest scrapeR return new MetricSnapshots(snaps); } + /** + * @deprecated Use {@code getMetricFamilyDescriptors()} instead. + */ @Override + @Deprecated + @SuppressWarnings("InlineMeSuggester") public List getPrometheusNames() { List names = new ArrayList(); names.add("x_calls_total"); diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Counter.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Counter.java index 9db1d1d36..fa0a1ee49 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Counter.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Counter.java @@ -93,10 +93,15 @@ protected CounterSnapshot collect(List labels, List metricDat for (int i = 0; i < labels.size(); i++) { data.add(metricData.get(i).collect(labels.get(i))); } - return new CounterSnapshot(getMetadata(), data); + return new CounterSnapshot(metadata, data); } + /** + * @deprecated Use {@link #getMetricFamilyDescriptor()} instead. + */ @Override + @Deprecated + @SuppressWarnings("InlineMeSuggester") public MetricType getMetricType() { return MetricType.COUNTER; } diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/CounterWithCallback.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/CounterWithCallback.java index 3a818c004..de2e41174 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/CounterWithCallback.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/CounterWithCallback.java @@ -48,10 +48,15 @@ public CounterSnapshot collect() { new CounterSnapshot.CounterDataPointSnapshot( value, makeLabels(labelValues), null, 0L)); }); - return new CounterSnapshot(getMetadata(), dataPoints); + return new CounterSnapshot(metadata, dataPoints); } + /** + * @deprecated Use {@link #getMetricFamilyDescriptor()} instead. + */ @Override + @Deprecated + @SuppressWarnings("InlineMeSuggester") public MetricType getMetricType() { return MetricType.COUNTER; } diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Gauge.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Gauge.java index 4c3742de6..593136afd 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Gauge.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Gauge.java @@ -95,10 +95,15 @@ protected GaugeSnapshot collect(List labels, List metricData) for (int i = 0; i < labels.size(); i++) { dataPointSnapshots.add(metricData.get(i).collect(labels.get(i))); } - return new GaugeSnapshot(getMetadata(), dataPointSnapshots); + return new GaugeSnapshot(metadata, dataPointSnapshots); } + /** + * @deprecated Use {@link #getMetricFamilyDescriptor()} instead. + */ @Override + @Deprecated + @SuppressWarnings("InlineMeSuggester") public MetricType getMetricType() { return MetricType.GAUGE; } diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/GaugeWithCallback.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/GaugeWithCallback.java index 88aee225f..3b26cb520 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/GaugeWithCallback.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/GaugeWithCallback.java @@ -52,10 +52,15 @@ public GaugeSnapshot collect() { dataPoints.add( new GaugeSnapshot.GaugeDataPointSnapshot(value, makeLabels(labelValues), null, 0L)); }); - return new GaugeSnapshot(getMetadata(), dataPoints); + return new GaugeSnapshot(metadata, dataPoints); } + /** + * @deprecated Use {@link #getMetricFamilyDescriptor()} instead. + */ @Override + @Deprecated + @SuppressWarnings("InlineMeSuggester") public MetricType getMetricType() { return MetricType.GAUGE; } diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Histogram.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Histogram.java index ef1bda45d..12bc441f9 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Histogram.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Histogram.java @@ -650,10 +650,15 @@ protected HistogramSnapshot collect(List labels, List metricD for (int i = 0; i < labels.size(); i++) { data.add(metricData.get(i).collect(labels.get(i))); } - return new HistogramSnapshot(getMetadata(), data); + return new HistogramSnapshot(metadata, data); } + /** + * @deprecated Use {@link #getMetricFamilyDescriptor()} instead. + */ @Override + @Deprecated + @SuppressWarnings("InlineMeSuggester") public MetricType getMetricType() { return MetricType.HISTOGRAM; } diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Info.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Info.java index e782c9156..1aab04054 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Info.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Info.java @@ -48,7 +48,7 @@ public void setLabelValues(String... labelValues) { throw new IllegalArgumentException( getClass().getSimpleName() + " " - + getMetadata().getName() + + metadata.getName() + " was created with " + labelNames.length + " label names, but you called setLabelValues() with " @@ -66,7 +66,7 @@ public void addLabelValues(String... labelValues) { throw new IllegalArgumentException( getClass().getSimpleName() + " " - + getMetadata().getName() + + metadata.getName() + " was created with " + labelNames.length + " label names, but you called addLabelValues() with " @@ -82,7 +82,7 @@ public void remove(String... labelValues) { throw new IllegalArgumentException( getClass().getSimpleName() + " " - + getMetadata().getName() + + metadata.getName() + " was created with " + labelNames.length + " label names, but you called remove() with " @@ -103,10 +103,15 @@ public InfoSnapshot collect() { data.add(new InfoSnapshot.InfoDataPointSnapshot(label.merge(constLabels))); } } - return new InfoSnapshot(getMetadata(), data); + return new InfoSnapshot(metadata, data); } + /** + * @deprecated Use {@link #getMetricFamilyDescriptor()} instead. + */ @Override + @Deprecated + @SuppressWarnings("InlineMeSuggester") public MetricType getMetricType() { return MetricType.INFO; } diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/MetricWithFixedMetadata.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/MetricWithFixedMetadata.java index 1b63004d8..7cbbaaed6 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/MetricWithFixedMetadata.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/MetricWithFixedMetadata.java @@ -1,8 +1,10 @@ package io.prometheus.metrics.core.metrics; import io.prometheus.metrics.config.PrometheusProperties; +import io.prometheus.metrics.model.registry.MetricType; import io.prometheus.metrics.model.snapshots.Label; import io.prometheus.metrics.model.snapshots.Labels; +import io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor; import io.prometheus.metrics.model.snapshots.MetricMetadata; import io.prometheus.metrics.model.snapshots.PrometheusNaming; import io.prometheus.metrics.model.snapshots.Unit; @@ -20,7 +22,7 @@ */ public abstract class MetricWithFixedMetadata extends Metric { - private final MetricMetadata metadata; + protected final MetricMetadata metadata; protected final String[] labelNames; protected MetricWithFixedMetadata(Builder builder) { @@ -37,6 +39,22 @@ protected MetricWithFixedMetadata(Builder builder) { } @Override + @Nullable + @SuppressWarnings("deprecation") + public MetricFamilyDescriptor getMetricFamilyDescriptor() { + MetricType metricType = getMetricType(); + if (metricType == null) { + return null; + } + return MetricFamilyDescriptor.of(metricType, metadata, getPrometheusLabels()); + } + + /** + * @deprecated Use {@link #getMetricFamilyDescriptor()} instead. + */ + @Override + @Deprecated + @SuppressWarnings("InlineMeSuggester") public MetricMetadata getMetadata() { return metadata; } @@ -65,13 +83,27 @@ private String makeExpositionBaseName(@Nullable String expositionBaseName, @Null return expositionBaseName; } + /** + * @deprecated Use {@link #getMetricFamilyDescriptor()} instead. + */ @Override + @Deprecated + @SuppressWarnings("InlineMeSuggester") public String getPrometheusName() { return metadata.getPrometheusName(); } + /** + * @deprecated Use {@link #getMetricFamilyDescriptor()} instead. + */ @Override + @Deprecated + @SuppressWarnings("InlineMeSuggester") public Set getLabelNames() { + return getPrometheusLabels(); + } + + private Set getPrometheusLabels() { Set names = new HashSet<>(); for (String labelName : labelNames) { names.add(PrometheusNaming.prometheusName(labelName)); diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StateSet.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StateSet.java index 740183f31..2ad314ee7 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StateSet.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StateSet.java @@ -60,7 +60,7 @@ private StateSet(Builder builder, String[] names) { super(builder); this.names = names; for (String name : names) { - if (this.getMetadata().getPrometheusName().equals(prometheusName(name))) { + if (metadata.getPrometheusName().equals(prometheusName(name))) { throw new IllegalArgumentException( "Label name " + name @@ -82,10 +82,15 @@ protected StateSetSnapshot collect(List labels, List metricDa new StateSetSnapshot.StateSetDataPointSnapshot( names, metricDataList.get(i).values, labels.get(i))); } - return new StateSetSnapshot(getMetadata(), data); + return new StateSetSnapshot(metadata, data); } + /** + * @deprecated Use {@link #getMetricFamilyDescriptor()} instead. + */ @Override + @Deprecated + @SuppressWarnings("InlineMeSuggester") public MetricType getMetricType() { return MetricType.STATESET; } diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StatefulMetric.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StatefulMetric.java index 9fcf33ca4..9e14f7c2d 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StatefulMetric.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StatefulMetric.java @@ -106,7 +106,7 @@ public D labelValues(String... labelValues) { throw new IllegalArgumentException( getClass().getSimpleName() + " " - + getMetadata().getName() + + metadata.getName() + " was created with label names, so you must call labelValues(...)" + " when using it."); } else { @@ -121,7 +121,7 @@ public D labelValues(String... labelValues) { if (l.get(i) == null) { throw new IllegalArgumentException( "null label value for metric " - + getMetadata().getName() + + metadata.getName() + " and label " + labelNames[i]); } @@ -172,7 +172,7 @@ protected MetricsProperties[] getMetricProperties( if (Objects.equals(builder.exemplarsEnabled, false)) { properties.add(MetricsProperties.builder().exemplarsEnabled(false).build()); } - String metricName = getMetadata().getName(); + String metricName = metadata.getName(); if (prometheusProperties.getMetricProperties(metricName) != null) { properties.add(prometheusProperties.getMetricProperties(metricName)); } diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Summary.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Summary.java index 292ac5b18..a37162c61 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Summary.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Summary.java @@ -119,10 +119,15 @@ protected SummarySnapshot collect(List labels, List metricDat for (int i = 0; i < labels.size(); i++) { data.add(metricData.get(i).collect(labels.get(i))); } - return new SummarySnapshot(getMetadata(), data); + return new SummarySnapshot(metadata, data); } + /** + * @deprecated Use {@link #getMetricFamilyDescriptor()} instead. + */ @Override + @Deprecated + @SuppressWarnings("InlineMeSuggester") public MetricType getMetricType() { return MetricType.SUMMARY; } diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/SummaryWithCallback.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/SummaryWithCallback.java index fa823e68e..8229a817c 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/SummaryWithCallback.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/SummaryWithCallback.java @@ -61,10 +61,15 @@ public SummarySnapshot collect() { new SummarySnapshot.SummaryDataPointSnapshot( count, sum, quantiles, makeLabels(labelValues), Exemplars.EMPTY, 0L)); }); - return new SummarySnapshot(getMetadata(), dataPoints); + return new SummarySnapshot(metadata, dataPoints); } + /** + * @deprecated Use {@link #getMetricFamilyDescriptor()} instead. + */ @Override + @Deprecated + @SuppressWarnings("InlineMeSuggester") public MetricType getMetricType() { return MetricType.SUMMARY; } diff --git a/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/MetricWithFixedMetadataTest.java b/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/MetricWithFixedMetadataTest.java new file mode 100644 index 000000000..90d49f3e9 --- /dev/null +++ b/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/MetricWithFixedMetadataTest.java @@ -0,0 +1,75 @@ +package io.prometheus.metrics.core.metrics; + +import static org.assertj.core.api.Assertions.assertThat; + +import io.prometheus.metrics.config.PrometheusProperties; +import io.prometheus.metrics.model.registry.MetricType; +import io.prometheus.metrics.model.snapshots.Labels; +import io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor; +import io.prometheus.metrics.model.snapshots.MetricSnapshot; +import java.util.Collections; +import org.junit.jupiter.api.Test; + +class MetricWithFixedMetadataTest { + + @Test + @SuppressWarnings("deprecation") + void getMetricFamilyDescriptorAdaptsDeprecatedMetricTypeOverride() { + LegacyMetric metric = + LegacyMetric.builder() + .name("legacy.metric") + .constLabels(Labels.of("const.label", "value")) + .labelNames("dynamic.label") + .build(); + + MetricFamilyDescriptor descriptor = metric.getMetricFamilyDescriptor(); + + assertThat(descriptor).isNotNull(); + assertThat(descriptor.getType()).isEqualTo(MetricType.GAUGE); + assertThat(descriptor.getPrometheusName()).isEqualTo("legacy_metric"); + assertThat(descriptor.getLabelNames()) + .containsExactlyInAnyOrder("const_label", "dynamic_label"); + } + + private static class LegacyMetric extends MetricWithFixedMetadata { + + private LegacyMetric(Builder builder) { + super(builder); + } + + private static Builder builder() { + return new Builder(); + } + + @Override + public MetricSnapshot collect() { + throw new UnsupportedOperationException(); + } + + /** + * @deprecated Use {@link #getMetricFamilyDescriptor()} instead. + */ + @Override + @Deprecated + public MetricType getMetricType() { + return MetricType.GAUGE; + } + + private static class Builder extends MetricWithFixedMetadata.Builder { + + private Builder() { + super(Collections.emptyList(), PrometheusProperties.builder().build()); + } + + @Override + public LegacyMetric build() { + return new LegacyMetric(this); + } + + @Override + protected Builder self() { + return this; + } + } + } +} diff --git a/prometheus-metrics-exposition-formats/src/test/java/io/prometheus/metrics/expositionformats/DuplicateNamesProtobufTest.java b/prometheus-metrics-exposition-formats/src/test/java/io/prometheus/metrics/expositionformats/DuplicateNamesProtobufTest.java index 553d84af5..1ae7e3179 100644 --- a/prometheus-metrics-exposition-formats/src/test/java/io/prometheus/metrics/expositionformats/DuplicateNamesProtobufTest.java +++ b/prometheus-metrics-exposition-formats/src/test/java/io/prometheus/metrics/expositionformats/DuplicateNamesProtobufTest.java @@ -19,7 +19,7 @@ import java.util.List; import org.junit.jupiter.api.Test; -@SuppressWarnings("NonCanonicalType") +@SuppressWarnings({"NonCanonicalType", "deprecation"}) class DuplicateNamesProtobufTest { private static PrometheusRegistry getPrometheusRegistry() { diff --git a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/PrometheusTextFormatWriter.java b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/PrometheusTextFormatWriter.java index 8d9643378..9251ac85e 100644 --- a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/PrometheusTextFormatWriter.java +++ b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/PrometheusTextFormatWriter.java @@ -61,6 +61,9 @@ public Builder setIncludeCreatedTimestamps(boolean includeCreatedTimestamps) { return this; } + /** + * @deprecated Use {@link #build()} with the default millisecond timestamps instead. + */ @Deprecated public Builder setTimestampsInMs(boolean timestampsInMs) { this.timestampsInMs = timestampsInMs; diff --git a/prometheus-metrics-exposition-textformats/src/test/java/io/prometheus/metrics/expositionformats/DuplicateNamesExpositionTest.java b/prometheus-metrics-exposition-textformats/src/test/java/io/prometheus/metrics/expositionformats/DuplicateNamesExpositionTest.java index d1e8c2b9a..db564d479 100644 --- a/prometheus-metrics-exposition-textformats/src/test/java/io/prometheus/metrics/expositionformats/DuplicateNamesExpositionTest.java +++ b/prometheus-metrics-exposition-textformats/src/test/java/io/prometheus/metrics/expositionformats/DuplicateNamesExpositionTest.java @@ -13,6 +13,7 @@ import java.io.IOException; import org.junit.jupiter.api.Test; +@SuppressWarnings("deprecation") class DuplicateNamesExpositionTest { private static PrometheusRegistry getPrometheusRegistry() { diff --git a/prometheus-metrics-instrumentation-caffeine/src/main/java/io/prometheus/metrics/instrumentation/caffeine/CacheMetricsCollector.java b/prometheus-metrics-instrumentation-caffeine/src/main/java/io/prometheus/metrics/instrumentation/caffeine/CacheMetricsCollector.java index c847e13eb..28edff88f 100644 --- a/prometheus-metrics-instrumentation-caffeine/src/main/java/io/prometheus/metrics/instrumentation/caffeine/CacheMetricsCollector.java +++ b/prometheus-metrics-instrumentation-caffeine/src/main/java/io/prometheus/metrics/instrumentation/caffeine/CacheMetricsCollector.java @@ -95,6 +95,8 @@ public class CacheMetricsCollector implements MultiCollector { * *

Note that the {@link #builder()} API has different default values than this deprecated * constructor. + * + * @deprecated Use {@link #builder()} instead. */ @Deprecated public CacheMetricsCollector() { @@ -313,7 +315,12 @@ public MetricSnapshots collect() { .build(); } + /** + * @deprecated Use {@link #getMetricFamilyDescriptors()} instead. + */ @Override + @Deprecated + @SuppressWarnings("InlineMeSuggester") public List getPrometheusNames() { if (!collectWeightedSize) { return ALL_METRIC_NAMES.stream() diff --git a/prometheus-metrics-instrumentation-caffeine/src/test/java/io/prometheus/metrics/instrumentation/caffeine/CacheMetricsCollectorTest.java b/prometheus-metrics-instrumentation-caffeine/src/test/java/io/prometheus/metrics/instrumentation/caffeine/CacheMetricsCollectorTest.java index d2d12aa11..cbad48b56 100644 --- a/prometheus-metrics-instrumentation-caffeine/src/test/java/io/prometheus/metrics/instrumentation/caffeine/CacheMetricsCollectorTest.java +++ b/prometheus-metrics-instrumentation-caffeine/src/test/java/io/prometheus/metrics/instrumentation/caffeine/CacheMetricsCollectorTest.java @@ -22,7 +22,7 @@ import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.EnumSource; -@SuppressWarnings("CheckReturnValue") +@SuppressWarnings({"CheckReturnValue", "deprecation"}) class CacheMetricsCollectorTest { // This enum was added to simplify test parametrization on argument options. enum Options { diff --git a/prometheus-metrics-instrumentation-guava/src/main/java/io/prometheus/metrics/instrumentation/guava/CacheMetricsCollector.java b/prometheus-metrics-instrumentation-guava/src/main/java/io/prometheus/metrics/instrumentation/guava/CacheMetricsCollector.java index 42473c686..7a66e1d17 100644 --- a/prometheus-metrics-instrumentation-guava/src/main/java/io/prometheus/metrics/instrumentation/guava/CacheMetricsCollector.java +++ b/prometheus-metrics-instrumentation-guava/src/main/java/io/prometheus/metrics/instrumentation/guava/CacheMetricsCollector.java @@ -216,7 +216,12 @@ public MetricSnapshots collect() { return metricSnapshotsBuilder.build(); } + /** + * @deprecated Use {@link #getMetricFamilyDescriptors()} instead. + */ @Override + @Deprecated + @SuppressWarnings("InlineMeSuggester") public List getPrometheusNames() { return ALL_METRIC_NAMES; } diff --git a/prometheus-metrics-instrumentation-guava/src/test/java/io/prometheus/metrics/instrumentation/guava/CacheMetricsCollectorTest.java b/prometheus-metrics-instrumentation-guava/src/test/java/io/prometheus/metrics/instrumentation/guava/CacheMetricsCollectorTest.java index 3373afaed..d56e6c15c 100644 --- a/prometheus-metrics-instrumentation-guava/src/test/java/io/prometheus/metrics/instrumentation/guava/CacheMetricsCollectorTest.java +++ b/prometheus-metrics-instrumentation-guava/src/test/java/io/prometheus/metrics/instrumentation/guava/CacheMetricsCollectorTest.java @@ -20,6 +20,7 @@ import java.util.List; import org.junit.jupiter.api.Test; +@SuppressWarnings("deprecation") class CacheMetricsCollectorTest { @Test diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/Collector.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/Collector.java index 1d1e7d232..f903ce676 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/Collector.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/Collector.java @@ -1,7 +1,9 @@ package io.prometheus.metrics.model.registry; +import io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor; import io.prometheus.metrics.model.snapshots.MetricMetadata; import io.prometheus.metrics.model.snapshots.MetricSnapshot; +import java.util.Collections; import java.util.Set; import java.util.function.Predicate; import javax.annotation.Nullable; @@ -60,6 +62,33 @@ default MetricSnapshot collect( } } + /** + * Returns a registration-time descriptor for this metric family. + * + *

The registry uses this descriptor for duplicate-name, type, label-schema, help, and unit + * validation at registration time. Returning {@code null} means registration-time validation is + * skipped for this collector. + * + *

The default implementation adapts the deprecated fragmented metadata methods. New collectors + * with fixed registration-time metadata should override this method directly. + */ + @Nullable + @SuppressWarnings("deprecation") + default MetricFamilyDescriptor getMetricFamilyDescriptor() { + String prometheusName = getPrometheusName(); + MetricType metricType = getMetricType(); + if (prometheusName == null || metricType == null) { + return null; + } + MetricMetadata metadata = getMetadata(); + if (metadata == null) { + metadata = new MetricMetadata(prometheusName); + } + Set labelNames = getLabelNames(); + return MetricFamilyDescriptor.of( + metricType, metadata, labelNames == null ? Collections.emptySet() : labelNames); + } + /** * This is called in two places: * @@ -77,7 +106,10 @@ default MetricSnapshot collect( * this and return the name. * *

All metrics in {@code prometheus-metrics-core} override this. + * + * @deprecated Override {@link #getMetricFamilyDescriptor()} instead. */ + @Deprecated @Nullable default String getPrometheusName() { return null; @@ -94,7 +126,9 @@ default String getPrometheusName() { * result in invalid exposition output. * * @return the metric type, or {@code null} to skip validation + * @deprecated Override {@link #getMetricFamilyDescriptor()} instead. */ + @Deprecated @Nullable default MetricType getMetricType() { return null; @@ -118,7 +152,9 @@ default MetricType getMetricType() { * * @return the set of all label names, or {@code null} (treated as empty) for a metric with no * labels + * @deprecated Override {@link #getMetricFamilyDescriptor()} instead. */ + @Deprecated @Nullable default Set getLabelNames() { return null; @@ -132,7 +168,9 @@ default Set getLabelNames() { * collector. * * @return the metric metadata, or {@code null} to skip help/unit validation + * @deprecated Override {@link #getMetricFamilyDescriptor()} instead. */ + @Deprecated @Nullable default MetricMetadata getMetadata() { return null; diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/MultiCollector.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/MultiCollector.java index 27ac3e10c..692f0be71 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/MultiCollector.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/MultiCollector.java @@ -1,8 +1,10 @@ package io.prometheus.metrics.model.registry; +import io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor; import io.prometheus.metrics.model.snapshots.MetricMetadata; import io.prometheus.metrics.model.snapshots.MetricSnapshot; import io.prometheus.metrics.model.snapshots.MetricSnapshots; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Set; @@ -53,6 +55,36 @@ default MetricSnapshots collect( return result.build(); } + /** + * Returns registration-time descriptors for the metric families collected by this collector. + * + *

The registry uses these descriptors for duplicate-name, type, label-schema, help, and unit + * validation at registration time. Returning an empty list means registration-time validation is + * skipped for this collector. + * + *

The default implementation adapts the deprecated fragmented metadata methods. New collectors + * with fixed registration-time metadata should override this method directly. + */ + @SuppressWarnings("deprecation") + default List getMetricFamilyDescriptors() { + List prometheusNames = getPrometheusNames(); + List descriptors = new ArrayList<>(prometheusNames.size()); + for (String prometheusName : prometheusNames) { + MetricType metricType = getMetricType(prometheusName); + if (metricType != null) { + MetricMetadata metadata = getMetadata(prometheusName); + if (metadata == null) { + metadata = new MetricMetadata(prometheusName); + } + Set labelNames = getLabelNames(prometheusName); + descriptors.add( + MetricFamilyDescriptor.of( + metricType, metadata, labelNames == null ? Collections.emptySet() : labelNames)); + } + } + return Collections.unmodifiableList(descriptors); + } + /** * This is called in two places: * @@ -68,7 +100,10 @@ default MetricSnapshots collect( * *

If your collector returns a constant list of metrics that have names that do not change at * runtime it is a good idea to overwrite this and return the names. + * + * @deprecated Override {@link #getMetricFamilyDescriptors()} instead. */ + @Deprecated default List getPrometheusNames() { return Collections.emptyList(); } @@ -85,7 +120,9 @@ default List getPrometheusNames() { * * @param prometheusName the Prometheus metric name * @return the metric type for the given name, or {@code null} to skip validation + * @deprecated Override {@link #getMetricFamilyDescriptors()} instead. */ + @Deprecated @Nullable default MetricType getMetricType(String prometheusName) { return null; @@ -108,7 +145,9 @@ default MetricType getMetricType(String prometheusName) { * @param prometheusName the Prometheus metric name * @return the set of all label names for the given name, or {@code null} (treated as empty) for a * metric with no labels + * @deprecated Override {@link #getMetricFamilyDescriptors()} instead. */ + @Deprecated @Nullable default Set getLabelNames(String prometheusName) { return null; @@ -123,7 +162,9 @@ default Set getLabelNames(String prometheusName) { * * @param prometheusName the Prometheus metric name * @return the metric metadata for that name, or {@code null} to skip help/unit validation + * @deprecated Override {@link #getMetricFamilyDescriptors()} instead. */ + @Deprecated @Nullable default MetricMetadata getMetadata(String prometheusName) { return null; diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/PrometheusRegistry.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/PrometheusRegistry.java index b7e305977..071c90f4b 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/PrometheusRegistry.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/PrometheusRegistry.java @@ -2,6 +2,7 @@ import static java.util.Collections.emptySet; +import io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor; import io.prometheus.metrics.model.snapshots.MetricMetadata; import io.prometheus.metrics.model.snapshots.MetricSnapshot; import io.prometheus.metrics.model.snapshots.MetricSnapshots; @@ -158,6 +159,17 @@ private static Set immutableLabelNames(@Nullable Set labelNames) return Collections.unmodifiableSet(new HashSet<>(labelNames)); } + @SuppressWarnings("deprecation") + @Nullable + private static String getDeprecatedPrometheusName(Collector collector) { + return collector.getPrometheusName(); + } + + @SuppressWarnings("deprecation") + private static List getDeprecatedPrometheusNames(MultiCollector collector) { + return collector.getPrometheusNames(); + } + /** * Computes the set of exposition-level time series names that a metric with the given name and * type will produce. @@ -288,27 +300,24 @@ public void register(Collector collector) { throw new IllegalArgumentException("Collector instance is already registered"); } try { - String prometheusName = collector.getPrometheusName(); - MetricType metricType = collector.getMetricType(); - Set normalizedLabels = immutableLabelNames(collector.getLabelNames()); - MetricMetadata metadata = collector.getMetadata(); - String help = metadata != null ? metadata.getHelp() : null; - Unit unit = metadata != null ? metadata.getUnit() : null; - - // Only perform validation if collector provides sufficient metadata. - // Collectors that don't implement getPrometheusName()/getMetricType() will skip validation. - if (prometheusName != null && metricType != null) { - validateRegistration(prometheusName, metricType, normalizedLabels, help, unit); - String expositionBasePrometheusName = - metadata != null ? metadata.getExpositionBasePrometheusName() : null; + MetricFamilyDescriptor descriptor = collector.getMetricFamilyDescriptor(); + + // Only perform validation if collector provides sufficient metadata. Collectors that don't + // implement getMetricFamilyDescriptor() will skip registration-time validation. + if (descriptor != null) { + String prometheusName = descriptor.getPrometheusName(); + MetricType metricType = descriptor.getType(); + Set normalizedLabels = immutableLabelNames(descriptor.getLabelNames()); + MetricMetadata metadata = descriptor.getMetadata(); + validateRegistration( + prometheusName, metricType, normalizedLabels, metadata.getHelp(), metadata.getUnit()); collectorMetadata.put( collector, new CollectorRegistration( - prometheusName, expositionBasePrometheusName, normalizedLabels)); + prometheusName, metadata.getExpositionBasePrometheusName(), normalizedLabels)); } - // Catch RuntimeException broadly because collector methods (getPrometheusName, getMetricType, - // etc.) are user-implemented and could throw any RuntimeException. Ensures cleanup on - // failure. + // Catch RuntimeException broadly because collector methods are user-implemented and could + // throw any RuntimeException. Ensures cleanup on failure. } catch (RuntimeException e) { collectors.remove(collector); CollectorRegistration reg = collectorMetadata.remove(collector); @@ -323,27 +332,26 @@ public void register(MultiCollector collector) { if (!multiCollectors.add(collector)) { throw new IllegalArgumentException("MultiCollector instance is already registered"); } - List prometheusNamesList = collector.getPrometheusNames(); List registrations = new ArrayList<>(); try { - for (String prometheusName : prometheusNamesList) { - MetricType metricType = collector.getMetricType(prometheusName); - Set normalizedLabels = immutableLabelNames(collector.getLabelNames(prometheusName)); - MetricMetadata metadata = collector.getMetadata(prometheusName); - String help = metadata != null ? metadata.getHelp() : null; - Unit unit = metadata != null ? metadata.getUnit() : null; - - if (metricType != null) { - validateRegistration(prometheusName, metricType, normalizedLabels, help, unit); - registrations.add(new MultiCollectorRegistration(prometheusName, normalizedLabels)); - } + for (MetricFamilyDescriptor descriptor : collector.getMetricFamilyDescriptors()) { + String prometheusName = descriptor.getPrometheusName(); + Set normalizedLabels = immutableLabelNames(descriptor.getLabelNames()); + MetricMetadata metadata = descriptor.getMetadata(); + + validateRegistration( + prometheusName, + descriptor.getType(), + normalizedLabels, + metadata.getHelp(), + metadata.getUnit()); + registrations.add(new MultiCollectorRegistration(prometheusName, normalizedLabels)); } multiCollectorMetadata.put(collector, registrations); - // Catch RuntimeException broadly because collector methods (getPrometheusNames, - // getMetricType, etc.) are user-implemented and could throw any RuntimeException. - // Ensures cleanup on failure. + // Catch RuntimeException broadly because collector methods are user-implemented and could + // throw any RuntimeException. Ensures cleanup on failure. } catch (RuntimeException e) { multiCollectors.remove(collector); for (MultiCollectorRegistration registration : registrations) { @@ -445,11 +453,12 @@ public MetricSnapshots scrape( } List allSnapshots = new ArrayList<>(); for (Collector collector : collectors) { - String prometheusName = collector.getPrometheusName(); + CollectorRegistration reg = collectorMetadata.get(collector); + String prometheusName = + reg != null ? reg.prometheusName : getDeprecatedPrometheusName(collector); // prometheusName == null means the name is unknown, and we have to scrape to learn the name. // prometheusName != null means we can skip the scrape if the name is excluded. // Also test the original name (e.g. "events_total" for a counter named "events"). - CollectorRegistration reg = collectorMetadata.get(collector); String expositionName = reg != null ? reg.expositionBasePrometheusName : null; if (prometheusName == null || includedNames.test(prometheusName) @@ -464,12 +473,22 @@ public MetricSnapshots scrape( } } for (MultiCollector collector : multiCollectors) { - List prometheusNames = collector.getPrometheusNames(); + List registrations = multiCollectorMetadata.get(collector); + List prometheusNames = getDeprecatedPrometheusNames(collector); // empty prometheusNames means the names are unknown, and we have to scrape to learn the // names. // non-empty prometheusNames means we can exclude the collector if all names are excluded by // the filter. - boolean excluded = !prometheusNames.isEmpty(); + boolean excluded = + (registrations != null && !registrations.isEmpty()) || !prometheusNames.isEmpty(); + if (registrations != null) { + for (MultiCollectorRegistration registration : registrations) { + if (includedNames.test(registration.prometheusName)) { + excluded = false; + break; + } + } + } for (String prometheusName : prometheusNames) { if (includedNames.test(prometheusName)) { excluded = false; diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/CounterSnapshot.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/CounterSnapshot.java index 72a83a879..e5831168b 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/CounterSnapshot.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/CounterSnapshot.java @@ -179,6 +179,14 @@ public Builder dataPoint(CounterDataPointSnapshot dataPoint) { return this; } + @Override + protected MetricMetadata buildMetadata() { + if (name == null) { + throw new IllegalArgumentException("Missing required field: name is null"); + } + return MetricMetadataSupport.counterMetadata(name, help, unit); + } + @Override public CounterSnapshot build() { return new CounterSnapshot(buildMetadata(), dataPoints); diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/InfoSnapshot.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/InfoSnapshot.java index ca6cf70a0..20f9038b1 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/InfoSnapshot.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/InfoSnapshot.java @@ -118,6 +118,14 @@ public Builder unit(@Nullable Unit unit) { throw new IllegalArgumentException("Info metric cannot have a unit."); } + @Override + protected MetricMetadata buildMetadata() { + if (name == null) { + throw new IllegalArgumentException("Missing required field: name is null"); + } + return MetricMetadataSupport.infoMetadata(name, help); + } + @Override public InfoSnapshot build() { return new InfoSnapshot(buildMetadata(), dataPoints); diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/MetricFamilyDescriptor.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/MetricFamilyDescriptor.java new file mode 100644 index 000000000..5d1d5b44d --- /dev/null +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/MetricFamilyDescriptor.java @@ -0,0 +1,291 @@ +package io.prometheus.metrics.model.snapshots; + +import io.prometheus.metrics.model.registry.MetricType; +import java.util.Collection; +import java.util.Collections; +import java.util.LinkedHashSet; +import java.util.Set; +import javax.annotation.Nullable; + +/** Registration-time descriptor for a metric family. */ +public final class MetricFamilyDescriptor { + + private final MetricType type; + private final MetricMetadata metadata; + private final Set labelNames; + + private MetricFamilyDescriptor( + MetricType type, MetricMetadata metadata, Collection labelNames) { + if (type == null) { + throw new IllegalArgumentException("Missing required field: type is null"); + } + if (metadata == null) { + throw new IllegalArgumentException("Missing required field: metadata is null"); + } + if (labelNames == null) { + throw new IllegalArgumentException("Missing required field: labelNames is null"); + } + this.type = type; + this.metadata = metadata; + this.labelNames = Collections.unmodifiableSet(new LinkedHashSet<>(labelNames)); + } + + public static MetricFamilyDescriptor of(MetricType type, MetricMetadata metadata) { + return of(type, metadata, Collections.emptySet()); + } + + public static MetricFamilyDescriptor of( + MetricType type, MetricMetadata metadata, Collection labelNames) { + return new MetricFamilyDescriptor(type, metadata, labelNames); + } + + public static Builder of(MetricType type, String name) { + switch (type) { + case COUNTER: + return counter(name); + case GAUGE: + return gauge(name); + case HISTOGRAM: + return histogram(name); + case SUMMARY: + return summary(name); + case INFO: + return info(name); + case STATESET: + return stateSet(name); + case UNKNOWN: + default: + return unknown(name); + } + } + + public static CounterBuilder counter(String name) { + return new CounterBuilder().name(name); + } + + public static GaugeBuilder gauge(String name) { + return new GaugeBuilder().name(name); + } + + public static HistogramBuilder histogram(String name) { + return new HistogramBuilder().name(name); + } + + public static SummaryBuilder summary(String name) { + return new SummaryBuilder().name(name); + } + + public static InfoBuilder info(String name) { + return new InfoBuilder().name(name); + } + + public static StateSetBuilder stateSet(String name) { + return new StateSetBuilder().name(name); + } + + public static UnknownBuilder unknown(String name) { + return new UnknownBuilder().name(name); + } + + public MetricType getType() { + return type; + } + + public MetricMetadata getMetadata() { + return metadata; + } + + public Set getLabelNames() { + return labelNames; + } + + public String getPrometheusName() { + return metadata.getPrometheusName(); + } + + public abstract static class Builder> { + + @Nullable protected String name; + @Nullable protected String help; + @Nullable protected Unit unit; + protected final Set labelNames = new LinkedHashSet<>(); + + public T name(String name) { + this.name = name; + return self(); + } + + public T help(String help) { + if (help == null) { + throw new IllegalArgumentException("Missing required field: help is null"); + } + this.help = help; + return self(); + } + + public T unit(Unit unit) { + if (unit == null) { + throw new IllegalArgumentException("Missing required field: unit is null"); + } + this.unit = unit; + return self(); + } + + public T labelName(String labelName) { + this.labelNames.add(PrometheusNaming.prometheusName(labelName)); + return self(); + } + + public T labelNames(String... labelNames) { + for (String labelName : labelNames) { + labelName(labelName); + } + return self(); + } + + public T labelNames(Collection labelNames) { + for (String labelName : labelNames) { + labelName(labelName); + } + return self(); + } + + public MetricFamilyDescriptor build() { + return new MetricFamilyDescriptor(getType(), buildMetadata(), labelNames); + } + + protected MetricMetadata buildMetadata() { + if (name == null) { + throw new IllegalArgumentException("Missing required field: name is null"); + } + return MetricMetadataSupport.metricMetadata(name, help, unit); + } + + protected abstract MetricType getType(); + + protected abstract T self(); + } + + public static final class CounterBuilder extends Builder { + + @Override + protected MetricMetadata buildMetadata() { + if (name == null) { + throw new IllegalArgumentException("Missing required field: name is null"); + } + return MetricMetadataSupport.counterMetadata(name, help, unit); + } + + @Override + protected MetricType getType() { + return MetricType.COUNTER; + } + + @Override + protected CounterBuilder self() { + return this; + } + } + + public static final class GaugeBuilder extends Builder { + + @Override + protected MetricType getType() { + return MetricType.GAUGE; + } + + @Override + protected GaugeBuilder self() { + return this; + } + } + + public static final class HistogramBuilder extends Builder { + + @Override + protected MetricType getType() { + return MetricType.HISTOGRAM; + } + + @Override + protected HistogramBuilder self() { + return this; + } + } + + public static final class SummaryBuilder extends Builder { + + @Override + protected MetricType getType() { + return MetricType.SUMMARY; + } + + @Override + protected SummaryBuilder self() { + return this; + } + } + + public static final class InfoBuilder extends Builder { + + @Override + public InfoBuilder unit(Unit unit) { + if (unit == null) { + throw new IllegalArgumentException("Missing required field: unit is null"); + } + throw new IllegalArgumentException("Info metric cannot have a unit."); + } + + @Override + protected MetricMetadata buildMetadata() { + if (name == null) { + throw new IllegalArgumentException("Missing required field: name is null"); + } + return MetricMetadataSupport.infoMetadata(name, help); + } + + @Override + protected MetricType getType() { + return MetricType.INFO; + } + + @Override + protected InfoBuilder self() { + return this; + } + } + + public static final class StateSetBuilder extends Builder { + + @Override + public StateSetBuilder unit(Unit unit) { + if (unit == null) { + throw new IllegalArgumentException("Missing required field: unit is null"); + } + throw new IllegalArgumentException("State set metric cannot have a unit."); + } + + @Override + protected MetricType getType() { + return MetricType.STATESET; + } + + @Override + protected StateSetBuilder self() { + return this; + } + } + + public static final class UnknownBuilder extends Builder { + + @Override + protected MetricType getType() { + return MetricType.UNKNOWN; + } + + @Override + protected UnknownBuilder self() { + return this; + } + } +} diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/MetricMetadataSupport.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/MetricMetadataSupport.java new file mode 100644 index 000000000..7fa0df6f0 --- /dev/null +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/MetricMetadataSupport.java @@ -0,0 +1,52 @@ +package io.prometheus.metrics.model.snapshots; + +import javax.annotation.Nullable; + +final class MetricMetadataSupport { + + private MetricMetadataSupport() {} + + static MetricMetadata metricMetadata(String name, @Nullable String help, @Nullable Unit unit) { + return new MetricMetadata(name, help, unit); + } + + static MetricMetadata counterMetadata(String name, @Nullable String help, @Nullable Unit unit) { + return typedMetadata(name, help, unit, "_total", ".total"); + } + + static MetricMetadata infoMetadata(String name, @Nullable String help) { + return typedMetadata(name, help, null, "_info", ".info"); + } + + private static MetricMetadata typedMetadata( + String originalName, + @Nullable String help, + @Nullable Unit unit, + String suffix, + String dotSuffix) { + String baseName = stripSuffix(originalName, suffix, dotSuffix); + return new MetricMetadata( + appendUnitIfMissing(baseName, unit), + appendUnitIfMissing(originalName, unit), + originalName, + help, + unit); + } + + private static String appendUnitIfMissing(String name, @Nullable Unit unit) { + if (unit != null && !name.endsWith("_" + unit) && !name.endsWith("." + unit)) { + return name + "_" + unit; + } + return name; + } + + private static String stripSuffix(String name, String suffix, String dotSuffix) { + if (name.endsWith(suffix)) { + return name.substring(0, name.length() - suffix.length()); + } + if (name.endsWith(dotSuffix)) { + return name.substring(0, name.length() - dotSuffix.length()); + } + return name; + } +} diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/MetricSnapshot.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/MetricSnapshot.java index 4dac2e30e..a5b776ec2 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/MetricSnapshot.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/MetricSnapshot.java @@ -55,9 +55,9 @@ private static void validateLabels( public abstract static class Builder> { - @Nullable private String name; - @Nullable private String help; - @Nullable private Unit unit; + @Nullable protected String name; + @Nullable protected String help; + @Nullable protected Unit unit; /** * The name is required. If the name is missing or invalid, {@code build()} will throw an {@link @@ -85,7 +85,7 @@ protected MetricMetadata buildMetadata() { if (name == null) { throw new IllegalArgumentException("Missing required field: name is null"); } - return new MetricMetadata(name, help, unit); + return MetricMetadataSupport.metricMetadata(name, help, unit); } protected abstract T self(); diff --git a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/registry/MultiCollectorNameFilterTest.java b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/registry/MultiCollectorNameFilterTest.java index 48be456a6..46ba39a2b 100644 --- a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/registry/MultiCollectorNameFilterTest.java +++ b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/registry/MultiCollectorNameFilterTest.java @@ -13,6 +13,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import org.junit.jupiter.api.Test; +@SuppressWarnings("deprecation") class MultiCollectorNameFilterTest { private static class Registry extends PrometheusRegistry { diff --git a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/registry/OpenTelemetryExporterRegistryCompatibilityTest.java b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/registry/OpenTelemetryExporterRegistryCompatibilityTest.java index 166b374b8..3142fabe8 100644 --- a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/registry/OpenTelemetryExporterRegistryCompatibilityTest.java +++ b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/registry/OpenTelemetryExporterRegistryCompatibilityTest.java @@ -20,6 +20,7 @@ * scrape, and unregister continue to work for that usage pattern and that a shared registry with * both SDK-style and validated collectors behaves correctly. */ +@SuppressWarnings("deprecation") class OpenTelemetryExporterRegistryCompatibilityTest { /** diff --git a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/registry/PrometheusRegistryTest.java b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/registry/PrometheusRegistryTest.java index 6dabad653..5e33f0a44 100644 --- a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/registry/PrometheusRegistryTest.java +++ b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/registry/PrometheusRegistryTest.java @@ -7,6 +7,7 @@ import io.prometheus.metrics.model.snapshots.CounterSnapshot; import io.prometheus.metrics.model.snapshots.GaugeSnapshot; +import io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor; import io.prometheus.metrics.model.snapshots.MetricMetadata; import io.prometheus.metrics.model.snapshots.MetricSnapshot; import io.prometheus.metrics.model.snapshots.MetricSnapshots; @@ -16,6 +17,7 @@ import java.util.Set; import org.junit.jupiter.api.Test; +@SuppressWarnings("deprecation") class PrometheusRegistryTest { Collector noName = () -> GaugeSnapshot.builder().name("no_name_gauge").build(); @@ -81,7 +83,7 @@ public MetricSnapshots collect() { @Override public List getPrometheusNames() { - return Arrays.asList(gaugeA.getPrometheusName(), counterB.getPrometheusName()); + return Arrays.asList("gauge_a", "counter_b"); } }; @@ -459,6 +461,81 @@ public String getPrometheusName() { assertThatCode(() -> registry.register(legacyCollector2)).doesNotThrowAnyException(); } + @Test + void register_metricFamilyDescriptor_usedForValidation() { + PrometheusRegistry registry = new PrometheusRegistry(); + + Collector counter = + new Collector() { + @Override + public MetricSnapshot collect() { + return CounterSnapshot.builder().name("requests_total").build(); + } + + @Override + public MetricFamilyDescriptor getMetricFamilyDescriptor() { + return MetricFamilyDescriptor.counter("requests_total").labelName("path").build(); + } + }; + + Collector gauge = + new Collector() { + @Override + public MetricSnapshot collect() { + return GaugeSnapshot.builder().name("requests").build(); + } + + @Override + public MetricFamilyDescriptor getMetricFamilyDescriptor() { + return MetricFamilyDescriptor.gauge("requests").labelName("path").build(); + } + }; + + registry.register(counter); + + assertThatThrownBy(() -> registry.register(gauge)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("Conflicting metric types"); + } + + @Test + void register_multiCollector_metricFamilyDescriptorsUsedForValidation() { + PrometheusRegistry registry = new PrometheusRegistry(); + + MultiCollector multiCollector = + new MultiCollector() { + @Override + public MetricSnapshots collect() { + return new MetricSnapshots(CounterSnapshot.builder().name("requests_total").build()); + } + + @Override + public List getMetricFamilyDescriptors() { + return asList( + MetricFamilyDescriptor.counter("requests_total").labelName("path").build()); + } + }; + + Collector duplicate = + new Collector() { + @Override + public MetricSnapshot collect() { + return CounterSnapshot.builder().name("requests_total").build(); + } + + @Override + public MetricFamilyDescriptor getMetricFamilyDescriptor() { + return MetricFamilyDescriptor.counter("requests_total").labelName("path").build(); + } + }; + + registry.register(multiCollector); + + assertThatThrownBy(() -> registry.register(duplicate)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("identical label schema"); + } + @Test void register_multiCollector_withTypeValidation() { PrometheusRegistry registry = new PrometheusRegistry(); diff --git a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/CounterSnapshotTest.java b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/CounterSnapshotTest.java index 16a324323..af6060e65 100644 --- a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/CounterSnapshotTest.java +++ b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/CounterSnapshotTest.java @@ -75,6 +75,7 @@ void testMinimalGoodCase() { .dataPoint(CounterDataPointSnapshot.builder().value(1.0).build()) .build(); SnapshotTestUtil.assertMetadata(snapshot, "events", null, null); + SnapshotTestUtil.assertDerivedMetadata(snapshot, "events", "events", "events"); assertThat(snapshot.getDataPoints()).hasSize(1); CounterDataPointSnapshot data = snapshot.getDataPoints().get(0); assertThat((Iterable) data.getLabels()).isEmpty(); @@ -93,7 +94,20 @@ void testEmptyCounter() { @Test void testTotalSuffixPresent() { CounterSnapshot snapshot = CounterSnapshot.builder().name("test_total").build(); - assertThat(snapshot.getMetadata().getPrometheusName()).isEqualTo("test_total"); + // Counter snapshots derive the internal metadata name without the _total suffix; the exposition + // base name keeps the literal original name that will still be used at the wire level. + assertThat(snapshot.getMetadata().getPrometheusName()).isEqualTo("test"); + SnapshotTestUtil.assertDerivedMetadata(snapshot, "test", "test_total", "test_total"); + } + + @Test + void testCounterUnitDerivedFromTypedBuilder() { + CounterSnapshot snapshot = + CounterSnapshot.builder().name("test_total").unit(Unit.SECONDS).build(); + + SnapshotTestUtil.assertMetadata(snapshot, "test_seconds", null, "seconds"); + SnapshotTestUtil.assertDerivedMetadata( + snapshot, "test_seconds", "test_total_seconds", "test_total"); } @Test diff --git a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/GaugeSnapshotTest.java b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/GaugeSnapshotTest.java index 7bd965913..6a68ebd88 100644 --- a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/GaugeSnapshotTest.java +++ b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/GaugeSnapshotTest.java @@ -87,14 +87,16 @@ void testEmptyGauge() { @Test void testTotalSuffixPresent() { - CounterSnapshot snapshot = CounterSnapshot.builder().name("test_total").build(); + GaugeSnapshot snapshot = GaugeSnapshot.builder().name("test_total").build(); assertThat(snapshot.getMetadata().getPrometheusName()).isEqualTo("test_total"); + SnapshotTestUtil.assertDerivedMetadata(snapshot, "test_total", "test_total", "test_total"); } @Test void testTotalSuffixPresentDot() { - CounterSnapshot snapshot = CounterSnapshot.builder().name("test.total").build(); + GaugeSnapshot snapshot = GaugeSnapshot.builder().name("test.total").build(); assertThat(snapshot.getMetadata().getPrometheusName()).isEqualTo("test_total"); + SnapshotTestUtil.assertDerivedMetadata(snapshot, "test.total", "test.total", "test.total"); } @Test diff --git a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/InfoSnapshotTest.java b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/InfoSnapshotTest.java index 20353ea3a..065041bc7 100644 --- a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/InfoSnapshotTest.java +++ b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/InfoSnapshotTest.java @@ -19,7 +19,7 @@ void testCompleteGoodCase() { .labels(Labels.of("instance_id", "127.0.0.1:9100", "service_name", "gateway")) .build()) .build(); - assertThat(snapshot.getMetadata().getName()).isEqualTo("target"); + SnapshotTestUtil.assertDerivedMetadata(snapshot, "target", "target", "target"); assertThat(snapshot.getMetadata().getHelp()).isEqualTo("Target info"); assertThat(snapshot.getMetadata().hasUnit()).isFalse(); assertThat(snapshot.getDataPoints().size()).isOne(); @@ -62,12 +62,14 @@ void testDataImmutable() { @Test void testNameMayIncludeSuffix() { InfoSnapshot snapshot = InfoSnapshot.builder().name("jvm_info").build(); - assertThat(snapshot.getMetadata().getPrometheusName()).isEqualTo("jvm_info"); + assertThat(snapshot.getMetadata().getPrometheusName()).isEqualTo("jvm"); + SnapshotTestUtil.assertDerivedMetadata(snapshot, "jvm", "jvm_info", "jvm_info"); } @Test void testNameMayIncludeSuffixDot() { InfoSnapshot snapshot = InfoSnapshot.builder().name("jvm.info").build(); - assertThat(snapshot.getMetadata().getPrometheusName()).isEqualTo("jvm_info"); + assertThat(snapshot.getMetadata().getPrometheusName()).isEqualTo("jvm"); + SnapshotTestUtil.assertDerivedMetadata(snapshot, "jvm", "jvm.info", "jvm.info"); } } diff --git a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/MetricFamilyDescriptorTest.java b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/MetricFamilyDescriptorTest.java new file mode 100644 index 000000000..eca3ad163 --- /dev/null +++ b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/MetricFamilyDescriptorTest.java @@ -0,0 +1,149 @@ +package io.prometheus.metrics.model.snapshots; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +import io.prometheus.metrics.model.registry.MetricType; +import java.util.Arrays; +import org.junit.jupiter.api.Test; + +class MetricFamilyDescriptorTest { + + @Test + void counterDescriptorDerivesMetadata() { + MetricFamilyDescriptor descriptor = + MetricFamilyDescriptor.counter("events_total") + .help("help") + .unit(Unit.SECONDS) + .labelNames(Arrays.asList("method.name", "status")) + .build(); + + assertThat(descriptor.getType()).isEqualTo(MetricType.COUNTER); + assertThat(descriptor.getPrometheusName()).isEqualTo("events_seconds"); + assertThat(descriptor.getLabelNames()).containsExactly("method_name", "status"); + assertThat(descriptor.getMetadata().getName()).isEqualTo("events_seconds"); + assertThat(descriptor.getMetadata().getExpositionBaseName()).isEqualTo("events_total_seconds"); + assertThat(descriptor.getMetadata().getOriginalName()).isEqualTo("events_total"); + } + + @Test + void infoDescriptorDerivesMetadata() { + MetricFamilyDescriptor descriptor = + MetricFamilyDescriptor.info("jvm_info").help("JVM info").labelName("vendor").build(); + + assertThat(descriptor.getType()).isEqualTo(MetricType.INFO); + assertThat(descriptor.getPrometheusName()).isEqualTo("jvm"); + assertThat(descriptor.getLabelNames()).containsExactly("vendor"); + assertThat(descriptor.getMetadata().getName()).isEqualTo("jvm"); + assertThat(descriptor.getMetadata().getExpositionBaseName()).isEqualTo("jvm_info"); + assertThat(descriptor.getMetadata().getOriginalName()).isEqualTo("jvm_info"); + } + + @Test + void gaugeDescriptorKeepsLiteralName() { + MetricFamilyDescriptor descriptor = MetricFamilyDescriptor.gauge("test_total").build(); + + assertThat(descriptor.getType()).isEqualTo(MetricType.GAUGE); + assertThat(descriptor.getPrometheusName()).isEqualTo("test_total"); + assertThat(descriptor.getMetadata().getExpositionBaseName()).isEqualTo("test_total"); + assertThat(descriptor.getMetadata().getOriginalName()).isEqualTo("test_total"); + } + + @Test + void histogramDescriptorKeepsLiteralName() { + MetricFamilyDescriptor descriptor = + MetricFamilyDescriptor.histogram("request_duration_seconds") + .help("Request duration") + .labelName("method") + .build(); + + assertThat(descriptor.getType()).isEqualTo(MetricType.HISTOGRAM); + assertThat(descriptor.getPrometheusName()).isEqualTo("request_duration_seconds"); + assertThat(descriptor.getLabelNames()).containsExactly("method"); + } + + @Test + void summaryDescriptorKeepsLiteralName() { + MetricFamilyDescriptor descriptor = + MetricFamilyDescriptor.summary("request_size_bytes") + .help("Request size") + .labelName("method") + .build(); + + assertThat(descriptor.getType()).isEqualTo(MetricType.SUMMARY); + assertThat(descriptor.getPrometheusName()).isEqualTo("request_size_bytes"); + assertThat(descriptor.getLabelNames()).containsExactly("method"); + } + + @Test + void stateSetDescriptorKeepsLiteralName() { + MetricFamilyDescriptor descriptor = + MetricFamilyDescriptor.stateSet("feature_flags").help("Flags").labelName("service").build(); + + assertThat(descriptor.getType()).isEqualTo(MetricType.STATESET); + assertThat(descriptor.getPrometheusName()).isEqualTo("feature_flags"); + assertThat(descriptor.getLabelNames()).containsExactly("service"); + } + + @Test + void unknownDescriptorKeepsLiteralName() { + MetricFamilyDescriptor descriptor = + MetricFamilyDescriptor.unknown("vendor_metric").help("Vendor metric").build(); + + assertThat(descriptor.getType()).isEqualTo(MetricType.UNKNOWN); + assertThat(descriptor.getPrometheusName()).isEqualTo("vendor_metric"); + } + + @Test + void genericFactoryUsesTypedBuilderSemanticsForAllKinds() { + MetricFamilyDescriptor counter = + MetricFamilyDescriptor.of(MetricType.COUNTER, "http_requests_total").build(); + MetricFamilyDescriptor gauge = + MetricFamilyDescriptor.of(MetricType.GAUGE, "queue_depth").build(); + MetricFamilyDescriptor histogram = + MetricFamilyDescriptor.of(MetricType.HISTOGRAM, "request_duration_seconds").build(); + MetricFamilyDescriptor summary = + MetricFamilyDescriptor.of(MetricType.SUMMARY, "request_size_bytes").build(); + MetricFamilyDescriptor info = MetricFamilyDescriptor.of(MetricType.INFO, "build_info").build(); + MetricFamilyDescriptor stateSet = + MetricFamilyDescriptor.of(MetricType.STATESET, "feature_flags").build(); + MetricFamilyDescriptor unknown = + MetricFamilyDescriptor.of(MetricType.UNKNOWN, "vendor_metric").build(); + + assertThat(counter.getPrometheusName()).isEqualTo("http_requests"); + assertThat(gauge.getPrometheusName()).isEqualTo("queue_depth"); + assertThat(histogram.getPrometheusName()).isEqualTo("request_duration_seconds"); + assertThat(summary.getPrometheusName()).isEqualTo("request_size_bytes"); + assertThat(info.getPrometheusName()).isEqualTo("build"); + assertThat(stateSet.getPrometheusName()).isEqualTo("feature_flags"); + assertThat(unknown.getPrometheusName()).isEqualTo("vendor_metric"); + } + + @Test + void infoDescriptorRejectsUnit() { + assertThatThrownBy(() -> MetricFamilyDescriptor.info("jvm_info").unit(Unit.SECONDS)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessage("Info metric cannot have a unit."); + } + + @Test + void buildersRejectNullHelp() { + assertThatThrownBy(() -> MetricFamilyDescriptor.counter("events_total").help(null)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessage("Missing required field: help is null"); + } + + @Test + void buildersRejectNullUnit() { + assertThatThrownBy(() -> MetricFamilyDescriptor.counter("events_total").unit(null)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessage("Missing required field: unit is null"); + } + + @Test + void stateSetDescriptorRejectsUnit() { + assertThatThrownBy(() -> MetricFamilyDescriptor.stateSet("feature_flags").unit(Unit.SECONDS)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessage("State set metric cannot have a unit."); + } +} diff --git a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/SnapshotTestUtil.java b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/SnapshotTestUtil.java index 8a8a7f93b..de75eeaeb 100644 --- a/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/SnapshotTestUtil.java +++ b/prometheus-metrics-model/src/test/java/io/prometheus/metrics/model/snapshots/SnapshotTestUtil.java @@ -14,4 +14,11 @@ public static void assertMetadata( assertThat(snapshot.getMetadata().getUnit()).isNull(); } } + + public static void assertDerivedMetadata( + MetricSnapshot snapshot, String name, String expositionBaseName, String originalName) { + assertThat(snapshot.getMetadata().getName()).isEqualTo(name); + assertThat(snapshot.getMetadata().getExpositionBaseName()).isEqualTo(expositionBaseName); + assertThat(snapshot.getMetadata().getOriginalName()).isEqualTo(originalName); + } } From fa4fd8e9f560dcf1839aa4e4d822ea34ec88b235 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Tue, 2 Jun 2026 11:45:59 +0200 Subject: [PATCH 56/74] feat: Add StableApi marker and API diff check (#2168) ## Summary - add `@StableApi` as the opt-in marker for published Java API - seed the guessed stable API surface from docs plus Micrometer/JMX usage - add `mise run api-diff` using japicmp against the configured baseline - add an API diff workflow that fails on incompatible published API changes ## Notes This is the bootstrap PR for the annotation-based API surface. Since `1.5.1` does not contain `@StableApi`, the first diff is noisy and mostly shows the seeded API surface as new. After a release contains the annotations, future diffs should be normal compatibility diffs. The workflow does not post PR comments or upload artifacts. If the check fails, run this locally: ```bash mise run api-diff ``` Reports are written to `**/target/japicmp/*`. Intentional incompatible changes can be accepted by adding the PR label `breaking-api-change-accepted`. ## Validation - `mise run api-diff` - `mise run build` - `mise run lint` --------- Signed-off-by: Gregor Zeitlinger Signed-off-by: Jay DeLuca --- .github/renovate-tracked-deps.json | 5 ++ .github/workflows/api-diff.yml | 79 +++++++++++++++++++ .github/workflows/codeql.yml | 1 + mise.toml | 13 +++ pom.xml | 72 +++++++++++++++++ prometheus-metrics-annotations/pom.xml | 22 ++++++ .../metrics/annotations/StableApi.java | 22 ++++++ prometheus-metrics-bom/pom.xml | 5 ++ prometheus-metrics-config/pom.xml | 6 ++ .../metrics/config/EscapingScheme.java | 2 + .../metrics/config/ExemplarsProperties.java | 2 + .../config/ExporterFilterProperties.java | 2 + .../config/ExporterHttpServerProperties.java | 2 + .../ExporterOpenTelemetryProperties.java | 2 + .../metrics/config/ExporterProperties.java | 2 + .../config/ExporterPushgatewayProperties.java | 2 + .../metrics/config/MetricsProperties.java | 2 + .../config/OpenMetrics2Properties.java | 2 + .../metrics/config/PrometheusProperties.java | 2 + .../config/PrometheusPropertiesException.java | 3 + .../config/PrometheusPropertiesLoader.java | 2 + prometheus-metrics-core/pom.xml | 6 ++ .../core/datapoints/CounterDataPoint.java | 2 + .../metrics/core/datapoints/DataPoint.java | 3 + .../datapoints/DistributionDataPoint.java | 2 + .../core/datapoints/GaugeDataPoint.java | 2 + .../core/datapoints/StateSetDataPoint.java | 3 + .../metrics/core/datapoints/Timer.java | 2 + .../metrics/core/datapoints/TimerApi.java | 2 + .../core/exemplars/ExemplarSampler.java | 2 + .../core/exemplars/ExemplarSamplerConfig.java | 2 + .../metrics/core/metrics/Counter.java | 2 + .../core/metrics/CounterWithCallback.java | 2 + .../metrics/core/metrics/Gauge.java | 2 + .../core/metrics/GaugeWithCallback.java | 2 + .../metrics/core/metrics/Histogram.java | 2 + .../prometheus/metrics/core/metrics/Info.java | 2 + .../metrics/core/metrics/Metric.java | 2 + .../core/metrics/MetricWithFixedMetadata.java | 2 + .../metrics/core/metrics/SlidingWindow.java | 2 + .../metrics/core/metrics/StateSet.java | 2 + .../metrics/core/metrics/StatefulMetric.java | 2 + .../metrics/core/metrics/Summary.java | 2 + .../core/metrics/SummaryWithCallback.java | 2 + prometheus-metrics-exporter-common/pom.xml | 6 ++ .../common/PrometheusHttpExchange.java | 2 + .../common/PrometheusHttpRequest.java | 2 + .../common/PrometheusHttpResponse.java | 2 + .../common/PrometheusScrapeHandler.java | 2 + .../pom.xml | 6 ++ .../exporter/httpserver/DefaultHandler.java | 2 + .../exporter/httpserver/HTTPServer.java | 2 + .../exporter/httpserver/HealthyHandler.java | 2 + .../exporter/httpserver/MetricsHandler.java | 2 + .../pom.xml | 6 ++ .../pom.xml | 6 ++ .../opentelemetry/OpenTelemetryExporter.java | 2 + .../pom.xml | 6 ++ .../DefaultHttpConnectionFactory.java | 2 + .../metrics/exporter/pushgateway/Format.java | 3 + .../pushgateway/HttpConnectionFactory.java | 2 + .../exporter/pushgateway/PushGateway.java | 2 + .../metrics/exporter/pushgateway/Scheme.java | 3 + .../pom.xml | 6 ++ .../jakarta/PrometheusMetricsServlet.java | 2 + .../pom.xml | 6 ++ .../javax/PrometheusMetricsServlet.java | 2 + .../pom.xml | 6 ++ .../ExpositionFormatWriter.java | 2 + .../expositionformats/ExpositionFormats.java | 2 + .../OpenMetrics2TextFormatWriter.java | 2 + .../OpenMetricsTextFormatWriter.java | 2 + .../PrometheusProtobufWriter.java | 2 + .../PrometheusTextFormatWriter.java | 2 + .../pom.xml | 6 ++ .../caffeine/CacheMetricsCollector.java | 2 + .../pom.xml | 6 ++ .../dropwizard/DropwizardExports.java | 2 + .../pom.xml | 6 ++ .../dropwizard5/DropwizardExports.java | 2 + .../dropwizard5/InvalidMetricHandler.java | 3 + .../dropwizard5/labels/CustomLabelMapper.java | 2 + .../dropwizard5/labels/MapperConfig.java | 2 + .../pom.xml | 6 ++ .../guava/CacheMetricsCollector.java | 2 + .../pom.xml | 6 ++ .../jvm/JvmBufferPoolMetrics.java | 2 + .../jvm/JvmClassLoadingMetrics.java | 2 + .../jvm/JvmCompilationMetrics.java | 2 + .../jvm/JvmGarbageCollectorMetrics.java | 2 + .../instrumentation/jvm/JvmMemoryMetrics.java | 2 + .../jvm/JvmMemoryPoolAllocationMetrics.java | 2 + .../instrumentation/jvm/JvmMetrics.java | 2 + .../jvm/JvmNativeMemoryMetrics.java | 2 + .../jvm/JvmRuntimeInfoMetric.java | 2 + .../jvm/JvmThreadsMetrics.java | 2 + .../instrumentation/jvm/ProcessMetrics.java | 2 + prometheus-metrics-model/pom.xml | 6 ++ .../metrics/model/registry/Collector.java | 2 + .../model/registry/MetricNameFilter.java | 2 + .../metrics/model/registry/MetricType.java | 3 + .../model/registry/MultiCollector.java | 2 + .../model/registry/PrometheusRegistry.java | 2 + .../registry/PrometheusScrapeRequest.java | 2 + .../snapshots/ClassicHistogramBucket.java | 3 + .../snapshots/ClassicHistogramBuckets.java | 2 + .../model/snapshots/CounterSnapshot.java | 2 + .../model/snapshots/DataPointSnapshot.java | 2 + .../DistributionDataPointSnapshot.java | 3 + .../snapshots/DuplicateLabelsException.java | 3 + .../metrics/model/snapshots/Exemplar.java | 2 + .../metrics/model/snapshots/Exemplars.java | 2 + .../model/snapshots/GaugeSnapshot.java | 2 + .../model/snapshots/HistogramSnapshot.java | 2 + .../metrics/model/snapshots/InfoSnapshot.java | 2 + .../metrics/model/snapshots/Label.java | 2 + .../metrics/model/snapshots/Labels.java | 2 + .../snapshots/MetricFamilyDescriptor.java | 2 + .../model/snapshots/MetricMetadata.java | 2 + .../model/snapshots/MetricSnapshot.java | 2 + .../model/snapshots/MetricSnapshots.java | 2 + .../snapshots/NativeHistogramBucket.java | 3 + .../snapshots/NativeHistogramBuckets.java | 2 + .../model/snapshots/PrometheusNaming.java | 2 + .../metrics/model/snapshots/Quantile.java | 3 + .../metrics/model/snapshots/Quantiles.java | 2 + .../model/snapshots/StateSetSnapshot.java | 2 + .../model/snapshots/SummarySnapshot.java | 2 + .../metrics/model/snapshots/Unit.java | 2 + .../model/snapshots/UnknownSnapshot.java | 2 + .../pom.xml | 6 ++ .../bridge/SimpleclientCollector.java | 2 + .../prometheus-metrics-tracer-common/pom.xml | 9 +++ .../metrics/tracer/common/SpanContext.java | 2 + 134 files changed, 558 insertions(+) create mode 100644 .github/workflows/api-diff.yml create mode 100644 prometheus-metrics-annotations/pom.xml create mode 100644 prometheus-metrics-annotations/src/main/java/io/prometheus/metrics/annotations/StableApi.java diff --git a/.github/renovate-tracked-deps.json b/.github/renovate-tracked-deps.json index 412a82a33..95fa34155 100644 --- a/.github/renovate-tracked-deps.json +++ b/.github/renovate-tracked-deps.json @@ -16,6 +16,11 @@ "mise" ] }, + ".github/workflows/api-diff.yml": { + "regex": [ + "mise" + ] + }, ".github/workflows/build.yml": { "regex": [ "mise" diff --git a/.github/workflows/api-diff.yml b/.github/workflows/api-diff.yml new file mode 100644 index 000000000..3a6ed2edf --- /dev/null +++ b/.github/workflows/api-diff.yml @@ -0,0 +1,79 @@ +--- +name: API Diff + +on: + pull_request: + types: + - opened + - synchronize + - reopened + - labeled + - unlabeled + workflow_dispatch: + inputs: + baseline_version: + description: Version to compare the PR artifacts against + required: false + default: "1.5.1" + +permissions: + contents: read + +jobs: + api-diff: + runs-on: ubuntu-24.04 + env: + API_DIFF_BASELINE_VERSION: ${{ inputs.baseline_version || '1.5.1' }} + BREAKING_API_CHANGE_ACCEPTED: >- + ${{ contains(github.event.pull_request.labels.*.name, 'breaking-api-change-accepted') }} + + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + persist-credentials: false + - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 + with: + version: v2026.5.18 + sha256: cfac593469d028d7ae5fe36e37bd7c59118b5238e92d8a876209578464f24a84 + - name: Cache local Maven repository + uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + - name: Run japicmp API diff + run: mise run api-diff + - name: Fail on incompatible published API changes + run: | + python3 - <<'PY' + import os + from pathlib import Path + import sys + import xml.etree.ElementTree as ET + + failures = [] + for report in sorted(Path(".").glob("**/target/japicmp/api-diff.xml")): + parts = report.parts + module = "/".join(parts[: parts.index("target")]) + tree = ET.parse(report) + for change in tree.findall(".//compatibilityChange"): + binary = change.get("binaryCompatible") == "false" + source = change.get("sourceCompatible") == "false" + if binary or source: + failures.append((module, change.get("type", "unknown"))) + + if not failures: + print("No incompatible published API changes detected.") + sys.exit(0) + + print("Incompatible published API changes detected:") + for module, change_type in failures[:100]: + print(f"- {module}: {change_type}") + if len(failures) > 100: + print(f"... and {len(failures) - 100} more") + if os.environ.get("BREAKING_API_CHANGE_ACCEPTED") == "true": + print("Accepted by PR label `breaking-api-change-accepted`.") + sys.exit(0) + print("Run `mise run api-diff` locally for full japicmp output.") + print("Reports are written to `**/target/japicmp/*`.") + sys.exit(1) + PY diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 05b7cbaf5..4847aee2f 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -49,6 +49,7 @@ jobs: - name: Build (CodeQL traces the build) run: > ./mvnw clean compile + -P '!default' -DskipTests -Dcoverage.skip=true -Dcheckstyle.skip=true diff --git a/mise.toml b/mise.toml index 973ef10a8..616159a90 100644 --- a/mise.toml +++ b/mise.toml @@ -59,6 +59,19 @@ run = "./mvnw verify" description = "build all modules without tests" run = "./mvnw install -DskipTests -Dcoverage.skip=true" +[tasks."api-diff"] +description = "Compare published API against the configured japicmp baseline" +run = """ +BASELINE_VERSION="${API_DIFF_BASELINE_VERSION:-1.5.1}" +./mvnw -B verify \ + -P 'api-diff,!examples-and-integration-tests' \ + -Dapi.diff.baseline.version="${BASELINE_VERSION}" \ + -DskipTests \ + -Dcoverage.skip=true \ + -Dcheckstyle.skip=true \ + -Dwarnings=-nowarn +""" + [tasks."lint"] description = "Run all lints" depends = ["lint:bom"] diff --git a/pom.xml b/pom.xml index f9c25d9e2..a53c8e24e 100644 --- a/pom.xml +++ b/pom.xml @@ -29,6 +29,7 @@ 2.28.1-alpha 8 25 + 1.5.1 0.70 false false @@ -38,6 +39,7 @@ prometheus-metrics-parent + prometheus-metrics-annotations prometheus-metrics-bom prometheus-metrics-core prometheus-metrics-config @@ -171,6 +173,11 @@ exec-maven-plugin 3.6.3 + + com.github.siom79.japicmp + japicmp-maven-plugin + 0.26.1 + @@ -401,6 +408,71 @@ + + api-diff + + + + com.github.siom79.japicmp + japicmp-maven-plugin + + + + ${project.groupId} + ${project.artifactId} + ${api.diff.baseline.version} + jar + + + + + ${project.build.directory}/${project.build.finalName}.jar + + + + public + true + + io.prometheus.metrics.annotations.StableApi + @io.prometheus.metrics.annotations.StableApi + + + io.prometheus.metrics.expositionformats.generated + io.prometheus.metrics.shaded + + false + + false + + + false + + false + true + true + true + true + true + true + + bundle + jar + + + + + + api-diff + verify + + cmp + + + + + + + errorprone diff --git a/prometheus-metrics-annotations/pom.xml b/prometheus-metrics-annotations/pom.xml new file mode 100644 index 000000000..4b22354c4 --- /dev/null +++ b/prometheus-metrics-annotations/pom.xml @@ -0,0 +1,22 @@ + + + 4.0.0 + + + io.prometheus + client_java + 1.6.2-SNAPSHOT + + + prometheus-metrics-annotations + bundle + + Prometheus Metrics Annotations + + Annotations for Prometheus Metrics library API contracts. + + + + io.prometheus.metrics.annotations + + diff --git a/prometheus-metrics-annotations/src/main/java/io/prometheus/metrics/annotations/StableApi.java b/prometheus-metrics-annotations/src/main/java/io/prometheus/metrics/annotations/StableApi.java new file mode 100644 index 000000000..a3bfe89ae --- /dev/null +++ b/prometheus-metrics-annotations/src/main/java/io/prometheus/metrics/annotations/StableApi.java @@ -0,0 +1,22 @@ +package io.prometheus.metrics.annotations; + +import static java.lang.annotation.ElementType.CONSTRUCTOR; +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.CLASS; + +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * Marks a Java element as part of the stable, published Prometheus Metrics API. + * + *

Use this on public or protected types to publish the type and its members. Use it on + * individual constructors, methods, and fields when only part of a public type is stable. + */ +@Documented +@Retention(CLASS) +@Target({TYPE, CONSTRUCTOR, METHOD, FIELD}) +public @interface StableApi {} diff --git a/prometheus-metrics-bom/pom.xml b/prometheus-metrics-bom/pom.xml index b01bcce43..66bcb524e 100644 --- a/prometheus-metrics-bom/pom.xml +++ b/prometheus-metrics-bom/pom.xml @@ -19,6 +19,11 @@ + + io.prometheus + prometheus-metrics-annotations + ${project.version} + io.prometheus prometheus-metrics-config diff --git a/prometheus-metrics-config/pom.xml b/prometheus-metrics-config/pom.xml index d505248e7..e207c6b49 100644 --- a/prometheus-metrics-config/pom.xml +++ b/prometheus-metrics-config/pom.xml @@ -21,6 +21,12 @@ + + io.prometheus + prometheus-metrics-annotations + ${project.version} + true + org.junit-pioneer junit-pioneer diff --git a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/EscapingScheme.java b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/EscapingScheme.java index 1cd037bf3..1d6bd37cf 100644 --- a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/EscapingScheme.java +++ b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/EscapingScheme.java @@ -1,7 +1,9 @@ package io.prometheus.metrics.config; +import io.prometheus.metrics.annotations.StableApi; import javax.annotation.Nullable; +@StableApi public enum EscapingScheme { /** NO_ESCAPING indicates that a name will not be escaped. */ ALLOW_UTF8("allow-utf-8"), diff --git a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExemplarsProperties.java b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExemplarsProperties.java index 765d33ac5..93190ef19 100644 --- a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExemplarsProperties.java +++ b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExemplarsProperties.java @@ -1,8 +1,10 @@ package io.prometheus.metrics.config; +import io.prometheus.metrics.annotations.StableApi; import javax.annotation.Nullable; /** Properties starting with io.prometheus.exemplars */ +@StableApi public class ExemplarsProperties { private static final String PREFIX = "io.prometheus.exemplars"; diff --git a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExporterFilterProperties.java b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExporterFilterProperties.java index d59330cb9..999c2c8e8 100644 --- a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExporterFilterProperties.java +++ b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExporterFilterProperties.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.config; +import io.prometheus.metrics.annotations.StableApi; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -7,6 +8,7 @@ import javax.annotation.Nullable; /** Properties starting with io.prometheus.exporter.filter */ +@StableApi public class ExporterFilterProperties { public static final String METRIC_NAME_MUST_BE_EQUAL_TO = "metric_name_must_be_equal_to"; diff --git a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExporterHttpServerProperties.java b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExporterHttpServerProperties.java index 0623f78e1..4f921c2ac 100644 --- a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExporterHttpServerProperties.java +++ b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExporterHttpServerProperties.java @@ -1,8 +1,10 @@ package io.prometheus.metrics.config; +import io.prometheus.metrics.annotations.StableApi; import javax.annotation.Nullable; /** Properties starting with io.prometheus.exporter.http_server */ +@StableApi public class ExporterHttpServerProperties { private static final String PORT = "port"; diff --git a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExporterOpenTelemetryProperties.java b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExporterOpenTelemetryProperties.java index 6e93f5de7..8c0bdd5c7 100644 --- a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExporterOpenTelemetryProperties.java +++ b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExporterOpenTelemetryProperties.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.config; +import io.prometheus.metrics.annotations.StableApi; import java.util.HashMap; import java.util.Map; import javax.annotation.Nullable; @@ -31,6 +32,7 @@ * href="https://opentelemetry.io/docs/specs/otel/configuration/sdk-environment-variables/">OpenTelemetry * SDK Environment Variables */ +@StableApi public class ExporterOpenTelemetryProperties { // See diff --git a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExporterProperties.java b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExporterProperties.java index 460a5cae2..a1c67266a 100644 --- a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExporterProperties.java +++ b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExporterProperties.java @@ -1,8 +1,10 @@ package io.prometheus.metrics.config; +import io.prometheus.metrics.annotations.StableApi; import javax.annotation.Nullable; /** Properties starting with io.prometheus.exporter */ +@StableApi public class ExporterProperties { private static final String INCLUDE_CREATED_TIMESTAMPS = "include_created_timestamps"; diff --git a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExporterPushgatewayProperties.java b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExporterPushgatewayProperties.java index aea4b2d8f..10e8c0f33 100644 --- a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExporterPushgatewayProperties.java +++ b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/ExporterPushgatewayProperties.java @@ -1,8 +1,10 @@ package io.prometheus.metrics.config; +import io.prometheus.metrics.annotations.StableApi; import java.time.Duration; import javax.annotation.Nullable; +@StableApi public class ExporterPushgatewayProperties { private static final String ADDRESS = "address"; diff --git a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/MetricsProperties.java b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/MetricsProperties.java index a530f35e1..c2758bd87 100644 --- a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/MetricsProperties.java +++ b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/MetricsProperties.java @@ -2,12 +2,14 @@ import static java.util.Collections.unmodifiableList; +import io.prometheus.metrics.annotations.StableApi; import java.util.ArrayList; import java.util.Collections; import java.util.List; import javax.annotation.Nullable; /** Properties starting with io.prometheus.metrics */ +@StableApi public class MetricsProperties { private static final String EXEMPLARS_ENABLED = "exemplars_enabled"; diff --git a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/OpenMetrics2Properties.java b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/OpenMetrics2Properties.java index be1d13279..1f5080f05 100644 --- a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/OpenMetrics2Properties.java +++ b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/OpenMetrics2Properties.java @@ -1,11 +1,13 @@ package io.prometheus.metrics.config; +import io.prometheus.metrics.annotations.StableApi; import javax.annotation.Nullable; /** * Properties starting with io.prometheus.openmetrics2. These properties are experimental and * subject to change. */ +@StableApi public class OpenMetrics2Properties { private static final String PREFIX = "io.prometheus.openmetrics2"; diff --git a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/PrometheusProperties.java b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/PrometheusProperties.java index 55e7d8dab..aa145d07c 100644 --- a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/PrometheusProperties.java +++ b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/PrometheusProperties.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.config; +import io.prometheus.metrics.annotations.StableApi; import java.util.HashMap; import java.util.Map; import java.util.function.Consumer; @@ -10,6 +11,7 @@ * *

This class represents the runtime configuration. */ +@StableApi public class PrometheusProperties { private static final PrometheusProperties instance = PrometheusPropertiesLoader.load(); diff --git a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/PrometheusPropertiesException.java b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/PrometheusPropertiesException.java index bdb024514..b6f6fac4b 100644 --- a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/PrometheusPropertiesException.java +++ b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/PrometheusPropertiesException.java @@ -1,5 +1,8 @@ package io.prometheus.metrics.config; +import io.prometheus.metrics.annotations.StableApi; + +@StableApi public class PrometheusPropertiesException extends RuntimeException { private static final long serialVersionUID = 0L; diff --git a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/PrometheusPropertiesLoader.java b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/PrometheusPropertiesLoader.java index 018ea2c5d..6d52b71ef 100644 --- a/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/PrometheusPropertiesLoader.java +++ b/prometheus-metrics-config/src/main/java/io/prometheus/metrics/config/PrometheusPropertiesLoader.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.config; +import io.prometheus.metrics.annotations.StableApi; import java.io.IOException; import java.io.InputStream; import java.nio.file.Files; @@ -17,6 +18,7 @@ * Boot's Externalized Configuration, like support for YAML, Properties, and env vars, or * support for Spring's naming conventions for properties. */ +@StableApi public class PrometheusPropertiesLoader { /** See {@link PrometheusProperties#get()}. */ diff --git a/prometheus-metrics-core/pom.xml b/prometheus-metrics-core/pom.xml index 3ba812f1d..61d10d3c5 100644 --- a/prometheus-metrics-core/pom.xml +++ b/prometheus-metrics-core/pom.xml @@ -21,6 +21,12 @@ + + io.prometheus + prometheus-metrics-annotations + ${project.version} + true + io.prometheus prometheus-metrics-model diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/CounterDataPoint.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/CounterDataPoint.java index 7055d7565..4c5c2d28f 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/CounterDataPoint.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/CounterDataPoint.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.core.datapoints; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.model.snapshots.Labels; /** @@ -56,6 +57,7 @@ * CounterDataPoint counterData = counterWithoutLabels; * }

*/ +@StableApi public interface CounterDataPoint extends DataPoint { /** Add one. */ diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/DataPoint.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/DataPoint.java index 5b6017ddf..cfdc84df3 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/DataPoint.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/DataPoint.java @@ -1,3 +1,6 @@ package io.prometheus.metrics.core.datapoints; +import io.prometheus.metrics.annotations.StableApi; + +@StableApi public interface DataPoint {} diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/DistributionDataPoint.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/DistributionDataPoint.java index 0f2a072de..f87bede40 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/DistributionDataPoint.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/DistributionDataPoint.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.core.datapoints; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.model.snapshots.Labels; /** @@ -17,6 +18,7 @@ *

See JavaDoc of {@link CounterDataPoint} on how using data points directly can improve * performance. */ +@StableApi public interface DistributionDataPoint extends DataPoint, TimerApi { /** Get the count of observations. */ diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/GaugeDataPoint.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/GaugeDataPoint.java index eec0304c7..8d917985e 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/GaugeDataPoint.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/GaugeDataPoint.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.core.datapoints; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.model.snapshots.Labels; /** @@ -9,6 +10,7 @@ *

See JavaDoc of {@link CounterDataPoint} on how using data points directly can improve * performance. */ +@StableApi public interface GaugeDataPoint extends DataPoint, TimerApi { /** Add one. */ diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/StateSetDataPoint.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/StateSetDataPoint.java index bf13b5214..f08876cae 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/StateSetDataPoint.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/StateSetDataPoint.java @@ -1,11 +1,14 @@ package io.prometheus.metrics.core.datapoints; +import io.prometheus.metrics.annotations.StableApi; + /** * Represents a single StateSet data point. * *

See JavaDoc of {@link CounterDataPoint} on how using data points directly can improve * performance. */ +@StableApi public interface StateSetDataPoint extends DataPoint { /** diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/Timer.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/Timer.java index d860bfa08..ee302a4c5 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/Timer.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/Timer.java @@ -1,10 +1,12 @@ package io.prometheus.metrics.core.datapoints; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.model.snapshots.Unit; import java.io.Closeable; import java.util.function.DoubleConsumer; /** Helper class for observing durations. */ +@StableApi public class Timer implements Closeable { private final DoubleConsumer observeFunction; diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/TimerApi.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/TimerApi.java index 8267f7f78..00729503e 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/TimerApi.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/datapoints/TimerApi.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.core.datapoints; +import io.prometheus.metrics.annotations.StableApi; import java.util.concurrent.Callable; import java.util.function.Supplier; @@ -11,6 +12,7 @@ * must use base units (e.g. seconds, bytes) and leave converting them to something more readable to * graphing tools". */ +@StableApi public interface TimerApi { /** diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSampler.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSampler.java index d7a41ae5b..71657b417 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSampler.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSampler.java @@ -2,6 +2,7 @@ import static java.util.Objects.requireNonNull; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.core.util.Scheduler; import io.prometheus.metrics.model.snapshots.Exemplar; import io.prometheus.metrics.model.snapshots.Exemplars; @@ -32,6 +33,7 @@ * *

See {@link ExemplarSamplerConfig} for configuration options. */ +@StableApi public class ExemplarSampler { private final ExemplarSamplerConfig config; diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSamplerConfig.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSamplerConfig.java index 5bf642e7e..f1afd1453 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSamplerConfig.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSamplerConfig.java @@ -1,10 +1,12 @@ package io.prometheus.metrics.core.exemplars; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.ExemplarsProperties; import io.prometheus.metrics.config.PrometheusProperties; import java.util.concurrent.TimeUnit; import javax.annotation.Nullable; +@StableApi public class ExemplarSamplerConfig { /** See {@link ExemplarsProperties#getMinRetentionPeriodSeconds()} */ diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Counter.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Counter.java index fa0a1ee49..60627ecfd 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Counter.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Counter.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.core.metrics; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.MetricsProperties; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.core.datapoints.CounterDataPoint; @@ -32,6 +33,7 @@ * requestCount.labelValues("/hello-world", "500").inc(); * }

*/ +@StableApi public class Counter extends StatefulMetric implements CounterDataPoint { diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/CounterWithCallback.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/CounterWithCallback.java index de2e41174..514a13d26 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/CounterWithCallback.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/CounterWithCallback.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.core.metrics; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.model.registry.MetricType; import io.prometheus.metrics.model.snapshots.CounterSnapshot; @@ -22,6 +23,7 @@ * .register(); * }
*/ +@StableApi public class CounterWithCallback extends CallbackMetric { @FunctionalInterface diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Gauge.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Gauge.java index 593136afd..7ff679b2b 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Gauge.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Gauge.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.core.metrics; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.MetricsProperties; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.core.datapoints.GaugeDataPoint; @@ -39,6 +40,7 @@ * } * }
*/ +@StableApi public class Gauge extends StatefulMetric implements GaugeDataPoint { diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/GaugeWithCallback.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/GaugeWithCallback.java index 3b26cb520..6c81e2d89 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/GaugeWithCallback.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/GaugeWithCallback.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.core.metrics; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.model.registry.MetricType; import io.prometheus.metrics.model.snapshots.GaugeSnapshot; @@ -27,6 +28,7 @@ * .register(); * }
*/ +@StableApi public class GaugeWithCallback extends CallbackMetric { @FunctionalInterface diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Histogram.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Histogram.java index 12bc441f9..aaa668212 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Histogram.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Histogram.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.core.metrics; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.ExemplarsProperties; import io.prometheus.metrics.config.MetricsProperties; import io.prometheus.metrics.config.PrometheusProperties; @@ -62,6 +63,7 @@ *

If you want the classic representation only, use {@link Histogram.Builder#classicOnly}. If you * want the native representation only, use {@link Histogram.Builder#nativeOnly}. */ +@StableApi public class Histogram extends StatefulMetric implements DistributionDataPoint { diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Info.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Info.java index 1aab04054..69be33e9d 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Info.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Info.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.core.metrics; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.model.registry.MetricType; import io.prometheus.metrics.model.snapshots.InfoSnapshot; @@ -30,6 +31,7 @@ * info.addLabelValues("dev", version, vendor, runtime); * }

*/ +@StableApi public class Info extends MetricWithFixedMetadata { private final Set labels = new CopyOnWriteArraySet<>(); diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Metric.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Metric.java index d3c00eca0..64c03c825 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Metric.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Metric.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.core.metrics; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.model.registry.Collector; import io.prometheus.metrics.model.registry.PrometheusRegistry; @@ -10,6 +11,7 @@ import java.util.List; /** Common base class for all metrics. */ +@StableApi public abstract class Metric implements Collector { protected final Labels constLabels; diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/MetricWithFixedMetadata.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/MetricWithFixedMetadata.java index 7cbbaaed6..9be797b0e 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/MetricWithFixedMetadata.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/MetricWithFixedMetadata.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.core.metrics; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.model.registry.MetricType; import io.prometheus.metrics.model.snapshots.Label; @@ -20,6 +21,7 @@ *

An exception would be a metric that is a bridge to a 3rd party metric library, where the * metric name has to be retrieved from the 3rd party metric library at scrape time. */ +@StableApi public abstract class MetricWithFixedMetadata extends Metric { protected final MetricMetadata metadata; diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/SlidingWindow.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/SlidingWindow.java index e56134d5d..4940e1e6d 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/SlidingWindow.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/SlidingWindow.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.core.metrics; +import io.prometheus.metrics.annotations.StableApi; import java.lang.reflect.Array; import java.util.concurrent.TimeUnit; import java.util.function.LongSupplier; @@ -26,6 +27,7 @@ * and the observation frequency is typically lower than Counter increments, the current * implementation provides an acceptable trade-off between simplicity and performance. */ +@StableApi public class SlidingWindow { private final Supplier constructor; diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StateSet.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StateSet.java index 2ad314ee7..c62aecb77 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StateSet.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StateSet.java @@ -2,6 +2,7 @@ import static io.prometheus.metrics.model.snapshots.PrometheusNaming.prometheusName; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.core.datapoints.StateSetDataPoint; import io.prometheus.metrics.model.registry.MetricType; @@ -51,6 +52,7 @@ * The example above shows how to use a StateSet with an enum. You don't have to use enum, you can * use regular strings as well. */ +@StableApi public class StateSet extends StatefulMetric implements StateSetDataPoint { diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StatefulMetric.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StatefulMetric.java index 9e14f7c2d..f089edea6 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StatefulMetric.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StatefulMetric.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.core.metrics; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.MetricsProperties; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.core.datapoints.DataPoint; @@ -31,6 +32,7 @@ * because in Java synchronous and asynchronous usually refers to multi-threading, but * this has nothing to do with multi-threading. */ +@StableApi public abstract class StatefulMetric extends MetricWithFixedMetadata { diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Summary.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Summary.java index a37162c61..f02236170 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Summary.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/Summary.java @@ -2,6 +2,7 @@ import static java.util.Objects.requireNonNull; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.MetricsProperties; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.core.datapoints.DistributionDataPoint; @@ -43,6 +44,7 @@ * * See {@link Summary.Builder} for configuration options. */ +@StableApi public class Summary extends StatefulMetric implements DistributionDataPoint { diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/SummaryWithCallback.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/SummaryWithCallback.java index 8229a817c..0980f0d19 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/SummaryWithCallback.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/SummaryWithCallback.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.core.metrics; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.model.registry.MetricType; import io.prometheus.metrics.model.snapshots.Exemplars; @@ -35,6 +36,7 @@ * .register(); * }

*/ +@StableApi public class SummaryWithCallback extends CallbackMetric { @FunctionalInterface diff --git a/prometheus-metrics-exporter-common/pom.xml b/prometheus-metrics-exporter-common/pom.xml index 9c1c9c91f..9381b16dc 100644 --- a/prometheus-metrics-exporter-common/pom.xml +++ b/prometheus-metrics-exporter-common/pom.xml @@ -21,6 +21,12 @@ + + io.prometheus + prometheus-metrics-annotations + ${project.version} + true + io.prometheus prometheus-metrics-model diff --git a/prometheus-metrics-exporter-common/src/main/java/io/prometheus/metrics/exporter/common/PrometheusHttpExchange.java b/prometheus-metrics-exporter-common/src/main/java/io/prometheus/metrics/exporter/common/PrometheusHttpExchange.java index b7ac63b28..81d00e62b 100644 --- a/prometheus-metrics-exporter-common/src/main/java/io/prometheus/metrics/exporter/common/PrometheusHttpExchange.java +++ b/prometheus-metrics-exporter-common/src/main/java/io/prometheus/metrics/exporter/common/PrometheusHttpExchange.java @@ -1,7 +1,9 @@ package io.prometheus.metrics.exporter.common; +import io.prometheus.metrics.annotations.StableApi; import java.io.IOException; +@StableApi public interface PrometheusHttpExchange extends AutoCloseable { PrometheusHttpRequest getRequest(); diff --git a/prometheus-metrics-exporter-common/src/main/java/io/prometheus/metrics/exporter/common/PrometheusHttpRequest.java b/prometheus-metrics-exporter-common/src/main/java/io/prometheus/metrics/exporter/common/PrometheusHttpRequest.java index 4483fc83f..a0c692c23 100644 --- a/prometheus-metrics-exporter-common/src/main/java/io/prometheus/metrics/exporter/common/PrometheusHttpRequest.java +++ b/prometheus-metrics-exporter-common/src/main/java/io/prometheus/metrics/exporter/common/PrometheusHttpRequest.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.exporter.common; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.model.registry.PrometheusScrapeRequest; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; @@ -7,6 +8,7 @@ import java.util.Enumeration; import javax.annotation.Nullable; +@StableApi public interface PrometheusHttpRequest extends PrometheusScrapeRequest { /** See {@code jakarta.servlet.http.HttpServletRequest.getQueryString()} */ diff --git a/prometheus-metrics-exporter-common/src/main/java/io/prometheus/metrics/exporter/common/PrometheusHttpResponse.java b/prometheus-metrics-exporter-common/src/main/java/io/prometheus/metrics/exporter/common/PrometheusHttpResponse.java index b3dd4e2fb..b084d3989 100644 --- a/prometheus-metrics-exporter-common/src/main/java/io/prometheus/metrics/exporter/common/PrometheusHttpResponse.java +++ b/prometheus-metrics-exporter-common/src/main/java/io/prometheus/metrics/exporter/common/PrometheusHttpResponse.java @@ -1,8 +1,10 @@ package io.prometheus.metrics.exporter.common; +import io.prometheus.metrics.annotations.StableApi; import java.io.IOException; import java.io.OutputStream; +@StableApi public interface PrometheusHttpResponse { /** See {@code jakarta.servlet.http.HttpServletResponse.setHeader(String, String)} */ diff --git a/prometheus-metrics-exporter-common/src/main/java/io/prometheus/metrics/exporter/common/PrometheusScrapeHandler.java b/prometheus-metrics-exporter-common/src/main/java/io/prometheus/metrics/exporter/common/PrometheusScrapeHandler.java index b538f898d..20328382a 100644 --- a/prometheus-metrics-exporter-common/src/main/java/io/prometheus/metrics/exporter/common/PrometheusScrapeHandler.java +++ b/prometheus-metrics-exporter-common/src/main/java/io/prometheus/metrics/exporter/common/PrometheusScrapeHandler.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.exporter.common; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.EscapingScheme; import io.prometheus.metrics.config.ExporterFilterProperties; import io.prometheus.metrics.config.PrometheusProperties; @@ -22,6 +23,7 @@ import javax.annotation.Nullable; /** Prometheus scrape endpoint. */ +@StableApi public class PrometheusScrapeHandler { private final PrometheusRegistry registry; diff --git a/prometheus-metrics-exporter-httpserver/pom.xml b/prometheus-metrics-exporter-httpserver/pom.xml index d8916ca72..a9b854a87 100644 --- a/prometheus-metrics-exporter-httpserver/pom.xml +++ b/prometheus-metrics-exporter-httpserver/pom.xml @@ -22,6 +22,12 @@ + + io.prometheus + prometheus-metrics-annotations + ${project.version} + true + io.prometheus prometheus-metrics-exporter-common diff --git a/prometheus-metrics-exporter-httpserver/src/main/java/io/prometheus/metrics/exporter/httpserver/DefaultHandler.java b/prometheus-metrics-exporter-httpserver/src/main/java/io/prometheus/metrics/exporter/httpserver/DefaultHandler.java index a4a343d54..2cafbb89c 100644 --- a/prometheus-metrics-exporter-httpserver/src/main/java/io/prometheus/metrics/exporter/httpserver/DefaultHandler.java +++ b/prometheus-metrics-exporter-httpserver/src/main/java/io/prometheus/metrics/exporter/httpserver/DefaultHandler.java @@ -2,10 +2,12 @@ import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; +import io.prometheus.metrics.annotations.StableApi; import java.io.IOException; import java.nio.charset.StandardCharsets; /** Handler for the / endpoint */ +@StableApi public class DefaultHandler implements HttpHandler { private final byte[] responseBytes; diff --git a/prometheus-metrics-exporter-httpserver/src/main/java/io/prometheus/metrics/exporter/httpserver/HTTPServer.java b/prometheus-metrics-exporter-httpserver/src/main/java/io/prometheus/metrics/exporter/httpserver/HTTPServer.java index 55ed6c67e..e93b122b0 100644 --- a/prometheus-metrics-exporter-httpserver/src/main/java/io/prometheus/metrics/exporter/httpserver/HTTPServer.java +++ b/prometheus-metrics-exporter-httpserver/src/main/java/io/prometheus/metrics/exporter/httpserver/HTTPServer.java @@ -7,6 +7,7 @@ import com.sun.net.httpserver.HttpServer; import com.sun.net.httpserver.HttpsConfigurator; import com.sun.net.httpserver.HttpsServer; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.model.registry.PrometheusRegistry; import java.io.Closeable; @@ -35,6 +36,7 @@ * .buildAndStart(); * }
*/ +@StableApi public class HTTPServer implements Closeable { static { diff --git a/prometheus-metrics-exporter-httpserver/src/main/java/io/prometheus/metrics/exporter/httpserver/HealthyHandler.java b/prometheus-metrics-exporter-httpserver/src/main/java/io/prometheus/metrics/exporter/httpserver/HealthyHandler.java index 806b47553..10cb97462 100644 --- a/prometheus-metrics-exporter-httpserver/src/main/java/io/prometheus/metrics/exporter/httpserver/HealthyHandler.java +++ b/prometheus-metrics-exporter-httpserver/src/main/java/io/prometheus/metrics/exporter/httpserver/HealthyHandler.java @@ -2,10 +2,12 @@ import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; +import io.prometheus.metrics.annotations.StableApi; import java.io.IOException; import java.nio.charset.StandardCharsets; /** Handler for the /-/healthy endpoint */ +@StableApi public class HealthyHandler implements HttpHandler { private final byte[] responseBytes; diff --git a/prometheus-metrics-exporter-httpserver/src/main/java/io/prometheus/metrics/exporter/httpserver/MetricsHandler.java b/prometheus-metrics-exporter-httpserver/src/main/java/io/prometheus/metrics/exporter/httpserver/MetricsHandler.java index 4ac4b80d7..175696b68 100644 --- a/prometheus-metrics-exporter-httpserver/src/main/java/io/prometheus/metrics/exporter/httpserver/MetricsHandler.java +++ b/prometheus-metrics-exporter-httpserver/src/main/java/io/prometheus/metrics/exporter/httpserver/MetricsHandler.java @@ -2,12 +2,14 @@ import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.exporter.common.PrometheusScrapeHandler; import io.prometheus.metrics.model.registry.PrometheusRegistry; import java.io.IOException; /** Handler for the /metrics endpoint */ +@StableApi public class MetricsHandler implements HttpHandler { private final PrometheusScrapeHandler prometheusScrapeHandler; diff --git a/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml b/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml index 308ee761e..514d58699 100644 --- a/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml +++ b/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml @@ -33,6 +33,12 @@ + + io.prometheus + prometheus-metrics-annotations + ${project.version} + true + io.prometheus prometheus-metrics-core diff --git a/prometheus-metrics-exporter-opentelemetry/pom.xml b/prometheus-metrics-exporter-opentelemetry/pom.xml index 415882bb4..24c147f50 100644 --- a/prometheus-metrics-exporter-opentelemetry/pom.xml +++ b/prometheus-metrics-exporter-opentelemetry/pom.xml @@ -34,6 +34,12 @@ + + io.prometheus + prometheus-metrics-annotations + ${project.version} + true + io.prometheus prometheus-metrics-core diff --git a/prometheus-metrics-exporter-opentelemetry/src/main/java/io/prometheus/metrics/exporter/opentelemetry/OpenTelemetryExporter.java b/prometheus-metrics-exporter-opentelemetry/src/main/java/io/prometheus/metrics/exporter/opentelemetry/OpenTelemetryExporter.java index 727647e2e..1ca92c2c7 100644 --- a/prometheus-metrics-exporter-opentelemetry/src/main/java/io/prometheus/metrics/exporter/opentelemetry/OpenTelemetryExporter.java +++ b/prometheus-metrics-exporter-opentelemetry/src/main/java/io/prometheus/metrics/exporter/opentelemetry/OpenTelemetryExporter.java @@ -1,12 +1,14 @@ package io.prometheus.metrics.exporter.opentelemetry; import io.opentelemetry.sdk.metrics.export.MetricReader; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.model.registry.PrometheusRegistry; import java.util.HashMap; import java.util.Map; import javax.annotation.Nullable; +@StableApi public class OpenTelemetryExporter implements AutoCloseable { private final MetricReader reader; diff --git a/prometheus-metrics-exporter-pushgateway/pom.xml b/prometheus-metrics-exporter-pushgateway/pom.xml index c7b63fb96..b7d543a34 100644 --- a/prometheus-metrics-exporter-pushgateway/pom.xml +++ b/prometheus-metrics-exporter-pushgateway/pom.xml @@ -21,6 +21,12 @@ + + io.prometheus + prometheus-metrics-annotations + ${project.version} + true + io.prometheus prometheus-metrics-exporter-common diff --git a/prometheus-metrics-exporter-pushgateway/src/main/java/io/prometheus/metrics/exporter/pushgateway/DefaultHttpConnectionFactory.java b/prometheus-metrics-exporter-pushgateway/src/main/java/io/prometheus/metrics/exporter/pushgateway/DefaultHttpConnectionFactory.java index 60c110149..ef28fb34f 100644 --- a/prometheus-metrics-exporter-pushgateway/src/main/java/io/prometheus/metrics/exporter/pushgateway/DefaultHttpConnectionFactory.java +++ b/prometheus-metrics-exporter-pushgateway/src/main/java/io/prometheus/metrics/exporter/pushgateway/DefaultHttpConnectionFactory.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.exporter.pushgateway; +import io.prometheus.metrics.annotations.StableApi; import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL; @@ -12,6 +13,7 @@ * certificate verification see {@code PushGatewayTestApp} in {@code * integration-tests/it-pushgateway/}. */ +@StableApi public class DefaultHttpConnectionFactory implements HttpConnectionFactory { @Override public HttpURLConnection create(URL url) throws IOException { diff --git a/prometheus-metrics-exporter-pushgateway/src/main/java/io/prometheus/metrics/exporter/pushgateway/Format.java b/prometheus-metrics-exporter-pushgateway/src/main/java/io/prometheus/metrics/exporter/pushgateway/Format.java index 3d1b9d2e6..089c686fc 100644 --- a/prometheus-metrics-exporter-pushgateway/src/main/java/io/prometheus/metrics/exporter/pushgateway/Format.java +++ b/prometheus-metrics-exporter-pushgateway/src/main/java/io/prometheus/metrics/exporter/pushgateway/Format.java @@ -1,5 +1,8 @@ package io.prometheus.metrics.exporter.pushgateway; +import io.prometheus.metrics.annotations.StableApi; + +@StableApi public enum Format { PROMETHEUS_PROTOBUF, PROMETHEUS_TEXT diff --git a/prometheus-metrics-exporter-pushgateway/src/main/java/io/prometheus/metrics/exporter/pushgateway/HttpConnectionFactory.java b/prometheus-metrics-exporter-pushgateway/src/main/java/io/prometheus/metrics/exporter/pushgateway/HttpConnectionFactory.java index f7a039af7..7b112bb4d 100644 --- a/prometheus-metrics-exporter-pushgateway/src/main/java/io/prometheus/metrics/exporter/pushgateway/HttpConnectionFactory.java +++ b/prometheus-metrics-exporter-pushgateway/src/main/java/io/prometheus/metrics/exporter/pushgateway/HttpConnectionFactory.java @@ -1,11 +1,13 @@ package io.prometheus.metrics.exporter.pushgateway; +import io.prometheus.metrics.annotations.StableApi; import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL; /** See {@link DefaultHttpConnectionFactory}. */ @FunctionalInterface +@StableApi public interface HttpConnectionFactory { HttpURLConnection create(URL url) throws IOException; } diff --git a/prometheus-metrics-exporter-pushgateway/src/main/java/io/prometheus/metrics/exporter/pushgateway/PushGateway.java b/prometheus-metrics-exporter-pushgateway/src/main/java/io/prometheus/metrics/exporter/pushgateway/PushGateway.java index 594132cf2..5bf26b6c1 100644 --- a/prometheus-metrics-exporter-pushgateway/src/main/java/io/prometheus/metrics/exporter/pushgateway/PushGateway.java +++ b/prometheus-metrics-exporter-pushgateway/src/main/java/io/prometheus/metrics/exporter/pushgateway/PushGateway.java @@ -4,6 +4,7 @@ import static io.prometheus.metrics.model.snapshots.PrometheusNaming.escapeName; import static java.util.Objects.requireNonNull; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.EscapingScheme; import io.prometheus.metrics.config.ExporterPushgatewayProperties; import io.prometheus.metrics.config.PrometheusProperties; @@ -79,6 +80,7 @@ *

See https://github.com/prometheus/pushgateway. */ +@StableApi public class PushGateway { private final URL url; private final ExpositionFormatWriter writer; diff --git a/prometheus-metrics-exporter-pushgateway/src/main/java/io/prometheus/metrics/exporter/pushgateway/Scheme.java b/prometheus-metrics-exporter-pushgateway/src/main/java/io/prometheus/metrics/exporter/pushgateway/Scheme.java index 51a2e32dd..1ade4efdb 100644 --- a/prometheus-metrics-exporter-pushgateway/src/main/java/io/prometheus/metrics/exporter/pushgateway/Scheme.java +++ b/prometheus-metrics-exporter-pushgateway/src/main/java/io/prometheus/metrics/exporter/pushgateway/Scheme.java @@ -1,5 +1,8 @@ package io.prometheus.metrics.exporter.pushgateway; +import io.prometheus.metrics.annotations.StableApi; + +@StableApi public enum Scheme { HTTP("http"), HTTPS("https"); diff --git a/prometheus-metrics-exporter-servlet-jakarta/pom.xml b/prometheus-metrics-exporter-servlet-jakarta/pom.xml index 7ad2f482e..248af0c0b 100644 --- a/prometheus-metrics-exporter-servlet-jakarta/pom.xml +++ b/prometheus-metrics-exporter-servlet-jakarta/pom.xml @@ -22,6 +22,12 @@ + + io.prometheus + prometheus-metrics-annotations + ${project.version} + true + io.prometheus prometheus-metrics-exporter-common diff --git a/prometheus-metrics-exporter-servlet-jakarta/src/main/java/io/prometheus/metrics/exporter/servlet/jakarta/PrometheusMetricsServlet.java b/prometheus-metrics-exporter-servlet-jakarta/src/main/java/io/prometheus/metrics/exporter/servlet/jakarta/PrometheusMetricsServlet.java index 5e22fc3fd..68153f761 100644 --- a/prometheus-metrics-exporter-servlet-jakarta/src/main/java/io/prometheus/metrics/exporter/servlet/jakarta/PrometheusMetricsServlet.java +++ b/prometheus-metrics-exporter-servlet-jakarta/src/main/java/io/prometheus/metrics/exporter/servlet/jakarta/PrometheusMetricsServlet.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.exporter.servlet.jakarta; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.exporter.common.PrometheusScrapeHandler; import io.prometheus.metrics.model.registry.PrometheusRegistry; @@ -14,6 +15,7 @@ *

We'll add a Jakarta servlet, the built-in HTTPServer, etc. soon, and likely move common code * into a common module. */ +@StableApi public class PrometheusMetricsServlet extends HttpServlet { private static final long serialVersionUID = 0L; diff --git a/prometheus-metrics-exporter-servlet-javax/pom.xml b/prometheus-metrics-exporter-servlet-javax/pom.xml index 53df64c8d..d5749f71c 100644 --- a/prometheus-metrics-exporter-servlet-javax/pom.xml +++ b/prometheus-metrics-exporter-servlet-javax/pom.xml @@ -29,6 +29,12 @@ + + io.prometheus + prometheus-metrics-annotations + ${project.version} + true + io.prometheus prometheus-metrics-exporter-common diff --git a/prometheus-metrics-exporter-servlet-javax/src/main/java/io/prometheus/metrics/exporter/servlet/javax/PrometheusMetricsServlet.java b/prometheus-metrics-exporter-servlet-javax/src/main/java/io/prometheus/metrics/exporter/servlet/javax/PrometheusMetricsServlet.java index a486aec93..aa2e3e3a9 100644 --- a/prometheus-metrics-exporter-servlet-javax/src/main/java/io/prometheus/metrics/exporter/servlet/javax/PrometheusMetricsServlet.java +++ b/prometheus-metrics-exporter-servlet-javax/src/main/java/io/prometheus/metrics/exporter/servlet/javax/PrometheusMetricsServlet.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.exporter.servlet.javax; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.exporter.common.PrometheusScrapeHandler; import io.prometheus.metrics.model.registry.PrometheusRegistry; @@ -13,6 +14,7 @@ * PrometheusScrapeHandler to handle HTTP GET requests and export metrics. The servlet can be * configured with custom PrometheusProperties and a PrometheusRegistry. */ +@StableApi public class PrometheusMetricsServlet extends HttpServlet { private static final long serialVersionUID = 0L; diff --git a/prometheus-metrics-exposition-textformats/pom.xml b/prometheus-metrics-exposition-textformats/pom.xml index 91cb0de39..17c0dc450 100644 --- a/prometheus-metrics-exposition-textformats/pom.xml +++ b/prometheus-metrics-exposition-textformats/pom.xml @@ -22,6 +22,12 @@ + + io.prometheus + prometheus-metrics-annotations + ${project.version} + true + io.prometheus prometheus-metrics-model diff --git a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/ExpositionFormatWriter.java b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/ExpositionFormatWriter.java index 03ac229ca..7ea071bf7 100644 --- a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/ExpositionFormatWriter.java +++ b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/ExpositionFormatWriter.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.expositionformats; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.EscapingScheme; import io.prometheus.metrics.model.snapshots.MetricSnapshots; import java.io.ByteArrayOutputStream; @@ -7,6 +8,7 @@ import java.io.OutputStream; import javax.annotation.Nullable; +@StableApi public interface ExpositionFormatWriter { boolean accepts(@Nullable String acceptHeader); diff --git a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/ExpositionFormats.java b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/ExpositionFormats.java index feabd89b8..0cfce9b5f 100644 --- a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/ExpositionFormats.java +++ b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/ExpositionFormats.java @@ -1,10 +1,12 @@ package io.prometheus.metrics.expositionformats; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.ExporterProperties; import io.prometheus.metrics.config.OpenMetrics2Properties; import io.prometheus.metrics.config.PrometheusProperties; import javax.annotation.Nullable; +@StableApi public class ExpositionFormats { private final PrometheusProtobufWriter prometheusProtobufWriter; diff --git a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/OpenMetrics2TextFormatWriter.java b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/OpenMetrics2TextFormatWriter.java index 19e1e4c93..f400ecce0 100644 --- a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/OpenMetrics2TextFormatWriter.java +++ b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/OpenMetrics2TextFormatWriter.java @@ -9,6 +9,7 @@ import static io.prometheus.metrics.model.snapshots.SnapshotEscaper.getOriginalMetadataName; import static io.prometheus.metrics.model.snapshots.SnapshotEscaper.getSnapshotLabelName; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.EscapingScheme; import io.prometheus.metrics.config.OpenMetrics2Properties; import io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets; @@ -45,6 +46,7 @@ * href="https://github.com/prometheus/docs/blob/main/docs/specs/om/open_metrics_spec_2_0.md">OpenMetrics * 2.0 specification evolves. */ +@StableApi public class OpenMetrics2TextFormatWriter implements ExpositionFormatWriter { public static class Builder { diff --git a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/OpenMetricsTextFormatWriter.java b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/OpenMetricsTextFormatWriter.java index cd299cb94..02614a561 100644 --- a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/OpenMetricsTextFormatWriter.java +++ b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/OpenMetricsTextFormatWriter.java @@ -10,6 +10,7 @@ import static io.prometheus.metrics.model.snapshots.SnapshotEscaper.getMetadataName; import static io.prometheus.metrics.model.snapshots.SnapshotEscaper.getSnapshotLabelName; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.EscapingScheme; import io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets; import io.prometheus.metrics.model.snapshots.CounterSnapshot; @@ -43,6 +44,7 @@ * Write the OpenMetrics text format as defined on https://openmetrics.io. */ +@StableApi public class OpenMetricsTextFormatWriter implements ExpositionFormatWriter { public static class Builder { diff --git a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/PrometheusProtobufWriter.java b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/PrometheusProtobufWriter.java index 342beb255..d7f4e4469 100644 --- a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/PrometheusProtobufWriter.java +++ b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/PrometheusProtobufWriter.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.expositionformats; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.EscapingScheme; import io.prometheus.metrics.model.snapshots.MetricSnapshots; import java.io.IOException; @@ -12,6 +13,7 @@ * *

As of today, this is the only exposition format that supports native histograms. */ +@StableApi public class PrometheusProtobufWriter implements ExpositionFormatWriter { @Nullable private static final ExpositionFormatWriter DELEGATE = createProtobufWriter(); diff --git a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/PrometheusTextFormatWriter.java b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/PrometheusTextFormatWriter.java index 9251ac85e..f94d710ba 100644 --- a/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/PrometheusTextFormatWriter.java +++ b/prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/PrometheusTextFormatWriter.java @@ -12,6 +12,7 @@ import static io.prometheus.metrics.model.snapshots.SnapshotEscaper.getMetadataName; import static io.prometheus.metrics.model.snapshots.SnapshotEscaper.getSnapshotLabelName; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.EscapingScheme; import io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets; import io.prometheus.metrics.model.snapshots.CounterSnapshot; @@ -40,6 +41,7 @@ * Write the Prometheus text format. This is the default if you view a Prometheus endpoint with your * Web browser. */ +@StableApi public class PrometheusTextFormatWriter implements ExpositionFormatWriter { public static final String CONTENT_TYPE = "text/plain; version=0.0.4; charset=utf-8"; diff --git a/prometheus-metrics-instrumentation-caffeine/pom.xml b/prometheus-metrics-instrumentation-caffeine/pom.xml index f2776f309..ed00e6e7d 100644 --- a/prometheus-metrics-instrumentation-caffeine/pom.xml +++ b/prometheus-metrics-instrumentation-caffeine/pom.xml @@ -29,6 +29,12 @@ + + io.prometheus + prometheus-metrics-annotations + ${project.version} + true + io.prometheus prometheus-metrics-core diff --git a/prometheus-metrics-instrumentation-caffeine/src/main/java/io/prometheus/metrics/instrumentation/caffeine/CacheMetricsCollector.java b/prometheus-metrics-instrumentation-caffeine/src/main/java/io/prometheus/metrics/instrumentation/caffeine/CacheMetricsCollector.java index 28edff88f..ba7552910 100644 --- a/prometheus-metrics-instrumentation-caffeine/src/main/java/io/prometheus/metrics/instrumentation/caffeine/CacheMetricsCollector.java +++ b/prometheus-metrics-instrumentation-caffeine/src/main/java/io/prometheus/metrics/instrumentation/caffeine/CacheMetricsCollector.java @@ -5,6 +5,7 @@ import com.github.benmanes.caffeine.cache.LoadingCache; import com.github.benmanes.caffeine.cache.Policy; import com.github.benmanes.caffeine.cache.stats.CacheStats; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.model.registry.MultiCollector; import io.prometheus.metrics.model.snapshots.CounterSnapshot; import io.prometheus.metrics.model.snapshots.GaugeSnapshot; @@ -55,6 +56,7 @@ * caffeine_cache_load_duration_seconds_sum{cache="mycache"} 0.0034 *

*/ +@StableApi public class CacheMetricsCollector implements MultiCollector { private static final double NANOSECONDS_PER_SECOND = 1_000_000_000.0; diff --git a/prometheus-metrics-instrumentation-dropwizard/pom.xml b/prometheus-metrics-instrumentation-dropwizard/pom.xml index 0f4c1ead3..fd90bfd51 100644 --- a/prometheus-metrics-instrumentation-dropwizard/pom.xml +++ b/prometheus-metrics-instrumentation-dropwizard/pom.xml @@ -29,6 +29,12 @@ + + io.prometheus + prometheus-metrics-annotations + ${project.version} + true + io.prometheus prometheus-metrics-core diff --git a/prometheus-metrics-instrumentation-dropwizard/src/main/java/io/prometheus/metrics/instrumentation/dropwizard/DropwizardExports.java b/prometheus-metrics-instrumentation-dropwizard/src/main/java/io/prometheus/metrics/instrumentation/dropwizard/DropwizardExports.java index 0c1c8455f..4e527ce87 100644 --- a/prometheus-metrics-instrumentation-dropwizard/src/main/java/io/prometheus/metrics/instrumentation/dropwizard/DropwizardExports.java +++ b/prometheus-metrics-instrumentation-dropwizard/src/main/java/io/prometheus/metrics/instrumentation/dropwizard/DropwizardExports.java @@ -9,6 +9,7 @@ import com.codahale.metrics.MetricRegistry; import com.codahale.metrics.Snapshot; import com.codahale.metrics.Timer; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.instrumentation.dropwizard5.InvalidMetricHandler; import io.prometheus.metrics.instrumentation.dropwizard5.internal.AbstractDropwizardExports; import io.prometheus.metrics.instrumentation.dropwizard5.labels.CustomLabelMapper; @@ -22,6 +23,7 @@ *

This is a thin wrapper around {@link AbstractDropwizardExports} that handles the Dropwizard * 4.x specific API where metric names are Strings. */ +@StableApi public class DropwizardExports extends AbstractDropwizardExports< MetricRegistry, diff --git a/prometheus-metrics-instrumentation-dropwizard5/pom.xml b/prometheus-metrics-instrumentation-dropwizard5/pom.xml index ffee45702..654b575ce 100644 --- a/prometheus-metrics-instrumentation-dropwizard5/pom.xml +++ b/prometheus-metrics-instrumentation-dropwizard5/pom.xml @@ -22,6 +22,12 @@ + + io.prometheus + prometheus-metrics-annotations + ${project.version} + true + io.prometheus prometheus-metrics-core diff --git a/prometheus-metrics-instrumentation-dropwizard5/src/main/java/io/prometheus/metrics/instrumentation/dropwizard5/DropwizardExports.java b/prometheus-metrics-instrumentation-dropwizard5/src/main/java/io/prometheus/metrics/instrumentation/dropwizard5/DropwizardExports.java index 86c64b54e..dec51dc92 100644 --- a/prometheus-metrics-instrumentation-dropwizard5/src/main/java/io/prometheus/metrics/instrumentation/dropwizard5/DropwizardExports.java +++ b/prometheus-metrics-instrumentation-dropwizard5/src/main/java/io/prometheus/metrics/instrumentation/dropwizard5/DropwizardExports.java @@ -10,6 +10,7 @@ import io.dropwizard.metrics5.MetricRegistry; import io.dropwizard.metrics5.Snapshot; import io.dropwizard.metrics5.Timer; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.instrumentation.dropwizard5.internal.AbstractDropwizardExports; import io.prometheus.metrics.instrumentation.dropwizard5.labels.CustomLabelMapper; import io.prometheus.metrics.model.registry.PrometheusRegistry; @@ -22,6 +23,7 @@ *

This is a thin wrapper around {@link AbstractDropwizardExports} that handles the Dropwizard * 5.x specific API where metric names are {@link MetricName} objects. */ +@StableApi public class DropwizardExports extends AbstractDropwizardExports< MetricRegistry, diff --git a/prometheus-metrics-instrumentation-dropwizard5/src/main/java/io/prometheus/metrics/instrumentation/dropwizard5/InvalidMetricHandler.java b/prometheus-metrics-instrumentation-dropwizard5/src/main/java/io/prometheus/metrics/instrumentation/dropwizard5/InvalidMetricHandler.java index bac1aa0af..cb7d965ff 100644 --- a/prometheus-metrics-instrumentation-dropwizard5/src/main/java/io/prometheus/metrics/instrumentation/dropwizard5/InvalidMetricHandler.java +++ b/prometheus-metrics-instrumentation-dropwizard5/src/main/java/io/prometheus/metrics/instrumentation/dropwizard5/InvalidMetricHandler.java @@ -1,6 +1,9 @@ package io.prometheus.metrics.instrumentation.dropwizard5; +import io.prometheus.metrics.annotations.StableApi; + @FunctionalInterface +@StableApi public interface InvalidMetricHandler { InvalidMetricHandler ALWAYS_THROW = (metricName, exc) -> false; diff --git a/prometheus-metrics-instrumentation-dropwizard5/src/main/java/io/prometheus/metrics/instrumentation/dropwizard5/labels/CustomLabelMapper.java b/prometheus-metrics-instrumentation-dropwizard5/src/main/java/io/prometheus/metrics/instrumentation/dropwizard5/labels/CustomLabelMapper.java index f2174970c..61fb5de5a 100644 --- a/prometheus-metrics-instrumentation-dropwizard5/src/main/java/io/prometheus/metrics/instrumentation/dropwizard5/labels/CustomLabelMapper.java +++ b/prometheus-metrics-instrumentation-dropwizard5/src/main/java/io/prometheus/metrics/instrumentation/dropwizard5/labels/CustomLabelMapper.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.instrumentation.dropwizard5.labels; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.model.snapshots.Labels; import java.util.ArrayList; import java.util.List; @@ -10,6 +11,7 @@ * labels and names. Prometheus metric name and labels are extracted from the Dropwizard name based * on the provided list of {@link MapperConfig}s. The FIRST matching config will be used. */ +@StableApi public class CustomLabelMapper { private final List compiledMapperConfigs; diff --git a/prometheus-metrics-instrumentation-dropwizard5/src/main/java/io/prometheus/metrics/instrumentation/dropwizard5/labels/MapperConfig.java b/prometheus-metrics-instrumentation-dropwizard5/src/main/java/io/prometheus/metrics/instrumentation/dropwizard5/labels/MapperConfig.java index 2fced7ef6..46d4d36e4 100644 --- a/prometheus-metrics-instrumentation-dropwizard5/src/main/java/io/prometheus/metrics/instrumentation/dropwizard5/labels/MapperConfig.java +++ b/prometheus-metrics-instrumentation-dropwizard5/src/main/java/io/prometheus/metrics/instrumentation/dropwizard5/labels/MapperConfig.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.instrumentation.dropwizard5.labels; +import io.prometheus.metrics.annotations.StableApi; import java.util.HashMap; import java.util.Map; import java.util.regex.Pattern; @@ -15,6 +16,7 @@ *

Dropwizard metrics that match the "match" pattern will be further processed to have a new name * and new labels based on this config. */ +@StableApi public final class MapperConfig { // Each part of the metric name between dots. Accepts letters, digits, underscores, hyphens, // colons, and glob wildcards (*) to support a broad range of metric naming conventions. diff --git a/prometheus-metrics-instrumentation-guava/pom.xml b/prometheus-metrics-instrumentation-guava/pom.xml index bb23faf3e..63980781c 100644 --- a/prometheus-metrics-instrumentation-guava/pom.xml +++ b/prometheus-metrics-instrumentation-guava/pom.xml @@ -29,6 +29,12 @@ + + io.prometheus + prometheus-metrics-annotations + ${project.version} + true + io.prometheus prometheus-metrics-core diff --git a/prometheus-metrics-instrumentation-guava/src/main/java/io/prometheus/metrics/instrumentation/guava/CacheMetricsCollector.java b/prometheus-metrics-instrumentation-guava/src/main/java/io/prometheus/metrics/instrumentation/guava/CacheMetricsCollector.java index 7a66e1d17..b807a28f0 100644 --- a/prometheus-metrics-instrumentation-guava/src/main/java/io/prometheus/metrics/instrumentation/guava/CacheMetricsCollector.java +++ b/prometheus-metrics-instrumentation-guava/src/main/java/io/prometheus/metrics/instrumentation/guava/CacheMetricsCollector.java @@ -3,6 +3,7 @@ import com.google.common.cache.Cache; import com.google.common.cache.CacheStats; import com.google.common.cache.LoadingCache; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.model.registry.MultiCollector; import io.prometheus.metrics.model.snapshots.CounterSnapshot; import io.prometheus.metrics.model.snapshots.GaugeSnapshot; @@ -51,6 +52,7 @@ * guava_cache_load_duration_seconds_sum{cache="mycache"} 0.0034 *

*/ +@StableApi public class CacheMetricsCollector implements MultiCollector { private static final double NANOSECONDS_PER_SECOND = 1_000_000_000.0; diff --git a/prometheus-metrics-instrumentation-jvm/pom.xml b/prometheus-metrics-instrumentation-jvm/pom.xml index d50a567e4..5cbdc3bd7 100644 --- a/prometheus-metrics-instrumentation-jvm/pom.xml +++ b/prometheus-metrics-instrumentation-jvm/pom.xml @@ -22,6 +22,12 @@ + + io.prometheus + prometheus-metrics-annotations + ${project.version} + true + io.prometheus prometheus-metrics-core diff --git a/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmBufferPoolMetrics.java b/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmBufferPoolMetrics.java index 8fc4b87e9..a31d46ba4 100644 --- a/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmBufferPoolMetrics.java +++ b/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmBufferPoolMetrics.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.instrumentation.jvm; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.core.metrics.GaugeWithCallback; import io.prometheus.metrics.model.registry.PrometheusRegistry; @@ -41,6 +42,7 @@ * jvm_buffer_pool_used_bytes{pool="mapped"} 0.0 *
*/ +@StableApi public class JvmBufferPoolMetrics { private static final String JVM_BUFFER_POOL_USED_BYTES = "jvm_buffer_pool_used_bytes"; diff --git a/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmClassLoadingMetrics.java b/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmClassLoadingMetrics.java index 34e9dcb8a..28b10cfb7 100644 --- a/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmClassLoadingMetrics.java +++ b/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmClassLoadingMetrics.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.instrumentation.jvm; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.core.metrics.CounterWithCallback; import io.prometheus.metrics.core.metrics.GaugeWithCallback; @@ -37,6 +38,7 @@ * jvm_classes_unloaded_total 0.0 *
*/ +@StableApi public class JvmClassLoadingMetrics { private static final String JVM_CLASSES_CURRENTLY_LOADED = "jvm_classes_currently_loaded"; diff --git a/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmCompilationMetrics.java b/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmCompilationMetrics.java index 975b6c6a3..86b5cc88d 100644 --- a/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmCompilationMetrics.java +++ b/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmCompilationMetrics.java @@ -2,6 +2,7 @@ import static io.prometheus.metrics.model.snapshots.Unit.millisToSeconds; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.core.metrics.CounterWithCallback; import io.prometheus.metrics.model.registry.PrometheusRegistry; @@ -33,6 +34,7 @@ * jvm_compilation_time_seconds_total 0.152 *
*/ +@StableApi public class JvmCompilationMetrics { private static final String JVM_COMPILATION_TIME_SECONDS_TOTAL = diff --git a/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmGarbageCollectorMetrics.java b/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmGarbageCollectorMetrics.java index a87b52a4f..aec943706 100644 --- a/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmGarbageCollectorMetrics.java +++ b/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmGarbageCollectorMetrics.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.instrumentation.jvm; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.core.metrics.SummaryWithCallback; import io.prometheus.metrics.model.registry.PrometheusRegistry; @@ -37,6 +38,7 @@ * jvm_gc_collection_seconds_sum{gc="PS Scavenge"} 0.0 *
*/ +@StableApi public class JvmGarbageCollectorMetrics { private static final String JVM_GC_COLLECTION_SECONDS = "jvm_gc_collection_seconds"; diff --git a/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmMemoryMetrics.java b/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmMemoryMetrics.java index 1b34dba6c..2fb377882 100644 --- a/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmMemoryMetrics.java +++ b/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmMemoryMetrics.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.instrumentation.jvm; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.core.metrics.GaugeWithCallback; import io.prometheus.metrics.model.registry.PrometheusRegistry; @@ -104,6 +105,7 @@ * jvm_memory_used_bytes{area="nonheap"} 1.1490688E7 *
*/ +@StableApi public class JvmMemoryMetrics { private static final String JVM_MEMORY_OBJECTS_PENDING_FINALIZATION = diff --git a/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmMemoryPoolAllocationMetrics.java b/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmMemoryPoolAllocationMetrics.java index 5dfb4199b..a8f520584 100644 --- a/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmMemoryPoolAllocationMetrics.java +++ b/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmMemoryPoolAllocationMetrics.java @@ -2,6 +2,7 @@ import com.sun.management.GarbageCollectionNotificationInfo; import com.sun.management.GcInfo; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.core.metrics.Counter; import io.prometheus.metrics.model.registry.PrometheusRegistry; @@ -47,6 +48,7 @@ * jvm_memory_pool_allocated_bytes_total{pool="PS Survivor Space"} 4115280.0 *
*/ +@StableApi public class JvmMemoryPoolAllocationMetrics { private static final String JVM_MEMORY_POOL_ALLOCATED_BYTES_TOTAL = diff --git a/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmMetrics.java b/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmMetrics.java index b0abd86b1..d7ab40d13 100644 --- a/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmMetrics.java +++ b/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmMetrics.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.instrumentation.jvm; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.model.registry.PrometheusRegistry; import io.prometheus.metrics.model.snapshots.Labels; @@ -13,6 +14,7 @@ * JvmMetrics.builder().register(); * }
*/ +@StableApi public class JvmMetrics { private static final Set REGISTERED = ConcurrentHashMap.newKeySet(); diff --git a/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmNativeMemoryMetrics.java b/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmNativeMemoryMetrics.java index 6b11df38a..d08e3fb11 100644 --- a/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmNativeMemoryMetrics.java +++ b/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmNativeMemoryMetrics.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.instrumentation.jvm; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.core.metrics.GaugeWithCallback; import io.prometheus.metrics.model.registry.PrometheusRegistry; @@ -85,6 +86,7 @@ * jvm_native_memory_reserved_bytes{pool="Unknown"} 32768.0 *
*/ +@StableApi public class JvmNativeMemoryMetrics { private static final String JVM_NATIVE_MEMORY_RESERVED_BYTES = "jvm_native_memory_reserved_bytes"; private static final String JVM_NATIVE_MEMORY_COMMITTED_BYTES = diff --git a/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmRuntimeInfoMetric.java b/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmRuntimeInfoMetric.java index 58363780f..095b643b0 100644 --- a/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmRuntimeInfoMetric.java +++ b/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmRuntimeInfoMetric.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.instrumentation.jvm; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.core.metrics.Info; import io.prometheus.metrics.model.registry.PrometheusRegistry; @@ -26,6 +27,7 @@ * jvm_runtime_info{runtime="OpenJDK Runtime Environment",vendor="Oracle Corporation",version="1.8.0_382-b05"} 1 *
*/ +@StableApi public class JvmRuntimeInfoMetric { private static final String JVM_RUNTIME_INFO = "jvm_runtime_info"; diff --git a/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmThreadsMetrics.java b/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmThreadsMetrics.java index 0e98e29d3..af41887bf 100644 --- a/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmThreadsMetrics.java +++ b/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/JvmThreadsMetrics.java @@ -2,6 +2,7 @@ import static java.util.Objects.requireNonNull; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.core.metrics.CounterWithCallback; import io.prometheus.metrics.core.metrics.GaugeWithCallback; @@ -61,6 +62,7 @@ * jvm_threads_state{state="WAITING"} 3.0 *
*/ +@StableApi public class JvmThreadsMetrics { private static final String UNKNOWN = "UNKNOWN"; diff --git a/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/ProcessMetrics.java b/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/ProcessMetrics.java index b341f848a..6132ad08e 100644 --- a/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/ProcessMetrics.java +++ b/prometheus-metrics-instrumentation-jvm/src/main/java/io/prometheus/metrics/instrumentation/jvm/ProcessMetrics.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.instrumentation.jvm; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.core.metrics.CounterWithCallback; import io.prometheus.metrics.core.metrics.GaugeWithCallback; @@ -67,6 +68,7 @@ * process_virtual_memory_bytes 1.2683624448E10 *
*/ +@StableApi public class ProcessMetrics { private static final String PROCESS_CPU_SECONDS_TOTAL = "process_cpu_seconds_total"; diff --git a/prometheus-metrics-model/pom.xml b/prometheus-metrics-model/pom.xml index cdac0a60b..c1a83dea0 100644 --- a/prometheus-metrics-model/pom.xml +++ b/prometheus-metrics-model/pom.xml @@ -22,6 +22,12 @@ + + io.prometheus + prometheus-metrics-annotations + ${project.version} + true + io.prometheus prometheus-metrics-config diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/Collector.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/Collector.java index f903ce676..0f2ccd516 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/Collector.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/Collector.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.model.registry; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor; import io.prometheus.metrics.model.snapshots.MetricMetadata; import io.prometheus.metrics.model.snapshots.MetricSnapshot; @@ -13,6 +14,7 @@ * href="https://prometheus.io/docs/instrumenting/writing_clientlibs/">https://prometheus.io/docs/instrumenting/writing_clientlibs/. */ @FunctionalInterface +@StableApi public interface Collector { /** Called when the Prometheus server scrapes metrics. */ diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/MetricNameFilter.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/MetricNameFilter.java index 609f7fd33..642f27150 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/MetricNameFilter.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/MetricNameFilter.java @@ -2,6 +2,7 @@ import static java.util.Collections.unmodifiableCollection; +import io.prometheus.metrics.annotations.StableApi; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -9,6 +10,7 @@ import javax.annotation.Nullable; /** Filter samples (i.e. time series) by name. */ +@StableApi public class MetricNameFilter implements Predicate { /** For convenience, a filter that allows all names. */ diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/MetricType.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/MetricType.java index 5258da84e..f1b5d76ba 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/MetricType.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/MetricType.java @@ -1,11 +1,14 @@ package io.prometheus.metrics.model.registry; +import io.prometheus.metrics.annotations.StableApi; + /** * Represents the type of Prometheus metric. * *

This enum is used for registration-time validation to ensure that metrics with the same name * have consistent types across all registered collectors. */ +@StableApi public enum MetricType { COUNTER, GAUGE, diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/MultiCollector.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/MultiCollector.java index 692f0be71..54ce8c47c 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/MultiCollector.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/MultiCollector.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.model.registry; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor; import io.prometheus.metrics.model.snapshots.MetricMetadata; import io.prometheus.metrics.model.snapshots.MetricSnapshot; @@ -13,6 +14,7 @@ /** Like {@link Collector}, but collecting multiple Snapshots at once. */ @FunctionalInterface +@StableApi public interface MultiCollector { /** Called when the Prometheus server scrapes metrics. */ diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/PrometheusRegistry.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/PrometheusRegistry.java index 071c90f4b..882f5711d 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/PrometheusRegistry.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/PrometheusRegistry.java @@ -2,6 +2,7 @@ import static java.util.Collections.emptySet; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor; import io.prometheus.metrics.model.snapshots.MetricMetadata; import io.prometheus.metrics.model.snapshots.MetricSnapshot; @@ -17,6 +18,7 @@ import java.util.function.Predicate; import javax.annotation.Nullable; +@StableApi public class PrometheusRegistry { public static final PrometheusRegistry defaultRegistry = new PrometheusRegistry(); diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/PrometheusScrapeRequest.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/PrometheusScrapeRequest.java index 91a1313ab..2ec6c768f 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/PrometheusScrapeRequest.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/registry/PrometheusScrapeRequest.java @@ -1,8 +1,10 @@ package io.prometheus.metrics.model.registry; +import io.prometheus.metrics.annotations.StableApi; import javax.annotation.Nullable; /** Infos extracted from the request received by the endpoint */ +@StableApi public interface PrometheusScrapeRequest { /** Absolute path of the HTTP request. */ diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/ClassicHistogramBucket.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/ClassicHistogramBucket.java index ebadd1f16..0f487efdf 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/ClassicHistogramBucket.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/ClassicHistogramBucket.java @@ -1,9 +1,12 @@ package io.prometheus.metrics.model.snapshots; +import io.prometheus.metrics.annotations.StableApi; + /** * Helper class for iterating over {@link ClassicHistogramBuckets}. Note that the {@code count} is * not cumulative. */ +@StableApi public class ClassicHistogramBucket implements Comparable { private final long count; // not cumulative diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/ClassicHistogramBuckets.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/ClassicHistogramBuckets.java index c697bee39..b2998d799 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/ClassicHistogramBuckets.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/ClassicHistogramBuckets.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.model.snapshots; +import io.prometheus.metrics.annotations.StableApi; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -11,6 +12,7 @@ * Immutable container for histogram buckets with fixed bucket boundaries. Note that the counts are * not cumulative. */ +@StableApi public class ClassicHistogramBuckets implements Iterable { /** Used in native histograms to indicate that no classic histogram buckets are present. */ diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/CounterSnapshot.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/CounterSnapshot.java index e5831168b..42a06f3bb 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/CounterSnapshot.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/CounterSnapshot.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.model.snapshots; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.EscapingScheme; import java.util.ArrayList; import java.util.Collection; @@ -7,6 +8,7 @@ import javax.annotation.Nullable; /** Immutable snapshot of a Counter. */ +@StableApi public class CounterSnapshot extends MetricSnapshot { /** diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/DataPointSnapshot.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/DataPointSnapshot.java index d960912a0..910e2ef50 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/DataPointSnapshot.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/DataPointSnapshot.java @@ -1,8 +1,10 @@ package io.prometheus.metrics.model.snapshots; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.EscapingScheme; @SuppressWarnings("this-escape") +@StableApi public abstract class DataPointSnapshot { private final Labels labels; private final long createdTimestampMillis; diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/DistributionDataPointSnapshot.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/DistributionDataPointSnapshot.java index 1ae0559e1..2d1331915 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/DistributionDataPointSnapshot.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/DistributionDataPointSnapshot.java @@ -1,9 +1,12 @@ package io.prometheus.metrics.model.snapshots; +import io.prometheus.metrics.annotations.StableApi; + /** * Common base class for histogram and summary data. Histograms and Summaries represent * distributions, like a latency distribution or a distribution of request sizes in Bytes. */ +@StableApi public abstract class DistributionDataPointSnapshot extends DataPointSnapshot { private final long count; // optional, negative value means no count. private final double sum; // optional, Double.NaN means no sum. diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/DuplicateLabelsException.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/DuplicateLabelsException.java index 721655105..fd1e6d838 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/DuplicateLabelsException.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/DuplicateLabelsException.java @@ -1,9 +1,12 @@ package io.prometheus.metrics.model.snapshots; +import io.prometheus.metrics.annotations.StableApi; + /** * Thrown when a collector tries to create a {@link MetricSnapshot} where multiple data points have * the same labels (same label names and label values). */ +@StableApi public class DuplicateLabelsException extends IllegalArgumentException { private static final long serialVersionUID = 0L; diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Exemplar.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Exemplar.java index 418603580..07dc811f8 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Exemplar.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Exemplar.java @@ -2,9 +2,11 @@ import static java.util.Objects.requireNonNull; +import io.prometheus.metrics.annotations.StableApi; import javax.annotation.Nullable; /** Immutable representation of an Exemplar. */ +@StableApi public class Exemplar { /** Label name for trace id. */ diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Exemplars.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Exemplars.java index 887a80fff..1408419b7 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Exemplars.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Exemplars.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.model.snapshots; +import io.prometheus.metrics.annotations.StableApi; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -14,6 +15,7 @@ *

This is currently backed by a {@code List}. May be refactored later to use a more * efficient data structure. */ +@StableApi public class Exemplars implements Iterable { /** EMPTY means no Exemplars. */ diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/GaugeSnapshot.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/GaugeSnapshot.java index 03474852f..7a4208b05 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/GaugeSnapshot.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/GaugeSnapshot.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.model.snapshots; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.EscapingScheme; import java.util.ArrayList; import java.util.Collection; @@ -7,6 +8,7 @@ import javax.annotation.Nullable; /** Immutable snapshot of a Gauge. */ +@StableApi public final class GaugeSnapshot extends MetricSnapshot { /** diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/HistogramSnapshot.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/HistogramSnapshot.java index acc78d3d3..06c687c9f 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/HistogramSnapshot.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/HistogramSnapshot.java @@ -1,11 +1,13 @@ package io.prometheus.metrics.model.snapshots; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.EscapingScheme; import java.util.ArrayList; import java.util.Collection; import java.util.List; /** Immutable snapshot of a Histogram. */ +@StableApi public final class HistogramSnapshot extends MetricSnapshot { private final boolean gaugeHistogram; diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/InfoSnapshot.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/InfoSnapshot.java index 20f9038b1..0178eea2e 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/InfoSnapshot.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/InfoSnapshot.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.model.snapshots; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.EscapingScheme; import java.util.ArrayList; import java.util.Collection; @@ -7,6 +8,7 @@ import javax.annotation.Nullable; /** Immutable snapshot of an Info metric. */ +@StableApi public final class InfoSnapshot extends MetricSnapshot { /** diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Label.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Label.java index 45acd56ee..7af8d3310 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Label.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Label.java @@ -1,8 +1,10 @@ package io.prometheus.metrics.model.snapshots; +import io.prometheus.metrics.annotations.StableApi; import java.util.Objects; /** Utility for iterating over {@link Labels}. */ +@StableApi public final class Label implements Comparable

*/ +@StableApi public class NativeHistogramBuckets implements Iterable { public static final NativeHistogramBuckets EMPTY = diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/PrometheusNaming.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/PrometheusNaming.java index 63cbb7879..f8f281dfc 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/PrometheusNaming.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/PrometheusNaming.java @@ -4,6 +4,7 @@ import static java.lang.Character.MAX_LOW_SURROGATE; import static java.lang.Character.MIN_HIGH_SURROGATE; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.EscapingScheme; import java.nio.charset.StandardCharsets; import javax.annotation.Nullable; @@ -15,6 +16,7 @@ * replaced with underscores in Prometheus exposition formats. However, if metrics are exposed in * OpenTelemetry format the dots are retained. */ +@StableApi public class PrometheusNaming { /** diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Quantile.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Quantile.java index 1601920f0..8bc28ae95 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Quantile.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Quantile.java @@ -1,6 +1,9 @@ package io.prometheus.metrics.model.snapshots; +import io.prometheus.metrics.annotations.StableApi; + /** Immutable representation of a Quantile. */ +@StableApi public class Quantile { private final double quantile; diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Quantiles.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Quantiles.java index 34a9bc048..37d2686d1 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Quantiles.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Quantiles.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.model.snapshots; +import io.prometheus.metrics.annotations.StableApi; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -8,6 +9,7 @@ import java.util.List; /** Immutable list of quantiles. */ +@StableApi public class Quantiles implements Iterable { private final List quantiles; diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/StateSetSnapshot.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/StateSetSnapshot.java index 4e6a99cb9..d07308683 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/StateSetSnapshot.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/StateSetSnapshot.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.model.snapshots; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.EscapingScheme; import java.util.ArrayList; import java.util.Arrays; @@ -11,6 +12,7 @@ import javax.annotation.Nullable; /** Immutable snapshot of a StateSet metric. */ +@StableApi public final class StateSetSnapshot extends MetricSnapshot { /** diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/SummarySnapshot.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/SummarySnapshot.java index 1b8dbc2e9..e7203882c 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/SummarySnapshot.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/SummarySnapshot.java @@ -1,11 +1,13 @@ package io.prometheus.metrics.model.snapshots; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.EscapingScheme; import java.util.ArrayList; import java.util.Collection; import java.util.List; /** Immutable snapshot of a Summary metric. */ +@StableApi public final class SummarySnapshot extends MetricSnapshot { /** diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Unit.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Unit.java index 6e652af13..818f14416 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Unit.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/Unit.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.model.snapshots; +import io.prometheus.metrics.annotations.StableApi; import java.util.Objects; /** @@ -12,6 +13,7 @@ *

Note that in Prometheus, units are largely based on SI base units (seconds, bytes, joules, * grams, meters, ratio, volts, amperes, and Celsius). */ +@StableApi public final class Unit { private final String name; diff --git a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/UnknownSnapshot.java b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/UnknownSnapshot.java index 09574d6cd..66e09abe0 100644 --- a/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/UnknownSnapshot.java +++ b/prometheus-metrics-model/src/main/java/io/prometheus/metrics/model/snapshots/UnknownSnapshot.java @@ -1,5 +1,6 @@ package io.prometheus.metrics.model.snapshots; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.EscapingScheme; import java.util.ArrayList; import java.util.Collection; @@ -7,6 +8,7 @@ import javax.annotation.Nullable; /** Immutable snapshot of an Unknown (Untyped) metric. */ +@StableApi public final class UnknownSnapshot extends MetricSnapshot { /** diff --git a/prometheus-metrics-simpleclient-bridge/pom.xml b/prometheus-metrics-simpleclient-bridge/pom.xml index 02e768c82..b33e0e020 100644 --- a/prometheus-metrics-simpleclient-bridge/pom.xml +++ b/prometheus-metrics-simpleclient-bridge/pom.xml @@ -21,6 +21,12 @@ + + io.prometheus + prometheus-metrics-annotations + ${project.version} + true + io.prometheus prometheus-metrics-model diff --git a/prometheus-metrics-simpleclient-bridge/src/main/java/io/prometheus/metrics/simpleclient/bridge/SimpleclientCollector.java b/prometheus-metrics-simpleclient-bridge/src/main/java/io/prometheus/metrics/simpleclient/bridge/SimpleclientCollector.java index 3a96453e7..b2d724997 100644 --- a/prometheus-metrics-simpleclient-bridge/src/main/java/io/prometheus/metrics/simpleclient/bridge/SimpleclientCollector.java +++ b/prometheus-metrics-simpleclient-bridge/src/main/java/io/prometheus/metrics/simpleclient/bridge/SimpleclientCollector.java @@ -5,6 +5,7 @@ import io.prometheus.client.Collector; import io.prometheus.client.CollectorRegistry; +import io.prometheus.metrics.annotations.StableApi; import io.prometheus.metrics.config.PrometheusProperties; import io.prometheus.metrics.model.registry.MultiCollector; import io.prometheus.metrics.model.registry.PrometheusRegistry; @@ -54,6 +55,7 @@ * .register(prometheusRegistry); * }

*/ +@StableApi public class SimpleclientCollector implements MultiCollector { private final CollectorRegistry simpleclientRegistry; diff --git a/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml b/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml index 88ed86387..011b40217 100644 --- a/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml +++ b/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml @@ -20,4 +20,13 @@ io.prometheus.metrics.tracer.common + + + io.prometheus + prometheus-metrics-annotations + ${project.version} + true + + + diff --git a/prometheus-metrics-tracer/prometheus-metrics-tracer-common/src/main/java/io/prometheus/metrics/tracer/common/SpanContext.java b/prometheus-metrics-tracer/prometheus-metrics-tracer-common/src/main/java/io/prometheus/metrics/tracer/common/SpanContext.java index f2c171a10..4da3b13ea 100644 --- a/prometheus-metrics-tracer/prometheus-metrics-tracer-common/src/main/java/io/prometheus/metrics/tracer/common/SpanContext.java +++ b/prometheus-metrics-tracer/prometheus-metrics-tracer-common/src/main/java/io/prometheus/metrics/tracer/common/SpanContext.java @@ -1,7 +1,9 @@ package io.prometheus.metrics.tracer.common; +import io.prometheus.metrics.annotations.StableApi; import javax.annotation.Nullable; +@StableApi public interface SpanContext { String EXEMPLAR_ATTRIBUTE_NAME = "exemplar"; From 360cd9cea5740d6a1edd669ace8f4c43c11385e0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Jun 2026 12:12:03 +0200 Subject: [PATCH 57/74] chore(deps): update dependency org.junit.jupiter:junit-jupiter-params to v6.1.0 (#2128) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [org.junit:junit-bom](https://junit.org/) ([source](https://redirect.github.com/junit-team/junit-framework)) | `6.0.3` → `6.1.0` | ![age](https://developer.mend.io/api/mc/badges/age/maven/org.junit:junit-bom/6.1.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.junit:junit-bom/6.0.3/6.1.0?slim=true) | | [org.junit.jupiter:junit-jupiter-params](https://junit.org/) ([source](https://redirect.github.com/junit-team/junit-framework)) | `6.0.3` → `6.1.0` | ![age](https://developer.mend.io/api/mc/badges/age/maven/org.junit.jupiter:junit-jupiter-params/6.1.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.junit.jupiter:junit-jupiter-params/6.0.3/6.1.0?slim=true) | | [org.junit.jupiter:junit-jupiter](https://junit.org/) ([source](https://redirect.github.com/junit-team/junit-framework)) | `6.0.3` → `6.1.0` | ![age](https://developer.mend.io/api/mc/badges/age/maven/org.junit.jupiter:junit-jupiter/6.1.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.junit.jupiter:junit-jupiter/6.0.3/6.1.0?slim=true) | --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Gregor Zeitlinger Signed-off-by: Jay DeLuca --- integration-tests/it-spring-boot-smoke-test/pom.xml | 2 +- .../it-spring-boot-smoke-test/serialization-config.json | 5 +++++ pom.xml | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 integration-tests/it-spring-boot-smoke-test/src/test/resources/META-INF/native-image/io.prometheus/it-spring-boot-smoke-test/serialization-config.json diff --git a/integration-tests/it-spring-boot-smoke-test/pom.xml b/integration-tests/it-spring-boot-smoke-test/pom.xml index c6a7e5dfc..f56f7de87 100644 --- a/integration-tests/it-spring-boot-smoke-test/pom.xml +++ b/integration-tests/it-spring-boot-smoke-test/pom.xml @@ -20,7 +20,7 @@ 25 - 6.0.3 + 6.1.0 diff --git a/integration-tests/it-spring-boot-smoke-test/src/test/resources/META-INF/native-image/io.prometheus/it-spring-boot-smoke-test/serialization-config.json b/integration-tests/it-spring-boot-smoke-test/src/test/resources/META-INF/native-image/io.prometheus/it-spring-boot-smoke-test/serialization-config.json new file mode 100644 index 000000000..eccc08a42 --- /dev/null +++ b/integration-tests/it-spring-boot-smoke-test/src/test/resources/META-INF/native-image/io.prometheus/it-spring-boot-smoke-test/serialization-config.json @@ -0,0 +1,5 @@ +[ + { + "name": "org.junit.platform.engine.UniqueId$SerializedForm" + } +] diff --git a/pom.xml b/pom.xml index a53c8e24e..08932e1f9 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ 2.3.0 4.3.0 3.13.2 - 6.0.3 + 6.1.0 2.28.1-alpha 8 25 From c00f9f5fcca8ebd160847457ef3ec15586373998 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Tue, 2 Jun 2026 12:41:45 +0200 Subject: [PATCH 58/74] test: validate JMX Exporter compatibility (#2167) Draft validation PR for the unmodified JMX Exporter compatibility story. This intentionally does **not** depend on #2114. Vanilla JMX Exporter does not use the typed descriptor API, so this PR validates the patch-compatible path independently of typed descriptors. This validates upstream `prometheus/jmx_exporter@main` against current `client_java` by installing local `io.prometheus` artifacts and running the JMX Exporter collector/common/javaagent/standalone Maven tests against them. Local validation: - `mise run jmx-exporter:test` - `mise run lint:fix` - `mise run lint` - `actionlint .github/workflows/jmx-exporter-compatibility.yml` --------- Signed-off-by: Gregor Zeitlinger Co-authored-by: Doug Hoard Signed-off-by: Jay DeLuca --- .github/renovate-tracked-deps.json | 20 +++ .github/renovate.json5 | 13 +- .../workflows/jmx-exporter-compatibility.yml | 40 ++++++ .../workflows/micrometer-compatibility.yml | 11 +- .mise/envs/jmx-exporter/mise.toml | 10 ++ .mise/envs/micrometer/mise.toml | 10 ++ .mise/lib/jmx_exporter_compat.py | 128 ++++++++++++++++++ .mise/lib/micrometer_compat.py | 11 +- .mise/tasks/jmx-exporter/prepare.py | 21 +++ .mise/tasks/jmx-exporter/test.py | 26 ++++ .mise/tasks/micrometer/test-class.py | 28 ---- mise.toml | 4 + 12 files changed, 285 insertions(+), 37 deletions(-) create mode 100644 .github/workflows/jmx-exporter-compatibility.yml create mode 100644 .mise/envs/jmx-exporter/mise.toml create mode 100644 .mise/envs/micrometer/mise.toml create mode 100755 .mise/lib/jmx_exporter_compat.py create mode 100755 .mise/tasks/jmx-exporter/prepare.py create mode 100755 .mise/tasks/jmx-exporter/test.py delete mode 100755 .mise/tasks/micrometer/test-class.py diff --git a/.github/renovate-tracked-deps.json b/.github/renovate-tracked-deps.json index 95fa34155..fb4430e0c 100644 --- a/.github/renovate-tracked-deps.json +++ b/.github/renovate-tracked-deps.json @@ -41,6 +41,11 @@ "mise" ] }, + ".github/workflows/jmx-exporter-compatibility.yml": { + "regex": [ + "mise" + ] + }, ".github/workflows/lint.yml": { "regex": [ "mise" @@ -71,6 +76,16 @@ "mise" ] }, + ".mise/envs/jmx-exporter/mise.toml": { + "mise": [ + "java" + ] + }, + ".mise/envs/micrometer/mise.toml": { + "mise": [ + "java" + ] + }, ".mise/envs/native/mise.toml": { "mise": [ "java" @@ -145,6 +160,11 @@ "taplo", "typos", "zizmor" + ], + "regex": [ + "grafana/docker-otel-lgtm", + "micrometer-metrics/micrometer", + "prometheus/jmx_exporter" ] }, "mvnw": { diff --git a/.github/renovate.json5 b/.github/renovate.json5 index 4284ec290..e7de6a019 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -37,7 +37,16 @@ matchDepNames: ["com.google.protobuf:protobuf-java", "protoc"], groupName: "protobuf", separateMajorMinor: false, - }, + } + ], + customManagers: [ + { + "customType": "regex", + "description": "update _VERSION variables in mise.toml", + "managerFilePatterns": ["/^mise\\.toml$/"], + "matchStrings": [ + "# renovate: datasource=(?[a-z-]+?)(?: depName=(?.+?))?(?: packageName=(?.+?))?(?: versioning=(?[a-z-]+?))?\\s.+?_VERSION\\s*=\\s*\"?(?[^@\"]+?)(?:@(?sha256:[a-f0-9]+))?\"?\\s" + ] + }, ], - customManagers: [], } diff --git a/.github/workflows/jmx-exporter-compatibility.yml b/.github/workflows/jmx-exporter-compatibility.yml new file mode 100644 index 000000000..afdaed42d --- /dev/null +++ b/.github/workflows/jmx-exporter-compatibility.yml @@ -0,0 +1,40 @@ +--- +name: JMX Exporter Compatibility + +on: + pull_request: + workflow_dispatch: + inputs: + repository: + description: JMX Exporter repository to test, in owner/name form + required: false + default: prometheus/jmx_exporter + ref: + description: JMX Exporter branch, tag, or commit to test + required: true + +permissions: {} + +jobs: + jmx-exporter-compatibility: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + persist-credentials: false + - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 + with: + version: v2026.5.18 + sha256: cfac593469d028d7ae5fe36e37bd7c59118b5238e92d8a876209578464f24a84 + working_directory: .mise/envs/jmx-exporter + - name: Cache local Maven repository + uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + - name: Run JMX Exporter compatibility tests + working-directory: .mise/envs/jmx-exporter + env: + JMX_EXPORTER_REPOSITORY: ${{ inputs.repository || 'prometheus/jmx_exporter' }} + JMX_EXPORTER_REF: ${{ inputs.ref }} + run: mise compat-test diff --git a/.github/workflows/micrometer-compatibility.yml b/.github/workflows/micrometer-compatibility.yml index ebbf1f10c..9ad95d807 100644 --- a/.github/workflows/micrometer-compatibility.yml +++ b/.github/workflows/micrometer-compatibility.yml @@ -11,8 +11,7 @@ on: default: micrometer-metrics/micrometer micrometer-ref: description: Micrometer branch, tag, or commit to test - required: false - default: main + required: true permissions: {} @@ -27,13 +26,15 @@ jobs: with: version: v2026.5.18 sha256: cfac593469d028d7ae5fe36e37bd7c59118b5238e92d8a876209578464f24a84 + working_directory: .mise/envs/micrometer - name: Cache local Maven repository uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - name: Run Micrometer compatibility tests + working-directory: .mise/envs/micrometer env: - MICROMETER_REPOSITORY: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.micrometer-repository || 'micrometer-metrics/micrometer' }} - MICROMETER_REF: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.micrometer-ref || 'main' }} - run: mise run micrometer:test + MICROMETER_REPOSITORY: ${{ inputs.micrometer-repository || 'micrometer-metrics/micrometer' }} + MICROMETER_REF: ${{ inputs.micrometer-ref }} + run: mise compat-test diff --git a/.mise/envs/jmx-exporter/mise.toml b/.mise/envs/jmx-exporter/mise.toml new file mode 100644 index 000000000..a04b4948c --- /dev/null +++ b/.mise/envs/jmx-exporter/mise.toml @@ -0,0 +1,10 @@ +# The pinned JMX Exporter release does not build on the primary JDK (Java 25): +# its spotless google-java-format predates JDK 25 support. Build it under an LTS +# JDK the release supports instead. +[tools] +java = "temurin-21.0.11+10.0.LTS" + +[tasks.compat-test] +description = "Run JMX Exporter compatibility tests under a supported JDK" +dir = "../../.." +run = "python3 .mise/tasks/jmx-exporter/test.py" diff --git a/.mise/envs/micrometer/mise.toml b/.mise/envs/micrometer/mise.toml new file mode 100644 index 000000000..e5318c1d6 --- /dev/null +++ b/.mise/envs/micrometer/mise.toml @@ -0,0 +1,10 @@ +# The pinned Micrometer release does not build on the primary JDK (Java 25): +# its bundled Kotlin compiler predates JDK 25 support. Build it under an LTS JDK +# the release supports instead. +[tools] +java = "temurin-21.0.11+10.0.LTS" + +[tasks.compat-test] +description = "Run Micrometer compatibility tests under a supported JDK" +dir = "../../.." +run = "python3 .mise/tasks/micrometer/test.py" diff --git a/.mise/lib/jmx_exporter_compat.py b/.mise/lib/jmx_exporter_compat.py new file mode 100755 index 000000000..607f65aae --- /dev/null +++ b/.mise/lib/jmx_exporter_compat.py @@ -0,0 +1,128 @@ +#!/usr/bin/env python3 + +from __future__ import annotations + +import os +import subprocess +import xml.etree.ElementTree as ET +from pathlib import Path +from typing import Optional + + +DEFAULT_JMX_EXPORTER_DIR = Path( + os.environ.get("JMX_EXPORTER_DIR", "/tmp/jmx-exporter-compat") +) +DEFAULT_JMX_EXPORTER_REPOSITORY = os.environ.get( + "JMX_EXPORTER_REPOSITORY", "prometheus/jmx_exporter" +) +DEFAULT_JMX_EXPORTER_REMOTE = os.environ.get("JMX_EXPORTER_REMOTE", "origin") +DEFAULT_JMX_EXPORTER_REF = ( + os.environ.get("JMX_EXPORTER_REF") + or os.environ.get("DEFAULT_JMX_EXPORTER_VERSION") + or "main" +) +DEFAULT_MAVEN_MODULES = os.environ.get( + "JMX_EXPORTER_MAVEN_MODULES", + "jmx_prometheus_common,jmx_prometheus_javaagent,jmx_prometheus_standalone", +) +DEFAULT_PROM_VERSION = os.environ.get("PROM_VERSION") + + +def run_cmd(cmd: list[str], cwd: Optional[Path] = None) -> None: + subprocess.run(cmd, cwd=cwd, check=True) + + +def jmx_exporter_repository_url(repository: str) -> str: + return f"https://github.com/{repository}.git" + + +def check_clean_worktree(jmx_exporter_dir: Path) -> None: + result = subprocess.run( + ["git", "status", "--short"], + cwd=jmx_exporter_dir, + check=True, + capture_output=True, + text=True, + ) + if result.stdout.strip(): + raise RuntimeError( + f"{jmx_exporter_dir} has uncommitted changes; use a clean clone or set " + "JMX_EXPORTER_DIR" + ) + + +def get_prom_version(root_dir: Path = Path.cwd()) -> str: + configured_version = DEFAULT_PROM_VERSION + if configured_version: + return configured_version + pom = ET.parse(root_dir / "pom.xml") + root = pom.getroot() + version = root.findtext("./{*}version") + if not version: + version = root.findtext("./{*}parent/{*}version") + if not version: + raise RuntimeError("could not determine Prometheus version from pom.xml") + return version + + +def prepare_repo( + jmx_exporter_dir: Path = DEFAULT_JMX_EXPORTER_DIR, + repository: str = DEFAULT_JMX_EXPORTER_REPOSITORY, + remote: str = DEFAULT_JMX_EXPORTER_REMOTE, + ref: str = DEFAULT_JMX_EXPORTER_REF, +) -> None: + repository_url = jmx_exporter_repository_url(repository) + if (jmx_exporter_dir / ".git").is_dir(): + check_clean_worktree(jmx_exporter_dir) + run_cmd( + ["git", "remote", "set-url", remote, repository_url], + cwd=jmx_exporter_dir, + ) + run_cmd(["git", "fetch", remote, ref], cwd=jmx_exporter_dir) + else: + run_cmd(["git", "clone", repository_url, str(jmx_exporter_dir)]) + run_cmd(["git", "fetch", remote, ref], cwd=jmx_exporter_dir) + run_cmd( + ["git", "checkout", "-B", "jmx-exporter-compat", "FETCH_HEAD"], + cwd=jmx_exporter_dir, + ) + + +def install_local_artifacts(root_dir: Path = Path.cwd()) -> None: + run_cmd( + [ + "./mvnw", + "install", + # Skip test compilation too (not just execution): downstream needs only + # our main artifacts, and our test sources target a newer release than + # the compatibility JDK supports. + "-Dmaven.test.skip=true", + "-Dcoverage.skip=true", + "-Dcheckstyle.skip=true", + "-Dwarnings=-nowarn", + ], + cwd=root_dir, + ) + + +def run_maven_test( + test_selector: Optional[str] = None, + jmx_exporter_dir: Path = DEFAULT_JMX_EXPORTER_DIR, + maven_modules: str = DEFAULT_MAVEN_MODULES, + prom_version: Optional[str] = None, +) -> None: + if prom_version is None: + prom_version = get_prom_version() + cmd = [ + "./mvnw", + "-B", + "-pl", + maven_modules, + "-am", + f"-Dprometheus.metrics.version={prom_version}", + "-Djacoco.skip=true", + ] + if test_selector: + cmd.append(f"-Dtest={test_selector}") + cmd.append("test") + run_cmd(cmd, cwd=jmx_exporter_dir) diff --git a/.mise/lib/micrometer_compat.py b/.mise/lib/micrometer_compat.py index 808a6f91f..93613c336 100755 --- a/.mise/lib/micrometer_compat.py +++ b/.mise/lib/micrometer_compat.py @@ -16,7 +16,11 @@ "MICROMETER_REPOSITORY", "micrometer-metrics/micrometer" ) DEFAULT_MICROMETER_REMOTE = os.environ.get("MICROMETER_REMOTE", "origin") -DEFAULT_MICROMETER_REF = os.environ.get("MICROMETER_REF", "main") +DEFAULT_MICROMETER_REF = ( + os.environ.get("MICROMETER_REF") + or os.environ.get("DEFAULT_MICROMETER_VERSION") + or "main" +) DEFAULT_INIT_SCRIPT = Path( os.environ.get("MICROMETER_INIT_SCRIPT", "/tmp/micrometer-prom-local.init.gradle") ) @@ -121,7 +125,10 @@ def install_local_artifacts(root_dir: Path = Path.cwd()) -> None: [ "./mvnw", "install", - "-DskipTests", + # Skip test compilation too (not just execution): downstream needs only + # our main artifacts, and our test sources target a newer release than + # the compatibility JDK supports. + "-Dmaven.test.skip=true", "-Dcoverage.skip=true", "-Dcheckstyle.skip=true", "-Dwarnings=-nowarn", diff --git a/.mise/tasks/jmx-exporter/prepare.py b/.mise/tasks/jmx-exporter/prepare.py new file mode 100755 index 000000000..348415f7f --- /dev/null +++ b/.mise/tasks/jmx-exporter/prepare.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python3 + +# [MISE] description="Install local artifacts and check out a target JMX Exporter ref" +# [MISE] alias="jmx-exporter:prepare" + +import sys + + +sys.path.insert(0, ".mise/lib") + + +def main() -> int: + from jmx_exporter_compat import install_local_artifacts, prepare_repo + + install_local_artifacts() + prepare_repo() + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/.mise/tasks/jmx-exporter/test.py b/.mise/tasks/jmx-exporter/test.py new file mode 100755 index 000000000..3e3989300 --- /dev/null +++ b/.mise/tasks/jmx-exporter/test.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python3 + +# [MISE] description="Run JMX Exporter tests against a target ref" +# [MISE] alias="jmx-exporter:test" + +import sys + + +sys.path.insert(0, ".mise/lib") + + +def main() -> int: + from jmx_exporter_compat import ( + install_local_artifacts, + prepare_repo, + run_maven_test, + ) + + install_local_artifacts() + prepare_repo() + run_maven_test() + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/.mise/tasks/micrometer/test-class.py b/.mise/tasks/micrometer/test-class.py deleted file mode 100755 index 89ae436de..000000000 --- a/.mise/tasks/micrometer/test-class.py +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env python3 - -# [MISE] description="Run Micrometer PrometheusMeterRegistryTest against a target Micrometer ref" -# [MISE] alias="micrometer:test-class" - -import sys - - -sys.path.insert(0, ".mise/lib") - - -def main() -> int: - from micrometer_compat import ( - install_local_artifacts, - prepare_repo, - run_gradle_test, - write_init_script, - ) - - install_local_artifacts() - prepare_repo() - write_init_script() - run_gradle_test("io.micrometer.prometheusmetrics.PrometheusMeterRegistryTest") - return 0 - - -if __name__ == "__main__": - raise SystemExit(main()) diff --git a/mise.toml b/mise.toml index 616159a90..ae5c7b1b9 100644 --- a/mise.toml +++ b/mise.toml @@ -27,6 +27,10 @@ zizmor = "1.25.2" FLINT_CONFIG_DIR = ".github/config" # renovate: datasource=github-releases depName=grafana/docker-otel-lgtm LGTM_VERSION = "0.25.0" +# renovate: datasource=github-tags depName=prometheus/jmx_exporter versioning=semver-coerced +DEFAULT_JMX_EXPORTER_VERSION = "1.5.0" +# renovate: datasource=github-tags depName=micrometer-metrics/micrometer versioning=semver-coerced +DEFAULT_MICROMETER_VERSION = "v1.16.5" [tasks.ci] description = "CI Build" From 0abaa874d1886049d0fba81ebb4bd6341c4746fc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Jun 2026 13:16:43 +0200 Subject: [PATCH 59/74] chore(deps): update github/codeql-action action to v4.36.1 (#2171) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [github/codeql-action](https://redirect.github.com/github/codeql-action) | action | patch | `v4.36.0` → `v4.36.1` | --- ### Release Notes
github/codeql-action (github/codeql-action) ### [`v4.36.1`](https://redirect.github.com/github/codeql-action/compare/v4.36.0...v4.36.1) [Compare Source](https://redirect.github.com/github/codeql-action/compare/v4.36.0...v4.36.1)
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- .github/workflows/codeql.yml | 4 ++-- .github/workflows/scorecard.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 4847aee2f..521dab4f4 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -37,7 +37,7 @@ jobs: path: ~/.m2/repository key: ${{ runner.os }}-maven-codeql-${{ hashFiles('**/pom.xml') }} - name: Initialize CodeQL - uses: github/codeql-action/init@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4.36.0 + uses: github/codeql-action/init@87557b9c84dde89fdd9b10e88954ac2f4248e463 # v4.36.1 with: languages: java tools: linked @@ -56,6 +56,6 @@ jobs: -Djavadoc.skip=true - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4.36.0 + uses: github/codeql-action/analyze@87557b9c84dde89fdd9b10e88954ac2f4248e463 # v4.36.1 with: category: /language:java diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 934b781b8..532a3787b 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -41,6 +41,6 @@ jobs: retention-days: 5 - name: Upload to code scanning - uses: github/codeql-action/upload-sarif@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4.36.0 + uses: github/codeql-action/upload-sarif@87557b9c84dde89fdd9b10e88954ac2f4248e463 # v4.36.1 with: sarif_file: results.sarif From e20a806826c5e54c638fa8002463c639875fa017 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Jun 2026 13:17:04 +0200 Subject: [PATCH 60/74] chore(deps): update dependency grafana/docker-otel-lgtm to v0.28.0 (#2172) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Update | Change | |---|---|---| | [grafana/docker-otel-lgtm](https://redirect.github.com/grafana/docker-otel-lgtm) | minor | `0.25.0` → `0.28.0` | --- ### Release Notes
grafana/docker-otel-lgtm (grafana/docker-otel-lgtm) ### [`v0.28.0`](https://redirect.github.com/grafana/docker-otel-lgtm/releases/tag/v0.28.0) [Compare Source](https://redirect.github.com/grafana/docker-otel-lgtm/compare/v0.27.1...v0.28.0) #### What's Changed ##### OpenTelemetry & LGTM - chore(deps): update dependency pyroscope to v2.0.2 by [@​renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot] in [#​1377](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1377) - chore(deps): update dependency obi to v0.9.0 by [@​renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot] in [#​1394](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1394) ##### Other Changes - chore: upgrade flint to v0.22.2 by [@​zeitlinger](https://redirect.github.com/zeitlinger) in [#​1384](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1384) - Disable npm install scripts by [@​martincostello](https://redirect.github.com/martincostello) in [#​1387](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1387) **Full Changelog**: ### [`v0.27.1`](https://redirect.github.com/grafana/docker-otel-lgtm/releases/tag/v0.27.1) [Compare Source](https://redirect.github.com/grafana/docker-otel-lgtm/compare/v0.27.0...v0.27.1) #### What's Changed ##### Other Changes - chore: upgrade lychee to v0.24.2 by [@​zeitlinger](https://redirect.github.com/zeitlinger) in [#​1360](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1360) **Full Changelog**: ### [`v0.27.0`](https://redirect.github.com/grafana/docker-otel-lgtm/releases/tag/v0.27.0) [Compare Source](https://redirect.github.com/grafana/docker-otel-lgtm/compare/v0.26.0...v0.27.0) #### What's Changed ##### OpenTelemetry & LGTM - chore(deps): update dependency tempo to v2.10.5 by [@​renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot] in [#​1329](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1329) - chore(deps): update dependency prometheus to v3.11.3 by [@​renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot] in [#​1341](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1341) - chore(deps): update dependency opentelemetry-collector to v0.151.0 by [@​renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot] in [#​1347](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1347) ##### Other Changes - chore: update flint to 0.21.0 by [@​zeitlinger](https://redirect.github.com/zeitlinger) in [#​1317](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1317) - Update shell script shebang paths by [@​martincostello](https://redirect.github.com/martincostello) in [#​1335](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1335) - chore: follow up to [#​1317](https://redirect.github.com/grafana/docker-otel-lgtm/issues/1317) by [@​zeitlinger](https://redirect.github.com/zeitlinger) in [#​1337](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1337) - chore(deps): update dependency npm:renovate to v43.150.0 by [@​zeitlinger](https://redirect.github.com/zeitlinger) in [#​1344](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1344) **Full Changelog**: ### [`v0.26.0`](https://redirect.github.com/grafana/docker-otel-lgtm/releases/tag/v0.26.0) [Compare Source](https://redirect.github.com/grafana/docker-otel-lgtm/compare/v0.25.0...v0.26.0) #### What's Changed ##### OpenTelemetry & LGTM - chore(deps): update dependency obi to v0.8.0 by [@​renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot] in [#​1295](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1295) - chore(deps): update dependency pyroscope to v1.20.4 by [@​renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot] in [#​1294](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1294) - chore(deps): update dependency pyroscope to v1.21.0 by [@​renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot] in [#​1304](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1304) - chore(deps): update dependency grafana to v13 by [@​renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot] in [#​1305](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1305) - chore(deps): update dependency pyroscope to v2 by [@​renovate-sh-app](https://redirect.github.com/renovate-sh-app)\[bot] in [#​1309](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1309) ##### Other Changes - feat: migrate to flint v2 by [@​zeitlinger](https://redirect.github.com/zeitlinger) in [#​1243](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1243) - chore: fix flint baseline failures by [@​zeitlinger](https://redirect.github.com/zeitlinger) in [#​1315](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1315) - ci: skip PR Docker cache export by [@​zeitlinger](https://redirect.github.com/zeitlinger) in [#​1316](https://redirect.github.com/grafana/docker-otel-lgtm/pull/1316) **Full Changelog**:
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- mise.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mise.toml b/mise.toml index ae5c7b1b9..36482ae7b 100644 --- a/mise.toml +++ b/mise.toml @@ -26,7 +26,7 @@ zizmor = "1.25.2" [env] FLINT_CONFIG_DIR = ".github/config" # renovate: datasource=github-releases depName=grafana/docker-otel-lgtm -LGTM_VERSION = "0.25.0" +LGTM_VERSION = "0.28.0" # renovate: datasource=github-tags depName=prometheus/jmx_exporter versioning=semver-coerced DEFAULT_JMX_EXPORTER_VERSION = "1.5.0" # renovate: datasource=github-tags depName=micrometer-metrics/micrometer versioning=semver-coerced From 03c9994d0214a7108648d742cc3ac4bbc2597c53 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Jun 2026 13:17:14 +0200 Subject: [PATCH 61/74] fix(deps): update jetty monorepo to v12.1.10 (#2169) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [org.eclipse.jetty.ee10:jetty-ee10-servlet](https://jetty.org) ([source](https://redirect.github.com/jetty/jetty.project)) | `12.1.9` → `12.1.10` | ![age](https://developer.mend.io/api/mc/badges/age/maven/org.eclipse.jetty.ee10:jetty-ee10-servlet/12.1.10?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.eclipse.jetty.ee10:jetty-ee10-servlet/12.1.9/12.1.10?slim=true) | | [org.eclipse.jetty:jetty-server](https://jetty.org) ([source](https://redirect.github.com/jetty/jetty.project)) | `12.1.9` → `12.1.10` | ![age](https://developer.mend.io/api/mc/badges/age/maven/org.eclipse.jetty:jetty-server/12.1.10?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.eclipse.jetty:jetty-server/12.1.9/12.1.10?slim=true) | --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- .../it-exporter/it-exporter-servlet-jetty-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml b/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml index 0e43aab16..1c337ac89 100644 --- a/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml +++ b/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml @@ -15,7 +15,7 @@ Jetty Sample for the Exporter Integration Test - 12.1.9 + 12.1.10 25 From 3649f775ecbb2501e7d44b08cc40d5872c2cd299 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Tue, 2 Jun 2026 19:00:14 +0200 Subject: [PATCH 62/74] feat: track api-diff baseline via Renovate and store diffs in docs/apidiffs (#2174) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Fixes the manual-bump drift in the api-diff baseline (#2170) and makes API changes visible in review. - **Single source of truth.** The baseline lives only in the `` pom property (bumped from the already-drifted `1.5.1` to the actual latest release `1.6.1`). `mise.toml` and `api-diff.yml` no longer hardcode it. - **Renovate owns the bump.** A custom regex manager tracks the latest *published* `io.prometheus:prometheus-metrics-core` on Maven Central and bumps the property on the `renovate/api-diff-baseline` branch. Because Renovate only proposes published versions, there is no Maven Central propagation race and no post-release workflow or app token needed. - **Diffs committed to `docs/apidiffs/`.** `mise run api-diff` syncs the japicmp per-module reports into `docs/apidiffs/.diff` via `.github/scripts/sync-api-diffs.sh`, stripping the volatile preamble so files only churn on real API changes. The api-diff workflow fails if they are stale, so every API change shows up in the PR diff. - **Regeneration on bump.** `generate-api-diff-baseline.yml` regenerates `docs/apidiffs` on the Renovate branch and pushes it back, mirroring `generate-protobuf.yml`. - `docs/apidiffs/**` is marked `linguist-generated` so flint skips it. ## Notes - The seed diffs are large because `1.6.1` predates `@StableApi` (the bootstrap noise documented in #2168). They shrink to near-empty once a release contains the annotations. - Like the protobuf flow, a `GITHUB_TOKEN` push doesn't re-trigger CI — close/reopen the Renovate bump PR to run the api-diff check after regeneration (noted in the workflow). ## Validation - `mise run api-diff` (generates the 25 seed diffs; verified idempotent) - `mise run lint` - `renovate-config-validator --strict`, actionlint, zizmor Closes #2170 ## Also fixes a pre-existing compat-test break on `main` `micrometer-compatibility` and `jmx-exporter-compatibility` fail on `main` (e.g. [#2173](https://github.com/prometheus/client_java/pull/2173)), unrelated to this change. The compat harness installs local artifacts with `-Dmaven.test.skip=true`, which skips building the `*:test-jar` artifacts that the `activeByDefault` `default` profiles declare as test dependencies, breaking resolution (e.g. `prometheus-metrics-exposition-textformats:jar:tests`). Fixed by deactivating those profiles in the compat install (`-P !default`), matching what the release task already does (`-P release,!default`). Verified locally: full `mvnw install -Dmaven.test.skip=true -P !default` → BUILD SUCCESS. ## Reviewer note: the seed diffs show the full stable surface (expected) The committed `docs/apidiffs/current_vs_latest/*.txt` list the **entire** `@StableApi` surface as additions, not a small delta. This is the documented bootstrap state from #2168, not a bug: - The japicmp include filter is `@io.prometheus.metrics.annotations.StableApi`. The baseline `1.6.1` jar predates `@StableApi`, so its filtered surface is empty → every annotated class in current code registers as "NEW". The header genuinely compares against the `1.6.1` jar; the annotation filter is what makes everything look added. - Verified the filter is correct: only `@StableApi`-annotated types appear (non-stable classes like `CKMSQuantiles`/`Buffer` are excluded; `CallbackMetric` shows only as an inherited `NEW SUPERCLASS` reference). It is the same root cause as the `breaking-api-change-accepted` label on this PR. It self-corrects after the next release ships `@StableApi`: Renovate bumps the baseline to that release, the bump workflow regenerates `current_vs_latest/` as an annotated-vs-annotated (near-empty) diff, and the archived `_vs_/` becomes the first real release diff. So the current files are best read as a one-time record of the initial declared stable API surface. --------- Signed-off-by: Gregor Zeitlinger Signed-off-by: Jay DeLuca --- .gitattributes | 1 + .github/renovate-tracked-deps.json | 10 + .github/renovate.json5 | 22 + .github/scripts/sync-api-diffs.sh | 38 ++ .github/workflows/api-diff.yml | 17 +- .../workflows/generate-api-diff-baseline.yml | 117 ++++ .mise/lib/jmx_exporter_compat.py | 6 + .mise/lib/micrometer_compat.py | 6 + .../prometheus-metrics-annotations.txt | 11 + .../prometheus-metrics-config.txt | 263 ++++++++ .../prometheus-metrics-core.txt | 353 +++++++++++ .../prometheus-metrics-exporter-common.txt | 40 ++ ...prometheus-metrics-exporter-httpserver.txt | 52 ++ ...ter-opentelemetry-otel-agent-resources.txt | 2 + ...-metrics-exporter-opentelemetry-shaded.txt | 26 + ...metheus-metrics-exporter-opentelemetry.txt | 26 + ...rometheus-metrics-exporter-pushgateway.txt | 75 +++ ...theus-metrics-exporter-servlet-jakarta.txt | 12 + ...metheus-metrics-exporter-servlet-javax.txt | 12 + ...heus-metrics-exposition-formats-shaded.txt | 2 + .../prometheus-metrics-exposition-formats.txt | 2 + ...metheus-metrics-exposition-textformats.txt | 98 +++ ...theus-metrics-instrumentation-caffeine.txt | 23 + ...eus-metrics-instrumentation-dropwizard.txt | 19 + ...us-metrics-instrumentation-dropwizard5.txt | 47 ++ ...ometheus-metrics-instrumentation-guava.txt | 13 + ...prometheus-metrics-instrumentation-jvm.txt | 124 ++++ .../prometheus-metrics-model.txt | 600 ++++++++++++++++++ ...prometheus-metrics-simpleclient-bridge.txt | 16 + .../prometheus-metrics-tracer-common.txt | 13 + .../prometheus-metrics-tracer-initializer.txt | 2 + .../prometheus-metrics-tracer-otel-agent.txt | 2 + .../prometheus-metrics-tracer-otel.txt | 2 + mise.toml | 9 +- pom.xml | 3 +- 35 files changed, 2057 insertions(+), 7 deletions(-) create mode 100755 .github/scripts/sync-api-diffs.sh create mode 100644 .github/workflows/generate-api-diff-baseline.yml create mode 100644 docs/apidiffs/current_vs_latest/prometheus-metrics-annotations.txt create mode 100644 docs/apidiffs/current_vs_latest/prometheus-metrics-config.txt create mode 100644 docs/apidiffs/current_vs_latest/prometheus-metrics-core.txt create mode 100644 docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-common.txt create mode 100644 docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-httpserver.txt create mode 100644 docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt create mode 100644 docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-shaded.txt create mode 100644 docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry.txt create mode 100644 docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-pushgateway.txt create mode 100644 docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-jakarta.txt create mode 100644 docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-javax.txt create mode 100644 docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats-shaded.txt create mode 100644 docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats.txt create mode 100644 docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-textformats.txt create mode 100644 docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-caffeine.txt create mode 100644 docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard.txt create mode 100644 docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard5.txt create mode 100644 docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-guava.txt create mode 100644 docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-jvm.txt create mode 100644 docs/apidiffs/current_vs_latest/prometheus-metrics-model.txt create mode 100644 docs/apidiffs/current_vs_latest/prometheus-metrics-simpleclient-bridge.txt create mode 100644 docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-common.txt create mode 100644 docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-initializer.txt create mode 100644 docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel-agent.txt create mode 100644 docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel.txt diff --git a/.gitattributes b/.gitattributes index b54b74652..7ab27c559 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,4 @@ CHANGELOG.md linguist-generated **/src/main/generated/** linguist-generated +docs/apidiffs/** linguist-generated docs/** linguist-documentation diff --git a/.github/renovate-tracked-deps.json b/.github/renovate-tracked-deps.json index fb4430e0c..4f66ff9aa 100644 --- a/.github/renovate-tracked-deps.json +++ b/.github/renovate-tracked-deps.json @@ -26,6 +26,11 @@ "mise" ] }, + ".github/workflows/generate-api-diff-baseline.yml": { + "regex": [ + "mise" + ] + }, ".github/workflows/generate-protobuf.yml": { "regex": [ "mise" @@ -176,6 +181,11 @@ "maven-wrapper": [ "maven-wrapper" ] + }, + "pom.xml": { + "regex": [ + "io.prometheus:prometheus-metrics-core" + ] } } } diff --git a/.github/renovate.json5 b/.github/renovate.json5 index e7de6a019..ed470a5ca 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -37,6 +37,20 @@ matchDepNames: ["com.google.protobuf:protobuf-java", "protoc"], groupName: "protobuf", separateMajorMinor: false, + }, + { + description: "Isolate the api-diff baseline on renovate/api-diff-baseline so generate-api-diff-baseline can regenerate docs/apidiffs; merge manually after a close/reopen re-runs CI", + matchFileNames: ["pom.xml"], + matchPackageNames: ["io.prometheus:prometheus-metrics-core"], + groupName: "api-diff-baseline", + automerge: false, + }, + { + "description": "Flint autofix: align extractVersion for protoc", + "extractVersion": "^(?.+)\\.0\\.0$", + "matchDepNames": [ + "protoc" + ] } ], customManagers: [ @@ -48,5 +62,13 @@ "# renovate: datasource=(?[a-z-]+?)(?: depName=(?.+?))?(?: packageName=(?.+?))?(?: versioning=(?[a-z-]+?))?\\s.+?_VERSION\\s*=\\s*\"?(?[^@\"]+?)(?:@(?sha256:[a-f0-9]+))?\"?\\s" ] }, + { + "customType": "regex", + "description": "update the api-diff baseline to the latest published release", + "managerFilePatterns": ["/^pom\\.xml$/"], + "matchStrings": [ + "\\s*(?[^<]+)" + ] + }, ], } diff --git a/.github/scripts/sync-api-diffs.sh b/.github/scripts/sync-api-diffs.sh new file mode 100755 index 000000000..34fe18ff5 --- /dev/null +++ b/.github/scripts/sync-api-diffs.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env bash +# Refresh docs/apidiffs/current_vs_latest/ from the japicmp reports produced by +# `mvn verify -P api-diff`. +# +# Each StableApi module gets one committed .txt describing how its +# published API surface differs from the baseline release +# ( in pom.xml). Committing these makes every API +# change visible in the pull request diff. The CI check fails when the +# regenerated files differ from what is committed. +# +# The layout and format match opentelemetry-java's docs/apidiffs: the +# "Comparing ... .jar against ... .jar" header is kept, while the constant +# ignore-missing-classes warning and the semantic-versioning suggestion are +# dropped as noise. +set -euo pipefail + +repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" +out_dir="$repo_root/docs/apidiffs/current_vs_latest" + +shopt -s nullglob globstar + +reports=("$repo_root"/**/target/japicmp/api-diff.diff) +if [ "${#reports[@]}" -eq 0 ]; then + echo "No japicmp reports found. Run 'mvn verify -P api-diff' first." >&2 + exit 1 +fi + +rm -rf "$out_dir" +mkdir -p "$out_dir" + +for report in "${reports[@]}"; do + # report path: //target/japicmp/api-diff.diff + module="$(basename "$(dirname "$(dirname "$(dirname "$report")")")")" + grep -vE '^(WARNING: You are using the option|Semantic versioning suggestion)' \ + "$report" >"$out_dir/$module.txt" +done + +echo "Wrote ${#reports[@]} API diff report(s) to docs/apidiffs/current_vs_latest/." diff --git a/.github/workflows/api-diff.yml b/.github/workflows/api-diff.yml index 3a6ed2edf..99b7844ea 100644 --- a/.github/workflows/api-diff.yml +++ b/.github/workflows/api-diff.yml @@ -12,9 +12,11 @@ on: workflow_dispatch: inputs: baseline_version: - description: Version to compare the PR artifacts against + description: >- + Override the baseline version to compare against. + Defaults to in pom.xml. required: false - default: "1.5.1" + default: "" permissions: contents: read @@ -23,7 +25,9 @@ jobs: api-diff: runs-on: ubuntu-24.04 env: - API_DIFF_BASELINE_VERSION: ${{ inputs.baseline_version || '1.5.1' }} + # Empty unless overridden via workflow_dispatch; the api-diff task then + # falls back to in pom.xml. + API_DIFF_BASELINE_VERSION: ${{ inputs.baseline_version }} BREAKING_API_CHANGE_ACCEPTED: >- ${{ contains(github.event.pull_request.labels.*.name, 'breaking-api-change-accepted') }} @@ -42,6 +46,13 @@ jobs: key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - name: Run japicmp API diff run: mise run api-diff + - name: Check docs/apidiffs is up to date + run: | + if ! git diff --exit-code -- docs/apidiffs; then + echo "::error::Published API surface changed but docs/apidiffs is stale." + echo "Run 'mise run api-diff' locally and commit the updated docs/apidiffs." + exit 1 + fi - name: Fail on incompatible published API changes run: | python3 - <<'PY' diff --git a/.github/workflows/generate-api-diff-baseline.yml b/.github/workflows/generate-api-diff-baseline.yml new file mode 100644 index 000000000..aee2b4ee6 --- /dev/null +++ b/.github/workflows/generate-api-diff-baseline.yml @@ -0,0 +1,117 @@ +--- +name: Generate API Diff Baseline + +# When Renovate bumps (on the renovate/api-diff-baseline +# branch), regenerate docs/apidiffs against the new baseline and push the result +# back onto the PR. Renovate only proposes versions already published to Maven +# Central, so japicmp can always resolve the new baseline. +# +# Before regenerating, the previous current_vs_latest is archived as +# docs/apidiffs/_vs_/ to keep a per-release history (like +# opentelemetry-java). This is an approximation of a release-vs-release diff: +# the archived files compare the dev snapshot (which has just become ) +# against , so any commits merged between the release and this bump are +# included too. +# +# Mirrors generate-protobuf.yml: a read-only `generate` job produces a patch +# artifact and a privileged `publish` job pushes it back. + +on: + push: + branches: + - "renovate/api-diff-baseline" + +permissions: {} + +jobs: + generate: + runs-on: ubuntu-24.04 + permissions: + contents: read # checkout + read-only `git fetch origin main` for the verify step + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + ref: ${{ github.ref }} + persist-credentials: false + - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 + with: + version: v2026.5.18 + sha256: cfac593469d028d7ae5fe36e37bd7c59118b5238e92d8a876209578464f24a84 + - name: Cache local Maven repository + uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + - name: Archive the previous current_vs_latest + run: | + git fetch origin main + baseline() { + grep -oP '(?<=)[^<]+' "$1" + } + OLD=$(git show origin/main:pom.xml | baseline /dev/stdin) + NEW=$(baseline pom.xml) + if [[ -z "$OLD" || -z "$NEW" ]]; then + echo "::error::Could not read api.diff.baseline.version" + exit 1 + fi + if [[ "$OLD" == "$NEW" ]]; then + echo "::error::api.diff.baseline.version unchanged ($NEW); nothing to bump" + exit 1 + fi + if [[ -d docs/apidiffs/current_vs_latest ]]; then + cp -r docs/apidiffs/current_vs_latest "docs/apidiffs/${NEW}_vs_${OLD}" + echo "Archived current_vs_latest as ${NEW}_vs_${OLD}" + fi + - name: Regenerate docs/apidiffs + run: mise run api-diff + - name: Validate and export docs/apidiffs as a patch + run: | + # Stage first so newly added files (the archived dir) are captured. + git add docs/apidiffs + OUTSIDE=$(git status --porcelain -- ':(exclude)docs/apidiffs') + if [[ -n "$OUTSIDE" ]]; then + echo "::error::Unexpected changes outside docs/apidiffs:" + echo "$OUTSIDE" + exit 1 + fi + git diff --cached -- docs/apidiffs > /tmp/api-diff-baseline.patch + - name: Upload generated patch + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + with: + name: api-diff-baseline-patch + path: /tmp/api-diff-baseline.patch + retention-days: 5 + + publish: + runs-on: ubuntu-24.04 + needs: generate + permissions: + contents: write # push regenerated docs/apidiffs back to the renovate branch + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + ref: ${{ github.ref }} + # zizmor: ignore[artipacked] -- needs credentials to push + persist-credentials: true + - name: Download generated patch + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + with: + name: api-diff-baseline-patch + path: /tmp/patch + - name: Commit and push regenerated docs/apidiffs + run: | + PATCH=/tmp/patch/api-diff-baseline.patch + if [[ ! -s "$PATCH" ]]; then + echo "No regenerated changes to commit" + exit 0 + fi + git apply "$PATCH" + # Note: GITHUB_TOKEN pushes don't trigger CI re-runs. + # Close and reopen the PR to trigger CI after this commit. + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + git add docs/apidiffs + git commit -m "chore: regenerate docs/apidiffs" + git push diff --git a/.mise/lib/jmx_exporter_compat.py b/.mise/lib/jmx_exporter_compat.py index 607f65aae..d60b7807b 100755 --- a/.mise/lib/jmx_exporter_compat.py +++ b/.mise/lib/jmx_exporter_compat.py @@ -97,6 +97,12 @@ def install_local_artifacts(root_dir: Path = Path.cwd()) -> None: # our main artifacts, and our test sources target a newer release than # the compatibility JDK supports. "-Dmaven.test.skip=true", + # Deactivate the activeByDefault profiles that add test-only + # dependencies (incl. a test-jar). With maven.test.skip those are not + # built, so leaving the profile active breaks dependency resolution. + # Same approach the release task uses (-P 'release,!default'). + "-P", + "!default", "-Dcoverage.skip=true", "-Dcheckstyle.skip=true", "-Dwarnings=-nowarn", diff --git a/.mise/lib/micrometer_compat.py b/.mise/lib/micrometer_compat.py index 93613c336..dc3b9191f 100755 --- a/.mise/lib/micrometer_compat.py +++ b/.mise/lib/micrometer_compat.py @@ -129,6 +129,12 @@ def install_local_artifacts(root_dir: Path = Path.cwd()) -> None: # our main artifacts, and our test sources target a newer release than # the compatibility JDK supports. "-Dmaven.test.skip=true", + # Deactivate the activeByDefault profiles that add test-only + # dependencies (incl. a test-jar). With maven.test.skip those are not + # built, so leaving the profile active breaks dependency resolution. + # Same approach the release task uses (-P 'release,!default'). + "-P", + "!default", "-Dcoverage.skip=true", "-Dcheckstyle.skip=true", "-Dwarnings=-nowarn", diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-annotations.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-annotations.txt new file mode 100644 index 000000000..b2f6a39d8 --- /dev/null +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-annotations.txt @@ -0,0 +1,11 @@ +Comparing source compatibility of prometheus-metrics-annotations-1.6.2-SNAPSHOT.jar against ++++ NEW ANNOTATION: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.annotations.StableApi (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.annotation.Annotation + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW ANNOTATION: java.lang.annotation.Documented + +++ NEW ANNOTATION: java.lang.annotation.Target + +++ NEW ELEMENT: value=java.lang.annotation.ElementType.TYPE,java.lang.annotation.ElementType.CONSTRUCTOR,java.lang.annotation.ElementType.METHOD,java.lang.annotation.ElementType.FIELD (+) + +++ NEW ANNOTATION: java.lang.annotation.Retention + +++ NEW ELEMENT: value=java.lang.annotation.RetentionPolicy.CLASS (+) + diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-config.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-config.txt new file mode 100644 index 000000000..dd61db431 --- /dev/null +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-config.txt @@ -0,0 +1,263 @@ +Comparing source compatibility of prometheus-metrics-config-1.6.2-SNAPSHOT.jar against prometheus-metrics-config-1.6.1.jar ++++ NEW ENUM: PUBLIC(+) FINAL(+) io.prometheus.metrics.config.EscapingScheme (compatible) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.constant.Constable + +++ NEW INTERFACE: java.lang.Comparable + +++ NEW INTERFACE: java.io.Serializable + +++ NEW SUPERCLASS: java.lang.Enum + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.config.EscapingScheme DOTS_ESCAPING + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.config.EscapingScheme ALLOW_UTF8 + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.config.EscapingScheme UNDERSCORE_ESCAPING + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.config.EscapingScheme VALUE_ENCODING_ESCAPING + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.config.EscapingScheme DEFAULT + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.EscapingScheme fromAcceptHeader(java.lang.String) + +++ NEW METHOD: PUBLIC(+) FINAL(+) java.lang.String getValue() + +++ NEW METHOD: PUBLIC(+) java.lang.String toHeaderFormat() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.EscapingScheme valueOf(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.EscapingScheme[] values() ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.ExemplarsProperties (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExemplarsProperties$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.lang.Integer getMaxRetentionPeriodSeconds() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.Integer getMinRetentionPeriodSeconds() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.Integer getSampleIntervalMilliseconds() + +++ NEW ANNOTATION: javax.annotation.Nullable ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExemplarsProperties$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExemplarsProperties build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExemplarsProperties$Builder maxRetentionPeriodSeconds(int) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExemplarsProperties$Builder minRetentionPeriodSeconds(int) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExemplarsProperties$Builder sampleIntervalMilliseconds(int) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.ExporterFilterProperties (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String METRIC_NAME_MUST_NOT_BE_EQUAL_TO + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String METRIC_NAME_MUST_START_WITH + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String METRIC_NAME_MUST_NOT_START_WITH + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String METRIC_NAME_MUST_BE_EQUAL_TO + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterFilterProperties$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.util.List getAllowedMetricNamePrefixes() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.util.List getAllowedMetricNames() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.util.List getExcludedMetricNamePrefixes() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.util.List getExcludedMetricNames() + +++ NEW ANNOTATION: javax.annotation.Nullable ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterFilterProperties$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterFilterProperties$Builder allowedNames(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterFilterProperties$Builder allowedPrefixes(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterFilterProperties build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterFilterProperties$Builder excludedNames(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterFilterProperties$Builder excludedPrefixes(java.lang.String[]) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.ExporterHttpServerProperties (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterHttpServerProperties$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.lang.Integer getPort() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) boolean isPreferUncompressedResponse() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterHttpServerProperties$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterHttpServerProperties build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterHttpServerProperties$Builder port(int) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterHttpServerProperties$Builder preferUncompressedResponse(boolean) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.lang.String getEndpoint() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.util.Map getHeaders() + +++ NEW METHOD: PUBLIC(+) java.lang.String getInterval() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.Boolean getPreserveNames() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String getProtocol() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.util.Map getResourceAttributes() + +++ NEW METHOD: PUBLIC(+) java.lang.String getServiceInstanceId() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String getServiceName() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String getServiceNamespace() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String getServiceVersion() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String getTimeout() + +++ NEW ANNOTATION: javax.annotation.Nullable ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder endpoint(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder header(java.lang.String, java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder intervalSeconds(int) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder preserveNames(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder protocol(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder resourceAttribute(java.lang.String, java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder serviceInstanceId(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder serviceName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder serviceNamespace(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder serviceVersion(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder timeoutSeconds(int) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.ExporterProperties (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterProperties$Builder builder() + +++ NEW METHOD: PUBLIC(+) boolean getExemplarsOnAllMetricTypes() + +++ NEW METHOD: PUBLIC(+) boolean getIncludeCreatedTimestamps() + +++ NEW METHOD: PUBLIC(+) boolean getPrometheusTimestampsInMs() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterProperties$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterProperties build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterProperties$Builder exemplarsOnAllMetricTypes(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterProperties$Builder includeCreatedTimestamps(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterProperties$Builder prometheusTimestampsInMs(boolean) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.lang.String getAddress() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.time.Duration getConnectTimeout() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.EscapingScheme getEscapingScheme() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String getJob() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.time.Duration getReadTimeout() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String getScheme() + +++ NEW ANNOTATION: javax.annotation.Nullable ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties$Builder address(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties$Builder connectTimeout(java.time.Duration) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties$Builder escapingScheme(io.prometheus.metrics.config.EscapingScheme) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties$Builder job(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties$Builder readTimeout(java.time.Duration) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties$Builder scheme(java.lang.String) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricsProperties(java.lang.Boolean, java.lang.Boolean, java.lang.Boolean, java.util.List, java.lang.Integer, java.lang.Double, java.lang.Double, java.lang.Integer, java.lang.Long, java.util.List, java.util.List, java.lang.Long, java.lang.Integer) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.MetricsProperties$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.lang.Boolean getExemplarsEnabled() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.Boolean getHistogramClassicOnly() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.util.List getHistogramClassicUpperBounds() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.Integer getHistogramNativeInitialSchema() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.Integer getHistogramNativeMaxNumberOfBuckets() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.Double getHistogramNativeMaxZeroThreshold() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.Double getHistogramNativeMinZeroThreshold() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.Boolean getHistogramNativeOnly() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.Long getHistogramNativeResetDurationSeconds() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.Long getSummaryMaxAgeSeconds() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.Integer getSummaryNumberOfAgeBuckets() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.util.List getSummaryQuantileErrors() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.util.List getSummaryQuantiles() + +++ NEW ANNOTATION: javax.annotation.Nullable ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.MetricsProperties$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder exemplarsEnabled(java.lang.Boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder histogramClassicOnly(java.lang.Boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder histogramClassicUpperBounds(double[]) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder histogramNativeInitialSchema(java.lang.Integer) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder histogramNativeMaxNumberOfBuckets(java.lang.Integer) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder histogramNativeMaxZeroThreshold(java.lang.Double) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder histogramNativeMinZeroThreshold(java.lang.Double) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder histogramNativeOnly(java.lang.Boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder histogramNativeResetDurationSeconds(java.lang.Long) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder summaryMaxAgeSeconds(java.lang.Long) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder summaryNumberOfAgeBuckets(java.lang.Integer) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder summaryQuantileErrors(double[]) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder summaryQuantiles(double[]) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder builder() + +++ NEW METHOD: PUBLIC(+) boolean getCompositeValues() + +++ NEW METHOD: PUBLIC(+) boolean getContentNegotiation() + +++ NEW METHOD: PUBLIC(+) boolean getEnabled() + +++ NEW METHOD: PUBLIC(+) boolean getExemplarCompliance() + +++ NEW METHOD: PUBLIC(+) boolean getNativeHistograms() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder compositeValues(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder contentNegotiation(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder enableAll() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder enabled(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder exemplarCompliance(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder nativeHistograms(boolean) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.PrometheusProperties get() + +++ NEW EXCEPTION: io.prometheus.metrics.config.PrometheusPropertiesException + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties getDefaultMetricProperties() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExemplarsProperties getExemplarProperties() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterFilterProperties getExporterFilterProperties() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterHttpServerProperties getExporterHttpServerProperties() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties getExporterOpenTelemetryProperties() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterProperties getExporterProperties() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties getExporterPushgatewayProperties() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties getMetricProperties(java.lang.String) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties getOpenMetrics2Properties() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder defaultMetricsProperties(io.prometheus.metrics.config.MetricsProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder enableOpenMetrics2(java.util.function.Consumer) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder exemplarProperties(io.prometheus.metrics.config.ExemplarsProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder exporterFilterProperties(io.prometheus.metrics.config.ExporterFilterProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder exporterHttpServerProperties(io.prometheus.metrics.config.ExporterHttpServerProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder exporterOpenTelemetryProperties(io.prometheus.metrics.config.ExporterOpenTelemetryProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder exporterProperties(io.prometheus.metrics.config.ExporterProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder metricProperties(java.util.Map) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder openMetrics2Properties(io.prometheus.metrics.config.OpenMetrics2Properties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder pushgatewayProperties(io.prometheus.metrics.config.ExporterPushgatewayProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder putMetricProperty(java.lang.String, io.prometheus.metrics.config.MetricsProperties) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.PrometheusPropertiesException (compatible) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.io.Serializable + +++ NEW SUPERCLASS: java.lang.RuntimeException + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusPropertiesException(java.lang.String) + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusPropertiesException(java.lang.String, java.lang.Exception) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.PrometheusPropertiesLoader (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusPropertiesLoader() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.PrometheusProperties load() + +++ NEW EXCEPTION: io.prometheus.metrics.config.PrometheusPropertiesException + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.PrometheusProperties load(java.util.Map) + +++ NEW EXCEPTION: io.prometheus.metrics.config.PrometheusPropertiesException + diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-core.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-core.txt new file mode 100644 index 000000000..f6b1e9a9c --- /dev/null +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-core.txt @@ -0,0 +1,353 @@ +Comparing source compatibility of prometheus-metrics-core-1.6.2-SNAPSHOT.jar against prometheus-metrics-core-1.6.1.jar ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.datapoints.CounterDataPoint (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) double get() + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) long getLongValue() + +++ NEW METHOD: PUBLIC(+) void inc() + +++ NEW METHOD: PUBLIC(+) void inc(long) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void inc(double) + +++ NEW METHOD: PUBLIC(+) void incWithExemplar(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void incWithExemplar(long, io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void incWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.datapoints.DataPoint (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.datapoints.DistributionDataPoint (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.TimerApi + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) long getCount() + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) double getSum() + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void observe(double) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void observeWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.datapoints.Timer startTimer() ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.datapoints.GaugeDataPoint (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.TimerApi + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) void dec() + +++ NEW METHOD: PUBLIC(+) void dec(double) + +++ NEW METHOD: PUBLIC(+) void decWithExemplar(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void decWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) double get() + +++ NEW METHOD: PUBLIC(+) void inc() + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void inc(double) + +++ NEW METHOD: PUBLIC(+) void incWithExemplar(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void incWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void set(double) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void setWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.datapoints.Timer startTimer() ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.datapoints.StateSetDataPoint (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void setFalse(java.lang.String) + +++ NEW METHOD: PUBLIC(+) void setFalse(java.lang.Enum) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void setTrue(java.lang.String) + +++ NEW METHOD: PUBLIC(+) void setTrue(java.lang.Enum) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.datapoints.Timer (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.io.Closeable + +++ NEW INTERFACE: java.lang.AutoCloseable + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) void close() + +++ NEW METHOD: PUBLIC(+) double observeDuration() ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.datapoints.TimerApi (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.datapoints.Timer startTimer() + +++ NEW METHOD: PUBLIC(+) void time(java.lang.Runnable) + +++ NEW METHOD: PUBLIC(+) java.lang.Object time(java.util.function.Supplier) + GENERIC TEMPLATES: +++ T:java.lang.Object + +++ NEW METHOD: PUBLIC(+) java.lang.Object timeChecked(java.util.concurrent.Callable) + +++ NEW EXCEPTION: java.lang.Exception + GENERIC TEMPLATES: +++ T:java.lang.Object ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.exemplars.ExemplarSampler (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) ExemplarSampler(io.prometheus.metrics.core.exemplars.ExemplarSamplerConfig, io.prometheus.metrics.tracer.common.SpanContext) + +++ NEW CONSTRUCTOR: PUBLIC(+) ExemplarSampler(io.prometheus.metrics.core.exemplars.ExemplarSamplerConfig) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplars collect() + +++ NEW METHOD: PUBLIC(+) void observe(double) + +++ NEW METHOD: PUBLIC(+) void observeWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void reset() ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.exemplars.ExemplarSamplerConfig (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) int DEFAULT_MIN_RETENTION_PERIOD_SECONDS + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) int DEFAULT_MAX_RETENTION_PERIOD_SECONDS + +++ NEW CONSTRUCTOR: PUBLIC(+) ExemplarSamplerConfig(io.prometheus.metrics.config.ExemplarsProperties, int) + +++ NEW CONSTRUCTOR: PUBLIC(+) ExemplarSamplerConfig(io.prometheus.metrics.config.ExemplarsProperties, double[]) + +++ NEW METHOD: PUBLIC(+) double[] getHistogramClassicUpperBounds() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) long getMaxRetentionPeriodMillis() + +++ NEW METHOD: PUBLIC(+) long getMinRetentionPeriodMillis() + +++ NEW METHOD: PUBLIC(+) int getNumberOfExemplars() + +++ NEW METHOD: PUBLIC(+) long getSampleIntervalMillis() ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.Counter (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.CounterDataPoint + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Counter$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Counter$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot collect() + +++ NEW METHOD: PUBLIC(+) double get() + +++ NEW METHOD: PUBLIC(+) long getLongValue() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW METHOD: PUBLIC(+) void inc(long) + +++ NEW METHOD: PUBLIC(+) void inc(double) + +++ NEW METHOD: PUBLIC(+) void incWithExemplar(long, io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void incWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Counter$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Counter build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Counter$Builder name(java.lang.String) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.CounterWithCallback (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.CallbackMetric + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.CounterWithCallback$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.CounterWithCallback$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot collect() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() + +++ NEW ANNOTATION: java.lang.Deprecated ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.CounterWithCallback$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.CallbackMetric$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.CounterWithCallback build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.CounterWithCallback$Builder callback(java.util.function.Consumer) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.CounterWithCallback$Builder name(java.lang.String) ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) STATIC(+) io.prometheus.metrics.core.metrics.CounterWithCallback$Callback (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void call(double, java.lang.String[]) + +++ NEW ANNOTATION: java.lang.FunctionalInterface ++++* NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.Gauge (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.GaugeDataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.TimerApi + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Gauge$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Gauge$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot collect() + +++ NEW METHOD: PUBLIC(+) double get() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW METHOD: PUBLIC(+) void inc(double) + +++ NEW METHOD: PUBLIC(+) void incWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void set(double) + +++ NEW METHOD: PUBLIC(+) void setWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Gauge$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Gauge build() ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.GaugeWithCallback (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.CallbackMetric + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.GaugeWithCallback$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.GaugeWithCallback$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot collect() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() + +++ NEW ANNOTATION: java.lang.Deprecated ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.GaugeWithCallback$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.CallbackMetric$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.GaugeWithCallback build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.GaugeWithCallback$Builder callback(java.util.function.Consumer) ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) STATIC(+) io.prometheus.metrics.core.metrics.GaugeWithCallback$Callback (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void call(double, java.lang.String[]) + +++ NEW ANNOTATION: java.lang.FunctionalInterface ++++* NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DistributionDataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.TimerApi + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot collect() + +++ NEW METHOD: PUBLIC(+) long getCount() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW METHOD: PUBLIC(+) double getSum() + +++ NEW METHOD: PUBLIC(+) void observe(double) + +++ NEW METHOD: PUBLIC(+) void observeWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric$Builder + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) double[] DEFAULT_CLASSIC_UPPER_BOUNDS + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder classicExponentialUpperBounds(double, double, int) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder classicLinearUpperBounds(double, double, int) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder classicOnly() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder classicUpperBounds(double[]) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties getDefaultProperties() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder nativeInitialSchema(int) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder nativeMaxNumberOfBuckets(int) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder nativeMaxZeroThreshold(double) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder nativeMinZeroThreshold(double) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder nativeOnly() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder nativeResetDuration(long, java.util.concurrent.TimeUnit) ++++* NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$DataPoint (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DistributionDataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.TimerApi + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) long getCount() + +++ NEW METHOD: PUBLIC(+) double getSum() + +++ NEW METHOD: PUBLIC(+) void observe(double) + +++ NEW METHOD: PUBLIC(+) void observeWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.Info (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.MetricWithFixedMetadata + +++ NEW METHOD: PUBLIC(+) void addLabelValues(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Info$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Info$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.InfoSnapshot collect() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW METHOD: PUBLIC(+) void remove(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) void setLabelValues(java.lang.String[]) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Info$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.MetricWithFixedMetadata$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Info build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Info$Builder name(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Info$Builder unit(io.prometheus.metrics.model.snapshots.Unit) ++++ NEW CLASS: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.metrics.Metric (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.snapshots.MetricSnapshot collect() ++++ NEW CLASS: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.metrics.MetricWithFixedMetadata (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.Metric + +++ NEW METHOD: PUBLIC(+) java.util.Set getLabelNames() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricMetadata getMetadata() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor getMetricFamilyDescriptor() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String getPrometheusName() + +++ NEW ANNOTATION: java.lang.Deprecated ++++ NEW CLASS: PUBLIC(+) ABSTRACT(+) STATIC(+) io.prometheus.metrics.core.metrics.MetricWithFixedMetadata$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + GENERIC TEMPLATES: +++ B:io.prometheus.metrics.core.metrics.MetricWithFixedMetadata$Builder, +++ M:io.prometheus.metrics.core.metrics.MetricWithFixedMetadata + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.Metric$Builder + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.metrics.MetricWithFixedMetadata build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.MetricWithFixedMetadata$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.MetricWithFixedMetadata$Builder help(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.MetricWithFixedMetadata$Builder labelNames(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.MetricWithFixedMetadata$Builder name(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.MetricWithFixedMetadata$Builder unit(io.prometheus.metrics.model.snapshots.Unit) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.SlidingWindow (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + GENERIC TEMPLATES: +++ T:java.lang.Object + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) SlidingWindow(java.lang.Class, java.util.function.Supplier, java.util.function.ObjDoubleConsumer, long, int) + +++ NEW METHOD: PUBLIC(+) java.lang.Object current() + +++ NEW METHOD: PUBLIC(+) void observe(double) ++++ NEW CLASS: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.metrics.StatefulMetric (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + GENERIC TEMPLATES: +++ D:io.prometheus.metrics.core.datapoints.DataPoint, +++ T:D + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.MetricWithFixedMetadata + +++ NEW METHOD: PUBLIC(+) void clear() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot collect() + +++ NEW METHOD: PUBLIC(+) void initLabelValues(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.datapoints.DataPoint labelValues(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) void remove(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) void removeIf(java.util.function.Function,java.lang.Boolean>) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.StateSet (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.StateSetDataPoint + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.StateSet$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.StateSet$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot collect() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW METHOD: PUBLIC(+) void setFalse(java.lang.String) + +++ NEW METHOD: PUBLIC(+) void setTrue(java.lang.String) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.StateSet$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.StateSet build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.StateSet$Builder states(java.lang.Class>) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.StateSet$Builder states(java.lang.String[]) ++++* NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.Summary (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DistributionDataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.TimerApi + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Summary$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Summary$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.SummarySnapshot collect() + +++ NEW METHOD: PUBLIC(+) long getCount() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW METHOD: PUBLIC(+) double getSum() + +++ NEW METHOD: PUBLIC(+) void observe(double) + +++ NEW METHOD: PUBLIC(+) void observeWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Summary$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric$Builder + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) long DEFAULT_MAX_AGE_SECONDS + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) int DEFAULT_NUMBER_OF_AGE_BUCKETS + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Summary build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties getDefaultProperties() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Summary$Builder maxAgeSeconds(long) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Summary$Builder numberOfAgeBuckets(int) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Summary$Builder quantile(double) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Summary$Builder quantile(double, double) ++++* NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.Summary$DataPoint (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DistributionDataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.TimerApi + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) long getCount() + +++ NEW METHOD: PUBLIC(+) double getSum() + +++ NEW METHOD: PUBLIC(+) void observe(double) + +++ NEW METHOD: PUBLIC(+) void observeWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.SummaryWithCallback (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.CallbackMetric + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.SummaryWithCallback$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.SummaryWithCallback$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.SummarySnapshot collect() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() + +++ NEW ANNOTATION: java.lang.Deprecated ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.SummaryWithCallback$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.CallbackMetric$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.SummaryWithCallback build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.SummaryWithCallback$Builder callback(java.util.function.Consumer) ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) STATIC(+) io.prometheus.metrics.core.metrics.SummaryWithCallback$Callback (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void call(long, double, io.prometheus.metrics.model.snapshots.Quantiles, java.lang.String[]) + +++ NEW ANNOTATION: java.lang.FunctionalInterface + diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-common.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-common.txt new file mode 100644 index 000000000..d2ba333af --- /dev/null +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-common.txt @@ -0,0 +1,40 @@ +Comparing source compatibility of prometheus-metrics-exporter-common-1.6.2-SNAPSHOT.jar against prometheus-metrics-exporter-common-1.6.1.jar ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.exporter.common.PrometheusHttpExchange (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.AutoCloseable + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void close() + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.exporter.common.PrometheusHttpRequest getRequest() + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.exporter.common.PrometheusHttpResponse getResponse() + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void handleException(java.io.IOException) + +++ NEW EXCEPTION: java.io.IOException + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void handleException(java.lang.RuntimeException) ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.exporter.common.PrometheusHttpRequest (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.PrometheusScrapeRequest + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) java.lang.String getHeader(java.lang.String) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.util.Enumeration getHeaders(java.lang.String) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String getMethod() + +++ NEW METHOD: PUBLIC(+) java.lang.String getParameter(java.lang.String) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String[] getParameterValues(java.lang.String) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String getQueryString() ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.exporter.common.PrometheusHttpResponse (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.io.OutputStream sendHeadersAndGetBody(int, int) + +++ NEW EXCEPTION: java.io.IOException + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void setHeader(java.lang.String, java.lang.String) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.common.PrometheusScrapeHandler (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusScrapeHandler() + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusScrapeHandler(io.prometheus.metrics.model.registry.PrometheusRegistry) + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusScrapeHandler(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusScrapeHandler(io.prometheus.metrics.config.PrometheusProperties, io.prometheus.metrics.model.registry.PrometheusRegistry) + +++ NEW METHOD: PUBLIC(+) void handleRequest(io.prometheus.metrics.exporter.common.PrometheusHttpExchange) + +++ NEW EXCEPTION: java.io.IOException + diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-httpserver.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-httpserver.txt new file mode 100644 index 000000000..decc352f5 --- /dev/null +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-httpserver.txt @@ -0,0 +1,52 @@ +Comparing source compatibility of prometheus-metrics-exporter-httpserver-1.6.2-SNAPSHOT.jar against prometheus-metrics-exporter-httpserver-1.6.1.jar ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.DefaultHandler (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: com.sun.net.httpserver.HttpHandler + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) DefaultHandler(java.lang.String) + +++ NEW METHOD: PUBLIC(+) void handle(com.sun.net.httpserver.HttpExchange) + +++ NEW EXCEPTION: java.io.IOException ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HealthyHandler (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: com.sun.net.httpserver.HttpHandler + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) HealthyHandler() + +++ NEW METHOD: PUBLIC(+) void handle(com.sun.net.httpserver.HttpExchange) + +++ NEW EXCEPTION: java.io.IOException ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.io.Closeable + +++ NEW INTERFACE: java.lang.AutoCloseable + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) void close() + +++ NEW METHOD: PUBLIC(+) int getPort() + +++ NEW METHOD: PUBLIC(+) void stop() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder authenticatedSubjectAttributeName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder authenticator(com.sun.net.httpserver.Authenticator) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer buildAndStart() + +++ NEW EXCEPTION: java.io.IOException + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder defaultHandler(com.sun.net.httpserver.HttpHandler) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder executorService(java.util.concurrent.ExecutorService) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder hostname(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder httpsConfigurator(com.sun.net.httpserver.HttpsConfigurator) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder inetAddress(java.net.InetAddress) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder metricsHandlerPath(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder port(int) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder registerHealthHandler(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder registry(io.prometheus.metrics.model.registry.PrometheusRegistry) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.MetricsHandler (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: com.sun.net.httpserver.HttpHandler + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricsHandler(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricsHandler(io.prometheus.metrics.model.registry.PrometheusRegistry) + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricsHandler(io.prometheus.metrics.config.PrometheusProperties, io.prometheus.metrics.model.registry.PrometheusRegistry) + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricsHandler() + +++ NEW METHOD: PUBLIC(+) void handle(com.sun.net.httpserver.HttpExchange) + +++ NEW EXCEPTION: java.io.IOException + diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt new file mode 100644 index 000000000..e5d128dd6 --- /dev/null +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt @@ -0,0 +1,2 @@ +Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-otel-agent-resources-1.6.2-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-otel-agent-resources-1.6.1.jar +No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-shaded.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-shaded.txt new file mode 100644 index 000000000..8bc4f87f6 --- /dev/null +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-shaded.txt @@ -0,0 +1,26 @@ +Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-1.6.2-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-1.6.1.jar ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.AutoCloseable + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) OpenTelemetryExporter(io.prometheus.metrics.shaded.io_opentelemetry_2_28_1_alpha.sdk.metrics.export.MetricReader) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) void close() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter buildAndStart() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder endpoint(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder header(java.lang.String, java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder intervalSeconds(int) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder preserveNames(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder protocol(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder registry(io.prometheus.metrics.model.registry.PrometheusRegistry) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder resourceAttribute(java.lang.String, java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceInstanceId(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceNamespace(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceVersion(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder timeoutSeconds(int) + diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry.txt new file mode 100644 index 000000000..19d112b08 --- /dev/null +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry.txt @@ -0,0 +1,26 @@ +Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-no-otel-1.6.2-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-no-otel-1.6.1.jar ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.AutoCloseable + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) OpenTelemetryExporter(io.opentelemetry.sdk.metrics.export.MetricReader) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) void close() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter buildAndStart() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder endpoint(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder header(java.lang.String, java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder intervalSeconds(int) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder preserveNames(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder protocol(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder registry(io.prometheus.metrics.model.registry.PrometheusRegistry) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder resourceAttribute(java.lang.String, java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceInstanceId(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceNamespace(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceVersion(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder timeoutSeconds(int) + diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-pushgateway.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-pushgateway.txt new file mode 100644 index 000000000..82cd98d0e --- /dev/null +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-pushgateway.txt @@ -0,0 +1,75 @@ +Comparing source compatibility of prometheus-metrics-exporter-pushgateway-1.6.2-SNAPSHOT.jar against prometheus-metrics-exporter-pushgateway-1.6.1.jar ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.DefaultHttpConnectionFactory (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.exporter.pushgateway.HttpConnectionFactory + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) DefaultHttpConnectionFactory() + +++ NEW METHOD: PUBLIC(+) java.net.HttpURLConnection create(java.net.URL) + +++ NEW EXCEPTION: java.io.IOException ++++ NEW ENUM: PUBLIC(+) FINAL(+) io.prometheus.metrics.exporter.pushgateway.Format (compatible) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.constant.Constable + +++ NEW INTERFACE: java.lang.Comparable + +++ NEW INTERFACE: java.io.Serializable + +++ NEW SUPERCLASS: java.lang.Enum + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.exporter.pushgateway.Format PROMETHEUS_PROTOBUF + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.exporter.pushgateway.Format PROMETHEUS_TEXT + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.pushgateway.Format valueOf(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.pushgateway.Format[] values() ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.exporter.pushgateway.HttpConnectionFactory (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.net.HttpURLConnection create(java.net.URL) + +++ NEW EXCEPTION: java.io.IOException + +++ NEW ANNOTATION: java.lang.FunctionalInterface ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) void delete() + +++ NEW EXCEPTION: java.io.IOException + +++ NEW METHOD: PUBLIC(+) void push() + +++ NEW EXCEPTION: java.io.IOException + +++ NEW METHOD: PUBLIC(+) void push(io.prometheus.metrics.model.registry.Collector) + +++ NEW EXCEPTION: java.io.IOException + +++ NEW METHOD: PUBLIC(+) void push(io.prometheus.metrics.model.registry.MultiCollector) + +++ NEW EXCEPTION: java.io.IOException + +++ NEW METHOD: PUBLIC(+) void pushAdd() + +++ NEW EXCEPTION: java.io.IOException + +++ NEW METHOD: PUBLIC(+) void pushAdd(io.prometheus.metrics.model.registry.Collector) + +++ NEW EXCEPTION: java.io.IOException + +++ NEW METHOD: PUBLIC(+) void pushAdd(io.prometheus.metrics.model.registry.MultiCollector) + +++ NEW EXCEPTION: java.io.IOException ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder address(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder basicAuth(java.lang.String, java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder bearerToken(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder connectionFactory(io.prometheus.metrics.exporter.pushgateway.HttpConnectionFactory) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder connectionTimeout(java.time.Duration) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder escapingScheme(io.prometheus.metrics.config.EscapingScheme) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder format(io.prometheus.metrics.exporter.pushgateway.Format) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder groupingKey(java.lang.String, java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder instanceIpGroupingKey() + +++ NEW EXCEPTION: java.net.UnknownHostException + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder job(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder prometheusTimestampsInMs(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder readTimeout(java.time.Duration) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder registry(io.prometheus.metrics.model.registry.PrometheusRegistry) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder scheme(io.prometheus.metrics.exporter.pushgateway.Scheme) ++++ NEW ENUM: PUBLIC(+) FINAL(+) io.prometheus.metrics.exporter.pushgateway.Scheme (compatible) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.constant.Constable + +++ NEW INTERFACE: java.lang.Comparable + +++ NEW INTERFACE: java.io.Serializable + +++ NEW SUPERCLASS: java.lang.Enum + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.exporter.pushgateway.Scheme HTTPS + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.exporter.pushgateway.Scheme HTTP + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.pushgateway.Scheme fromString(java.lang.String) + +++ NEW METHOD: PUBLIC(+) java.lang.String toString() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.pushgateway.Scheme valueOf(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.pushgateway.Scheme[] values() + diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-jakarta.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-jakarta.txt new file mode 100644 index 000000000..61372aa39 --- /dev/null +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-jakarta.txt @@ -0,0 +1,12 @@ +Comparing source compatibility of prometheus-metrics-exporter-servlet-jakarta-1.6.2-SNAPSHOT.jar against prometheus-metrics-exporter-servlet-jakarta-1.6.1.jar ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.servlet.jakarta.PrometheusMetricsServlet (compatible) + +++ CLASS FILE FORMAT VERSION: 61.0 <- n.a. + +++ NEW INTERFACE: jakarta.servlet.ServletConfig + +++ NEW INTERFACE: jakarta.servlet.Servlet + +++ NEW INTERFACE: java.io.Serializable + +++ NEW SUPERCLASS: jakarta.servlet.http.HttpServlet + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusMetricsServlet(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusMetricsServlet(io.prometheus.metrics.config.PrometheusProperties, io.prometheus.metrics.model.registry.PrometheusRegistry) + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusMetricsServlet() + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusMetricsServlet(io.prometheus.metrics.model.registry.PrometheusRegistry) + diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-javax.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-javax.txt new file mode 100644 index 000000000..434cfaf65 --- /dev/null +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-javax.txt @@ -0,0 +1,12 @@ +Comparing source compatibility of prometheus-metrics-exporter-servlet-javax-1.6.2-SNAPSHOT.jar against prometheus-metrics-exporter-servlet-javax-1.6.1.jar ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.servlet.javax.PrometheusMetricsServlet (compatible) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: javax.servlet.ServletConfig + +++ NEW INTERFACE: javax.servlet.Servlet + +++ NEW INTERFACE: java.io.Serializable + +++ NEW SUPERCLASS: javax.servlet.http.HttpServlet + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusMetricsServlet(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusMetricsServlet(io.prometheus.metrics.model.registry.PrometheusRegistry) + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusMetricsServlet(io.prometheus.metrics.config.PrometheusProperties, io.prometheus.metrics.model.registry.PrometheusRegistry) + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusMetricsServlet() + diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats-shaded.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats-shaded.txt new file mode 100644 index 000000000..2523aafc1 --- /dev/null +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats-shaded.txt @@ -0,0 +1,2 @@ +Comparing source compatibility of prometheus-metrics-exposition-formats-1.6.2-SNAPSHOT.jar against prometheus-metrics-exposition-formats-1.6.1.jar +No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats.txt new file mode 100644 index 000000000..0f04c0d1e --- /dev/null +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats.txt @@ -0,0 +1,2 @@ +Comparing source compatibility of prometheus-metrics-exposition-formats-no-protobuf-1.6.2-SNAPSHOT.jar against prometheus-metrics-exposition-formats-no-protobuf-1.6.1.jar +No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-textformats.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-textformats.txt new file mode 100644 index 000000000..fd61bb649 --- /dev/null +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-textformats.txt @@ -0,0 +1,98 @@ +Comparing source compatibility of prometheus-metrics-exposition-textformats-1.6.2-SNAPSHOT.jar against prometheus-metrics-exposition-textformats-1.6.1.jar ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.expositionformats.ExpositionFormats (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.ExpositionFormatWriter findWriter(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter getOpenMetrics2TextFormatWriter() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter getOpenMetricsTextFormatWriter() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.PrometheusProtobufWriter getPrometheusProtobufWriter() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter getPrometheusTextFormatWriter() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.ExpositionFormats init() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.ExpositionFormats init(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.ExpositionFormats init(io.prometheus.metrics.config.ExporterProperties) + +++ NEW ANNOTATION: java.lang.Deprecated ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.expositionformats.ExpositionFormatWriter (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) boolean accepts(java.lang.String) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String getContentType() + +++ NEW METHOD: PUBLIC(+) boolean isAvailable() + +++ NEW METHOD: PUBLIC(+) java.lang.String toDebugString(io.prometheus.metrics.model.snapshots.MetricSnapshots, io.prometheus.metrics.config.EscapingScheme) + +++ NEW METHOD: PUBLIC(+) java.lang.String toDebugString(io.prometheus.metrics.model.snapshots.MetricSnapshots) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void write(java.io.OutputStream, io.prometheus.metrics.model.snapshots.MetricSnapshots, io.prometheus.metrics.config.EscapingScheme) + +++ NEW EXCEPTION: java.io.IOException + +++ NEW METHOD: PUBLIC(+) void write(java.io.OutputStream, io.prometheus.metrics.model.snapshots.MetricSnapshots) + +++ NEW EXCEPTION: java.io.IOException ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.expositionformats.ExpositionFormatWriter + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String CONTENT_TYPE + +++ NEW CONSTRUCTOR: PUBLIC(+) OpenMetrics2TextFormatWriter(io.prometheus.metrics.config.OpenMetrics2Properties, boolean, boolean) + +++ NEW METHOD: PUBLIC(+) boolean accepts(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter create() + +++ NEW METHOD: PUBLIC(+) java.lang.String getContentType() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties getOpenMetrics2Properties() + +++ NEW METHOD: PUBLIC(+) void write(java.io.OutputStream, io.prometheus.metrics.model.snapshots.MetricSnapshots, io.prometheus.metrics.config.EscapingScheme) + +++ NEW EXCEPTION: java.io.IOException ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter$Builder setCreatedTimestampsEnabled(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter$Builder setExemplarsOnAllMetricTypesEnabled(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter$Builder setOpenMetrics2Properties(io.prometheus.metrics.config.OpenMetrics2Properties) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.expositionformats.ExpositionFormatWriter + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String CONTENT_TYPE + +++ NEW CONSTRUCTOR: PUBLIC(+) OpenMetricsTextFormatWriter(boolean, boolean) + +++ NEW METHOD: PUBLIC(+) boolean accepts(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter create() + +++ NEW METHOD: PUBLIC(+) java.lang.String getContentType() + +++ NEW METHOD: PUBLIC(+) void write(java.io.OutputStream, io.prometheus.metrics.model.snapshots.MetricSnapshots, io.prometheus.metrics.config.EscapingScheme) + +++ NEW EXCEPTION: java.io.IOException ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter$Builder setCreatedTimestampsEnabled(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter$Builder setExemplarsOnAllMetricTypesEnabled(boolean) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.expositionformats.PrometheusProtobufWriter (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.expositionformats.ExpositionFormatWriter + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String CONTENT_TYPE + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusProtobufWriter() + +++ NEW METHOD: PUBLIC(+) boolean accepts(java.lang.String) + +++ NEW METHOD: PUBLIC(+) java.lang.String getContentType() + +++ NEW METHOD: PUBLIC(+) boolean isAvailable() + +++ NEW METHOD: PUBLIC(+) java.lang.String toDebugString(io.prometheus.metrics.model.snapshots.MetricSnapshots, io.prometheus.metrics.config.EscapingScheme) + +++ NEW METHOD: PUBLIC(+) void write(java.io.OutputStream, io.prometheus.metrics.model.snapshots.MetricSnapshots, io.prometheus.metrics.config.EscapingScheme) + +++ NEW EXCEPTION: java.io.IOException ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.expositionformats.ExpositionFormatWriter + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String CONTENT_TYPE + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusTextFormatWriter(boolean) + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW METHOD: PUBLIC(+) boolean accepts(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter create() + +++ NEW METHOD: PUBLIC(+) java.lang.String getContentType() + +++ NEW METHOD: PUBLIC(+) void write(java.io.OutputStream, io.prometheus.metrics.model.snapshots.MetricSnapshots, io.prometheus.metrics.config.EscapingScheme) + +++ NEW EXCEPTION: java.io.IOException + +++ NEW METHOD: PUBLIC(+) void writeCreated(java.io.Writer, io.prometheus.metrics.model.snapshots.MetricSnapshot, io.prometheus.metrics.config.EscapingScheme) + +++ NEW EXCEPTION: java.io.IOException ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter$Builder setIncludeCreatedTimestamps(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter$Builder setTimestampsInMs(boolean) + +++ NEW ANNOTATION: java.lang.Deprecated + diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-caffeine.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-caffeine.txt new file mode 100644 index 000000000..f804dc9ca --- /dev/null +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-caffeine.txt @@ -0,0 +1,23 @@ +Comparing source compatibility of prometheus-metrics-instrumentation-caffeine-1.6.2-SNAPSHOT.jar against prometheus-metrics-instrumentation-caffeine-1.6.1.jar ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.caffeine.CacheMetricsCollector (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.MultiCollector + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) CacheMetricsCollector() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW METHOD: PUBLIC(+) void addCache(java.lang.String, com.github.benmanes.caffeine.cache.Cache) + +++ NEW METHOD: PUBLIC(+) void addCache(java.lang.String, com.github.benmanes.caffeine.cache.AsyncCache) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.caffeine.CacheMetricsCollector$Builder builder() + +++ NEW METHOD: PUBLIC(+) void clear() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots collect() + +++ NEW METHOD: PUBLIC(+) java.util.List getPrometheusNames() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW METHOD: PUBLIC(+) com.github.benmanes.caffeine.cache.Cache removeCache(java.lang.String) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.caffeine.CacheMetricsCollector$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) CacheMetricsCollector$Builder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.caffeine.CacheMetricsCollector build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.caffeine.CacheMetricsCollector$Builder collectEvictionWeightAsCounter(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.caffeine.CacheMetricsCollector$Builder collectWeightedSize(boolean) + diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard.txt new file mode 100644 index 000000000..a95df8aae --- /dev/null +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard.txt @@ -0,0 +1,19 @@ +Comparing source compatibility of prometheus-metrics-instrumentation-dropwizard-1.6.2-SNAPSHOT.jar against prometheus-metrics-instrumentation-dropwizard-1.6.1.jar ++++* NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard.DropwizardExports (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.MultiCollector + +++ NEW SUPERCLASS: io.prometheus.metrics.instrumentation.dropwizard5.internal.AbstractDropwizardExports + +++ NEW CONSTRUCTOR: PUBLIC(+) DropwizardExports(com.codahale.metrics.MetricRegistry) + +++ NEW CONSTRUCTOR: PUBLIC(+) DropwizardExports(com.codahale.metrics.MetricRegistry, com.codahale.metrics.MetricFilter) + +++ NEW CONSTRUCTOR: PUBLIC(+) DropwizardExports(com.codahale.metrics.MetricRegistry, com.codahale.metrics.MetricFilter, io.prometheus.metrics.instrumentation.dropwizard5.labels.CustomLabelMapper) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.dropwizard.DropwizardExports$Builder builder() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.dropwizard.DropwizardExports$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard.DropwizardExports$Builder customLabelMapper(io.prometheus.metrics.instrumentation.dropwizard5.labels.CustomLabelMapper) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard.DropwizardExports$Builder dropwizardRegistry(com.codahale.metrics.MetricRegistry) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard.DropwizardExports$Builder invalidMetricHandler(io.prometheus.metrics.instrumentation.dropwizard5.InvalidMetricHandler) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard.DropwizardExports$Builder metricFilter(com.codahale.metrics.MetricFilter) + +++ NEW METHOD: PUBLIC(+) void register() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) + diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard5.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard5.txt new file mode 100644 index 000000000..e9c13ab17 --- /dev/null +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard5.txt @@ -0,0 +1,47 @@ +Comparing source compatibility of prometheus-metrics-instrumentation-dropwizard5-1.6.2-SNAPSHOT.jar against prometheus-metrics-instrumentation-dropwizard5-1.6.1.jar ++++* NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard5.DropwizardExports (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.MultiCollector + +++ NEW SUPERCLASS: io.prometheus.metrics.instrumentation.dropwizard5.internal.AbstractDropwizardExports + +++ NEW CONSTRUCTOR: PUBLIC(+) DropwizardExports(io.dropwizard.metrics5.MetricRegistry, io.dropwizard.metrics5.MetricFilter, io.prometheus.metrics.instrumentation.dropwizard5.labels.CustomLabelMapper) + +++ NEW CONSTRUCTOR: PUBLIC(+) DropwizardExports(io.dropwizard.metrics5.MetricRegistry) + +++ NEW CONSTRUCTOR: PUBLIC(+) DropwizardExports(io.dropwizard.metrics5.MetricRegistry, io.dropwizard.metrics5.MetricFilter) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.dropwizard5.DropwizardExports$Builder builder() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.dropwizard5.DropwizardExports$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard5.DropwizardExports$Builder customLabelMapper(io.prometheus.metrics.instrumentation.dropwizard5.labels.CustomLabelMapper) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard5.DropwizardExports$Builder dropwizardRegistry(io.dropwizard.metrics5.MetricRegistry) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard5.DropwizardExports$Builder invalidMetricHandler(io.prometheus.metrics.instrumentation.dropwizard5.InvalidMetricHandler) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard5.DropwizardExports$Builder metricFilter(io.dropwizard.metrics5.MetricFilter) + +++ NEW METHOD: PUBLIC(+) void register() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.instrumentation.dropwizard5.InvalidMetricHandler (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.instrumentation.dropwizard5.InvalidMetricHandler ALWAYS_THROW + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) boolean suppressException(java.lang.String, java.lang.Exception) + +++ NEW ANNOTATION: java.lang.FunctionalInterface ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard5.labels.CustomLabelMapper (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) CustomLabelMapper(java.util.List) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels getLabels(java.lang.String, java.util.List, java.util.List) + +++ NEW METHOD: PUBLIC(+) java.lang.String getName(java.lang.String) ++++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.instrumentation.dropwizard5.labels.MapperConfig (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) MapperConfig() + +++ NEW CONSTRUCTOR: PUBLIC(+) MapperConfig(java.lang.String, java.lang.String, java.util.Map) + +++ NEW METHOD: PUBLIC(+) boolean equals(java.lang.Object) + +++ NEW METHOD: PUBLIC(+) java.util.Map getLabels() + +++ NEW METHOD: PUBLIC(+) java.lang.String getMatch() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String getName() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) int hashCode() + +++ NEW METHOD: PUBLIC(+) void setLabels(java.util.Map) + +++ NEW METHOD: PUBLIC(+) void setMatch(java.lang.String) + +++ NEW METHOD: PUBLIC(+) void setName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) java.lang.String toString() + diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-guava.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-guava.txt new file mode 100644 index 000000000..815196d0e --- /dev/null +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-guava.txt @@ -0,0 +1,13 @@ +Comparing source compatibility of prometheus-metrics-instrumentation-guava-1.6.2-SNAPSHOT.jar against prometheus-metrics-instrumentation-guava-1.6.1.jar ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.guava.CacheMetricsCollector (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.MultiCollector + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) CacheMetricsCollector() + +++ NEW METHOD: PUBLIC(+) void addCache(java.lang.String, com.google.common.cache.Cache) + +++ NEW METHOD: PUBLIC(+) void clear() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots collect() + +++ NEW METHOD: PUBLIC(+) java.util.List getPrometheusNames() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW METHOD: PUBLIC(+) com.google.common.cache.Cache removeCache(java.lang.String) + diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-jvm.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-jvm.txt new file mode 100644 index 000000000..391bae997 --- /dev/null +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-jvm.txt @@ -0,0 +1,124 @@ +Comparing source compatibility of prometheus-metrics-instrumentation-jvm-1.6.2-SNAPSHOT.jar against prometheus-metrics-instrumentation-jvm-1.6.1.jar ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmBufferPoolMetrics (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmBufferPoolMetrics$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmBufferPoolMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmBufferPoolMetrics$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmBufferPoolMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void register() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmClassLoadingMetrics (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmClassLoadingMetrics$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmClassLoadingMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmClassLoadingMetrics$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmClassLoadingMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void register() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmCompilationMetrics (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmCompilationMetrics$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmCompilationMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmCompilationMetrics$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmCompilationMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void register() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmGarbageCollectorMetrics (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmGarbageCollectorMetrics$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmGarbageCollectorMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmGarbageCollectorMetrics$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmGarbageCollectorMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void register() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryMetrics (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryMetrics$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryMetrics$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void register() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryPoolAllocationMetrics (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryPoolAllocationMetrics$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryPoolAllocationMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryPoolAllocationMetrics$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryPoolAllocationMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void register() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMetrics (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) JvmMetrics() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMetrics$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMetrics$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void register() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmNativeMemoryMetrics (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmNativeMemoryMetrics$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmNativeMemoryMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmNativeMemoryMetrics$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmNativeMemoryMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void register() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmRuntimeInfoMetric (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmRuntimeInfoMetric$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmRuntimeInfoMetric$Builder builder(io.prometheus.metrics.config.PrometheusProperties) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmRuntimeInfoMetric$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmRuntimeInfoMetric$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void register() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmThreadsMetrics (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmThreadsMetrics$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmThreadsMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmThreadsMetrics$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmThreadsMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void register() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.ProcessMetrics (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.ProcessMetrics$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.ProcessMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.ProcessMetrics$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.ProcessMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void register() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) + diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-model.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-model.txt new file mode 100644 index 000000000..98a3e2b0d --- /dev/null +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-model.txt @@ -0,0 +1,600 @@ +Comparing source compatibility of prometheus-metrics-model-1.6.2-SNAPSHOT.jar against prometheus-metrics-model-1.6.1.jar ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.registry.Collector (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.snapshots.MetricSnapshot collect() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot collect(io.prometheus.metrics.model.registry.PrometheusScrapeRequest) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot collect(java.util.function.Predicate) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot collect(java.util.function.Predicate, io.prometheus.metrics.model.registry.PrometheusScrapeRequest) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.util.Set getLabelNames() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricMetadata getMetadata() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor getMetricFamilyDescriptor() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String getPrometheusName() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW ANNOTATION: java.lang.FunctionalInterface ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.util.function.Predicate + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.util.function.Predicate ALLOW_ALL + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder builder() + +++ NEW METHOD: PUBLIC(+) boolean test(java.lang.String) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder nameMustBeEqualTo(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder nameMustBeEqualTo(java.util.Collection) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder nameMustNotBeEqualTo(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder nameMustNotBeEqualTo(java.util.Collection) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder nameMustNotStartWith(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder nameMustNotStartWith(java.util.Collection) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder nameMustStartWith(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder nameMustStartWith(java.util.Collection) ++++ NEW ENUM: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.registry.MetricType (compatible) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.constant.Constable + +++ NEW INTERFACE: java.lang.Comparable + +++ NEW INTERFACE: java.io.Serializable + +++ NEW SUPERCLASS: java.lang.Enum + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.registry.MetricType SUMMARY + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.registry.MetricType HISTOGRAM + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.registry.MetricType STATESET + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.registry.MetricType UNKNOWN + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.registry.MetricType INFO + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.registry.MetricType COUNTER + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.registry.MetricType GAUGE + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.registry.MetricType valueOf(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.registry.MetricType[] values() ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.registry.MultiCollector (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.snapshots.MetricSnapshots collect() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots collect(io.prometheus.metrics.model.registry.PrometheusScrapeRequest) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots collect(java.util.function.Predicate) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots collect(java.util.function.Predicate, io.prometheus.metrics.model.registry.PrometheusScrapeRequest) + +++ NEW METHOD: PUBLIC(+) java.util.Set getLabelNames(java.lang.String) + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricMetadata getMetadata(java.lang.String) + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.util.List getMetricFamilyDescriptors() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType(java.lang.String) + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.util.List getPrometheusNames() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW ANNOTATION: java.lang.FunctionalInterface ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.registry.PrometheusRegistry (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.registry.PrometheusRegistry defaultRegistry + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusRegistry() + +++ NEW METHOD: PUBLIC(+) void clear() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.Collector) + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.MultiCollector) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots scrape() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots scrape(io.prometheus.metrics.model.registry.PrometheusScrapeRequest) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots scrape(java.util.function.Predicate) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots scrape(java.util.function.Predicate, io.prometheus.metrics.model.registry.PrometheusScrapeRequest) + +++ NEW METHOD: PUBLIC(+) void unregister(io.prometheus.metrics.model.registry.Collector) + +++ NEW METHOD: PUBLIC(+) void unregister(io.prometheus.metrics.model.registry.MultiCollector) ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.registry.PrometheusScrapeRequest (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String[] getParameterValues(java.lang.String) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String getRequestPath() ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBucket (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.Comparable + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) ClassicHistogramBucket(double, long) + +++ NEW METHOD: PUBLIC(+) int compareTo(io.prometheus.metrics.model.snapshots.ClassicHistogramBucket) + +++ NEW METHOD: PUBLIC(+) long getCount() + +++ NEW METHOD: PUBLIC(+) double getUpperBound() ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.Iterable + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets EMPTY + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets$Builder builder() + +++ NEW METHOD: PUBLIC(+) long getCount(int) + +++ NEW METHOD: PUBLIC(+) double getUpperBound(int) + +++ NEW METHOD: PUBLIC(+) boolean isEmpty() + +++ NEW METHOD: PUBLIC(+) java.util.Iterator iterator() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets of(java.util.List, java.util.List) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets of(double[], java.lang.Number[]) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets of(double[], long[]) + +++ NEW METHOD: PUBLIC(+) int size() + +++ NEW METHOD: PUBLIC(+) java.util.stream.Stream stream() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets$Builder bucket(double, long) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets build() ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot + +++ NEW CONSTRUCTOR: PUBLIC(+) CounterSnapshot(io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.util.List getDataPoints() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot$Builder dataPoint(io.prometheus.metrics.model.snapshots.CounterSnapshot$CounterDataPointSnapshot) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot$CounterDataPointSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.DataPointSnapshot + +++ NEW CONSTRUCTOR: PUBLIC(+) CounterSnapshot$CounterDataPointSnapshot(double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplar, long) + +++ NEW CONSTRUCTOR: PUBLIC(+) CounterSnapshot$CounterDataPointSnapshot(double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplar, long, long, boolean) + +++ NEW CONSTRUCTOR: PUBLIC(+) CounterSnapshot$CounterDataPointSnapshot(double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplar, long, long) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot$CounterDataPointSnapshot$Builder builder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar getExemplar() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) double getValue() ++++ NEW CLASS: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.snapshots.DataPointSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) long getCreatedTimestampMillis() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels getLabels() + +++ NEW METHOD: PUBLIC(+) long getScrapeTimestampMillis() + +++ NEW METHOD: PUBLIC(+) boolean hasCreatedTimestamp() + +++ NEW METHOD: PUBLIC(+) boolean hasScrapeTimestamp() ++++ NEW CLASS: PUBLIC(+) ABSTRACT(+) STATIC(+) io.prometheus.metrics.model.snapshots.DataPointSnapshot$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + GENERIC TEMPLATES: +++ T:io.prometheus.metrics.model.snapshots.DataPointSnapshot$Builder + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) DataPointSnapshot$Builder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.DataPointSnapshot$Builder labels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.DataPointSnapshot$Builder scrapeTimestampMillis(long) ++++ NEW CLASS: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.snapshots.DistributionDataPointSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.DataPointSnapshot + +++ NEW METHOD: PUBLIC(+) long getCount() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplars getExemplars() + +++ NEW METHOD: PUBLIC(+) double getSum() + +++ NEW METHOD: PUBLIC(+) boolean hasCount() + +++ NEW METHOD: PUBLIC(+) boolean hasSum() ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.DuplicateLabelsException (compatible) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.io.Serializable + +++ NEW SUPERCLASS: java.lang.IllegalArgumentException + +++ NEW CONSTRUCTOR: PUBLIC(+) DuplicateLabelsException(io.prometheus.metrics.model.snapshots.MetricMetadata, io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels getLabels() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricMetadata getMetadata() ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String SPAN_ID + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String TRACE_ID + +++ NEW CONSTRUCTOR: PUBLIC(+) Exemplar(double, io.prometheus.metrics.model.snapshots.Labels, long) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Exemplar$Builder builder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels getLabels() + +++ NEW METHOD: PUBLIC(+) long getTimestampMillis() + +++ NEW METHOD: PUBLIC(+) double getValue() + +++ NEW METHOD: PUBLIC(+) boolean hasTimestamp() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Exemplar$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar$Builder labels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar$Builder spanId(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar$Builder timestampMillis(long) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar$Builder traceId(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar$Builder value(double) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplars (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.Iterable + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Exemplars EMPTY + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Exemplars$Builder builder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar get(int) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar get(double, double) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar getLatest() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.util.Iterator iterator() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Exemplars of(java.util.Collection) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Exemplars of(io.prometheus.metrics.model.snapshots.Exemplar[]) + +++ NEW METHOD: PUBLIC(+) int size() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Exemplars$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplars build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplars$Builder exemplar(io.prometheus.metrics.model.snapshots.Exemplar) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplars$Builder exemplars(java.util.Collection) ++++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot + +++ NEW CONSTRUCTOR: PUBLIC(+) GaugeSnapshot(io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.util.List getDataPoints() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot$Builder dataPoint(io.prometheus.metrics.model.snapshots.GaugeSnapshot$GaugeDataPointSnapshot) ++++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot$GaugeDataPointSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.DataPointSnapshot + +++ NEW CONSTRUCTOR: PUBLIC(+) GaugeSnapshot$GaugeDataPointSnapshot(double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplar, long) + +++ NEW CONSTRUCTOR: PUBLIC(+) GaugeSnapshot$GaugeDataPointSnapshot(double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplar) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot$GaugeDataPointSnapshot$Builder builder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar getExemplar() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) double getValue() ++++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) int CLASSIC_HISTOGRAM + +++ NEW CONSTRUCTOR: PUBLIC(+) HistogramSnapshot(io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) + +++ NEW CONSTRUCTOR: PUBLIC(+) HistogramSnapshot(boolean, io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.util.List getDataPoints() + +++ NEW METHOD: PUBLIC(+) boolean isGaugeHistogram() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot$Builder dataPoint(io.prometheus.metrics.model.snapshots.HistogramSnapshot$HistogramDataPointSnapshot) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot$Builder gaugeHistogram(boolean) ++++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot$HistogramDataPointSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.DistributionDataPointSnapshot + +++ NEW CONSTRUCTOR: PUBLIC(+) HistogramSnapshot$HistogramDataPointSnapshot(int, long, double, io.prometheus.metrics.model.snapshots.NativeHistogramBuckets, io.prometheus.metrics.model.snapshots.NativeHistogramBuckets, double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplars, long) + +++ NEW CONSTRUCTOR: PUBLIC(+) HistogramSnapshot$HistogramDataPointSnapshot(io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets, int, long, double, io.prometheus.metrics.model.snapshots.NativeHistogramBuckets, io.prometheus.metrics.model.snapshots.NativeHistogramBuckets, double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplars, long) + +++ NEW CONSTRUCTOR: PUBLIC(+) HistogramSnapshot$HistogramDataPointSnapshot(io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets, int, long, double, io.prometheus.metrics.model.snapshots.NativeHistogramBuckets, io.prometheus.metrics.model.snapshots.NativeHistogramBuckets, double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplars, long, long) + +++ NEW CONSTRUCTOR: PUBLIC(+) HistogramSnapshot$HistogramDataPointSnapshot(io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets, double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplars, long) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot$HistogramDataPointSnapshot$Builder builder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets getClassicBuckets() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets getNativeBucketsForNegativeValues() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets getNativeBucketsForPositiveValues() + +++ NEW METHOD: PUBLIC(+) int getNativeSchema() + +++ NEW METHOD: PUBLIC(+) long getNativeZeroCount() + +++ NEW METHOD: PUBLIC(+) double getNativeZeroThreshold() + +++ NEW METHOD: PUBLIC(+) boolean hasClassicHistogramData() + +++ NEW METHOD: PUBLIC(+) boolean hasNativeHistogramData() ++++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.InfoSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot + +++ NEW CONSTRUCTOR: PUBLIC(+) InfoSnapshot(io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.InfoSnapshot$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.util.List getDataPoints() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.InfoSnapshot$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.InfoSnapshot build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.InfoSnapshot$Builder dataPoint(io.prometheus.metrics.model.snapshots.InfoSnapshot$InfoDataPointSnapshot) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.InfoSnapshot$Builder unit(io.prometheus.metrics.model.snapshots.Unit) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.InfoSnapshot$InfoDataPointSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.DataPointSnapshot + +++ NEW CONSTRUCTOR: PUBLIC(+) InfoSnapshot$InfoDataPointSnapshot(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW CONSTRUCTOR: PUBLIC(+) InfoSnapshot$InfoDataPointSnapshot(io.prometheus.metrics.model.snapshots.Labels, long) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.InfoSnapshot$InfoDataPointSnapshot$Builder builder() ++++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Label (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.Comparable + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) Label(java.lang.String, java.lang.String) + +++ NEW METHOD: PUBLIC(+) int compareTo(io.prometheus.metrics.model.snapshots.Label) + +++ NEW METHOD: PUBLIC(+) boolean equals(java.lang.Object) + +++ NEW METHOD: PUBLIC(+) java.lang.String getName() + +++ NEW METHOD: PUBLIC(+) java.lang.String getValue() + +++ NEW METHOD: PUBLIC(+) int hashCode() + +++ NEW METHOD: PUBLIC(+) java.lang.String toString() ++++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Labels (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.Comparable + +++ NEW INTERFACE: java.lang.Iterable + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Labels EMPTY + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels add(java.lang.String, java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Labels$Builder builder() + +++ NEW METHOD: PUBLIC(+) int compareTo(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) boolean contains(java.lang.String) + +++ NEW METHOD: PUBLIC(+) boolean equals(java.lang.Object) + +++ NEW METHOD: PUBLIC(+) java.lang.String get(java.lang.String) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String getName(int) + +++ NEW METHOD: PUBLIC(+) java.lang.String getPrometheusName(int) + +++ NEW METHOD: PUBLIC(+) java.lang.String getValue(int) + +++ NEW METHOD: PUBLIC(+) int hashCode() + +++ NEW METHOD: PUBLIC(+) boolean hasSameNames(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) boolean hasSameValues(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) boolean isEmpty() + +++ NEW METHOD: PUBLIC(+) java.util.Iterator iterator() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels merge(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels merge(java.lang.String[], java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Labels of(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Labels of(java.util.List, java.util.List) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Labels of(java.lang.String[], java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) int size() + +++ NEW METHOD: PUBLIC(+) java.util.stream.Stream stream() + +++ NEW METHOD: PUBLIC(+) java.lang.String toString() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Labels$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels$Builder label(java.lang.String, java.lang.String) ++++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$CounterBuilder counter(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$GaugeBuilder gauge(java.lang.String) + +++ NEW METHOD: PUBLIC(+) java.util.Set getLabelNames() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricMetadata getMetadata() + +++ NEW METHOD: PUBLIC(+) java.lang.String getPrometheusName() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getType() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$HistogramBuilder histogram(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$InfoBuilder info(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor of(io.prometheus.metrics.model.registry.MetricType, io.prometheus.metrics.model.snapshots.MetricMetadata) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor of(io.prometheus.metrics.model.registry.MetricType, io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder of(io.prometheus.metrics.model.registry.MetricType, java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$StateSetBuilder stateSet(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$SummaryBuilder summary(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$UnknownBuilder unknown(java.lang.String) ++++ NEW CLASS: PUBLIC(+) ABSTRACT(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + GENERIC TEMPLATES: +++ T:io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricFamilyDescriptor$Builder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder help(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder labelName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder labelNames(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder labelNames(java.util.Collection) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder name(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder unit(io.prometheus.metrics.model.snapshots.Unit) ++++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$CounterBuilder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricFamilyDescriptor$CounterBuilder() ++++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$GaugeBuilder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricFamilyDescriptor$GaugeBuilder() ++++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$HistogramBuilder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricFamilyDescriptor$HistogramBuilder() ++++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$InfoBuilder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricFamilyDescriptor$InfoBuilder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$InfoBuilder unit(io.prometheus.metrics.model.snapshots.Unit) ++++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$StateSetBuilder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricFamilyDescriptor$StateSetBuilder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$StateSetBuilder unit(io.prometheus.metrics.model.snapshots.Unit) ++++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$SummaryBuilder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricFamilyDescriptor$SummaryBuilder() ++++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$UnknownBuilder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricFamilyDescriptor$UnknownBuilder() ++++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricMetadata (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricMetadata(java.lang.String, java.lang.String, java.lang.String, io.prometheus.metrics.model.snapshots.Unit) + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricMetadata(java.lang.String) + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricMetadata(java.lang.String, java.lang.String, io.prometheus.metrics.model.snapshots.Unit) + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricMetadata(java.lang.String, java.lang.String, java.lang.String, java.lang.String, io.prometheus.metrics.model.snapshots.Unit) + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricMetadata(java.lang.String, java.lang.String) + +++ NEW METHOD: PUBLIC(+) java.lang.String getExpositionBaseName() + +++ NEW METHOD: PUBLIC(+) java.lang.String getExpositionBasePrometheusName() + +++ NEW METHOD: PUBLIC(+) java.lang.String getHelp() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String getName() + +++ NEW METHOD: PUBLIC(+) java.lang.String getOriginalName() + +++ NEW METHOD: PUBLIC(+) java.lang.String getPrometheusName() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Unit getUnit() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) boolean hasUnit() ++++ NEW CLASS: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.snapshots.MetricSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.util.List getDataPoints() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricMetadata getMetadata() ++++ NEW CLASS: PUBLIC(+) ABSTRACT(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + GENERIC TEMPLATES: +++ T:io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricSnapshot$Builder() + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.snapshots.MetricSnapshot build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder help(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder name(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder unit(io.prometheus.metrics.model.snapshots.Unit) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.Iterable + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricSnapshots(java.util.Collection) + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricSnapshots(io.prometheus.metrics.model.snapshots.MetricSnapshot[]) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots$Builder builder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot get(int) + +++ NEW METHOD: PUBLIC(+) java.util.Iterator iterator() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots of(io.prometheus.metrics.model.snapshots.MetricSnapshot[]) + +++ NEW METHOD: PUBLIC(+) int size() + +++ NEW METHOD: PUBLIC(+) java.util.stream.Stream stream() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots build() + +++ NEW METHOD: PUBLIC(+) boolean containsMetricName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots$Builder metricSnapshot(io.prometheus.metrics.model.snapshots.MetricSnapshot) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBucket (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) NativeHistogramBucket(int, long) + +++ NEW METHOD: PUBLIC(+) int getBucketIndex() + +++ NEW METHOD: PUBLIC(+) long getCount() ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.Iterable + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets EMPTY + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets$Builder builder() + +++ NEW METHOD: PUBLIC(+) int getBucketIndex(int) + +++ NEW METHOD: PUBLIC(+) long getCount(int) + +++ NEW METHOD: PUBLIC(+) java.util.Iterator iterator() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets of(int[], long[]) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets of(java.util.List, java.util.List) + +++ NEW METHOD: PUBLIC(+) int size() + +++ NEW METHOD: PUBLIC(+) java.util.stream.Stream stream() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets$Builder bucket(int, long) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets build() ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.PrometheusNaming (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusNaming() + +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String escapeName(java.lang.String, io.prometheus.metrics.config.EscapingScheme) + +++ NEW METHOD: PUBLIC(+) STATIC(+) boolean isValidLabelName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) boolean isValidLegacyLabelName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) boolean isValidLegacyMetricName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) boolean isValidMetricName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) boolean isValidUnitName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) boolean needsEscaping(java.lang.String, io.prometheus.metrics.config.EscapingScheme) + +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String normalizeMetricName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String normalizeMetricName(java.lang.String, io.prometheus.metrics.model.snapshots.Unit) + +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String prometheusName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String sanitizeLabelName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String sanitizeMetricName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String sanitizeMetricName(java.lang.String, io.prometheus.metrics.model.snapshots.Unit) + +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String sanitizeUnitName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String validateMetricName(java.lang.String) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String validateUnitName(java.lang.String) + +++ NEW ANNOTATION: javax.annotation.Nullable ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.Quantile (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) Quantile(double, double) + +++ NEW METHOD: PUBLIC(+) double getQuantile() + +++ NEW METHOD: PUBLIC(+) double getValue() ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.Quantiles (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.Iterable + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Quantiles EMPTY + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Quantiles$Builder builder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Quantile get(int) + +++ NEW METHOD: PUBLIC(+) java.util.Iterator iterator() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Quantiles of(java.util.List) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Quantiles of(io.prometheus.metrics.model.snapshots.Quantile[]) + +++ NEW METHOD: PUBLIC(+) int size() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Quantiles$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Quantiles build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Quantiles$Builder quantile(io.prometheus.metrics.model.snapshots.Quantile) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Quantiles$Builder quantile(double, double) ++++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot + +++ NEW CONSTRUCTOR: PUBLIC(+) StateSetSnapshot(io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.util.List getDataPoints() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot$Builder dataPoint(io.prometheus.metrics.model.snapshots.StateSetSnapshot$StateSetDataPointSnapshot) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot$Builder unit(io.prometheus.metrics.model.snapshots.Unit) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot$State (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) java.lang.String getName() + +++ NEW METHOD: PUBLIC(+) boolean isTrue() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot$StateSetDataPointSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.Iterable + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.DataPointSnapshot + +++ NEW CONSTRUCTOR: PUBLIC(+) StateSetSnapshot$StateSetDataPointSnapshot(java.lang.String[], boolean[], io.prometheus.metrics.model.snapshots.Labels, long) + +++ NEW CONSTRUCTOR: PUBLIC(+) StateSetSnapshot$StateSetDataPointSnapshot(java.lang.String[], boolean[], io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot$StateSetDataPointSnapshot$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.lang.String getName(int) + +++ NEW METHOD: PUBLIC(+) boolean isTrue(int) + +++ NEW METHOD: PUBLIC(+) java.util.Iterator iterator() + +++ NEW METHOD: PUBLIC(+) int size() + +++ NEW METHOD: PUBLIC(+) java.util.stream.Stream stream() ++++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.SummarySnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot + +++ NEW CONSTRUCTOR: PUBLIC(+) SummarySnapshot(io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.SummarySnapshot$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.util.List getDataPoints() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.SummarySnapshot$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.SummarySnapshot build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.SummarySnapshot$Builder dataPoint(io.prometheus.metrics.model.snapshots.SummarySnapshot$SummaryDataPointSnapshot) ++++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.SummarySnapshot$SummaryDataPointSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.DistributionDataPointSnapshot + +++ NEW CONSTRUCTOR: PUBLIC(+) SummarySnapshot$SummaryDataPointSnapshot(long, double, io.prometheus.metrics.model.snapshots.Quantiles, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplars, long, long) + +++ NEW CONSTRUCTOR: PUBLIC(+) SummarySnapshot$SummaryDataPointSnapshot(long, double, io.prometheus.metrics.model.snapshots.Quantiles, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplars, long) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.SummarySnapshot$SummaryDataPointSnapshot$Builder builder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Quantiles getQuantiles() ++++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit BYTES + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit GRAMS + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit METERS + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit VOLTS + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit SECONDS + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit RATIO + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit CELSIUS + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit JOULES + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit AMPERES + +++ NEW CONSTRUCTOR: PUBLIC(+) Unit(java.lang.String) + +++ NEW METHOD: PUBLIC(+) boolean equals(java.lang.Object) + +++ NEW METHOD: PUBLIC(+) int hashCode() + +++ NEW METHOD: PUBLIC(+) STATIC(+) double kiloBytesToBytes(double) + +++ NEW METHOD: PUBLIC(+) STATIC(+) double millisToSeconds(long) + +++ NEW METHOD: PUBLIC(+) STATIC(+) double nanosToSeconds(long) + +++ NEW METHOD: PUBLIC(+) STATIC(+) double secondsToMillis(double) + +++ NEW METHOD: PUBLIC(+) java.lang.String toString() ++++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.UnknownSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot + +++ NEW CONSTRUCTOR: PUBLIC(+) UnknownSnapshot(io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.UnknownSnapshot$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.util.List getDataPoints() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.UnknownSnapshot$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.UnknownSnapshot build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.UnknownSnapshot$Builder dataPoint(io.prometheus.metrics.model.snapshots.UnknownSnapshot$UnknownDataPointSnapshot) ++++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.UnknownSnapshot$UnknownDataPointSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.DataPointSnapshot + +++ NEW CONSTRUCTOR: PUBLIC(+) UnknownSnapshot$UnknownDataPointSnapshot(double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplar, long) + +++ NEW CONSTRUCTOR: PUBLIC(+) UnknownSnapshot$UnknownDataPointSnapshot(double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplar) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.UnknownSnapshot$UnknownDataPointSnapshot$Builder builder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar getExemplar() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) double getValue() + diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-simpleclient-bridge.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-simpleclient-bridge.txt new file mode 100644 index 000000000..bb1fb6594 --- /dev/null +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-simpleclient-bridge.txt @@ -0,0 +1,16 @@ +Comparing source compatibility of prometheus-metrics-simpleclient-bridge-1.6.2-SNAPSHOT.jar against prometheus-metrics-simpleclient-bridge-1.6.1.jar ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.simpleclient.bridge.SimpleclientCollector (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.MultiCollector + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.simpleclient.bridge.SimpleclientCollector$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.simpleclient.bridge.SimpleclientCollector$Builder builder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots collect() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.simpleclient.bridge.SimpleclientCollector$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.simpleclient.bridge.SimpleclientCollector build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.simpleclient.bridge.SimpleclientCollector$Builder collectorRegistry(io.prometheus.client.CollectorRegistry) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.simpleclient.bridge.SimpleclientCollector register() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.simpleclient.bridge.SimpleclientCollector register(io.prometheus.metrics.model.registry.PrometheusRegistry) + diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-common.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-common.txt new file mode 100644 index 000000000..6782f73f2 --- /dev/null +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-common.txt @@ -0,0 +1,13 @@ +Comparing source compatibility of prometheus-metrics-tracer-common-1.6.2-SNAPSHOT.jar against prometheus-metrics-tracer-common-1.6.1.jar ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.tracer.common.SpanContext (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String EXEMPLAR_ATTRIBUTE_NAME + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String EXEMPLAR_ATTRIBUTE_VALUE + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String getCurrentSpanId() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String getCurrentTraceId() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) boolean isCurrentSpanSampled() + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void markCurrentSpanAsExemplar() + diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-initializer.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-initializer.txt new file mode 100644 index 000000000..2d9b9b09d --- /dev/null +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-initializer.txt @@ -0,0 +1,2 @@ +Comparing source compatibility of prometheus-metrics-tracer-initializer-1.6.2-SNAPSHOT.jar against prometheus-metrics-tracer-initializer-1.6.1.jar +No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel-agent.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel-agent.txt new file mode 100644 index 000000000..c44f14c31 --- /dev/null +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel-agent.txt @@ -0,0 +1,2 @@ +Comparing source compatibility of prometheus-metrics-tracer-otel-agent-1.6.2-SNAPSHOT.jar against prometheus-metrics-tracer-otel-agent-1.6.1.jar +No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel.txt new file mode 100644 index 000000000..b6419eebe --- /dev/null +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel.txt @@ -0,0 +1,2 @@ +Comparing source compatibility of prometheus-metrics-tracer-otel-1.6.2-SNAPSHOT.jar against prometheus-metrics-tracer-otel-1.6.1.jar +No changes. diff --git a/mise.toml b/mise.toml index 36482ae7b..b36cd3a77 100644 --- a/mise.toml +++ b/mise.toml @@ -64,16 +64,19 @@ description = "build all modules without tests" run = "./mvnw install -DskipTests -Dcoverage.skip=true" [tasks."api-diff"] -description = "Compare published API against the configured japicmp baseline" +description = "Compare published API against the japicmp baseline and refresh docs/apidiffs" run = """ -BASELINE_VERSION="${API_DIFF_BASELINE_VERSION:-1.5.1}" +# Baseline version comes from the property in pom.xml. +# Set API_DIFF_BASELINE_VERSION only to override it ad hoc (e.g. workflow_dispatch). +BASELINE_OVERRIDE="${API_DIFF_BASELINE_VERSION:+-Dapi.diff.baseline.version=${API_DIFF_BASELINE_VERSION}}" ./mvnw -B verify \ -P 'api-diff,!examples-and-integration-tests' \ - -Dapi.diff.baseline.version="${BASELINE_VERSION}" \ + ${BASELINE_OVERRIDE} \ -DskipTests \ -Dcoverage.skip=true \ -Dcheckstyle.skip=true \ -Dwarnings=-nowarn +./.github/scripts/sync-api-diffs.sh """ [tasks."lint"] diff --git a/pom.xml b/pom.xml index 08932e1f9..981f588b9 100644 --- a/pom.xml +++ b/pom.xml @@ -29,7 +29,8 @@ 2.28.1-alpha 8 25 - 1.5.1 + + 1.6.1 0.70 false false From fdf80690623a9e738db85cef297a248ec8e8003c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Jun 2026 17:19:12 +0000 Subject: [PATCH 63/74] chore(deps): update grafana monorepo to v13.0.2 (#2176) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Update | Change | |---|---|---| | [grafana/grafana](https://redirect.github.com/grafana/grafana) | patch | `13.0.1` → `13.0.2` | --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- examples/example-custom-buckets/docker-compose.yaml | 2 +- examples/example-exemplars-tail-sampling/docker-compose.yaml | 2 +- examples/example-native-histogram/docker-compose.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/example-custom-buckets/docker-compose.yaml b/examples/example-custom-buckets/docker-compose.yaml index 2ed1e3d41..b0c030f8a 100644 --- a/examples/example-custom-buckets/docker-compose.yaml +++ b/examples/example-custom-buckets/docker-compose.yaml @@ -18,7 +18,7 @@ services: - --enable-feature=native-histograms - --config.file=/prometheus.yml grafana: - image: grafana/grafana:13.0.1@sha256:0f86bada30d65ef9d0183b90c1e2682ac92d53d95da8bed322b984ea78a4a73a + image: grafana/grafana:13.0.2@sha256:5dad0df181cb644a14e13617b913b261a54f7d4fd4510721dba420929f35bea2 network_mode: host volumes: - ./docker-compose/grafana-datasources.yaml:/etc/grafana/provisioning/datasources/grafana-datasources.yaml diff --git a/examples/example-exemplars-tail-sampling/docker-compose.yaml b/examples/example-exemplars-tail-sampling/docker-compose.yaml index 43d71f667..7fb09e1ee 100644 --- a/examples/example-exemplars-tail-sampling/docker-compose.yaml +++ b/examples/example-exemplars-tail-sampling/docker-compose.yaml @@ -59,7 +59,7 @@ services: command: - --config.file=/config.yaml grafana: - image: grafana/grafana:13.0.1@sha256:0f86bada30d65ef9d0183b90c1e2682ac92d53d95da8bed322b984ea78a4a73a + image: grafana/grafana:13.0.2@sha256:5dad0df181cb644a14e13617b913b261a54f7d4fd4510721dba420929f35bea2 network_mode: host ports: - "3000:3000" diff --git a/examples/example-native-histogram/docker-compose.yaml b/examples/example-native-histogram/docker-compose.yaml index a280d013d..af49a22c7 100644 --- a/examples/example-native-histogram/docker-compose.yaml +++ b/examples/example-native-histogram/docker-compose.yaml @@ -18,7 +18,7 @@ services: - --enable-feature=native-histograms - --config.file=/prometheus.yml grafana: - image: grafana/grafana:13.0.1@sha256:0f86bada30d65ef9d0183b90c1e2682ac92d53d95da8bed322b984ea78a4a73a + image: grafana/grafana:13.0.2@sha256:5dad0df181cb644a14e13617b913b261a54f7d4fd4510721dba420929f35bea2 network_mode: host volumes: - ./docker-compose/grafana-datasources.yaml:/etc/grafana/provisioning/datasources/grafana-datasources.yaml From a5a58b84be67c916d291ef3fce56123ccbdd6f41 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Jun 2026 17:20:03 +0000 Subject: [PATCH 64/74] chore(deps): update actions/checkout action to v6.0.3 (#2175) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [actions/checkout](https://redirect.github.com/actions/checkout) | action | patch | `v6.0.2` → `v6.0.3` | --- ### Release Notes
actions/checkout (actions/checkout) ### [`v6.0.3`](https://redirect.github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v603) [Compare Source](https://redirect.github.com/actions/checkout/compare/v6.0.2...v6.0.3) - Fix checkout init for SHA-256 repositories by [@​yaananth](https://redirect.github.com/yaananth) in [#​2439](https://redirect.github.com/actions/checkout/pull/2439) - fix: expand merge commit SHA regex and add SHA-256 test cases by [@​yaananth](https://redirect.github.com/yaananth) in [#​2414](https://redirect.github.com/actions/checkout/pull/2414)
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- .github/workflows/java-version-matrix-tests.yml | 2 +- .github/workflows/lint.yml | 2 +- .github/workflows/nightly-benchmarks.yml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/java-version-matrix-tests.yml b/.github/workflows/java-version-matrix-tests.yml index 7c2edf43a..ad8526c66 100644 --- a/.github/workflows/java-version-matrix-tests.yml +++ b/.github/workflows/java-version-matrix-tests.yml @@ -26,7 +26,7 @@ jobs: java-version: [8, 11, 17, 21, 25] steps: - name: Check out - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: persist-credentials: false diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 0e0161674..bcac21fc3 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -15,7 +15,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: persist-credentials: false fetch-depth: 0 # needed for git diff --merge-base in lint:links diff --git a/.github/workflows/nightly-benchmarks.yml b/.github/workflows/nightly-benchmarks.yml index a5d877024..134209cc5 100644 --- a/.github/workflows/nightly-benchmarks.yml +++ b/.github/workflows/nightly-benchmarks.yml @@ -28,7 +28,7 @@ jobs: contents: read # checkout only steps: - name: Checkout main branch - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: persist-credentials: false fetch-depth: 0 @@ -75,7 +75,7 @@ jobs: contents: write # push generated results to the benchmarks branch steps: - name: Checkout - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: # zizmor: ignore[artipacked] -- needs credentials to push to benchmarks branch persist-credentials: true From bde8f6798f3fc1255f111477aacd6efcc87ba38c Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Wed, 3 Jun 2026 12:30:31 +0200 Subject: [PATCH 65/74] test: run JMX Exporter quick test configuration (#2178) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Follow-up to #2167 ([review comment](https://github.com/prometheus/client_java/pull/2167#issuecomment-4593772792)): switches the JMX Exporter compatibility job to the **quick test** configuration and fixes the gaps that surfaced. **Changes** - **Quick test config** (`jmx_exporter_compat.py`): build the full reactor (`clean install`) so `integration_test_suite` actually runs, pinned to a single Java + Prometheus distribution. The pins are read from the checked-out jmx_exporter's `run-quick-test.sh` so they stay aligned with upstream; `-Dparamixel.parallelism` set to CPU count. - **Test `main`, not the release**: the integration suite only compiles against current `client_java` when jmx_exporter imports the stable `expositionformats.generated.Metrics` class (#1873). Release 1.5.0 imports the version-stamped `com_google_protobuf_4_32_0` package directly, which breaks on protobuf bumps (now 4.35.0); `main` uses the stable class. Tracked by #2179 — switch the ref back to a pinned release once one ships the fix. - **Renovate guard** (`renovate.json5`): block major JDK bumps for the jmx-exporter and micrometer compat env files (they pin an LTS JDK the upstream release supports). This supersedes #2173-style bumps. **Local validation**: `mise run lint:fix`; image-pin regex verified against `prometheus/jmx_exporter@main`. Full integration run is validated by CI (needs Docker + JDK 21). --------- Signed-off-by: Gregor Zeitlinger Signed-off-by: Jay DeLuca --- .github/renovate.json5 | 7 ++++ .mise/lib/jmx_exporter_compat.py | 67 ++++++++++++++++++++++---------- mise.toml | 5 +++ 3 files changed, 59 insertions(+), 20 deletions(-) diff --git a/.github/renovate.json5 b/.github/renovate.json5 index ed470a5ca..db0127bf5 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -23,6 +23,13 @@ groupName: "java graalvm", additionalBranchPrefix: "graalvm-", }, + { + description: "Compat tests pin an LTS JDK the upstream release supports; block major JDK bumps that would break those builds", + matchFileNames: [".mise/envs/jmx-exporter/mise.toml", ".mise/envs/micrometer/mise.toml"], + matchDepNames: ["java"], + matchUpdateTypes: ["major"], + enabled: false, + }, { matchPackageNames: ["io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha"], ignoreUnstable: false, diff --git a/.mise/lib/jmx_exporter_compat.py b/.mise/lib/jmx_exporter_compat.py index d60b7807b..b55080b5e 100755 --- a/.mise/lib/jmx_exporter_compat.py +++ b/.mise/lib/jmx_exporter_compat.py @@ -3,6 +3,7 @@ from __future__ import annotations import os +import re import subprocess import xml.etree.ElementTree as ET from pathlib import Path @@ -16,20 +17,26 @@ "JMX_EXPORTER_REPOSITORY", "prometheus/jmx_exporter" ) DEFAULT_JMX_EXPORTER_REMOTE = os.environ.get("JMX_EXPORTER_REMOTE", "origin") -DEFAULT_JMX_EXPORTER_REF = ( - os.environ.get("JMX_EXPORTER_REF") - or os.environ.get("DEFAULT_JMX_EXPORTER_VERSION") - or "main" -) -DEFAULT_MAVEN_MODULES = os.environ.get( - "JMX_EXPORTER_MAVEN_MODULES", - "jmx_prometheus_common,jmx_prometheus_javaagent,jmx_prometheus_standalone", -) +# Test jmx_exporter main rather than the latest release: the integration_test_suite +# only compiles against client_java once a release adopts the stable Metrics class +# (see the tracking issue referenced in mise.toml's DEFAULT_JMX_EXPORTER_VERSION). +DEFAULT_JMX_EXPORTER_REF = os.environ.get("JMX_EXPORTER_REF") or "main" DEFAULT_PROM_VERSION = os.environ.get("PROM_VERSION") +# Quick test configuration: the integration_test_suite runs one matrix cell +# (single Java + Prometheus distribution) instead of the full smoke-test matrix. +# The distributions are read from the checked-out jmx_exporter's run-quick-test.sh +# so they stay aligned with upstream rather than drifting from a hardcoded copy. +QUICK_TEST_SCRIPT = "run-quick-test.sh" +QUICK_TEST_IMAGE_VARS = ("JAVA_DOCKER_IMAGES", "PROMETHEUS_DOCKER_IMAGES") -def run_cmd(cmd: list[str], cwd: Optional[Path] = None) -> None: - subprocess.run(cmd, cwd=cwd, check=True) + +def run_cmd( + cmd: list[str], + cwd: Optional[Path] = None, + env: Optional[dict[str, str]] = None, +) -> None: + subprocess.run(cmd, cwd=cwd, check=True, env=env) def jmx_exporter_repository_url(repository: str) -> str: @@ -111,24 +118,44 @@ def install_local_artifacts(root_dir: Path = Path.cwd()) -> None: ) +def quick_test_images( + jmx_exporter_dir: Path = DEFAULT_JMX_EXPORTER_DIR, +) -> dict[str, str]: + """Read the quick test docker image pins from the checked-out jmx_exporter's + run-quick-test.sh. An explicit env var overrides the script value.""" + script_path = jmx_exporter_dir / QUICK_TEST_SCRIPT + script = script_path.read_text() + images: dict[str, str] = {} + for var in QUICK_TEST_IMAGE_VARS: + override = os.environ.get(var) + if override: + images[var] = override + continue + match = re.search(rf'^\s*export\s+{var}="([^"]+)"', script, re.MULTILINE) + if not match: + raise RuntimeError(f"could not find {var} in {script_path}") + images[var] = match.group(1) + return images + + def run_maven_test( - test_selector: Optional[str] = None, jmx_exporter_dir: Path = DEFAULT_JMX_EXPORTER_DIR, - maven_modules: str = DEFAULT_MAVEN_MODULES, prom_version: Optional[str] = None, ) -> None: if prom_version is None: prom_version = get_prom_version() + # Build the full reactor (including the integration_test_suite) the same way + # run-quick-test.sh does, but against our locally installed io.prometheus + # artifacts. The pinned distribution env vars keep this to the quick (single + # cell) matrix rather than the full smoke-test matrix. + env = {**os.environ, **quick_test_images(jmx_exporter_dir)} cmd = [ "./mvnw", "-B", - "-pl", - maven_modules, - "-am", + "clean", + "install", f"-Dprometheus.metrics.version={prom_version}", + f"-Dparamixel.parallelism={os.cpu_count() or 1}", "-Djacoco.skip=true", ] - if test_selector: - cmd.append(f"-Dtest={test_selector}") - cmd.append("test") - run_cmd(cmd, cwd=jmx_exporter_dir) + run_cmd(cmd, cwd=jmx_exporter_dir, env=env) diff --git a/mise.toml b/mise.toml index b36cd3a77..6af4404cf 100644 --- a/mise.toml +++ b/mise.toml @@ -27,6 +27,11 @@ zizmor = "1.25.2" FLINT_CONFIG_DIR = ".github/config" # renovate: datasource=github-releases depName=grafana/docker-otel-lgtm LGTM_VERSION = "0.28.0" +# Latest JMX Exporter release. The compatibility job currently tests `main` +# instead (see #2179): release 1.5.0 imports client_java's version-stamped +# protobuf package directly, which breaks when we bump protobuf; main uses the +# stable Metrics class. Kept renovate-tracked so the target is current when we +# switch the ref back to this release. # renovate: datasource=github-tags depName=prometheus/jmx_exporter versioning=semver-coerced DEFAULT_JMX_EXPORTER_VERSION = "1.5.0" # renovate: datasource=github-tags depName=micrometer-metrics/micrometer versioning=semver-coerced From 89911ae930677f8f347bb602edd7f669e941915f Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Wed, 3 Jun 2026 17:42:53 +0200 Subject: [PATCH 66/74] test: validate Micrometer typed-descriptor compatibility (#2123) Draft validation PR for the downstream opt-in path. Depends on #2114 for the typed descriptor implementation. This branch is stacked on the #2114 head, so once #2114 lands this PR should shrink to only the Micrometer opt-in compatibility tooling. This validates Micrometer using the new descriptor API, defaulting to: - `MICROMETER_REPOSITORY=zeitlinger/micrometer` - `MICROMETER_REF=feat/prometheus-client-opt-in` That Micrometer branch provides `MetricFamilyDescriptor` metadata from the Prometheus registry without invoking scrape/sample callbacks during registration. Local validation: - `mise run lint` - `MICROMETER_DIR=/tmp/micrometer-compat-optin mise run micrometer:test` --------- Signed-off-by: Gregor Zeitlinger Signed-off-by: Jay DeLuca --- .github/renovate-tracked-deps.json | 4 +- .github/renovate.json5 | 16 +++++++ .../workflows/micrometer-compatibility.yml | 45 ++++++++++++++----- 3 files changed, 52 insertions(+), 13 deletions(-) diff --git a/.github/renovate-tracked-deps.json b/.github/renovate-tracked-deps.json index 4f66ff9aa..eebbdf0d6 100644 --- a/.github/renovate-tracked-deps.json +++ b/.github/renovate-tracked-deps.json @@ -58,7 +58,9 @@ }, ".github/workflows/micrometer-compatibility.yml": { "regex": [ - "mise" + "micrometer-metrics/micrometer", + "mise", + "zeitlinger/micrometer" ] }, ".github/workflows/native-tests.yml": { diff --git a/.github/renovate.json5 b/.github/renovate.json5 index db0127bf5..b959e853e 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -77,5 +77,21 @@ "\\s*(?[^<]+)" ] }, + { + customType: "regex", + description: "track the latest Micrometer release for upstream compatibility", + managerFilePatterns: ["/^\\.github\\/workflows\\/micrometer-compatibility\\.yml$/"], + matchStrings: [ + "# renovate: datasource=(?\\S+) depName=(?\\S+) packageName=(?\\S+)\\n\\s*ref:\\s*(?v[0-9][^\\s]*)", + ], + }, + { + customType: "regex", + description: "pin the Micrometer typed-descriptor compatibility ref", + managerFilePatterns: ["/^\\.github\\/workflows\\/micrometer-compatibility\\.yml$/"], + matchStrings: [ + "# renovate: datasource=(?\\S+) depName=(?\\S+) packageName=(?\\S+) currentValue=(?\\S+)\\n\\s*ref:\\s*(?[a-f0-9]{40})", + ], + }, ], } diff --git a/.github/workflows/micrometer-compatibility.yml b/.github/workflows/micrometer-compatibility.yml index 9ad95d807..4811e4a10 100644 --- a/.github/workflows/micrometer-compatibility.yml +++ b/.github/workflows/micrometer-compatibility.yml @@ -4,22 +4,30 @@ name: Micrometer Compatibility on: pull_request: workflow_dispatch: - inputs: - micrometer-repository: - description: Micrometer repository to test, in owner/name form - required: false - default: micrometer-metrics/micrometer - micrometer-ref: - description: Micrometer branch, tag, or commit to test - required: true permissions: {} jobs: - micrometer-compatibility: + compat-test: + name: ${{ matrix.name }} runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + include: + - name: upstream + repository: micrometer-metrics/micrometer + # renovate: datasource=github-releases depName=micrometer-metrics/micrometer packageName=micrometer-metrics/micrometer + ref: v1.16.5 + - name: typed-descriptor + # TODO: remove this temporary opt-in leg once Micrometer switches the + # Prometheus client integration to typed descriptors by default. + # Follow-up: https://github.com/prometheus/client_java/issues/2182 + repository: zeitlinger/micrometer + # renovate: datasource=git-refs depName=zeitlinger/micrometer packageName=https://github.com/zeitlinger/micrometer currentValue=feat/prometheus-client-opt-in + ref: 1af1b3185058941eea57dc467bfe0df5a4786fe4 steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: persist-credentials: false - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 @@ -35,6 +43,19 @@ jobs: - name: Run Micrometer compatibility tests working-directory: .mise/envs/micrometer env: - MICROMETER_REPOSITORY: ${{ inputs.micrometer-repository || 'micrometer-metrics/micrometer' }} - MICROMETER_REF: ${{ inputs.micrometer-ref }} + MICROMETER_REPOSITORY: ${{ matrix.repository }} + MICROMETER_REF: ${{ matrix.ref }} run: mise compat-test + + micrometer-compatibility: + name: micrometer-compatibility + runs-on: ubuntu-24.04 + needs: compat-test + if: always() + steps: + - name: Aggregate matrix results + run: | + if [[ "${{ needs.compat-test.result }}" != "success" ]]; then + echo "compat-test matrix failed: ${{ needs.compat-test.result }}" + exit 1 + fi From d51e6542f12fd98a565ce0098ac1d8f1c599655a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 3 Jun 2026 18:14:10 +0200 Subject: [PATCH 67/74] chore(main): release 1.7.0 (#2092) :robot: I have created a release *beep* *boop* --- ## [1.7.0](https://github.com/prometheus/client_java/compare/v1.6.1...v1.7.0) (2026-06-03) ### Features * Add StableApi marker and API diff check ([#2168](https://github.com/prometheus/client_java/issues/2168)) ([768fd3a](https://github.com/prometheus/client_java/commit/768fd3a7aab5f11f3558a35c0d6257b5a217a078)) * add typed metric family descriptors ([#2114](https://github.com/prometheus/client_java/issues/2114)) ([9c3b097](https://github.com/prometheus/client_java/commit/9c3b097f6842ffc08fb3a2ed00217c73a6c2b191)) * track api-diff baseline via Renovate and store diffs in docs/apidiffs ([#2174](https://github.com/prometheus/client_java/issues/2174)) ([3adb890](https://github.com/prometheus/client_java/commit/3adb89078df4bf3d7739886612d4cf051176a6f3)) ### Bug Fixes * **deps:** update dependency com.github.ben-manes.caffeine:caffeine to v3.2.4 ([#2088](https://github.com/prometheus/client_java/issues/2088)) ([144eb61](https://github.com/prometheus/client_java/commit/144eb61030d412afe83631b8f341d2cb1595ab1c)) * **deps:** update dependency io.dropwizard.metrics:metrics-core to v4.2.39 ([#2139](https://github.com/prometheus/client_java/issues/2139)) ([5817d13](https://github.com/prometheus/client_java/commit/5817d1395dc348b6634ea169264fd13f4ad56e82)) * **deps:** update dependency io.dropwizard.metrics5:metrics-core to v5.0.7 ([#2140](https://github.com/prometheus/client_java/issues/2140)) ([261c451](https://github.com/prometheus/client_java/commit/261c4510eefe156ad688e019b9239cfcfd39bd2b)) * **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.28.0-alpha ([#2126](https://github.com/prometheus/client_java/issues/2126)) ([b62b5d0](https://github.com/prometheus/client_java/commit/b62b5d0ab4b8d3a1335286bd3d36e8c9ac5aa269)) * **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.28.0-alpha ([#2127](https://github.com/prometheus/client_java/issues/2127)) ([e11ce3d](https://github.com/prometheus/client_java/commit/e11ce3de19daf5acd2f73ffb90c96689c172f3c3)) * **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.28.1-alpha ([#2132](https://github.com/prometheus/client_java/issues/2132)) ([b09be38](https://github.com/prometheus/client_java/commit/b09be3882f0ad95ff299db41d706a2e52faa7525)) * **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.28.1-alpha ([#2133](https://github.com/prometheus/client_java/issues/2133)) ([a241c16](https://github.com/prometheus/client_java/commit/a241c165927d3cbb91b97eedd52de9c9eff595d0)) * **deps:** update dependency org.apache.tomcat.embed:tomcat-embed-core to v11.0.22 ([#2099](https://github.com/prometheus/client_java/issues/2099)) ([22125c5](https://github.com/prometheus/client_java/commit/22125c5f531467030793fc48cb2308ff14bbcaa7)) * **deps:** update jetty monorepo to v12.1.10 ([#2169](https://github.com/prometheus/client_java/issues/2169)) ([ddd3991](https://github.com/prometheus/client_java/commit/ddd3991096d409a3e58ae2003ce13457a51b8876)) * **deps:** update jetty monorepo to v12.1.9 ([#2102](https://github.com/prometheus/client_java/issues/2102)) ([04bee70](https://github.com/prometheus/client_java/commit/04bee70efff866f8c4966643926905c28a4eae3a)) * **deps:** update protobuf ([#2129](https://github.com/prometheus/client_java/issues/2129)) ([320538a](https://github.com/prometheus/client_java/commit/320538a09efad128c6d80bcc3d6eecca394603db)) * Reduce allocations for classic histogram buckets ([#2081](https://github.com/prometheus/client_java/issues/2081)) ([edd160a](https://github.com/prometheus/client_java/commit/edd160ab93254c80250d7cf58a1dcb399fef67a1)) * restore legacy suffix compatibility ([#2100](https://github.com/prometheus/client_java/issues/2100)) ([b2ae70f](https://github.com/prometheus/client_java/commit/b2ae70ffd4ac0830fb567319beae9d1c3ad8bc2f)) * restore reserved suffix stripping in `PrometheusNaming.sanitizeMetricName()` ([#2124](https://github.com/prometheus/client_java/issues/2124)) ([2d0f508](https://github.com/prometheus/client_java/commit/2d0f508efd2f5e009b6f09f6a9ccb451cf9f3b6f)) ### Performance Improvements * Refactored sorting to use optimized sort algorithms ([#2161](https://github.com/prometheus/client_java/issues/2161)) ([25b94fc](https://github.com/prometheus/client_java/commit/25b94fc16273659892af0132cedb71f57597adf7)) ### Documentation * clarify downstream adapter validation requirements ([#2101](https://github.com/prometheus/client_java/issues/2101)) ([ef8c75c](https://github.com/prometheus/client_java/commit/ef8c75cf352bddd0d3a2052c3f1b0c8b6103a6f4)) * Document OM2 ([#2059](https://github.com/prometheus/client_java/issues/2059)) ([45d753c](https://github.com/prometheus/client_java/commit/45d753c418f005fbb17bf7caca3dc94655717687)) * document PushGateway shading workaround ([#2106](https://github.com/prometheus/client_java/issues/2106)) ([8ca0eb8](https://github.com/prometheus/client_java/commit/8ca0eb8d79b800ad8d7a08f10762ed631f4f2a70)) --- > [!IMPORTANT] > Close and reopen this PR to trigger CI checks. Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Gregor Zeitlinger Signed-off-by: Jay DeLuca --- .github/config/.release-please-manifest.json | 2 +- CHANGELOG.md | 39 +++++++++++++++++++ benchmarks/pom.xml | 2 +- examples/example-custom-buckets/pom.xml | 2 +- .../example-greeting-service/pom.xml | 2 +- .../example-hello-world-app/pom.xml | 2 +- .../example-exemplars-tail-sampling/pom.xml | 2 +- examples/example-exporter-httpserver/pom.xml | 2 +- .../example-exporter-multi-target/pom.xml | 2 +- .../example-exporter-opentelemetry/pom.xml | 2 +- .../example-exporter-servlet-tomcat/pom.xml | 2 +- examples/example-native-histogram/pom.xml | 2 +- .../example-otel-jvm-runtime-metrics/pom.xml | 2 +- .../example-prometheus-properties/pom.xml | 2 +- examples/example-simpleclient-bridge/pom.xml | 2 +- examples/pom.xml | 2 +- integration-tests/it-common/pom.xml | 2 +- .../pom.xml | 2 +- .../it-exporter-httpserver-sample/pom.xml | 2 +- .../it-exporter-no-protobuf/pom.xml | 2 +- .../it-exporter-servlet-jetty-sample/pom.xml | 2 +- .../it-exporter-servlet-tomcat-sample/pom.xml | 2 +- .../it-exporter/it-exporter-test/pom.xml | 2 +- .../it-exporter/it-no-protobuf-test/pom.xml | 2 +- integration-tests/it-exporter/pom.xml | 2 +- integration-tests/it-pushgateway/pom.xml | 2 +- .../it-spring-boot-smoke-test/pom.xml | 2 +- integration-tests/pom.xml | 2 +- pom.xml | 2 +- prometheus-metrics-annotations/pom.xml | 2 +- prometheus-metrics-bom/pom.xml | 2 +- prometheus-metrics-config/pom.xml | 2 +- prometheus-metrics-core/pom.xml | 2 +- prometheus-metrics-exporter-common/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- prometheus-metrics-exposition-formats/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- prometheus-metrics-model/pom.xml | 2 +- prometheus-metrics-otel-support/pom.xml | 2 +- prometheus-metrics-parent/pom.xml | 2 +- .../pom.xml | 2 +- prometheus-metrics-tracer/pom.xml | 2 +- .../prometheus-metrics-tracer-common/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../prometheus-metrics-tracer-otel/pom.xml | 2 +- .../integration_tests/it_common/pom.xml | 2 +- .../it_exemplars_otel_agent/pom.xml | 2 +- .../it_exemplars_otel_sdk/pom.xml | 2 +- .../it_java_versions/pom.xml | 2 +- .../integration_tests/it_log4j2/pom.xml | 2 +- .../integration_tests/it_pushgateway/pom.xml | 2 +- .../pom.xml | 2 +- .../integration_tests/pom.xml | 2 +- .../simpleclient_graphite_bridge/pom.xml | 2 +- .../simpleclient_hibernate/pom.xml | 2 +- .../simpleclient_httpserver/pom.xml | 2 +- .../simpleclient_jetty/pom.xml | 2 +- .../simpleclient_jetty_jdk8/pom.xml | 2 +- .../simpleclient_log4j/pom.xml | 2 +- .../simpleclient_log4j2/pom.xml | 2 +- .../simpleclient_logback/pom.xml | 2 +- .../simpleclient_servlet/pom.xml | 2 +- .../simpleclient_servlet_common/pom.xml | 2 +- .../simpleclient_servlet_jakarta/pom.xml | 2 +- .../simpleclient_spring_web/pom.xml | 2 +- .../simpleclient_vertx/pom.xml | 2 +- .../simpleclient_vertx4/pom.xml | 2 +- 80 files changed, 118 insertions(+), 79 deletions(-) diff --git a/.github/config/.release-please-manifest.json b/.github/config/.release-please-manifest.json index 093be7e34..64e0684f3 100644 --- a/.github/config/.release-please-manifest.json +++ b/.github/config/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "1.6.1" + ".": "1.7.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 7daa57cd4..68cdfb6e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,44 @@ # Changelog +## [1.7.0](https://github.com/prometheus/client_java/compare/v1.6.1...v1.7.0) (2026-06-03) + + +### Features + +* Add StableApi marker and API diff check ([#2168](https://github.com/prometheus/client_java/issues/2168)) ([768fd3a](https://github.com/prometheus/client_java/commit/768fd3a7aab5f11f3558a35c0d6257b5a217a078)) +* add typed metric family descriptors ([#2114](https://github.com/prometheus/client_java/issues/2114)) ([9c3b097](https://github.com/prometheus/client_java/commit/9c3b097f6842ffc08fb3a2ed00217c73a6c2b191)) +* track api-diff baseline via Renovate and store diffs in docs/apidiffs ([#2174](https://github.com/prometheus/client_java/issues/2174)) ([3adb890](https://github.com/prometheus/client_java/commit/3adb89078df4bf3d7739886612d4cf051176a6f3)) + + +### Bug Fixes + +* **deps:** update dependency com.github.ben-manes.caffeine:caffeine to v3.2.4 ([#2088](https://github.com/prometheus/client_java/issues/2088)) ([144eb61](https://github.com/prometheus/client_java/commit/144eb61030d412afe83631b8f341d2cb1595ab1c)) +* **deps:** update dependency io.dropwizard.metrics:metrics-core to v4.2.39 ([#2139](https://github.com/prometheus/client_java/issues/2139)) ([5817d13](https://github.com/prometheus/client_java/commit/5817d1395dc348b6634ea169264fd13f4ad56e82)) +* **deps:** update dependency io.dropwizard.metrics5:metrics-core to v5.0.7 ([#2140](https://github.com/prometheus/client_java/issues/2140)) ([261c451](https://github.com/prometheus/client_java/commit/261c4510eefe156ad688e019b9239cfcfd39bd2b)) +* **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.28.0-alpha ([#2126](https://github.com/prometheus/client_java/issues/2126)) ([b62b5d0](https://github.com/prometheus/client_java/commit/b62b5d0ab4b8d3a1335286bd3d36e8c9ac5aa269)) +* **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.28.0-alpha ([#2127](https://github.com/prometheus/client_java/issues/2127)) ([e11ce3d](https://github.com/prometheus/client_java/commit/e11ce3de19daf5acd2f73ffb90c96689c172f3c3)) +* **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.28.1-alpha ([#2132](https://github.com/prometheus/client_java/issues/2132)) ([b09be38](https://github.com/prometheus/client_java/commit/b09be3882f0ad95ff299db41d706a2e52faa7525)) +* **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.28.1-alpha ([#2133](https://github.com/prometheus/client_java/issues/2133)) ([a241c16](https://github.com/prometheus/client_java/commit/a241c165927d3cbb91b97eedd52de9c9eff595d0)) +* **deps:** update dependency org.apache.tomcat.embed:tomcat-embed-core to v11.0.22 ([#2099](https://github.com/prometheus/client_java/issues/2099)) ([22125c5](https://github.com/prometheus/client_java/commit/22125c5f531467030793fc48cb2308ff14bbcaa7)) +* **deps:** update jetty monorepo to v12.1.10 ([#2169](https://github.com/prometheus/client_java/issues/2169)) ([ddd3991](https://github.com/prometheus/client_java/commit/ddd3991096d409a3e58ae2003ce13457a51b8876)) +* **deps:** update jetty monorepo to v12.1.9 ([#2102](https://github.com/prometheus/client_java/issues/2102)) ([04bee70](https://github.com/prometheus/client_java/commit/04bee70efff866f8c4966643926905c28a4eae3a)) +* **deps:** update protobuf ([#2129](https://github.com/prometheus/client_java/issues/2129)) ([320538a](https://github.com/prometheus/client_java/commit/320538a09efad128c6d80bcc3d6eecca394603db)) +* Reduce allocations for classic histogram buckets ([#2081](https://github.com/prometheus/client_java/issues/2081)) ([edd160a](https://github.com/prometheus/client_java/commit/edd160ab93254c80250d7cf58a1dcb399fef67a1)) +* restore legacy suffix compatibility ([#2100](https://github.com/prometheus/client_java/issues/2100)) ([b2ae70f](https://github.com/prometheus/client_java/commit/b2ae70ffd4ac0830fb567319beae9d1c3ad8bc2f)) +* restore reserved suffix stripping in `PrometheusNaming.sanitizeMetricName()` ([#2124](https://github.com/prometheus/client_java/issues/2124)) ([2d0f508](https://github.com/prometheus/client_java/commit/2d0f508efd2f5e009b6f09f6a9ccb451cf9f3b6f)) + + +### Performance Improvements + +* Refactored sorting to use optimized sort algorithms ([#2161](https://github.com/prometheus/client_java/issues/2161)) ([25b94fc](https://github.com/prometheus/client_java/commit/25b94fc16273659892af0132cedb71f57597adf7)) + + +### Documentation + +* clarify downstream adapter validation requirements ([#2101](https://github.com/prometheus/client_java/issues/2101)) ([ef8c75c](https://github.com/prometheus/client_java/commit/ef8c75cf352bddd0d3a2052c3f1b0c8b6103a6f4)) +* Document OM2 ([#2059](https://github.com/prometheus/client_java/issues/2059)) ([45d753c](https://github.com/prometheus/client_java/commit/45d753c418f005fbb17bf7caca3dc94655717687)) +* document PushGateway shading workaround ([#2106](https://github.com/prometheus/client_java/issues/2106)) ([8ca0eb8](https://github.com/prometheus/client_java/commit/8ca0eb8d79b800ad8d7a08f10762ed631f4f2a70)) + ## [1.6.1](https://github.com/prometheus/client_java/compare/v1.6.0...v1.6.1) (2026-04-27) > Note: With the OM2 metric-name preservation fix in this release, OpenMetrics 2.0 can now be diff --git a/benchmarks/pom.xml b/benchmarks/pom.xml index 4326c2cb7..c45661f0a 100644 --- a/benchmarks/pom.xml +++ b/benchmarks/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 benchmarks diff --git a/examples/example-custom-buckets/pom.xml b/examples/example-custom-buckets/pom.xml index 3938fc111..436611293 100644 --- a/examples/example-custom-buckets/pom.xml +++ b/examples/example-custom-buckets/pom.xml @@ -4,7 +4,7 @@ io.prometheus example-custom-buckets - 1.6.2-SNAPSHOT + 1.7.0 8 diff --git a/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml b/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml index 265ce881c..dec8d7163 100644 --- a/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml +++ b/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml @@ -4,7 +4,7 @@ io.prometheus example-greeting-service - 1.6.2-SNAPSHOT + 1.7.0 17 diff --git a/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml b/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml index 8f2732374..8cedb7dad 100644 --- a/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml +++ b/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml @@ -4,7 +4,7 @@ io.prometheus example-hello-world-app - 1.6.2-SNAPSHOT + 1.7.0 17 diff --git a/examples/example-exemplars-tail-sampling/pom.xml b/examples/example-exemplars-tail-sampling/pom.xml index e7d379da8..09e660f3d 100644 --- a/examples/example-exemplars-tail-sampling/pom.xml +++ b/examples/example-exemplars-tail-sampling/pom.xml @@ -4,7 +4,7 @@ io.prometheus example-exemplars-tail-sampling - 1.6.2-SNAPSHOT + 1.7.0 pom Example - Exemplars with OpenTelemetry's Tail Sampling diff --git a/examples/example-exporter-httpserver/pom.xml b/examples/example-exporter-httpserver/pom.xml index ac8d6bbbb..a3f3907ee 100644 --- a/examples/example-exporter-httpserver/pom.xml +++ b/examples/example-exporter-httpserver/pom.xml @@ -4,7 +4,7 @@ io.prometheus example-exporter-httpserver - 1.6.2-SNAPSHOT + 1.7.0 8 diff --git a/examples/example-exporter-multi-target/pom.xml b/examples/example-exporter-multi-target/pom.xml index c6466ee95..de36145bd 100644 --- a/examples/example-exporter-multi-target/pom.xml +++ b/examples/example-exporter-multi-target/pom.xml @@ -4,7 +4,7 @@ io.prometheus example-exporter-multi-target - 1.6.2-SNAPSHOT + 1.7.0 8 diff --git a/examples/example-exporter-opentelemetry/pom.xml b/examples/example-exporter-opentelemetry/pom.xml index ab6dc47a3..cf1613c58 100644 --- a/examples/example-exporter-opentelemetry/pom.xml +++ b/examples/example-exporter-opentelemetry/pom.xml @@ -4,7 +4,7 @@ io.prometheus example-exporter-opentelemetry - 1.6.2-SNAPSHOT + 1.7.0 8 diff --git a/examples/example-exporter-servlet-tomcat/pom.xml b/examples/example-exporter-servlet-tomcat/pom.xml index 42086cbef..b38283324 100644 --- a/examples/example-exporter-servlet-tomcat/pom.xml +++ b/examples/example-exporter-servlet-tomcat/pom.xml @@ -4,7 +4,7 @@ io.prometheus example-exporter-servlet-tomcat - 1.6.2-SNAPSHOT + 1.7.0 17 diff --git a/examples/example-native-histogram/pom.xml b/examples/example-native-histogram/pom.xml index 771610b84..0b4461053 100644 --- a/examples/example-native-histogram/pom.xml +++ b/examples/example-native-histogram/pom.xml @@ -4,7 +4,7 @@ io.prometheus example-native-histogram - 1.6.2-SNAPSHOT + 1.7.0 8 diff --git a/examples/example-otel-jvm-runtime-metrics/pom.xml b/examples/example-otel-jvm-runtime-metrics/pom.xml index 9b0911e9f..6569e44bf 100644 --- a/examples/example-otel-jvm-runtime-metrics/pom.xml +++ b/examples/example-otel-jvm-runtime-metrics/pom.xml @@ -4,7 +4,7 @@ io.prometheus example-otel-jvm-runtime-metrics - 1.6.2-SNAPSHOT + 1.7.0 8 diff --git a/examples/example-prometheus-properties/pom.xml b/examples/example-prometheus-properties/pom.xml index 9a32827fe..dec8309de 100644 --- a/examples/example-prometheus-properties/pom.xml +++ b/examples/example-prometheus-properties/pom.xml @@ -4,7 +4,7 @@ io.prometheus example-prometheus-properties - 1.6.2-SNAPSHOT + 1.7.0 8 diff --git a/examples/example-simpleclient-bridge/pom.xml b/examples/example-simpleclient-bridge/pom.xml index da7435825..af3792f23 100644 --- a/examples/example-simpleclient-bridge/pom.xml +++ b/examples/example-simpleclient-bridge/pom.xml @@ -4,7 +4,7 @@ io.prometheus example-simpleclient-bridge - 1.6.2-SNAPSHOT + 1.7.0 8 diff --git a/examples/pom.xml b/examples/pom.xml index e6f7c923c..6b90b871f 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 examples diff --git a/integration-tests/it-common/pom.xml b/integration-tests/it-common/pom.xml index 88d32d6cc..c853f243f 100644 --- a/integration-tests/it-common/pom.xml +++ b/integration-tests/it-common/pom.xml @@ -5,7 +5,7 @@ io.prometheus integration-tests - 1.6.2-SNAPSHOT + 1.7.0 it-common diff --git a/integration-tests/it-exporter/it-exporter-duplicate-metrics-sample/pom.xml b/integration-tests/it-exporter/it-exporter-duplicate-metrics-sample/pom.xml index fee621a2e..47dfd9046 100644 --- a/integration-tests/it-exporter/it-exporter-duplicate-metrics-sample/pom.xml +++ b/integration-tests/it-exporter/it-exporter-duplicate-metrics-sample/pom.xml @@ -5,7 +5,7 @@ io.prometheus it-exporter - 1.6.2-SNAPSHOT + 1.7.0 it-exporter-duplicate-metrics-sample diff --git a/integration-tests/it-exporter/it-exporter-httpserver-sample/pom.xml b/integration-tests/it-exporter/it-exporter-httpserver-sample/pom.xml index 8ad7afe32..b115a8c7f 100644 --- a/integration-tests/it-exporter/it-exporter-httpserver-sample/pom.xml +++ b/integration-tests/it-exporter/it-exporter-httpserver-sample/pom.xml @@ -5,7 +5,7 @@ io.prometheus it-exporter - 1.6.2-SNAPSHOT + 1.7.0 it-exporter-httpserver-sample diff --git a/integration-tests/it-exporter/it-exporter-no-protobuf/pom.xml b/integration-tests/it-exporter/it-exporter-no-protobuf/pom.xml index acf490032..e265030a2 100644 --- a/integration-tests/it-exporter/it-exporter-no-protobuf/pom.xml +++ b/integration-tests/it-exporter/it-exporter-no-protobuf/pom.xml @@ -5,7 +5,7 @@ io.prometheus it-exporter - 1.6.2-SNAPSHOT + 1.7.0 it-exporter-no-protobuf diff --git a/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml b/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml index 1c337ac89..e5f099044 100644 --- a/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml +++ b/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml @@ -5,7 +5,7 @@ io.prometheus it-exporter - 1.6.2-SNAPSHOT + 1.7.0 it-exporter-servlet-jetty-sample diff --git a/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml b/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml index b4df5a052..7fc4b2255 100644 --- a/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml +++ b/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml @@ -5,7 +5,7 @@ io.prometheus it-exporter - 1.6.2-SNAPSHOT + 1.7.0 it-exporter-servlet-tomcat-sample diff --git a/integration-tests/it-exporter/it-exporter-test/pom.xml b/integration-tests/it-exporter/it-exporter-test/pom.xml index b9c368dc9..d59f3c5f8 100644 --- a/integration-tests/it-exporter/it-exporter-test/pom.xml +++ b/integration-tests/it-exporter/it-exporter-test/pom.xml @@ -5,7 +5,7 @@ io.prometheus it-exporter - 1.6.2-SNAPSHOT + 1.7.0 it-exporter-test diff --git a/integration-tests/it-exporter/it-no-protobuf-test/pom.xml b/integration-tests/it-exporter/it-no-protobuf-test/pom.xml index d49e27f45..97b091728 100644 --- a/integration-tests/it-exporter/it-no-protobuf-test/pom.xml +++ b/integration-tests/it-exporter/it-no-protobuf-test/pom.xml @@ -5,7 +5,7 @@ io.prometheus it-exporter - 1.6.2-SNAPSHOT + 1.7.0 it-no-protobuf-test diff --git a/integration-tests/it-exporter/pom.xml b/integration-tests/it-exporter/pom.xml index 946e61e94..5a5a72c24 100644 --- a/integration-tests/it-exporter/pom.xml +++ b/integration-tests/it-exporter/pom.xml @@ -5,7 +5,7 @@ io.prometheus integration-tests - 1.6.2-SNAPSHOT + 1.7.0 it-exporter diff --git a/integration-tests/it-pushgateway/pom.xml b/integration-tests/it-pushgateway/pom.xml index 6045a5f99..35f9d1f03 100644 --- a/integration-tests/it-pushgateway/pom.xml +++ b/integration-tests/it-pushgateway/pom.xml @@ -5,7 +5,7 @@ io.prometheus integration-tests - 1.6.2-SNAPSHOT + 1.7.0 it-pushgateway diff --git a/integration-tests/it-spring-boot-smoke-test/pom.xml b/integration-tests/it-spring-boot-smoke-test/pom.xml index f56f7de87..dd08e9bd1 100644 --- a/integration-tests/it-spring-boot-smoke-test/pom.xml +++ b/integration-tests/it-spring-boot-smoke-test/pom.xml @@ -12,7 +12,7 @@ io.prometheus it-spring-boot-smoke-test - 1.6.2-SNAPSHOT + 1.7.0 Integration Test - Spring Smoke Tests diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml index ae8f87af4..f125f3f44 100644 --- a/integration-tests/pom.xml +++ b/integration-tests/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 integration-tests diff --git a/pom.xml b/pom.xml index 981f588b9..7649843a2 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ io.prometheus client_java_parent - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-parent/pom.xml diff --git a/prometheus-metrics-annotations/pom.xml b/prometheus-metrics-annotations/pom.xml index 4b22354c4..9b65b55c1 100644 --- a/prometheus-metrics-annotations/pom.xml +++ b/prometheus-metrics-annotations/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-annotations diff --git a/prometheus-metrics-bom/pom.xml b/prometheus-metrics-bom/pom.xml index 66bcb524e..03161add1 100644 --- a/prometheus-metrics-bom/pom.xml +++ b/prometheus-metrics-bom/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java_parent - 1.6.2-SNAPSHOT + 1.7.0 ../prometheus-metrics-parent/pom.xml diff --git a/prometheus-metrics-config/pom.xml b/prometheus-metrics-config/pom.xml index e207c6b49..4727a6281 100644 --- a/prometheus-metrics-config/pom.xml +++ b/prometheus-metrics-config/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-config diff --git a/prometheus-metrics-core/pom.xml b/prometheus-metrics-core/pom.xml index 61d10d3c5..d01e0fed5 100644 --- a/prometheus-metrics-core/pom.xml +++ b/prometheus-metrics-core/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-core diff --git a/prometheus-metrics-exporter-common/pom.xml b/prometheus-metrics-exporter-common/pom.xml index 9381b16dc..148750a9a 100644 --- a/prometheus-metrics-exporter-common/pom.xml +++ b/prometheus-metrics-exporter-common/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-exporter-common diff --git a/prometheus-metrics-exporter-httpserver/pom.xml b/prometheus-metrics-exporter-httpserver/pom.xml index a9b854a87..b1b3bb0c9 100644 --- a/prometheus-metrics-exporter-httpserver/pom.xml +++ b/prometheus-metrics-exporter-httpserver/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-exporter-httpserver diff --git a/prometheus-metrics-exporter-opentelemetry-otel-agent-resources/pom.xml b/prometheus-metrics-exporter-opentelemetry-otel-agent-resources/pom.xml index 9cc71812d..2415610ab 100644 --- a/prometheus-metrics-exporter-opentelemetry-otel-agent-resources/pom.xml +++ b/prometheus-metrics-exporter-opentelemetry-otel-agent-resources/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-exporter-opentelemetry-otel-agent-resources diff --git a/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml b/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml index 514d58699..975c74aa9 100644 --- a/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml +++ b/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-exporter-opentelemetry diff --git a/prometheus-metrics-exporter-opentelemetry/pom.xml b/prometheus-metrics-exporter-opentelemetry/pom.xml index 24c147f50..06c01290d 100644 --- a/prometheus-metrics-exporter-opentelemetry/pom.xml +++ b/prometheus-metrics-exporter-opentelemetry/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-exporter-opentelemetry-no-otel diff --git a/prometheus-metrics-exporter-pushgateway/pom.xml b/prometheus-metrics-exporter-pushgateway/pom.xml index b7d543a34..8521f69b9 100644 --- a/prometheus-metrics-exporter-pushgateway/pom.xml +++ b/prometheus-metrics-exporter-pushgateway/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-exporter-pushgateway diff --git a/prometheus-metrics-exporter-servlet-jakarta/pom.xml b/prometheus-metrics-exporter-servlet-jakarta/pom.xml index 248af0c0b..776822ab0 100644 --- a/prometheus-metrics-exporter-servlet-jakarta/pom.xml +++ b/prometheus-metrics-exporter-servlet-jakarta/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-exporter-servlet-jakarta diff --git a/prometheus-metrics-exporter-servlet-javax/pom.xml b/prometheus-metrics-exporter-servlet-javax/pom.xml index d5749f71c..155dcb612 100644 --- a/prometheus-metrics-exporter-servlet-javax/pom.xml +++ b/prometheus-metrics-exporter-servlet-javax/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-exporter-servlet-javax diff --git a/prometheus-metrics-exposition-formats-shaded/pom.xml b/prometheus-metrics-exposition-formats-shaded/pom.xml index 1d7d33684..656aaf671 100644 --- a/prometheus-metrics-exposition-formats-shaded/pom.xml +++ b/prometheus-metrics-exposition-formats-shaded/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-exposition-formats diff --git a/prometheus-metrics-exposition-formats/pom.xml b/prometheus-metrics-exposition-formats/pom.xml index 3ee43e3a1..2f685b1e8 100644 --- a/prometheus-metrics-exposition-formats/pom.xml +++ b/prometheus-metrics-exposition-formats/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-exposition-formats-no-protobuf diff --git a/prometheus-metrics-exposition-textformats/pom.xml b/prometheus-metrics-exposition-textformats/pom.xml index 17c0dc450..033b3abb2 100644 --- a/prometheus-metrics-exposition-textformats/pom.xml +++ b/prometheus-metrics-exposition-textformats/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-exposition-textformats diff --git a/prometheus-metrics-instrumentation-caffeine/pom.xml b/prometheus-metrics-instrumentation-caffeine/pom.xml index ed00e6e7d..00017f2f7 100644 --- a/prometheus-metrics-instrumentation-caffeine/pom.xml +++ b/prometheus-metrics-instrumentation-caffeine/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-instrumentation-caffeine diff --git a/prometheus-metrics-instrumentation-dropwizard/pom.xml b/prometheus-metrics-instrumentation-dropwizard/pom.xml index fd90bfd51..df6ffddbb 100644 --- a/prometheus-metrics-instrumentation-dropwizard/pom.xml +++ b/prometheus-metrics-instrumentation-dropwizard/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-instrumentation-dropwizard diff --git a/prometheus-metrics-instrumentation-dropwizard5/pom.xml b/prometheus-metrics-instrumentation-dropwizard5/pom.xml index 654b575ce..cab29b108 100644 --- a/prometheus-metrics-instrumentation-dropwizard5/pom.xml +++ b/prometheus-metrics-instrumentation-dropwizard5/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-instrumentation-dropwizard5 diff --git a/prometheus-metrics-instrumentation-guava/pom.xml b/prometheus-metrics-instrumentation-guava/pom.xml index 63980781c..017fffcb2 100644 --- a/prometheus-metrics-instrumentation-guava/pom.xml +++ b/prometheus-metrics-instrumentation-guava/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-instrumentation-guava diff --git a/prometheus-metrics-instrumentation-jvm/pom.xml b/prometheus-metrics-instrumentation-jvm/pom.xml index 5cbdc3bd7..8645701be 100644 --- a/prometheus-metrics-instrumentation-jvm/pom.xml +++ b/prometheus-metrics-instrumentation-jvm/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-instrumentation-jvm diff --git a/prometheus-metrics-model/pom.xml b/prometheus-metrics-model/pom.xml index c1a83dea0..526cc2593 100644 --- a/prometheus-metrics-model/pom.xml +++ b/prometheus-metrics-model/pom.xml @@ -6,7 +6,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-model diff --git a/prometheus-metrics-otel-support/pom.xml b/prometheus-metrics-otel-support/pom.xml index 4e2e80f23..a447dc196 100644 --- a/prometheus-metrics-otel-support/pom.xml +++ b/prometheus-metrics-otel-support/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-otel-support diff --git a/prometheus-metrics-parent/pom.xml b/prometheus-metrics-parent/pom.xml index 099e6eb2a..d957aa62f 100644 --- a/prometheus-metrics-parent/pom.xml +++ b/prometheus-metrics-parent/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java_parent - 1.6.2-SNAPSHOT + 1.7.0 Prometheus Metrics Library Parent http://github.com/prometheus/client_java diff --git a/prometheus-metrics-simpleclient-bridge/pom.xml b/prometheus-metrics-simpleclient-bridge/pom.xml index b33e0e020..f9f5f66ea 100644 --- a/prometheus-metrics-simpleclient-bridge/pom.xml +++ b/prometheus-metrics-simpleclient-bridge/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-simpleclient-bridge diff --git a/prometheus-metrics-tracer/pom.xml b/prometheus-metrics-tracer/pom.xml index 45cd014b1..479127c2d 100644 --- a/prometheus-metrics-tracer/pom.xml +++ b/prometheus-metrics-tracer/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-tracer diff --git a/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml b/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml index 011b40217..05adc6889 100644 --- a/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml +++ b/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml @@ -5,7 +5,7 @@ io.prometheus prometheus-metrics-tracer - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-tracer-common diff --git a/prometheus-metrics-tracer/prometheus-metrics-tracer-initializer/pom.xml b/prometheus-metrics-tracer/prometheus-metrics-tracer-initializer/pom.xml index 58b760b5d..e14168825 100644 --- a/prometheus-metrics-tracer/prometheus-metrics-tracer-initializer/pom.xml +++ b/prometheus-metrics-tracer/prometheus-metrics-tracer-initializer/pom.xml @@ -5,7 +5,7 @@ io.prometheus prometheus-metrics-tracer - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-tracer-initializer diff --git a/prometheus-metrics-tracer/prometheus-metrics-tracer-otel-agent/pom.xml b/prometheus-metrics-tracer/prometheus-metrics-tracer-otel-agent/pom.xml index 4ac2c1ba0..f02f581ac 100644 --- a/prometheus-metrics-tracer/prometheus-metrics-tracer-otel-agent/pom.xml +++ b/prometheus-metrics-tracer/prometheus-metrics-tracer-otel-agent/pom.xml @@ -5,7 +5,7 @@ io.prometheus prometheus-metrics-tracer - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-tracer-otel-agent diff --git a/prometheus-metrics-tracer/prometheus-metrics-tracer-otel/pom.xml b/prometheus-metrics-tracer/prometheus-metrics-tracer-otel/pom.xml index 85e9904e1..aa362334d 100644 --- a/prometheus-metrics-tracer/prometheus-metrics-tracer-otel/pom.xml +++ b/prometheus-metrics-tracer/prometheus-metrics-tracer-otel/pom.xml @@ -5,7 +5,7 @@ io.prometheus prometheus-metrics-tracer - 1.6.2-SNAPSHOT + 1.7.0 prometheus-metrics-tracer-otel diff --git a/simpleclient-archive/integration_tests/it_common/pom.xml b/simpleclient-archive/integration_tests/it_common/pom.xml index 51eb5f59d..eccba4cb1 100644 --- a/simpleclient-archive/integration_tests/it_common/pom.xml +++ b/simpleclient-archive/integration_tests/it_common/pom.xml @@ -5,7 +5,7 @@ io.prometheus integration_tests - 1.6.2-SNAPSHOT + 1.7.0 it_common diff --git a/simpleclient-archive/integration_tests/it_exemplars_otel_agent/pom.xml b/simpleclient-archive/integration_tests/it_exemplars_otel_agent/pom.xml index 8aec8bd5c..6af546389 100644 --- a/simpleclient-archive/integration_tests/it_exemplars_otel_agent/pom.xml +++ b/simpleclient-archive/integration_tests/it_exemplars_otel_agent/pom.xml @@ -5,7 +5,7 @@ io.prometheus integration_tests - 1.6.2-SNAPSHOT + 1.7.0 it_exemplars_otel_agent diff --git a/simpleclient-archive/integration_tests/it_exemplars_otel_sdk/pom.xml b/simpleclient-archive/integration_tests/it_exemplars_otel_sdk/pom.xml index 466cc5d5c..7c0b39211 100644 --- a/simpleclient-archive/integration_tests/it_exemplars_otel_sdk/pom.xml +++ b/simpleclient-archive/integration_tests/it_exemplars_otel_sdk/pom.xml @@ -5,7 +5,7 @@ io.prometheus integration_tests - 1.6.2-SNAPSHOT + 1.7.0 it_exemplars_otel_sdk diff --git a/simpleclient-archive/integration_tests/it_java_versions/pom.xml b/simpleclient-archive/integration_tests/it_java_versions/pom.xml index 176da7fce..082a4f739 100644 --- a/simpleclient-archive/integration_tests/it_java_versions/pom.xml +++ b/simpleclient-archive/integration_tests/it_java_versions/pom.xml @@ -5,7 +5,7 @@ io.prometheus integration_tests - 1.6.2-SNAPSHOT + 1.7.0 it_java_versions diff --git a/simpleclient-archive/integration_tests/it_log4j2/pom.xml b/simpleclient-archive/integration_tests/it_log4j2/pom.xml index 96edefa0e..0ccecb9a6 100644 --- a/simpleclient-archive/integration_tests/it_log4j2/pom.xml +++ b/simpleclient-archive/integration_tests/it_log4j2/pom.xml @@ -5,7 +5,7 @@ io.prometheus integration_tests - 1.6.2-SNAPSHOT + 1.7.0 it_log4j2 diff --git a/simpleclient-archive/integration_tests/it_pushgateway/pom.xml b/simpleclient-archive/integration_tests/it_pushgateway/pom.xml index 0721f44c0..09d6c034c 100644 --- a/simpleclient-archive/integration_tests/it_pushgateway/pom.xml +++ b/simpleclient-archive/integration_tests/it_pushgateway/pom.xml @@ -5,7 +5,7 @@ io.prometheus integration_tests - 1.6.2-SNAPSHOT + 1.7.0 it_pushgateway diff --git a/simpleclient-archive/integration_tests/it_servlet_jakarta_exporter_webxml/pom.xml b/simpleclient-archive/integration_tests/it_servlet_jakarta_exporter_webxml/pom.xml index 7a84717d4..bae20ff31 100644 --- a/simpleclient-archive/integration_tests/it_servlet_jakarta_exporter_webxml/pom.xml +++ b/simpleclient-archive/integration_tests/it_servlet_jakarta_exporter_webxml/pom.xml @@ -5,7 +5,7 @@ io.prometheus integration_tests - 1.6.2-SNAPSHOT + 1.7.0 it_servlet_jakarta_exporter_webxml diff --git a/simpleclient-archive/integration_tests/pom.xml b/simpleclient-archive/integration_tests/pom.xml index 99437d966..26f3ccb60 100644 --- a/simpleclient-archive/integration_tests/pom.xml +++ b/simpleclient-archive/integration_tests/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 integration_tests diff --git a/simpleclient-archive/simpleclient_graphite_bridge/pom.xml b/simpleclient-archive/simpleclient_graphite_bridge/pom.xml index b574b65cd..50c229efe 100644 --- a/simpleclient-archive/simpleclient_graphite_bridge/pom.xml +++ b/simpleclient-archive/simpleclient_graphite_bridge/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 simpleclient_graphite_bridge diff --git a/simpleclient-archive/simpleclient_hibernate/pom.xml b/simpleclient-archive/simpleclient_hibernate/pom.xml index 2fe43d5dd..a62130f91 100644 --- a/simpleclient-archive/simpleclient_hibernate/pom.xml +++ b/simpleclient-archive/simpleclient_hibernate/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 simpleclient_hibernate diff --git a/simpleclient-archive/simpleclient_httpserver/pom.xml b/simpleclient-archive/simpleclient_httpserver/pom.xml index e1cb56c3a..072e20c3f 100644 --- a/simpleclient-archive/simpleclient_httpserver/pom.xml +++ b/simpleclient-archive/simpleclient_httpserver/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 simpleclient_httpserver diff --git a/simpleclient-archive/simpleclient_jetty/pom.xml b/simpleclient-archive/simpleclient_jetty/pom.xml index 064092058..de284a7f0 100644 --- a/simpleclient-archive/simpleclient_jetty/pom.xml +++ b/simpleclient-archive/simpleclient_jetty/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 simpleclient_jetty diff --git a/simpleclient-archive/simpleclient_jetty_jdk8/pom.xml b/simpleclient-archive/simpleclient_jetty_jdk8/pom.xml index 85585419a..681f3dc7a 100644 --- a/simpleclient-archive/simpleclient_jetty_jdk8/pom.xml +++ b/simpleclient-archive/simpleclient_jetty_jdk8/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 simpleclient_jetty_jdk8 diff --git a/simpleclient-archive/simpleclient_log4j/pom.xml b/simpleclient-archive/simpleclient_log4j/pom.xml index b8801d0be..f66ef5d13 100644 --- a/simpleclient-archive/simpleclient_log4j/pom.xml +++ b/simpleclient-archive/simpleclient_log4j/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 simpleclient_log4j diff --git a/simpleclient-archive/simpleclient_log4j2/pom.xml b/simpleclient-archive/simpleclient_log4j2/pom.xml index a2da1c053..7f8bcb34b 100644 --- a/simpleclient-archive/simpleclient_log4j2/pom.xml +++ b/simpleclient-archive/simpleclient_log4j2/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 simpleclient_log4j2 diff --git a/simpleclient-archive/simpleclient_logback/pom.xml b/simpleclient-archive/simpleclient_logback/pom.xml index 3be6176fd..3d4334783 100644 --- a/simpleclient-archive/simpleclient_logback/pom.xml +++ b/simpleclient-archive/simpleclient_logback/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 simpleclient_logback diff --git a/simpleclient-archive/simpleclient_servlet/pom.xml b/simpleclient-archive/simpleclient_servlet/pom.xml index da14e616a..10daf9b81 100644 --- a/simpleclient-archive/simpleclient_servlet/pom.xml +++ b/simpleclient-archive/simpleclient_servlet/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 simpleclient_servlet diff --git a/simpleclient-archive/simpleclient_servlet_common/pom.xml b/simpleclient-archive/simpleclient_servlet_common/pom.xml index 435e2f117..80bb18f4c 100644 --- a/simpleclient-archive/simpleclient_servlet_common/pom.xml +++ b/simpleclient-archive/simpleclient_servlet_common/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 simpleclient_servlet_common diff --git a/simpleclient-archive/simpleclient_servlet_jakarta/pom.xml b/simpleclient-archive/simpleclient_servlet_jakarta/pom.xml index 73ddf43c0..95a8f4c08 100644 --- a/simpleclient-archive/simpleclient_servlet_jakarta/pom.xml +++ b/simpleclient-archive/simpleclient_servlet_jakarta/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 simpleclient_servlet_jakarta diff --git a/simpleclient-archive/simpleclient_spring_web/pom.xml b/simpleclient-archive/simpleclient_spring_web/pom.xml index 3a57bd747..43c47bfda 100644 --- a/simpleclient-archive/simpleclient_spring_web/pom.xml +++ b/simpleclient-archive/simpleclient_spring_web/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 simpleclient_spring_web diff --git a/simpleclient-archive/simpleclient_vertx/pom.xml b/simpleclient-archive/simpleclient_vertx/pom.xml index beee61aa6..1c6186c15 100644 --- a/simpleclient-archive/simpleclient_vertx/pom.xml +++ b/simpleclient-archive/simpleclient_vertx/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 simpleclient_vertx diff --git a/simpleclient-archive/simpleclient_vertx4/pom.xml b/simpleclient-archive/simpleclient_vertx4/pom.xml index 634d1ad42..cd2117a2e 100644 --- a/simpleclient-archive/simpleclient_vertx4/pom.xml +++ b/simpleclient-archive/simpleclient_vertx4/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.6.2-SNAPSHOT + 1.7.0 simpleclient_vertx4 From e4c1fd54c799abfc2f428a0b6d8c71fad083b330 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 4 Jun 2026 11:04:15 +0000 Subject: [PATCH 68/74] chore(main): release 1.7.1-SNAPSHOT (#2184) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- benchmarks/pom.xml | 2 +- examples/example-custom-buckets/pom.xml | 2 +- .../example-greeting-service/pom.xml | 2 +- .../example-hello-world-app/pom.xml | 2 +- examples/example-exemplars-tail-sampling/pom.xml | 2 +- examples/example-exporter-httpserver/pom.xml | 2 +- examples/example-exporter-multi-target/pom.xml | 2 +- examples/example-exporter-opentelemetry/pom.xml | 2 +- examples/example-exporter-servlet-tomcat/pom.xml | 2 +- examples/example-native-histogram/pom.xml | 2 +- examples/example-otel-jvm-runtime-metrics/pom.xml | 2 +- examples/example-prometheus-properties/pom.xml | 2 +- examples/example-simpleclient-bridge/pom.xml | 2 +- examples/pom.xml | 2 +- integration-tests/it-common/pom.xml | 2 +- .../it-exporter/it-exporter-duplicate-metrics-sample/pom.xml | 2 +- .../it-exporter/it-exporter-httpserver-sample/pom.xml | 2 +- integration-tests/it-exporter/it-exporter-no-protobuf/pom.xml | 2 +- .../it-exporter/it-exporter-servlet-jetty-sample/pom.xml | 2 +- .../it-exporter/it-exporter-servlet-tomcat-sample/pom.xml | 2 +- integration-tests/it-exporter/it-exporter-test/pom.xml | 2 +- integration-tests/it-exporter/it-no-protobuf-test/pom.xml | 2 +- integration-tests/it-exporter/pom.xml | 2 +- integration-tests/it-pushgateway/pom.xml | 2 +- integration-tests/it-spring-boot-smoke-test/pom.xml | 2 +- integration-tests/pom.xml | 2 +- pom.xml | 2 +- prometheus-metrics-annotations/pom.xml | 2 +- prometheus-metrics-bom/pom.xml | 2 +- prometheus-metrics-config/pom.xml | 2 +- prometheus-metrics-core/pom.xml | 2 +- prometheus-metrics-exporter-common/pom.xml | 2 +- prometheus-metrics-exporter-httpserver/pom.xml | 2 +- .../pom.xml | 2 +- prometheus-metrics-exporter-opentelemetry-shaded/pom.xml | 2 +- prometheus-metrics-exporter-opentelemetry/pom.xml | 2 +- prometheus-metrics-exporter-pushgateway/pom.xml | 2 +- prometheus-metrics-exporter-servlet-jakarta/pom.xml | 2 +- prometheus-metrics-exporter-servlet-javax/pom.xml | 2 +- prometheus-metrics-exposition-formats-shaded/pom.xml | 2 +- prometheus-metrics-exposition-formats/pom.xml | 2 +- prometheus-metrics-exposition-textformats/pom.xml | 2 +- prometheus-metrics-instrumentation-caffeine/pom.xml | 2 +- prometheus-metrics-instrumentation-dropwizard/pom.xml | 2 +- prometheus-metrics-instrumentation-dropwizard5/pom.xml | 2 +- prometheus-metrics-instrumentation-guava/pom.xml | 2 +- prometheus-metrics-instrumentation-jvm/pom.xml | 2 +- prometheus-metrics-model/pom.xml | 2 +- prometheus-metrics-otel-support/pom.xml | 2 +- prometheus-metrics-parent/pom.xml | 2 +- prometheus-metrics-simpleclient-bridge/pom.xml | 2 +- prometheus-metrics-tracer/pom.xml | 2 +- .../prometheus-metrics-tracer-common/pom.xml | 2 +- .../prometheus-metrics-tracer-initializer/pom.xml | 2 +- .../prometheus-metrics-tracer-otel-agent/pom.xml | 2 +- .../prometheus-metrics-tracer-otel/pom.xml | 2 +- simpleclient-archive/integration_tests/it_common/pom.xml | 2 +- .../integration_tests/it_exemplars_otel_agent/pom.xml | 2 +- .../integration_tests/it_exemplars_otel_sdk/pom.xml | 2 +- simpleclient-archive/integration_tests/it_java_versions/pom.xml | 2 +- simpleclient-archive/integration_tests/it_log4j2/pom.xml | 2 +- simpleclient-archive/integration_tests/it_pushgateway/pom.xml | 2 +- .../it_servlet_jakarta_exporter_webxml/pom.xml | 2 +- simpleclient-archive/integration_tests/pom.xml | 2 +- simpleclient-archive/simpleclient_graphite_bridge/pom.xml | 2 +- simpleclient-archive/simpleclient_hibernate/pom.xml | 2 +- simpleclient-archive/simpleclient_httpserver/pom.xml | 2 +- simpleclient-archive/simpleclient_jetty/pom.xml | 2 +- simpleclient-archive/simpleclient_jetty_jdk8/pom.xml | 2 +- simpleclient-archive/simpleclient_log4j/pom.xml | 2 +- simpleclient-archive/simpleclient_log4j2/pom.xml | 2 +- simpleclient-archive/simpleclient_logback/pom.xml | 2 +- simpleclient-archive/simpleclient_servlet/pom.xml | 2 +- simpleclient-archive/simpleclient_servlet_common/pom.xml | 2 +- simpleclient-archive/simpleclient_servlet_jakarta/pom.xml | 2 +- simpleclient-archive/simpleclient_spring_web/pom.xml | 2 +- simpleclient-archive/simpleclient_vertx/pom.xml | 2 +- simpleclient-archive/simpleclient_vertx4/pom.xml | 2 +- 78 files changed, 78 insertions(+), 78 deletions(-) diff --git a/benchmarks/pom.xml b/benchmarks/pom.xml index c45661f0a..abef2dd18 100644 --- a/benchmarks/pom.xml +++ b/benchmarks/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT benchmarks diff --git a/examples/example-custom-buckets/pom.xml b/examples/example-custom-buckets/pom.xml index 436611293..5bace1b07 100644 --- a/examples/example-custom-buckets/pom.xml +++ b/examples/example-custom-buckets/pom.xml @@ -4,7 +4,7 @@ io.prometheus example-custom-buckets - 1.7.0 + 1.7.1-SNAPSHOT 8 diff --git a/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml b/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml index dec8d7163..60eb0561a 100644 --- a/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml +++ b/examples/example-exemplars-tail-sampling/example-greeting-service/pom.xml @@ -4,7 +4,7 @@ io.prometheus example-greeting-service - 1.7.0 + 1.7.1-SNAPSHOT 17 diff --git a/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml b/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml index 8cedb7dad..4c4308a76 100644 --- a/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml +++ b/examples/example-exemplars-tail-sampling/example-hello-world-app/pom.xml @@ -4,7 +4,7 @@ io.prometheus example-hello-world-app - 1.7.0 + 1.7.1-SNAPSHOT 17 diff --git a/examples/example-exemplars-tail-sampling/pom.xml b/examples/example-exemplars-tail-sampling/pom.xml index 09e660f3d..eaae11ac2 100644 --- a/examples/example-exemplars-tail-sampling/pom.xml +++ b/examples/example-exemplars-tail-sampling/pom.xml @@ -4,7 +4,7 @@ io.prometheus example-exemplars-tail-sampling - 1.7.0 + 1.7.1-SNAPSHOT pom Example - Exemplars with OpenTelemetry's Tail Sampling diff --git a/examples/example-exporter-httpserver/pom.xml b/examples/example-exporter-httpserver/pom.xml index a3f3907ee..8df9359ef 100644 --- a/examples/example-exporter-httpserver/pom.xml +++ b/examples/example-exporter-httpserver/pom.xml @@ -4,7 +4,7 @@ io.prometheus example-exporter-httpserver - 1.7.0 + 1.7.1-SNAPSHOT 8 diff --git a/examples/example-exporter-multi-target/pom.xml b/examples/example-exporter-multi-target/pom.xml index de36145bd..e109c70f0 100644 --- a/examples/example-exporter-multi-target/pom.xml +++ b/examples/example-exporter-multi-target/pom.xml @@ -4,7 +4,7 @@ io.prometheus example-exporter-multi-target - 1.7.0 + 1.7.1-SNAPSHOT 8 diff --git a/examples/example-exporter-opentelemetry/pom.xml b/examples/example-exporter-opentelemetry/pom.xml index cf1613c58..d2e5220ce 100644 --- a/examples/example-exporter-opentelemetry/pom.xml +++ b/examples/example-exporter-opentelemetry/pom.xml @@ -4,7 +4,7 @@ io.prometheus example-exporter-opentelemetry - 1.7.0 + 1.7.1-SNAPSHOT 8 diff --git a/examples/example-exporter-servlet-tomcat/pom.xml b/examples/example-exporter-servlet-tomcat/pom.xml index b38283324..d8e9d137b 100644 --- a/examples/example-exporter-servlet-tomcat/pom.xml +++ b/examples/example-exporter-servlet-tomcat/pom.xml @@ -4,7 +4,7 @@ io.prometheus example-exporter-servlet-tomcat - 1.7.0 + 1.7.1-SNAPSHOT 17 diff --git a/examples/example-native-histogram/pom.xml b/examples/example-native-histogram/pom.xml index 0b4461053..63aacf33f 100644 --- a/examples/example-native-histogram/pom.xml +++ b/examples/example-native-histogram/pom.xml @@ -4,7 +4,7 @@ io.prometheus example-native-histogram - 1.7.0 + 1.7.1-SNAPSHOT 8 diff --git a/examples/example-otel-jvm-runtime-metrics/pom.xml b/examples/example-otel-jvm-runtime-metrics/pom.xml index 6569e44bf..f8e877efc 100644 --- a/examples/example-otel-jvm-runtime-metrics/pom.xml +++ b/examples/example-otel-jvm-runtime-metrics/pom.xml @@ -4,7 +4,7 @@ io.prometheus example-otel-jvm-runtime-metrics - 1.7.0 + 1.7.1-SNAPSHOT 8 diff --git a/examples/example-prometheus-properties/pom.xml b/examples/example-prometheus-properties/pom.xml index dec8309de..2b209ac94 100644 --- a/examples/example-prometheus-properties/pom.xml +++ b/examples/example-prometheus-properties/pom.xml @@ -4,7 +4,7 @@ io.prometheus example-prometheus-properties - 1.7.0 + 1.7.1-SNAPSHOT 8 diff --git a/examples/example-simpleclient-bridge/pom.xml b/examples/example-simpleclient-bridge/pom.xml index af3792f23..4c47fbba8 100644 --- a/examples/example-simpleclient-bridge/pom.xml +++ b/examples/example-simpleclient-bridge/pom.xml @@ -4,7 +4,7 @@ io.prometheus example-simpleclient-bridge - 1.7.0 + 1.7.1-SNAPSHOT 8 diff --git a/examples/pom.xml b/examples/pom.xml index 6b90b871f..50461b5f0 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT examples diff --git a/integration-tests/it-common/pom.xml b/integration-tests/it-common/pom.xml index c853f243f..feb3f15df 100644 --- a/integration-tests/it-common/pom.xml +++ b/integration-tests/it-common/pom.xml @@ -5,7 +5,7 @@ io.prometheus integration-tests - 1.7.0 + 1.7.1-SNAPSHOT it-common diff --git a/integration-tests/it-exporter/it-exporter-duplicate-metrics-sample/pom.xml b/integration-tests/it-exporter/it-exporter-duplicate-metrics-sample/pom.xml index 47dfd9046..688059dcd 100644 --- a/integration-tests/it-exporter/it-exporter-duplicate-metrics-sample/pom.xml +++ b/integration-tests/it-exporter/it-exporter-duplicate-metrics-sample/pom.xml @@ -5,7 +5,7 @@ io.prometheus it-exporter - 1.7.0 + 1.7.1-SNAPSHOT it-exporter-duplicate-metrics-sample diff --git a/integration-tests/it-exporter/it-exporter-httpserver-sample/pom.xml b/integration-tests/it-exporter/it-exporter-httpserver-sample/pom.xml index b115a8c7f..d480d84b4 100644 --- a/integration-tests/it-exporter/it-exporter-httpserver-sample/pom.xml +++ b/integration-tests/it-exporter/it-exporter-httpserver-sample/pom.xml @@ -5,7 +5,7 @@ io.prometheus it-exporter - 1.7.0 + 1.7.1-SNAPSHOT it-exporter-httpserver-sample diff --git a/integration-tests/it-exporter/it-exporter-no-protobuf/pom.xml b/integration-tests/it-exporter/it-exporter-no-protobuf/pom.xml index e265030a2..38b844d5f 100644 --- a/integration-tests/it-exporter/it-exporter-no-protobuf/pom.xml +++ b/integration-tests/it-exporter/it-exporter-no-protobuf/pom.xml @@ -5,7 +5,7 @@ io.prometheus it-exporter - 1.7.0 + 1.7.1-SNAPSHOT it-exporter-no-protobuf diff --git a/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml b/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml index e5f099044..bb027372b 100644 --- a/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml +++ b/integration-tests/it-exporter/it-exporter-servlet-jetty-sample/pom.xml @@ -5,7 +5,7 @@ io.prometheus it-exporter - 1.7.0 + 1.7.1-SNAPSHOT it-exporter-servlet-jetty-sample diff --git a/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml b/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml index 7fc4b2255..96ee5b46b 100644 --- a/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml +++ b/integration-tests/it-exporter/it-exporter-servlet-tomcat-sample/pom.xml @@ -5,7 +5,7 @@ io.prometheus it-exporter - 1.7.0 + 1.7.1-SNAPSHOT it-exporter-servlet-tomcat-sample diff --git a/integration-tests/it-exporter/it-exporter-test/pom.xml b/integration-tests/it-exporter/it-exporter-test/pom.xml index d59f3c5f8..6cb27b781 100644 --- a/integration-tests/it-exporter/it-exporter-test/pom.xml +++ b/integration-tests/it-exporter/it-exporter-test/pom.xml @@ -5,7 +5,7 @@ io.prometheus it-exporter - 1.7.0 + 1.7.1-SNAPSHOT it-exporter-test diff --git a/integration-tests/it-exporter/it-no-protobuf-test/pom.xml b/integration-tests/it-exporter/it-no-protobuf-test/pom.xml index 97b091728..461a3b73e 100644 --- a/integration-tests/it-exporter/it-no-protobuf-test/pom.xml +++ b/integration-tests/it-exporter/it-no-protobuf-test/pom.xml @@ -5,7 +5,7 @@ io.prometheus it-exporter - 1.7.0 + 1.7.1-SNAPSHOT it-no-protobuf-test diff --git a/integration-tests/it-exporter/pom.xml b/integration-tests/it-exporter/pom.xml index 5a5a72c24..63f01eaad 100644 --- a/integration-tests/it-exporter/pom.xml +++ b/integration-tests/it-exporter/pom.xml @@ -5,7 +5,7 @@ io.prometheus integration-tests - 1.7.0 + 1.7.1-SNAPSHOT it-exporter diff --git a/integration-tests/it-pushgateway/pom.xml b/integration-tests/it-pushgateway/pom.xml index 35f9d1f03..ed5e15cf3 100644 --- a/integration-tests/it-pushgateway/pom.xml +++ b/integration-tests/it-pushgateway/pom.xml @@ -5,7 +5,7 @@ io.prometheus integration-tests - 1.7.0 + 1.7.1-SNAPSHOT it-pushgateway diff --git a/integration-tests/it-spring-boot-smoke-test/pom.xml b/integration-tests/it-spring-boot-smoke-test/pom.xml index dd08e9bd1..c9d9fb851 100644 --- a/integration-tests/it-spring-boot-smoke-test/pom.xml +++ b/integration-tests/it-spring-boot-smoke-test/pom.xml @@ -12,7 +12,7 @@ io.prometheus it-spring-boot-smoke-test - 1.7.0 + 1.7.1-SNAPSHOT Integration Test - Spring Smoke Tests diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml index f125f3f44..41e590f32 100644 --- a/integration-tests/pom.xml +++ b/integration-tests/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT integration-tests diff --git a/pom.xml b/pom.xml index 7649843a2..06ccc1dff 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ io.prometheus client_java_parent - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-parent/pom.xml diff --git a/prometheus-metrics-annotations/pom.xml b/prometheus-metrics-annotations/pom.xml index 9b65b55c1..f28787a0e 100644 --- a/prometheus-metrics-annotations/pom.xml +++ b/prometheus-metrics-annotations/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-annotations diff --git a/prometheus-metrics-bom/pom.xml b/prometheus-metrics-bom/pom.xml index 03161add1..3f23b5052 100644 --- a/prometheus-metrics-bom/pom.xml +++ b/prometheus-metrics-bom/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java_parent - 1.7.0 + 1.7.1-SNAPSHOT ../prometheus-metrics-parent/pom.xml diff --git a/prometheus-metrics-config/pom.xml b/prometheus-metrics-config/pom.xml index 4727a6281..f30fdc759 100644 --- a/prometheus-metrics-config/pom.xml +++ b/prometheus-metrics-config/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-config diff --git a/prometheus-metrics-core/pom.xml b/prometheus-metrics-core/pom.xml index d01e0fed5..4d04a5b77 100644 --- a/prometheus-metrics-core/pom.xml +++ b/prometheus-metrics-core/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-core diff --git a/prometheus-metrics-exporter-common/pom.xml b/prometheus-metrics-exporter-common/pom.xml index 148750a9a..2000880a0 100644 --- a/prometheus-metrics-exporter-common/pom.xml +++ b/prometheus-metrics-exporter-common/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-exporter-common diff --git a/prometheus-metrics-exporter-httpserver/pom.xml b/prometheus-metrics-exporter-httpserver/pom.xml index b1b3bb0c9..82d445012 100644 --- a/prometheus-metrics-exporter-httpserver/pom.xml +++ b/prometheus-metrics-exporter-httpserver/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-exporter-httpserver diff --git a/prometheus-metrics-exporter-opentelemetry-otel-agent-resources/pom.xml b/prometheus-metrics-exporter-opentelemetry-otel-agent-resources/pom.xml index 2415610ab..84ee1c211 100644 --- a/prometheus-metrics-exporter-opentelemetry-otel-agent-resources/pom.xml +++ b/prometheus-metrics-exporter-opentelemetry-otel-agent-resources/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-exporter-opentelemetry-otel-agent-resources diff --git a/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml b/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml index 975c74aa9..cc500a738 100644 --- a/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml +++ b/prometheus-metrics-exporter-opentelemetry-shaded/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-exporter-opentelemetry diff --git a/prometheus-metrics-exporter-opentelemetry/pom.xml b/prometheus-metrics-exporter-opentelemetry/pom.xml index 06c01290d..31d5f8acc 100644 --- a/prometheus-metrics-exporter-opentelemetry/pom.xml +++ b/prometheus-metrics-exporter-opentelemetry/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-exporter-opentelemetry-no-otel diff --git a/prometheus-metrics-exporter-pushgateway/pom.xml b/prometheus-metrics-exporter-pushgateway/pom.xml index 8521f69b9..53eaae125 100644 --- a/prometheus-metrics-exporter-pushgateway/pom.xml +++ b/prometheus-metrics-exporter-pushgateway/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-exporter-pushgateway diff --git a/prometheus-metrics-exporter-servlet-jakarta/pom.xml b/prometheus-metrics-exporter-servlet-jakarta/pom.xml index 776822ab0..f55138c6e 100644 --- a/prometheus-metrics-exporter-servlet-jakarta/pom.xml +++ b/prometheus-metrics-exporter-servlet-jakarta/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-exporter-servlet-jakarta diff --git a/prometheus-metrics-exporter-servlet-javax/pom.xml b/prometheus-metrics-exporter-servlet-javax/pom.xml index 155dcb612..1e1f0d948 100644 --- a/prometheus-metrics-exporter-servlet-javax/pom.xml +++ b/prometheus-metrics-exporter-servlet-javax/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-exporter-servlet-javax diff --git a/prometheus-metrics-exposition-formats-shaded/pom.xml b/prometheus-metrics-exposition-formats-shaded/pom.xml index 656aaf671..1bf083694 100644 --- a/prometheus-metrics-exposition-formats-shaded/pom.xml +++ b/prometheus-metrics-exposition-formats-shaded/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-exposition-formats diff --git a/prometheus-metrics-exposition-formats/pom.xml b/prometheus-metrics-exposition-formats/pom.xml index 2f685b1e8..4150b9ef9 100644 --- a/prometheus-metrics-exposition-formats/pom.xml +++ b/prometheus-metrics-exposition-formats/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-exposition-formats-no-protobuf diff --git a/prometheus-metrics-exposition-textformats/pom.xml b/prometheus-metrics-exposition-textformats/pom.xml index 033b3abb2..3740d6552 100644 --- a/prometheus-metrics-exposition-textformats/pom.xml +++ b/prometheus-metrics-exposition-textformats/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-exposition-textformats diff --git a/prometheus-metrics-instrumentation-caffeine/pom.xml b/prometheus-metrics-instrumentation-caffeine/pom.xml index 00017f2f7..d931a837e 100644 --- a/prometheus-metrics-instrumentation-caffeine/pom.xml +++ b/prometheus-metrics-instrumentation-caffeine/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-instrumentation-caffeine diff --git a/prometheus-metrics-instrumentation-dropwizard/pom.xml b/prometheus-metrics-instrumentation-dropwizard/pom.xml index df6ffddbb..4833cae5b 100644 --- a/prometheus-metrics-instrumentation-dropwizard/pom.xml +++ b/prometheus-metrics-instrumentation-dropwizard/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-instrumentation-dropwizard diff --git a/prometheus-metrics-instrumentation-dropwizard5/pom.xml b/prometheus-metrics-instrumentation-dropwizard5/pom.xml index cab29b108..ab2908a65 100644 --- a/prometheus-metrics-instrumentation-dropwizard5/pom.xml +++ b/prometheus-metrics-instrumentation-dropwizard5/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-instrumentation-dropwizard5 diff --git a/prometheus-metrics-instrumentation-guava/pom.xml b/prometheus-metrics-instrumentation-guava/pom.xml index 017fffcb2..ef85b36ea 100644 --- a/prometheus-metrics-instrumentation-guava/pom.xml +++ b/prometheus-metrics-instrumentation-guava/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-instrumentation-guava diff --git a/prometheus-metrics-instrumentation-jvm/pom.xml b/prometheus-metrics-instrumentation-jvm/pom.xml index 8645701be..c88eb1ea5 100644 --- a/prometheus-metrics-instrumentation-jvm/pom.xml +++ b/prometheus-metrics-instrumentation-jvm/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-instrumentation-jvm diff --git a/prometheus-metrics-model/pom.xml b/prometheus-metrics-model/pom.xml index 526cc2593..257a01f45 100644 --- a/prometheus-metrics-model/pom.xml +++ b/prometheus-metrics-model/pom.xml @@ -6,7 +6,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-model diff --git a/prometheus-metrics-otel-support/pom.xml b/prometheus-metrics-otel-support/pom.xml index a447dc196..2ff51c3a8 100644 --- a/prometheus-metrics-otel-support/pom.xml +++ b/prometheus-metrics-otel-support/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-otel-support diff --git a/prometheus-metrics-parent/pom.xml b/prometheus-metrics-parent/pom.xml index d957aa62f..cb4efda88 100644 --- a/prometheus-metrics-parent/pom.xml +++ b/prometheus-metrics-parent/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java_parent - 1.7.0 + 1.7.1-SNAPSHOT Prometheus Metrics Library Parent http://github.com/prometheus/client_java diff --git a/prometheus-metrics-simpleclient-bridge/pom.xml b/prometheus-metrics-simpleclient-bridge/pom.xml index f9f5f66ea..d03cb0e17 100644 --- a/prometheus-metrics-simpleclient-bridge/pom.xml +++ b/prometheus-metrics-simpleclient-bridge/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-simpleclient-bridge diff --git a/prometheus-metrics-tracer/pom.xml b/prometheus-metrics-tracer/pom.xml index 479127c2d..2c8d75808 100644 --- a/prometheus-metrics-tracer/pom.xml +++ b/prometheus-metrics-tracer/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-tracer diff --git a/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml b/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml index 05adc6889..a35152e6f 100644 --- a/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml +++ b/prometheus-metrics-tracer/prometheus-metrics-tracer-common/pom.xml @@ -5,7 +5,7 @@ io.prometheus prometheus-metrics-tracer - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-tracer-common diff --git a/prometheus-metrics-tracer/prometheus-metrics-tracer-initializer/pom.xml b/prometheus-metrics-tracer/prometheus-metrics-tracer-initializer/pom.xml index e14168825..7e0200859 100644 --- a/prometheus-metrics-tracer/prometheus-metrics-tracer-initializer/pom.xml +++ b/prometheus-metrics-tracer/prometheus-metrics-tracer-initializer/pom.xml @@ -5,7 +5,7 @@ io.prometheus prometheus-metrics-tracer - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-tracer-initializer diff --git a/prometheus-metrics-tracer/prometheus-metrics-tracer-otel-agent/pom.xml b/prometheus-metrics-tracer/prometheus-metrics-tracer-otel-agent/pom.xml index f02f581ac..2ee1d4387 100644 --- a/prometheus-metrics-tracer/prometheus-metrics-tracer-otel-agent/pom.xml +++ b/prometheus-metrics-tracer/prometheus-metrics-tracer-otel-agent/pom.xml @@ -5,7 +5,7 @@ io.prometheus prometheus-metrics-tracer - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-tracer-otel-agent diff --git a/prometheus-metrics-tracer/prometheus-metrics-tracer-otel/pom.xml b/prometheus-metrics-tracer/prometheus-metrics-tracer-otel/pom.xml index aa362334d..88ea4c15f 100644 --- a/prometheus-metrics-tracer/prometheus-metrics-tracer-otel/pom.xml +++ b/prometheus-metrics-tracer/prometheus-metrics-tracer-otel/pom.xml @@ -5,7 +5,7 @@ io.prometheus prometheus-metrics-tracer - 1.7.0 + 1.7.1-SNAPSHOT prometheus-metrics-tracer-otel diff --git a/simpleclient-archive/integration_tests/it_common/pom.xml b/simpleclient-archive/integration_tests/it_common/pom.xml index eccba4cb1..8d36995da 100644 --- a/simpleclient-archive/integration_tests/it_common/pom.xml +++ b/simpleclient-archive/integration_tests/it_common/pom.xml @@ -5,7 +5,7 @@ io.prometheus integration_tests - 1.7.0 + 1.7.1-SNAPSHOT it_common diff --git a/simpleclient-archive/integration_tests/it_exemplars_otel_agent/pom.xml b/simpleclient-archive/integration_tests/it_exemplars_otel_agent/pom.xml index 6af546389..51dffdad4 100644 --- a/simpleclient-archive/integration_tests/it_exemplars_otel_agent/pom.xml +++ b/simpleclient-archive/integration_tests/it_exemplars_otel_agent/pom.xml @@ -5,7 +5,7 @@ io.prometheus integration_tests - 1.7.0 + 1.7.1-SNAPSHOT it_exemplars_otel_agent diff --git a/simpleclient-archive/integration_tests/it_exemplars_otel_sdk/pom.xml b/simpleclient-archive/integration_tests/it_exemplars_otel_sdk/pom.xml index 7c0b39211..22366c400 100644 --- a/simpleclient-archive/integration_tests/it_exemplars_otel_sdk/pom.xml +++ b/simpleclient-archive/integration_tests/it_exemplars_otel_sdk/pom.xml @@ -5,7 +5,7 @@ io.prometheus integration_tests - 1.7.0 + 1.7.1-SNAPSHOT it_exemplars_otel_sdk diff --git a/simpleclient-archive/integration_tests/it_java_versions/pom.xml b/simpleclient-archive/integration_tests/it_java_versions/pom.xml index 082a4f739..e21fd9978 100644 --- a/simpleclient-archive/integration_tests/it_java_versions/pom.xml +++ b/simpleclient-archive/integration_tests/it_java_versions/pom.xml @@ -5,7 +5,7 @@ io.prometheus integration_tests - 1.7.0 + 1.7.1-SNAPSHOT it_java_versions diff --git a/simpleclient-archive/integration_tests/it_log4j2/pom.xml b/simpleclient-archive/integration_tests/it_log4j2/pom.xml index 0ccecb9a6..0a94b3ff0 100644 --- a/simpleclient-archive/integration_tests/it_log4j2/pom.xml +++ b/simpleclient-archive/integration_tests/it_log4j2/pom.xml @@ -5,7 +5,7 @@ io.prometheus integration_tests - 1.7.0 + 1.7.1-SNAPSHOT it_log4j2 diff --git a/simpleclient-archive/integration_tests/it_pushgateway/pom.xml b/simpleclient-archive/integration_tests/it_pushgateway/pom.xml index 09d6c034c..ae6b461f5 100644 --- a/simpleclient-archive/integration_tests/it_pushgateway/pom.xml +++ b/simpleclient-archive/integration_tests/it_pushgateway/pom.xml @@ -5,7 +5,7 @@ io.prometheus integration_tests - 1.7.0 + 1.7.1-SNAPSHOT it_pushgateway diff --git a/simpleclient-archive/integration_tests/it_servlet_jakarta_exporter_webxml/pom.xml b/simpleclient-archive/integration_tests/it_servlet_jakarta_exporter_webxml/pom.xml index bae20ff31..6422b0258 100644 --- a/simpleclient-archive/integration_tests/it_servlet_jakarta_exporter_webxml/pom.xml +++ b/simpleclient-archive/integration_tests/it_servlet_jakarta_exporter_webxml/pom.xml @@ -5,7 +5,7 @@ io.prometheus integration_tests - 1.7.0 + 1.7.1-SNAPSHOT it_servlet_jakarta_exporter_webxml diff --git a/simpleclient-archive/integration_tests/pom.xml b/simpleclient-archive/integration_tests/pom.xml index 26f3ccb60..a78d07a85 100644 --- a/simpleclient-archive/integration_tests/pom.xml +++ b/simpleclient-archive/integration_tests/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT integration_tests diff --git a/simpleclient-archive/simpleclient_graphite_bridge/pom.xml b/simpleclient-archive/simpleclient_graphite_bridge/pom.xml index 50c229efe..6871e0eff 100644 --- a/simpleclient-archive/simpleclient_graphite_bridge/pom.xml +++ b/simpleclient-archive/simpleclient_graphite_bridge/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT simpleclient_graphite_bridge diff --git a/simpleclient-archive/simpleclient_hibernate/pom.xml b/simpleclient-archive/simpleclient_hibernate/pom.xml index a62130f91..3fa2539b1 100644 --- a/simpleclient-archive/simpleclient_hibernate/pom.xml +++ b/simpleclient-archive/simpleclient_hibernate/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT simpleclient_hibernate diff --git a/simpleclient-archive/simpleclient_httpserver/pom.xml b/simpleclient-archive/simpleclient_httpserver/pom.xml index 072e20c3f..aeef05632 100644 --- a/simpleclient-archive/simpleclient_httpserver/pom.xml +++ b/simpleclient-archive/simpleclient_httpserver/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT simpleclient_httpserver diff --git a/simpleclient-archive/simpleclient_jetty/pom.xml b/simpleclient-archive/simpleclient_jetty/pom.xml index de284a7f0..c5504fc5c 100644 --- a/simpleclient-archive/simpleclient_jetty/pom.xml +++ b/simpleclient-archive/simpleclient_jetty/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT simpleclient_jetty diff --git a/simpleclient-archive/simpleclient_jetty_jdk8/pom.xml b/simpleclient-archive/simpleclient_jetty_jdk8/pom.xml index 681f3dc7a..dfe56befe 100644 --- a/simpleclient-archive/simpleclient_jetty_jdk8/pom.xml +++ b/simpleclient-archive/simpleclient_jetty_jdk8/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT simpleclient_jetty_jdk8 diff --git a/simpleclient-archive/simpleclient_log4j/pom.xml b/simpleclient-archive/simpleclient_log4j/pom.xml index f66ef5d13..7e9b361fd 100644 --- a/simpleclient-archive/simpleclient_log4j/pom.xml +++ b/simpleclient-archive/simpleclient_log4j/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT simpleclient_log4j diff --git a/simpleclient-archive/simpleclient_log4j2/pom.xml b/simpleclient-archive/simpleclient_log4j2/pom.xml index 7f8bcb34b..8dff97852 100644 --- a/simpleclient-archive/simpleclient_log4j2/pom.xml +++ b/simpleclient-archive/simpleclient_log4j2/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT simpleclient_log4j2 diff --git a/simpleclient-archive/simpleclient_logback/pom.xml b/simpleclient-archive/simpleclient_logback/pom.xml index 3d4334783..49f2de0dc 100644 --- a/simpleclient-archive/simpleclient_logback/pom.xml +++ b/simpleclient-archive/simpleclient_logback/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT simpleclient_logback diff --git a/simpleclient-archive/simpleclient_servlet/pom.xml b/simpleclient-archive/simpleclient_servlet/pom.xml index 10daf9b81..5e6840878 100644 --- a/simpleclient-archive/simpleclient_servlet/pom.xml +++ b/simpleclient-archive/simpleclient_servlet/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT simpleclient_servlet diff --git a/simpleclient-archive/simpleclient_servlet_common/pom.xml b/simpleclient-archive/simpleclient_servlet_common/pom.xml index 80bb18f4c..765d94d74 100644 --- a/simpleclient-archive/simpleclient_servlet_common/pom.xml +++ b/simpleclient-archive/simpleclient_servlet_common/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT simpleclient_servlet_common diff --git a/simpleclient-archive/simpleclient_servlet_jakarta/pom.xml b/simpleclient-archive/simpleclient_servlet_jakarta/pom.xml index 95a8f4c08..20421012a 100644 --- a/simpleclient-archive/simpleclient_servlet_jakarta/pom.xml +++ b/simpleclient-archive/simpleclient_servlet_jakarta/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT simpleclient_servlet_jakarta diff --git a/simpleclient-archive/simpleclient_spring_web/pom.xml b/simpleclient-archive/simpleclient_spring_web/pom.xml index 43c47bfda..2aa939ae2 100644 --- a/simpleclient-archive/simpleclient_spring_web/pom.xml +++ b/simpleclient-archive/simpleclient_spring_web/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT simpleclient_spring_web diff --git a/simpleclient-archive/simpleclient_vertx/pom.xml b/simpleclient-archive/simpleclient_vertx/pom.xml index 1c6186c15..9389fd24c 100644 --- a/simpleclient-archive/simpleclient_vertx/pom.xml +++ b/simpleclient-archive/simpleclient_vertx/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT simpleclient_vertx diff --git a/simpleclient-archive/simpleclient_vertx4/pom.xml b/simpleclient-archive/simpleclient_vertx4/pom.xml index cd2117a2e..79b2f31e6 100644 --- a/simpleclient-archive/simpleclient_vertx4/pom.xml +++ b/simpleclient-archive/simpleclient_vertx4/pom.xml @@ -5,7 +5,7 @@ io.prometheus client_java - 1.7.0 + 1.7.1-SNAPSHOT simpleclient_vertx4 From 0c4fab28775d6ba13e1807b537c60df0b0be54a5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Jun 2026 12:05:13 +0000 Subject: [PATCH 69/74] chore(deps): update api-diff-baseline to v1.7.0 (#2186) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [io.prometheus:prometheus-metrics-core](https://redirect.github.com/prometheus/client_java) | `1.6.1` → `1.7.0` | ![age](https://developer.mend.io/api/mc/badges/age/maven/io.prometheus:prometheus-metrics-core/1.7.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.prometheus:prometheus-metrics-core/1.6.1/1.7.0?slim=true) | --- ### Release Notes
prometheus/client_java (io.prometheus:prometheus-metrics-core) ### [`v1.7.0`](https://redirect.github.com/prometheus/client_java/blob/HEAD/CHANGELOG.md#170-2026-06-03) ##### Features - Add StableApi marker and API diff check ([#​2168](https://redirect.github.com/prometheus/client_java/issues/2168)) ([768fd3a](https://redirect.github.com/prometheus/client_java/commit/768fd3a7aab5f11f3558a35c0d6257b5a217a078)) - add typed metric family descriptors ([#​2114](https://redirect.github.com/prometheus/client_java/issues/2114)) ([9c3b097](https://redirect.github.com/prometheus/client_java/commit/9c3b097f6842ffc08fb3a2ed00217c73a6c2b191)) - track api-diff baseline via Renovate and store diffs in docs/apidiffs ([#​2174](https://redirect.github.com/prometheus/client_java/issues/2174)) ([3adb890](https://redirect.github.com/prometheus/client_java/commit/3adb89078df4bf3d7739886612d4cf051176a6f3)) ##### Bug Fixes - **deps:** update dependency com.github.ben-manes.caffeine:caffeine to v3.2.4 ([#​2088](https://redirect.github.com/prometheus/client_java/issues/2088)) ([144eb61](https://redirect.github.com/prometheus/client_java/commit/144eb61030d412afe83631b8f341d2cb1595ab1c)) - **deps:** update dependency io.dropwizard.metrics:metrics-core to v4.2.39 ([#​2139](https://redirect.github.com/prometheus/client_java/issues/2139)) ([5817d13](https://redirect.github.com/prometheus/client_java/commit/5817d1395dc348b6634ea169264fd13f4ad56e82)) - **deps:** update dependency io.dropwizard.metrics5:metrics-core to v5.0.7 ([#​2140](https://redirect.github.com/prometheus/client_java/issues/2140)) ([261c451](https://redirect.github.com/prometheus/client_java/commit/261c4510eefe156ad688e019b9239cfcfd39bd2b)) - **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.28.0-alpha ([#​2126](https://redirect.github.com/prometheus/client_java/issues/2126)) ([b62b5d0](https://redirect.github.com/prometheus/client_java/commit/b62b5d0ab4b8d3a1335286bd3d36e8c9ac5aa269)) - **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.28.0-alpha ([#​2127](https://redirect.github.com/prometheus/client_java/issues/2127)) ([e11ce3d](https://redirect.github.com/prometheus/client_java/commit/e11ce3de19daf5acd2f73ffb90c96689c172f3c3)) - **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.28.1-alpha ([#​2132](https://redirect.github.com/prometheus/client_java/issues/2132)) ([b09be38](https://redirect.github.com/prometheus/client_java/commit/b09be3882f0ad95ff299db41d706a2e52faa7525)) - **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.28.1-alpha ([#​2133](https://redirect.github.com/prometheus/client_java/issues/2133)) ([a241c16](https://redirect.github.com/prometheus/client_java/commit/a241c165927d3cbb91b97eedd52de9c9eff595d0)) - **deps:** update dependency org.apache.tomcat.embed:tomcat-embed-core to v11.0.22 ([#​2099](https://redirect.github.com/prometheus/client_java/issues/2099)) ([22125c5](https://redirect.github.com/prometheus/client_java/commit/22125c5f531467030793fc48cb2308ff14bbcaa7)) - **deps:** update jetty monorepo to v12.1.10 ([#​2169](https://redirect.github.com/prometheus/client_java/issues/2169)) ([ddd3991](https://redirect.github.com/prometheus/client_java/commit/ddd3991096d409a3e58ae2003ce13457a51b8876)) - **deps:** update jetty monorepo to v12.1.9 ([#​2102](https://redirect.github.com/prometheus/client_java/issues/2102)) ([04bee70](https://redirect.github.com/prometheus/client_java/commit/04bee70efff866f8c4966643926905c28a4eae3a)) - **deps:** update protobuf ([#​2129](https://redirect.github.com/prometheus/client_java/issues/2129)) ([320538a](https://redirect.github.com/prometheus/client_java/commit/320538a09efad128c6d80bcc3d6eecca394603db)) - Reduce allocations for classic histogram buckets ([#​2081](https://redirect.github.com/prometheus/client_java/issues/2081)) ([edd160a](https://redirect.github.com/prometheus/client_java/commit/edd160ab93254c80250d7cf58a1dcb399fef67a1)) - restore legacy suffix compatibility ([#​2100](https://redirect.github.com/prometheus/client_java/issues/2100)) ([b2ae70f](https://redirect.github.com/prometheus/client_java/commit/b2ae70ffd4ac0830fb567319beae9d1c3ad8bc2f)) - restore reserved suffix stripping in `PrometheusNaming.sanitizeMetricName()` ([#​2124](https://redirect.github.com/prometheus/client_java/issues/2124)) ([2d0f508](https://redirect.github.com/prometheus/client_java/commit/2d0f508efd2f5e009b6f09f6a9ccb451cf9f3b6f)) ##### Performance Improvements - Refactored sorting to use optimized sort algorithms ([#​2161](https://redirect.github.com/prometheus/client_java/issues/2161)) ([25b94fc](https://redirect.github.com/prometheus/client_java/commit/25b94fc16273659892af0132cedb71f57597adf7)) ##### Documentation - clarify downstream adapter validation requirements ([#​2101](https://redirect.github.com/prometheus/client_java/issues/2101)) ([ef8c75c](https://redirect.github.com/prometheus/client_java/commit/ef8c75cf352bddd0d3a2052c3f1b0c8b6103a6f4)) - Document OM2 ([#​2059](https://redirect.github.com/prometheus/client_java/issues/2059)) ([45d753c](https://redirect.github.com/prometheus/client_java/commit/45d753c418f005fbb17bf7caca3dc94655717687)) - document PushGateway shading workaround ([#​2106](https://redirect.github.com/prometheus/client_java/issues/2106)) ([8ca0eb8](https://redirect.github.com/prometheus/client_java/commit/8ca0eb8d79b800ad8d7a08f10762ed631f4f2a70))
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- .../prometheus-metrics-annotations.txt | 11 + .../prometheus-metrics-config.txt | 263 ++++++++ .../prometheus-metrics-core.txt | 353 ++++++++++ .../prometheus-metrics-exporter-common.txt | 40 ++ ...prometheus-metrics-exporter-httpserver.txt | 52 ++ ...ter-opentelemetry-otel-agent-resources.txt | 2 + ...-metrics-exporter-opentelemetry-shaded.txt | 26 + ...metheus-metrics-exporter-opentelemetry.txt | 26 + ...rometheus-metrics-exporter-pushgateway.txt | 75 +++ ...theus-metrics-exporter-servlet-jakarta.txt | 12 + ...metheus-metrics-exporter-servlet-javax.txt | 12 + ...heus-metrics-exposition-formats-shaded.txt | 2 + .../prometheus-metrics-exposition-formats.txt | 2 + ...metheus-metrics-exposition-textformats.txt | 98 +++ ...theus-metrics-instrumentation-caffeine.txt | 23 + ...eus-metrics-instrumentation-dropwizard.txt | 19 + ...us-metrics-instrumentation-dropwizard5.txt | 47 ++ ...ometheus-metrics-instrumentation-guava.txt | 13 + ...prometheus-metrics-instrumentation-jvm.txt | 124 ++++ .../prometheus-metrics-model.txt | 600 +++++++++++++++++ ...prometheus-metrics-simpleclient-bridge.txt | 16 + .../prometheus-metrics-tracer-common.txt | 13 + .../prometheus-metrics-tracer-initializer.txt | 2 + .../prometheus-metrics-tracer-otel-agent.txt | 2 + .../prometheus-metrics-tracer-otel.txt | 2 + .../prometheus-metrics-annotations.txt | 13 +- .../prometheus-metrics-config.txt | 265 +------- .../prometheus-metrics-core.txt | 355 +---------- .../prometheus-metrics-exporter-common.txt | 42 +- ...prometheus-metrics-exporter-httpserver.txt | 54 +- ...ter-opentelemetry-otel-agent-resources.txt | 2 +- ...-metrics-exporter-opentelemetry-shaded.txt | 28 +- ...metheus-metrics-exporter-opentelemetry.txt | 28 +- ...rometheus-metrics-exporter-pushgateway.txt | 77 +-- ...theus-metrics-exporter-servlet-jakarta.txt | 14 +- ...metheus-metrics-exporter-servlet-javax.txt | 14 +- ...heus-metrics-exposition-formats-shaded.txt | 2 +- .../prometheus-metrics-exposition-formats.txt | 2 +- ...metheus-metrics-exposition-textformats.txt | 100 +-- ...theus-metrics-instrumentation-caffeine.txt | 25 +- ...eus-metrics-instrumentation-dropwizard.txt | 21 +- ...us-metrics-instrumentation-dropwizard5.txt | 49 +- ...ometheus-metrics-instrumentation-guava.txt | 15 +- ...prometheus-metrics-instrumentation-jvm.txt | 126 +--- .../prometheus-metrics-model.txt | 602 +----------------- ...prometheus-metrics-simpleclient-bridge.txt | 18 +- .../prometheus-metrics-tracer-common.txt | 15 +- .../prometheus-metrics-tracer-initializer.txt | 2 +- .../prometheus-metrics-tracer-otel-agent.txt | 2 +- .../prometheus-metrics-tracer-otel.txt | 2 +- pom.xml | 2 +- 51 files changed, 1880 insertions(+), 1830 deletions(-) create mode 100644 docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-annotations.txt create mode 100644 docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-config.txt create mode 100644 docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-core.txt create mode 100644 docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-common.txt create mode 100644 docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-httpserver.txt create mode 100644 docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt create mode 100644 docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-opentelemetry-shaded.txt create mode 100644 docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-opentelemetry.txt create mode 100644 docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-pushgateway.txt create mode 100644 docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-servlet-jakarta.txt create mode 100644 docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-servlet-javax.txt create mode 100644 docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exposition-formats-shaded.txt create mode 100644 docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exposition-formats.txt create mode 100644 docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exposition-textformats.txt create mode 100644 docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-instrumentation-caffeine.txt create mode 100644 docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-instrumentation-dropwizard.txt create mode 100644 docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-instrumentation-dropwizard5.txt create mode 100644 docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-instrumentation-guava.txt create mode 100644 docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-instrumentation-jvm.txt create mode 100644 docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-model.txt create mode 100644 docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-simpleclient-bridge.txt create mode 100644 docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-tracer-common.txt create mode 100644 docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-tracer-initializer.txt create mode 100644 docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-tracer-otel-agent.txt create mode 100644 docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-tracer-otel.txt diff --git a/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-annotations.txt b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-annotations.txt new file mode 100644 index 000000000..b2f6a39d8 --- /dev/null +++ b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-annotations.txt @@ -0,0 +1,11 @@ +Comparing source compatibility of prometheus-metrics-annotations-1.6.2-SNAPSHOT.jar against ++++ NEW ANNOTATION: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.annotations.StableApi (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.annotation.Annotation + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW ANNOTATION: java.lang.annotation.Documented + +++ NEW ANNOTATION: java.lang.annotation.Target + +++ NEW ELEMENT: value=java.lang.annotation.ElementType.TYPE,java.lang.annotation.ElementType.CONSTRUCTOR,java.lang.annotation.ElementType.METHOD,java.lang.annotation.ElementType.FIELD (+) + +++ NEW ANNOTATION: java.lang.annotation.Retention + +++ NEW ELEMENT: value=java.lang.annotation.RetentionPolicy.CLASS (+) + diff --git a/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-config.txt b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-config.txt new file mode 100644 index 000000000..dd61db431 --- /dev/null +++ b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-config.txt @@ -0,0 +1,263 @@ +Comparing source compatibility of prometheus-metrics-config-1.6.2-SNAPSHOT.jar against prometheus-metrics-config-1.6.1.jar ++++ NEW ENUM: PUBLIC(+) FINAL(+) io.prometheus.metrics.config.EscapingScheme (compatible) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.constant.Constable + +++ NEW INTERFACE: java.lang.Comparable + +++ NEW INTERFACE: java.io.Serializable + +++ NEW SUPERCLASS: java.lang.Enum + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.config.EscapingScheme DOTS_ESCAPING + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.config.EscapingScheme ALLOW_UTF8 + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.config.EscapingScheme UNDERSCORE_ESCAPING + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.config.EscapingScheme VALUE_ENCODING_ESCAPING + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.config.EscapingScheme DEFAULT + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.EscapingScheme fromAcceptHeader(java.lang.String) + +++ NEW METHOD: PUBLIC(+) FINAL(+) java.lang.String getValue() + +++ NEW METHOD: PUBLIC(+) java.lang.String toHeaderFormat() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.EscapingScheme valueOf(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.EscapingScheme[] values() ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.ExemplarsProperties (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExemplarsProperties$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.lang.Integer getMaxRetentionPeriodSeconds() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.Integer getMinRetentionPeriodSeconds() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.Integer getSampleIntervalMilliseconds() + +++ NEW ANNOTATION: javax.annotation.Nullable ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExemplarsProperties$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExemplarsProperties build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExemplarsProperties$Builder maxRetentionPeriodSeconds(int) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExemplarsProperties$Builder minRetentionPeriodSeconds(int) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExemplarsProperties$Builder sampleIntervalMilliseconds(int) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.ExporterFilterProperties (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String METRIC_NAME_MUST_NOT_BE_EQUAL_TO + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String METRIC_NAME_MUST_START_WITH + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String METRIC_NAME_MUST_NOT_START_WITH + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String METRIC_NAME_MUST_BE_EQUAL_TO + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterFilterProperties$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.util.List getAllowedMetricNamePrefixes() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.util.List getAllowedMetricNames() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.util.List getExcludedMetricNamePrefixes() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.util.List getExcludedMetricNames() + +++ NEW ANNOTATION: javax.annotation.Nullable ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterFilterProperties$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterFilterProperties$Builder allowedNames(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterFilterProperties$Builder allowedPrefixes(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterFilterProperties build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterFilterProperties$Builder excludedNames(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterFilterProperties$Builder excludedPrefixes(java.lang.String[]) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.ExporterHttpServerProperties (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterHttpServerProperties$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.lang.Integer getPort() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) boolean isPreferUncompressedResponse() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterHttpServerProperties$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterHttpServerProperties build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterHttpServerProperties$Builder port(int) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterHttpServerProperties$Builder preferUncompressedResponse(boolean) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.lang.String getEndpoint() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.util.Map getHeaders() + +++ NEW METHOD: PUBLIC(+) java.lang.String getInterval() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.Boolean getPreserveNames() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String getProtocol() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.util.Map getResourceAttributes() + +++ NEW METHOD: PUBLIC(+) java.lang.String getServiceInstanceId() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String getServiceName() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String getServiceNamespace() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String getServiceVersion() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String getTimeout() + +++ NEW ANNOTATION: javax.annotation.Nullable ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder endpoint(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder header(java.lang.String, java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder intervalSeconds(int) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder preserveNames(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder protocol(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder resourceAttribute(java.lang.String, java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder serviceInstanceId(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder serviceName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder serviceNamespace(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder serviceVersion(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder timeoutSeconds(int) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.ExporterProperties (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterProperties$Builder builder() + +++ NEW METHOD: PUBLIC(+) boolean getExemplarsOnAllMetricTypes() + +++ NEW METHOD: PUBLIC(+) boolean getIncludeCreatedTimestamps() + +++ NEW METHOD: PUBLIC(+) boolean getPrometheusTimestampsInMs() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterProperties$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterProperties build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterProperties$Builder exemplarsOnAllMetricTypes(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterProperties$Builder includeCreatedTimestamps(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterProperties$Builder prometheusTimestampsInMs(boolean) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.lang.String getAddress() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.time.Duration getConnectTimeout() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.EscapingScheme getEscapingScheme() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String getJob() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.time.Duration getReadTimeout() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String getScheme() + +++ NEW ANNOTATION: javax.annotation.Nullable ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties$Builder address(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties$Builder connectTimeout(java.time.Duration) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties$Builder escapingScheme(io.prometheus.metrics.config.EscapingScheme) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties$Builder job(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties$Builder readTimeout(java.time.Duration) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties$Builder scheme(java.lang.String) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricsProperties(java.lang.Boolean, java.lang.Boolean, java.lang.Boolean, java.util.List, java.lang.Integer, java.lang.Double, java.lang.Double, java.lang.Integer, java.lang.Long, java.util.List, java.util.List, java.lang.Long, java.lang.Integer) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.MetricsProperties$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.lang.Boolean getExemplarsEnabled() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.Boolean getHistogramClassicOnly() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.util.List getHistogramClassicUpperBounds() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.Integer getHistogramNativeInitialSchema() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.Integer getHistogramNativeMaxNumberOfBuckets() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.Double getHistogramNativeMaxZeroThreshold() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.Double getHistogramNativeMinZeroThreshold() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.Boolean getHistogramNativeOnly() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.Long getHistogramNativeResetDurationSeconds() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.Long getSummaryMaxAgeSeconds() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.Integer getSummaryNumberOfAgeBuckets() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.util.List getSummaryQuantileErrors() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.util.List getSummaryQuantiles() + +++ NEW ANNOTATION: javax.annotation.Nullable ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.MetricsProperties$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder exemplarsEnabled(java.lang.Boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder histogramClassicOnly(java.lang.Boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder histogramClassicUpperBounds(double[]) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder histogramNativeInitialSchema(java.lang.Integer) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder histogramNativeMaxNumberOfBuckets(java.lang.Integer) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder histogramNativeMaxZeroThreshold(java.lang.Double) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder histogramNativeMinZeroThreshold(java.lang.Double) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder histogramNativeOnly(java.lang.Boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder histogramNativeResetDurationSeconds(java.lang.Long) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder summaryMaxAgeSeconds(java.lang.Long) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder summaryNumberOfAgeBuckets(java.lang.Integer) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder summaryQuantileErrors(double[]) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder summaryQuantiles(double[]) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder builder() + +++ NEW METHOD: PUBLIC(+) boolean getCompositeValues() + +++ NEW METHOD: PUBLIC(+) boolean getContentNegotiation() + +++ NEW METHOD: PUBLIC(+) boolean getEnabled() + +++ NEW METHOD: PUBLIC(+) boolean getExemplarCompliance() + +++ NEW METHOD: PUBLIC(+) boolean getNativeHistograms() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder compositeValues(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder contentNegotiation(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder enableAll() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder enabled(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder exemplarCompliance(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder nativeHistograms(boolean) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.PrometheusProperties get() + +++ NEW EXCEPTION: io.prometheus.metrics.config.PrometheusPropertiesException + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties getDefaultMetricProperties() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExemplarsProperties getExemplarProperties() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterFilterProperties getExporterFilterProperties() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterHttpServerProperties getExporterHttpServerProperties() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties getExporterOpenTelemetryProperties() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterProperties getExporterProperties() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties getExporterPushgatewayProperties() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties getMetricProperties(java.lang.String) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties getOpenMetrics2Properties() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder defaultMetricsProperties(io.prometheus.metrics.config.MetricsProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder enableOpenMetrics2(java.util.function.Consumer) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder exemplarProperties(io.prometheus.metrics.config.ExemplarsProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder exporterFilterProperties(io.prometheus.metrics.config.ExporterFilterProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder exporterHttpServerProperties(io.prometheus.metrics.config.ExporterHttpServerProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder exporterOpenTelemetryProperties(io.prometheus.metrics.config.ExporterOpenTelemetryProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder exporterProperties(io.prometheus.metrics.config.ExporterProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder metricProperties(java.util.Map) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder openMetrics2Properties(io.prometheus.metrics.config.OpenMetrics2Properties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder pushgatewayProperties(io.prometheus.metrics.config.ExporterPushgatewayProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder putMetricProperty(java.lang.String, io.prometheus.metrics.config.MetricsProperties) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.PrometheusPropertiesException (compatible) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.io.Serializable + +++ NEW SUPERCLASS: java.lang.RuntimeException + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusPropertiesException(java.lang.String) + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusPropertiesException(java.lang.String, java.lang.Exception) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.PrometheusPropertiesLoader (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusPropertiesLoader() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.PrometheusProperties load() + +++ NEW EXCEPTION: io.prometheus.metrics.config.PrometheusPropertiesException + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.PrometheusProperties load(java.util.Map) + +++ NEW EXCEPTION: io.prometheus.metrics.config.PrometheusPropertiesException + diff --git a/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-core.txt b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-core.txt new file mode 100644 index 000000000..f6b1e9a9c --- /dev/null +++ b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-core.txt @@ -0,0 +1,353 @@ +Comparing source compatibility of prometheus-metrics-core-1.6.2-SNAPSHOT.jar against prometheus-metrics-core-1.6.1.jar ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.datapoints.CounterDataPoint (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) double get() + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) long getLongValue() + +++ NEW METHOD: PUBLIC(+) void inc() + +++ NEW METHOD: PUBLIC(+) void inc(long) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void inc(double) + +++ NEW METHOD: PUBLIC(+) void incWithExemplar(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void incWithExemplar(long, io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void incWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.datapoints.DataPoint (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.datapoints.DistributionDataPoint (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.TimerApi + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) long getCount() + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) double getSum() + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void observe(double) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void observeWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.datapoints.Timer startTimer() ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.datapoints.GaugeDataPoint (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.TimerApi + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) void dec() + +++ NEW METHOD: PUBLIC(+) void dec(double) + +++ NEW METHOD: PUBLIC(+) void decWithExemplar(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void decWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) double get() + +++ NEW METHOD: PUBLIC(+) void inc() + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void inc(double) + +++ NEW METHOD: PUBLIC(+) void incWithExemplar(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void incWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void set(double) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void setWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.datapoints.Timer startTimer() ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.datapoints.StateSetDataPoint (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void setFalse(java.lang.String) + +++ NEW METHOD: PUBLIC(+) void setFalse(java.lang.Enum) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void setTrue(java.lang.String) + +++ NEW METHOD: PUBLIC(+) void setTrue(java.lang.Enum) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.datapoints.Timer (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.io.Closeable + +++ NEW INTERFACE: java.lang.AutoCloseable + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) void close() + +++ NEW METHOD: PUBLIC(+) double observeDuration() ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.datapoints.TimerApi (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.datapoints.Timer startTimer() + +++ NEW METHOD: PUBLIC(+) void time(java.lang.Runnable) + +++ NEW METHOD: PUBLIC(+) java.lang.Object time(java.util.function.Supplier) + GENERIC TEMPLATES: +++ T:java.lang.Object + +++ NEW METHOD: PUBLIC(+) java.lang.Object timeChecked(java.util.concurrent.Callable) + +++ NEW EXCEPTION: java.lang.Exception + GENERIC TEMPLATES: +++ T:java.lang.Object ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.exemplars.ExemplarSampler (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) ExemplarSampler(io.prometheus.metrics.core.exemplars.ExemplarSamplerConfig, io.prometheus.metrics.tracer.common.SpanContext) + +++ NEW CONSTRUCTOR: PUBLIC(+) ExemplarSampler(io.prometheus.metrics.core.exemplars.ExemplarSamplerConfig) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplars collect() + +++ NEW METHOD: PUBLIC(+) void observe(double) + +++ NEW METHOD: PUBLIC(+) void observeWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void reset() ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.exemplars.ExemplarSamplerConfig (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) int DEFAULT_MIN_RETENTION_PERIOD_SECONDS + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) int DEFAULT_MAX_RETENTION_PERIOD_SECONDS + +++ NEW CONSTRUCTOR: PUBLIC(+) ExemplarSamplerConfig(io.prometheus.metrics.config.ExemplarsProperties, int) + +++ NEW CONSTRUCTOR: PUBLIC(+) ExemplarSamplerConfig(io.prometheus.metrics.config.ExemplarsProperties, double[]) + +++ NEW METHOD: PUBLIC(+) double[] getHistogramClassicUpperBounds() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) long getMaxRetentionPeriodMillis() + +++ NEW METHOD: PUBLIC(+) long getMinRetentionPeriodMillis() + +++ NEW METHOD: PUBLIC(+) int getNumberOfExemplars() + +++ NEW METHOD: PUBLIC(+) long getSampleIntervalMillis() ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.Counter (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.CounterDataPoint + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Counter$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Counter$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot collect() + +++ NEW METHOD: PUBLIC(+) double get() + +++ NEW METHOD: PUBLIC(+) long getLongValue() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW METHOD: PUBLIC(+) void inc(long) + +++ NEW METHOD: PUBLIC(+) void inc(double) + +++ NEW METHOD: PUBLIC(+) void incWithExemplar(long, io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void incWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Counter$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Counter build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Counter$Builder name(java.lang.String) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.CounterWithCallback (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.CallbackMetric + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.CounterWithCallback$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.CounterWithCallback$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot collect() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() + +++ NEW ANNOTATION: java.lang.Deprecated ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.CounterWithCallback$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.CallbackMetric$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.CounterWithCallback build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.CounterWithCallback$Builder callback(java.util.function.Consumer) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.CounterWithCallback$Builder name(java.lang.String) ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) STATIC(+) io.prometheus.metrics.core.metrics.CounterWithCallback$Callback (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void call(double, java.lang.String[]) + +++ NEW ANNOTATION: java.lang.FunctionalInterface ++++* NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.Gauge (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.GaugeDataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.TimerApi + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Gauge$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Gauge$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot collect() + +++ NEW METHOD: PUBLIC(+) double get() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW METHOD: PUBLIC(+) void inc(double) + +++ NEW METHOD: PUBLIC(+) void incWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void set(double) + +++ NEW METHOD: PUBLIC(+) void setWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Gauge$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Gauge build() ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.GaugeWithCallback (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.CallbackMetric + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.GaugeWithCallback$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.GaugeWithCallback$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot collect() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() + +++ NEW ANNOTATION: java.lang.Deprecated ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.GaugeWithCallback$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.CallbackMetric$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.GaugeWithCallback build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.GaugeWithCallback$Builder callback(java.util.function.Consumer) ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) STATIC(+) io.prometheus.metrics.core.metrics.GaugeWithCallback$Callback (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void call(double, java.lang.String[]) + +++ NEW ANNOTATION: java.lang.FunctionalInterface ++++* NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DistributionDataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.TimerApi + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot collect() + +++ NEW METHOD: PUBLIC(+) long getCount() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW METHOD: PUBLIC(+) double getSum() + +++ NEW METHOD: PUBLIC(+) void observe(double) + +++ NEW METHOD: PUBLIC(+) void observeWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric$Builder + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) double[] DEFAULT_CLASSIC_UPPER_BOUNDS + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder classicExponentialUpperBounds(double, double, int) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder classicLinearUpperBounds(double, double, int) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder classicOnly() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder classicUpperBounds(double[]) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties getDefaultProperties() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder nativeInitialSchema(int) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder nativeMaxNumberOfBuckets(int) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder nativeMaxZeroThreshold(double) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder nativeMinZeroThreshold(double) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder nativeOnly() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder nativeResetDuration(long, java.util.concurrent.TimeUnit) ++++* NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$DataPoint (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DistributionDataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.TimerApi + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) long getCount() + +++ NEW METHOD: PUBLIC(+) double getSum() + +++ NEW METHOD: PUBLIC(+) void observe(double) + +++ NEW METHOD: PUBLIC(+) void observeWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.Info (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.MetricWithFixedMetadata + +++ NEW METHOD: PUBLIC(+) void addLabelValues(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Info$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Info$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.InfoSnapshot collect() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW METHOD: PUBLIC(+) void remove(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) void setLabelValues(java.lang.String[]) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Info$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.MetricWithFixedMetadata$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Info build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Info$Builder name(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Info$Builder unit(io.prometheus.metrics.model.snapshots.Unit) ++++ NEW CLASS: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.metrics.Metric (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.snapshots.MetricSnapshot collect() ++++ NEW CLASS: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.metrics.MetricWithFixedMetadata (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.Metric + +++ NEW METHOD: PUBLIC(+) java.util.Set getLabelNames() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricMetadata getMetadata() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor getMetricFamilyDescriptor() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String getPrometheusName() + +++ NEW ANNOTATION: java.lang.Deprecated ++++ NEW CLASS: PUBLIC(+) ABSTRACT(+) STATIC(+) io.prometheus.metrics.core.metrics.MetricWithFixedMetadata$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + GENERIC TEMPLATES: +++ B:io.prometheus.metrics.core.metrics.MetricWithFixedMetadata$Builder, +++ M:io.prometheus.metrics.core.metrics.MetricWithFixedMetadata + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.Metric$Builder + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.metrics.MetricWithFixedMetadata build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.MetricWithFixedMetadata$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.MetricWithFixedMetadata$Builder help(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.MetricWithFixedMetadata$Builder labelNames(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.MetricWithFixedMetadata$Builder name(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.MetricWithFixedMetadata$Builder unit(io.prometheus.metrics.model.snapshots.Unit) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.SlidingWindow (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + GENERIC TEMPLATES: +++ T:java.lang.Object + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) SlidingWindow(java.lang.Class, java.util.function.Supplier, java.util.function.ObjDoubleConsumer, long, int) + +++ NEW METHOD: PUBLIC(+) java.lang.Object current() + +++ NEW METHOD: PUBLIC(+) void observe(double) ++++ NEW CLASS: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.metrics.StatefulMetric (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + GENERIC TEMPLATES: +++ D:io.prometheus.metrics.core.datapoints.DataPoint, +++ T:D + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.MetricWithFixedMetadata + +++ NEW METHOD: PUBLIC(+) void clear() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot collect() + +++ NEW METHOD: PUBLIC(+) void initLabelValues(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.datapoints.DataPoint labelValues(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) void remove(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) void removeIf(java.util.function.Function,java.lang.Boolean>) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.StateSet (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.StateSetDataPoint + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.StateSet$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.StateSet$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot collect() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW METHOD: PUBLIC(+) void setFalse(java.lang.String) + +++ NEW METHOD: PUBLIC(+) void setTrue(java.lang.String) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.StateSet$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.StateSet build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.StateSet$Builder states(java.lang.Class>) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.StateSet$Builder states(java.lang.String[]) ++++* NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.Summary (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DistributionDataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.TimerApi + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Summary$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Summary$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.SummarySnapshot collect() + +++ NEW METHOD: PUBLIC(+) long getCount() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW METHOD: PUBLIC(+) double getSum() + +++ NEW METHOD: PUBLIC(+) void observe(double) + +++ NEW METHOD: PUBLIC(+) void observeWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Summary$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric$Builder + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) long DEFAULT_MAX_AGE_SECONDS + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) int DEFAULT_NUMBER_OF_AGE_BUCKETS + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Summary build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties getDefaultProperties() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Summary$Builder maxAgeSeconds(long) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Summary$Builder numberOfAgeBuckets(int) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Summary$Builder quantile(double) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Summary$Builder quantile(double, double) ++++* NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.Summary$DataPoint (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DistributionDataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint + +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.TimerApi + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) long getCount() + +++ NEW METHOD: PUBLIC(+) double getSum() + +++ NEW METHOD: PUBLIC(+) void observe(double) + +++ NEW METHOD: PUBLIC(+) void observeWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.SummaryWithCallback (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.CallbackMetric + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.SummaryWithCallback$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.SummaryWithCallback$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.SummarySnapshot collect() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() + +++ NEW ANNOTATION: java.lang.Deprecated ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.SummaryWithCallback$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.CallbackMetric$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.SummaryWithCallback build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.SummaryWithCallback$Builder callback(java.util.function.Consumer) ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) STATIC(+) io.prometheus.metrics.core.metrics.SummaryWithCallback$Callback (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void call(long, double, io.prometheus.metrics.model.snapshots.Quantiles, java.lang.String[]) + +++ NEW ANNOTATION: java.lang.FunctionalInterface + diff --git a/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-common.txt b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-common.txt new file mode 100644 index 000000000..d2ba333af --- /dev/null +++ b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-common.txt @@ -0,0 +1,40 @@ +Comparing source compatibility of prometheus-metrics-exporter-common-1.6.2-SNAPSHOT.jar against prometheus-metrics-exporter-common-1.6.1.jar ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.exporter.common.PrometheusHttpExchange (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.AutoCloseable + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void close() + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.exporter.common.PrometheusHttpRequest getRequest() + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.exporter.common.PrometheusHttpResponse getResponse() + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void handleException(java.io.IOException) + +++ NEW EXCEPTION: java.io.IOException + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void handleException(java.lang.RuntimeException) ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.exporter.common.PrometheusHttpRequest (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.PrometheusScrapeRequest + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) java.lang.String getHeader(java.lang.String) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.util.Enumeration getHeaders(java.lang.String) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String getMethod() + +++ NEW METHOD: PUBLIC(+) java.lang.String getParameter(java.lang.String) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String[] getParameterValues(java.lang.String) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String getQueryString() ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.exporter.common.PrometheusHttpResponse (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.io.OutputStream sendHeadersAndGetBody(int, int) + +++ NEW EXCEPTION: java.io.IOException + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void setHeader(java.lang.String, java.lang.String) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.common.PrometheusScrapeHandler (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusScrapeHandler() + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusScrapeHandler(io.prometheus.metrics.model.registry.PrometheusRegistry) + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusScrapeHandler(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusScrapeHandler(io.prometheus.metrics.config.PrometheusProperties, io.prometheus.metrics.model.registry.PrometheusRegistry) + +++ NEW METHOD: PUBLIC(+) void handleRequest(io.prometheus.metrics.exporter.common.PrometheusHttpExchange) + +++ NEW EXCEPTION: java.io.IOException + diff --git a/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-httpserver.txt b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-httpserver.txt new file mode 100644 index 000000000..decc352f5 --- /dev/null +++ b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-httpserver.txt @@ -0,0 +1,52 @@ +Comparing source compatibility of prometheus-metrics-exporter-httpserver-1.6.2-SNAPSHOT.jar against prometheus-metrics-exporter-httpserver-1.6.1.jar ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.DefaultHandler (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: com.sun.net.httpserver.HttpHandler + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) DefaultHandler(java.lang.String) + +++ NEW METHOD: PUBLIC(+) void handle(com.sun.net.httpserver.HttpExchange) + +++ NEW EXCEPTION: java.io.IOException ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HealthyHandler (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: com.sun.net.httpserver.HttpHandler + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) HealthyHandler() + +++ NEW METHOD: PUBLIC(+) void handle(com.sun.net.httpserver.HttpExchange) + +++ NEW EXCEPTION: java.io.IOException ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.io.Closeable + +++ NEW INTERFACE: java.lang.AutoCloseable + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) void close() + +++ NEW METHOD: PUBLIC(+) int getPort() + +++ NEW METHOD: PUBLIC(+) void stop() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder authenticatedSubjectAttributeName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder authenticator(com.sun.net.httpserver.Authenticator) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer buildAndStart() + +++ NEW EXCEPTION: java.io.IOException + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder defaultHandler(com.sun.net.httpserver.HttpHandler) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder executorService(java.util.concurrent.ExecutorService) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder hostname(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder httpsConfigurator(com.sun.net.httpserver.HttpsConfigurator) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder inetAddress(java.net.InetAddress) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder metricsHandlerPath(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder port(int) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder registerHealthHandler(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder registry(io.prometheus.metrics.model.registry.PrometheusRegistry) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.MetricsHandler (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: com.sun.net.httpserver.HttpHandler + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricsHandler(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricsHandler(io.prometheus.metrics.model.registry.PrometheusRegistry) + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricsHandler(io.prometheus.metrics.config.PrometheusProperties, io.prometheus.metrics.model.registry.PrometheusRegistry) + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricsHandler() + +++ NEW METHOD: PUBLIC(+) void handle(com.sun.net.httpserver.HttpExchange) + +++ NEW EXCEPTION: java.io.IOException + diff --git a/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt new file mode 100644 index 000000000..e5d128dd6 --- /dev/null +++ b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt @@ -0,0 +1,2 @@ +Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-otel-agent-resources-1.6.2-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-otel-agent-resources-1.6.1.jar +No changes. diff --git a/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-opentelemetry-shaded.txt b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-opentelemetry-shaded.txt new file mode 100644 index 000000000..8bc4f87f6 --- /dev/null +++ b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-opentelemetry-shaded.txt @@ -0,0 +1,26 @@ +Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-1.6.2-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-1.6.1.jar ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.AutoCloseable + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) OpenTelemetryExporter(io.prometheus.metrics.shaded.io_opentelemetry_2_28_1_alpha.sdk.metrics.export.MetricReader) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) void close() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter buildAndStart() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder endpoint(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder header(java.lang.String, java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder intervalSeconds(int) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder preserveNames(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder protocol(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder registry(io.prometheus.metrics.model.registry.PrometheusRegistry) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder resourceAttribute(java.lang.String, java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceInstanceId(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceNamespace(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceVersion(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder timeoutSeconds(int) + diff --git a/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-opentelemetry.txt b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-opentelemetry.txt new file mode 100644 index 000000000..19d112b08 --- /dev/null +++ b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-opentelemetry.txt @@ -0,0 +1,26 @@ +Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-no-otel-1.6.2-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-no-otel-1.6.1.jar ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.AutoCloseable + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) OpenTelemetryExporter(io.opentelemetry.sdk.metrics.export.MetricReader) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) void close() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter buildAndStart() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder endpoint(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder header(java.lang.String, java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder intervalSeconds(int) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder preserveNames(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder protocol(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder registry(io.prometheus.metrics.model.registry.PrometheusRegistry) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder resourceAttribute(java.lang.String, java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceInstanceId(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceNamespace(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceVersion(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder timeoutSeconds(int) + diff --git a/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-pushgateway.txt b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-pushgateway.txt new file mode 100644 index 000000000..82cd98d0e --- /dev/null +++ b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-pushgateway.txt @@ -0,0 +1,75 @@ +Comparing source compatibility of prometheus-metrics-exporter-pushgateway-1.6.2-SNAPSHOT.jar against prometheus-metrics-exporter-pushgateway-1.6.1.jar ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.DefaultHttpConnectionFactory (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.exporter.pushgateway.HttpConnectionFactory + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) DefaultHttpConnectionFactory() + +++ NEW METHOD: PUBLIC(+) java.net.HttpURLConnection create(java.net.URL) + +++ NEW EXCEPTION: java.io.IOException ++++ NEW ENUM: PUBLIC(+) FINAL(+) io.prometheus.metrics.exporter.pushgateway.Format (compatible) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.constant.Constable + +++ NEW INTERFACE: java.lang.Comparable + +++ NEW INTERFACE: java.io.Serializable + +++ NEW SUPERCLASS: java.lang.Enum + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.exporter.pushgateway.Format PROMETHEUS_PROTOBUF + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.exporter.pushgateway.Format PROMETHEUS_TEXT + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.pushgateway.Format valueOf(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.pushgateway.Format[] values() ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.exporter.pushgateway.HttpConnectionFactory (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.net.HttpURLConnection create(java.net.URL) + +++ NEW EXCEPTION: java.io.IOException + +++ NEW ANNOTATION: java.lang.FunctionalInterface ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) void delete() + +++ NEW EXCEPTION: java.io.IOException + +++ NEW METHOD: PUBLIC(+) void push() + +++ NEW EXCEPTION: java.io.IOException + +++ NEW METHOD: PUBLIC(+) void push(io.prometheus.metrics.model.registry.Collector) + +++ NEW EXCEPTION: java.io.IOException + +++ NEW METHOD: PUBLIC(+) void push(io.prometheus.metrics.model.registry.MultiCollector) + +++ NEW EXCEPTION: java.io.IOException + +++ NEW METHOD: PUBLIC(+) void pushAdd() + +++ NEW EXCEPTION: java.io.IOException + +++ NEW METHOD: PUBLIC(+) void pushAdd(io.prometheus.metrics.model.registry.Collector) + +++ NEW EXCEPTION: java.io.IOException + +++ NEW METHOD: PUBLIC(+) void pushAdd(io.prometheus.metrics.model.registry.MultiCollector) + +++ NEW EXCEPTION: java.io.IOException ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder address(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder basicAuth(java.lang.String, java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder bearerToken(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder connectionFactory(io.prometheus.metrics.exporter.pushgateway.HttpConnectionFactory) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder connectionTimeout(java.time.Duration) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder escapingScheme(io.prometheus.metrics.config.EscapingScheme) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder format(io.prometheus.metrics.exporter.pushgateway.Format) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder groupingKey(java.lang.String, java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder instanceIpGroupingKey() + +++ NEW EXCEPTION: java.net.UnknownHostException + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder job(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder prometheusTimestampsInMs(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder readTimeout(java.time.Duration) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder registry(io.prometheus.metrics.model.registry.PrometheusRegistry) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder scheme(io.prometheus.metrics.exporter.pushgateway.Scheme) ++++ NEW ENUM: PUBLIC(+) FINAL(+) io.prometheus.metrics.exporter.pushgateway.Scheme (compatible) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.constant.Constable + +++ NEW INTERFACE: java.lang.Comparable + +++ NEW INTERFACE: java.io.Serializable + +++ NEW SUPERCLASS: java.lang.Enum + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.exporter.pushgateway.Scheme HTTPS + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.exporter.pushgateway.Scheme HTTP + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.pushgateway.Scheme fromString(java.lang.String) + +++ NEW METHOD: PUBLIC(+) java.lang.String toString() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.pushgateway.Scheme valueOf(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.pushgateway.Scheme[] values() + diff --git a/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-servlet-jakarta.txt b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-servlet-jakarta.txt new file mode 100644 index 000000000..61372aa39 --- /dev/null +++ b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-servlet-jakarta.txt @@ -0,0 +1,12 @@ +Comparing source compatibility of prometheus-metrics-exporter-servlet-jakarta-1.6.2-SNAPSHOT.jar against prometheus-metrics-exporter-servlet-jakarta-1.6.1.jar ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.servlet.jakarta.PrometheusMetricsServlet (compatible) + +++ CLASS FILE FORMAT VERSION: 61.0 <- n.a. + +++ NEW INTERFACE: jakarta.servlet.ServletConfig + +++ NEW INTERFACE: jakarta.servlet.Servlet + +++ NEW INTERFACE: java.io.Serializable + +++ NEW SUPERCLASS: jakarta.servlet.http.HttpServlet + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusMetricsServlet(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusMetricsServlet(io.prometheus.metrics.config.PrometheusProperties, io.prometheus.metrics.model.registry.PrometheusRegistry) + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusMetricsServlet() + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusMetricsServlet(io.prometheus.metrics.model.registry.PrometheusRegistry) + diff --git a/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-servlet-javax.txt b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-servlet-javax.txt new file mode 100644 index 000000000..434cfaf65 --- /dev/null +++ b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exporter-servlet-javax.txt @@ -0,0 +1,12 @@ +Comparing source compatibility of prometheus-metrics-exporter-servlet-javax-1.6.2-SNAPSHOT.jar against prometheus-metrics-exporter-servlet-javax-1.6.1.jar ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.servlet.javax.PrometheusMetricsServlet (compatible) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: javax.servlet.ServletConfig + +++ NEW INTERFACE: javax.servlet.Servlet + +++ NEW INTERFACE: java.io.Serializable + +++ NEW SUPERCLASS: javax.servlet.http.HttpServlet + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusMetricsServlet(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusMetricsServlet(io.prometheus.metrics.model.registry.PrometheusRegistry) + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusMetricsServlet(io.prometheus.metrics.config.PrometheusProperties, io.prometheus.metrics.model.registry.PrometheusRegistry) + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusMetricsServlet() + diff --git a/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exposition-formats-shaded.txt b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exposition-formats-shaded.txt new file mode 100644 index 000000000..2523aafc1 --- /dev/null +++ b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exposition-formats-shaded.txt @@ -0,0 +1,2 @@ +Comparing source compatibility of prometheus-metrics-exposition-formats-1.6.2-SNAPSHOT.jar against prometheus-metrics-exposition-formats-1.6.1.jar +No changes. diff --git a/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exposition-formats.txt b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exposition-formats.txt new file mode 100644 index 000000000..0f04c0d1e --- /dev/null +++ b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exposition-formats.txt @@ -0,0 +1,2 @@ +Comparing source compatibility of prometheus-metrics-exposition-formats-no-protobuf-1.6.2-SNAPSHOT.jar against prometheus-metrics-exposition-formats-no-protobuf-1.6.1.jar +No changes. diff --git a/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exposition-textformats.txt b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exposition-textformats.txt new file mode 100644 index 000000000..fd61bb649 --- /dev/null +++ b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-exposition-textformats.txt @@ -0,0 +1,98 @@ +Comparing source compatibility of prometheus-metrics-exposition-textformats-1.6.2-SNAPSHOT.jar against prometheus-metrics-exposition-textformats-1.6.1.jar ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.expositionformats.ExpositionFormats (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.ExpositionFormatWriter findWriter(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter getOpenMetrics2TextFormatWriter() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter getOpenMetricsTextFormatWriter() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.PrometheusProtobufWriter getPrometheusProtobufWriter() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter getPrometheusTextFormatWriter() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.ExpositionFormats init() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.ExpositionFormats init(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.ExpositionFormats init(io.prometheus.metrics.config.ExporterProperties) + +++ NEW ANNOTATION: java.lang.Deprecated ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.expositionformats.ExpositionFormatWriter (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) boolean accepts(java.lang.String) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String getContentType() + +++ NEW METHOD: PUBLIC(+) boolean isAvailable() + +++ NEW METHOD: PUBLIC(+) java.lang.String toDebugString(io.prometheus.metrics.model.snapshots.MetricSnapshots, io.prometheus.metrics.config.EscapingScheme) + +++ NEW METHOD: PUBLIC(+) java.lang.String toDebugString(io.prometheus.metrics.model.snapshots.MetricSnapshots) + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void write(java.io.OutputStream, io.prometheus.metrics.model.snapshots.MetricSnapshots, io.prometheus.metrics.config.EscapingScheme) + +++ NEW EXCEPTION: java.io.IOException + +++ NEW METHOD: PUBLIC(+) void write(java.io.OutputStream, io.prometheus.metrics.model.snapshots.MetricSnapshots) + +++ NEW EXCEPTION: java.io.IOException ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.expositionformats.ExpositionFormatWriter + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String CONTENT_TYPE + +++ NEW CONSTRUCTOR: PUBLIC(+) OpenMetrics2TextFormatWriter(io.prometheus.metrics.config.OpenMetrics2Properties, boolean, boolean) + +++ NEW METHOD: PUBLIC(+) boolean accepts(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter create() + +++ NEW METHOD: PUBLIC(+) java.lang.String getContentType() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties getOpenMetrics2Properties() + +++ NEW METHOD: PUBLIC(+) void write(java.io.OutputStream, io.prometheus.metrics.model.snapshots.MetricSnapshots, io.prometheus.metrics.config.EscapingScheme) + +++ NEW EXCEPTION: java.io.IOException ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter$Builder setCreatedTimestampsEnabled(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter$Builder setExemplarsOnAllMetricTypesEnabled(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter$Builder setOpenMetrics2Properties(io.prometheus.metrics.config.OpenMetrics2Properties) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.expositionformats.ExpositionFormatWriter + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String CONTENT_TYPE + +++ NEW CONSTRUCTOR: PUBLIC(+) OpenMetricsTextFormatWriter(boolean, boolean) + +++ NEW METHOD: PUBLIC(+) boolean accepts(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter create() + +++ NEW METHOD: PUBLIC(+) java.lang.String getContentType() + +++ NEW METHOD: PUBLIC(+) void write(java.io.OutputStream, io.prometheus.metrics.model.snapshots.MetricSnapshots, io.prometheus.metrics.config.EscapingScheme) + +++ NEW EXCEPTION: java.io.IOException ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter$Builder setCreatedTimestampsEnabled(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter$Builder setExemplarsOnAllMetricTypesEnabled(boolean) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.expositionformats.PrometheusProtobufWriter (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.expositionformats.ExpositionFormatWriter + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String CONTENT_TYPE + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusProtobufWriter() + +++ NEW METHOD: PUBLIC(+) boolean accepts(java.lang.String) + +++ NEW METHOD: PUBLIC(+) java.lang.String getContentType() + +++ NEW METHOD: PUBLIC(+) boolean isAvailable() + +++ NEW METHOD: PUBLIC(+) java.lang.String toDebugString(io.prometheus.metrics.model.snapshots.MetricSnapshots, io.prometheus.metrics.config.EscapingScheme) + +++ NEW METHOD: PUBLIC(+) void write(java.io.OutputStream, io.prometheus.metrics.model.snapshots.MetricSnapshots, io.prometheus.metrics.config.EscapingScheme) + +++ NEW EXCEPTION: java.io.IOException ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.expositionformats.ExpositionFormatWriter + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String CONTENT_TYPE + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusTextFormatWriter(boolean) + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW METHOD: PUBLIC(+) boolean accepts(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter create() + +++ NEW METHOD: PUBLIC(+) java.lang.String getContentType() + +++ NEW METHOD: PUBLIC(+) void write(java.io.OutputStream, io.prometheus.metrics.model.snapshots.MetricSnapshots, io.prometheus.metrics.config.EscapingScheme) + +++ NEW EXCEPTION: java.io.IOException + +++ NEW METHOD: PUBLIC(+) void writeCreated(java.io.Writer, io.prometheus.metrics.model.snapshots.MetricSnapshot, io.prometheus.metrics.config.EscapingScheme) + +++ NEW EXCEPTION: java.io.IOException ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter$Builder setIncludeCreatedTimestamps(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter$Builder setTimestampsInMs(boolean) + +++ NEW ANNOTATION: java.lang.Deprecated + diff --git a/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-instrumentation-caffeine.txt b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-instrumentation-caffeine.txt new file mode 100644 index 000000000..f804dc9ca --- /dev/null +++ b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-instrumentation-caffeine.txt @@ -0,0 +1,23 @@ +Comparing source compatibility of prometheus-metrics-instrumentation-caffeine-1.6.2-SNAPSHOT.jar against prometheus-metrics-instrumentation-caffeine-1.6.1.jar ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.caffeine.CacheMetricsCollector (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.MultiCollector + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) CacheMetricsCollector() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW METHOD: PUBLIC(+) void addCache(java.lang.String, com.github.benmanes.caffeine.cache.Cache) + +++ NEW METHOD: PUBLIC(+) void addCache(java.lang.String, com.github.benmanes.caffeine.cache.AsyncCache) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.caffeine.CacheMetricsCollector$Builder builder() + +++ NEW METHOD: PUBLIC(+) void clear() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots collect() + +++ NEW METHOD: PUBLIC(+) java.util.List getPrometheusNames() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW METHOD: PUBLIC(+) com.github.benmanes.caffeine.cache.Cache removeCache(java.lang.String) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.caffeine.CacheMetricsCollector$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) CacheMetricsCollector$Builder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.caffeine.CacheMetricsCollector build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.caffeine.CacheMetricsCollector$Builder collectEvictionWeightAsCounter(boolean) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.caffeine.CacheMetricsCollector$Builder collectWeightedSize(boolean) + diff --git a/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-instrumentation-dropwizard.txt b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-instrumentation-dropwizard.txt new file mode 100644 index 000000000..a95df8aae --- /dev/null +++ b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-instrumentation-dropwizard.txt @@ -0,0 +1,19 @@ +Comparing source compatibility of prometheus-metrics-instrumentation-dropwizard-1.6.2-SNAPSHOT.jar against prometheus-metrics-instrumentation-dropwizard-1.6.1.jar ++++* NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard.DropwizardExports (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.MultiCollector + +++ NEW SUPERCLASS: io.prometheus.metrics.instrumentation.dropwizard5.internal.AbstractDropwizardExports + +++ NEW CONSTRUCTOR: PUBLIC(+) DropwizardExports(com.codahale.metrics.MetricRegistry) + +++ NEW CONSTRUCTOR: PUBLIC(+) DropwizardExports(com.codahale.metrics.MetricRegistry, com.codahale.metrics.MetricFilter) + +++ NEW CONSTRUCTOR: PUBLIC(+) DropwizardExports(com.codahale.metrics.MetricRegistry, com.codahale.metrics.MetricFilter, io.prometheus.metrics.instrumentation.dropwizard5.labels.CustomLabelMapper) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.dropwizard.DropwizardExports$Builder builder() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.dropwizard.DropwizardExports$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard.DropwizardExports$Builder customLabelMapper(io.prometheus.metrics.instrumentation.dropwizard5.labels.CustomLabelMapper) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard.DropwizardExports$Builder dropwizardRegistry(com.codahale.metrics.MetricRegistry) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard.DropwizardExports$Builder invalidMetricHandler(io.prometheus.metrics.instrumentation.dropwizard5.InvalidMetricHandler) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard.DropwizardExports$Builder metricFilter(com.codahale.metrics.MetricFilter) + +++ NEW METHOD: PUBLIC(+) void register() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) + diff --git a/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-instrumentation-dropwizard5.txt b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-instrumentation-dropwizard5.txt new file mode 100644 index 000000000..e9c13ab17 --- /dev/null +++ b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-instrumentation-dropwizard5.txt @@ -0,0 +1,47 @@ +Comparing source compatibility of prometheus-metrics-instrumentation-dropwizard5-1.6.2-SNAPSHOT.jar against prometheus-metrics-instrumentation-dropwizard5-1.6.1.jar ++++* NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard5.DropwizardExports (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.MultiCollector + +++ NEW SUPERCLASS: io.prometheus.metrics.instrumentation.dropwizard5.internal.AbstractDropwizardExports + +++ NEW CONSTRUCTOR: PUBLIC(+) DropwizardExports(io.dropwizard.metrics5.MetricRegistry, io.dropwizard.metrics5.MetricFilter, io.prometheus.metrics.instrumentation.dropwizard5.labels.CustomLabelMapper) + +++ NEW CONSTRUCTOR: PUBLIC(+) DropwizardExports(io.dropwizard.metrics5.MetricRegistry) + +++ NEW CONSTRUCTOR: PUBLIC(+) DropwizardExports(io.dropwizard.metrics5.MetricRegistry, io.dropwizard.metrics5.MetricFilter) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.dropwizard5.DropwizardExports$Builder builder() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.dropwizard5.DropwizardExports$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard5.DropwizardExports$Builder customLabelMapper(io.prometheus.metrics.instrumentation.dropwizard5.labels.CustomLabelMapper) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard5.DropwizardExports$Builder dropwizardRegistry(io.dropwizard.metrics5.MetricRegistry) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard5.DropwizardExports$Builder invalidMetricHandler(io.prometheus.metrics.instrumentation.dropwizard5.InvalidMetricHandler) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard5.DropwizardExports$Builder metricFilter(io.dropwizard.metrics5.MetricFilter) + +++ NEW METHOD: PUBLIC(+) void register() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.instrumentation.dropwizard5.InvalidMetricHandler (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.instrumentation.dropwizard5.InvalidMetricHandler ALWAYS_THROW + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) boolean suppressException(java.lang.String, java.lang.Exception) + +++ NEW ANNOTATION: java.lang.FunctionalInterface ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard5.labels.CustomLabelMapper (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) CustomLabelMapper(java.util.List) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels getLabels(java.lang.String, java.util.List, java.util.List) + +++ NEW METHOD: PUBLIC(+) java.lang.String getName(java.lang.String) ++++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.instrumentation.dropwizard5.labels.MapperConfig (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) MapperConfig() + +++ NEW CONSTRUCTOR: PUBLIC(+) MapperConfig(java.lang.String, java.lang.String, java.util.Map) + +++ NEW METHOD: PUBLIC(+) boolean equals(java.lang.Object) + +++ NEW METHOD: PUBLIC(+) java.util.Map getLabels() + +++ NEW METHOD: PUBLIC(+) java.lang.String getMatch() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String getName() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) int hashCode() + +++ NEW METHOD: PUBLIC(+) void setLabels(java.util.Map) + +++ NEW METHOD: PUBLIC(+) void setMatch(java.lang.String) + +++ NEW METHOD: PUBLIC(+) void setName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) java.lang.String toString() + diff --git a/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-instrumentation-guava.txt b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-instrumentation-guava.txt new file mode 100644 index 000000000..815196d0e --- /dev/null +++ b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-instrumentation-guava.txt @@ -0,0 +1,13 @@ +Comparing source compatibility of prometheus-metrics-instrumentation-guava-1.6.2-SNAPSHOT.jar against prometheus-metrics-instrumentation-guava-1.6.1.jar ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.guava.CacheMetricsCollector (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.MultiCollector + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) CacheMetricsCollector() + +++ NEW METHOD: PUBLIC(+) void addCache(java.lang.String, com.google.common.cache.Cache) + +++ NEW METHOD: PUBLIC(+) void clear() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots collect() + +++ NEW METHOD: PUBLIC(+) java.util.List getPrometheusNames() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW METHOD: PUBLIC(+) com.google.common.cache.Cache removeCache(java.lang.String) + diff --git a/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-instrumentation-jvm.txt b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-instrumentation-jvm.txt new file mode 100644 index 000000000..391bae997 --- /dev/null +++ b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-instrumentation-jvm.txt @@ -0,0 +1,124 @@ +Comparing source compatibility of prometheus-metrics-instrumentation-jvm-1.6.2-SNAPSHOT.jar against prometheus-metrics-instrumentation-jvm-1.6.1.jar ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmBufferPoolMetrics (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmBufferPoolMetrics$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmBufferPoolMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmBufferPoolMetrics$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmBufferPoolMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void register() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmClassLoadingMetrics (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmClassLoadingMetrics$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmClassLoadingMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmClassLoadingMetrics$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmClassLoadingMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void register() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmCompilationMetrics (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmCompilationMetrics$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmCompilationMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmCompilationMetrics$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmCompilationMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void register() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmGarbageCollectorMetrics (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmGarbageCollectorMetrics$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmGarbageCollectorMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmGarbageCollectorMetrics$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmGarbageCollectorMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void register() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryMetrics (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryMetrics$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryMetrics$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void register() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryPoolAllocationMetrics (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryPoolAllocationMetrics$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryPoolAllocationMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryPoolAllocationMetrics$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryPoolAllocationMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void register() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMetrics (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) JvmMetrics() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMetrics$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMetrics$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void register() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmNativeMemoryMetrics (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmNativeMemoryMetrics$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmNativeMemoryMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmNativeMemoryMetrics$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmNativeMemoryMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void register() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmRuntimeInfoMetric (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmRuntimeInfoMetric$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmRuntimeInfoMetric$Builder builder(io.prometheus.metrics.config.PrometheusProperties) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmRuntimeInfoMetric$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmRuntimeInfoMetric$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void register() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmThreadsMetrics (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmThreadsMetrics$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmThreadsMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmThreadsMetrics$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmThreadsMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void register() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.ProcessMetrics (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.ProcessMetrics$Builder builder() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.ProcessMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.ProcessMetrics$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.ProcessMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) void register() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) + diff --git a/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-model.txt b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-model.txt new file mode 100644 index 000000000..98a3e2b0d --- /dev/null +++ b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-model.txt @@ -0,0 +1,600 @@ +Comparing source compatibility of prometheus-metrics-model-1.6.2-SNAPSHOT.jar against prometheus-metrics-model-1.6.1.jar ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.registry.Collector (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.snapshots.MetricSnapshot collect() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot collect(io.prometheus.metrics.model.registry.PrometheusScrapeRequest) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot collect(java.util.function.Predicate) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot collect(java.util.function.Predicate, io.prometheus.metrics.model.registry.PrometheusScrapeRequest) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.util.Set getLabelNames() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricMetadata getMetadata() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor getMetricFamilyDescriptor() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String getPrometheusName() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW ANNOTATION: java.lang.FunctionalInterface ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.util.function.Predicate + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.util.function.Predicate ALLOW_ALL + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder builder() + +++ NEW METHOD: PUBLIC(+) boolean test(java.lang.String) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder nameMustBeEqualTo(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder nameMustBeEqualTo(java.util.Collection) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder nameMustNotBeEqualTo(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder nameMustNotBeEqualTo(java.util.Collection) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder nameMustNotStartWith(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder nameMustNotStartWith(java.util.Collection) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder nameMustStartWith(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder nameMustStartWith(java.util.Collection) ++++ NEW ENUM: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.registry.MetricType (compatible) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.constant.Constable + +++ NEW INTERFACE: java.lang.Comparable + +++ NEW INTERFACE: java.io.Serializable + +++ NEW SUPERCLASS: java.lang.Enum + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.registry.MetricType SUMMARY + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.registry.MetricType HISTOGRAM + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.registry.MetricType STATESET + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.registry.MetricType UNKNOWN + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.registry.MetricType INFO + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.registry.MetricType COUNTER + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.registry.MetricType GAUGE + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.registry.MetricType valueOf(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.registry.MetricType[] values() ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.registry.MultiCollector (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.snapshots.MetricSnapshots collect() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots collect(io.prometheus.metrics.model.registry.PrometheusScrapeRequest) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots collect(java.util.function.Predicate) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots collect(java.util.function.Predicate, io.prometheus.metrics.model.registry.PrometheusScrapeRequest) + +++ NEW METHOD: PUBLIC(+) java.util.Set getLabelNames(java.lang.String) + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricMetadata getMetadata(java.lang.String) + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.util.List getMetricFamilyDescriptors() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType(java.lang.String) + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.util.List getPrometheusNames() + +++ NEW ANNOTATION: java.lang.Deprecated + +++ NEW ANNOTATION: java.lang.FunctionalInterface ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.registry.PrometheusRegistry (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.registry.PrometheusRegistry defaultRegistry + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusRegistry() + +++ NEW METHOD: PUBLIC(+) void clear() + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.Collector) + +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.MultiCollector) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots scrape() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots scrape(io.prometheus.metrics.model.registry.PrometheusScrapeRequest) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots scrape(java.util.function.Predicate) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots scrape(java.util.function.Predicate, io.prometheus.metrics.model.registry.PrometheusScrapeRequest) + +++ NEW METHOD: PUBLIC(+) void unregister(io.prometheus.metrics.model.registry.Collector) + +++ NEW METHOD: PUBLIC(+) void unregister(io.prometheus.metrics.model.registry.MultiCollector) ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.registry.PrometheusScrapeRequest (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String[] getParameterValues(java.lang.String) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String getRequestPath() ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBucket (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.Comparable + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) ClassicHistogramBucket(double, long) + +++ NEW METHOD: PUBLIC(+) int compareTo(io.prometheus.metrics.model.snapshots.ClassicHistogramBucket) + +++ NEW METHOD: PUBLIC(+) long getCount() + +++ NEW METHOD: PUBLIC(+) double getUpperBound() ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.Iterable + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets EMPTY + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets$Builder builder() + +++ NEW METHOD: PUBLIC(+) long getCount(int) + +++ NEW METHOD: PUBLIC(+) double getUpperBound(int) + +++ NEW METHOD: PUBLIC(+) boolean isEmpty() + +++ NEW METHOD: PUBLIC(+) java.util.Iterator iterator() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets of(java.util.List, java.util.List) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets of(double[], java.lang.Number[]) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets of(double[], long[]) + +++ NEW METHOD: PUBLIC(+) int size() + +++ NEW METHOD: PUBLIC(+) java.util.stream.Stream stream() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets$Builder bucket(double, long) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets build() ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot + +++ NEW CONSTRUCTOR: PUBLIC(+) CounterSnapshot(io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.util.List getDataPoints() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot$Builder dataPoint(io.prometheus.metrics.model.snapshots.CounterSnapshot$CounterDataPointSnapshot) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot$CounterDataPointSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.DataPointSnapshot + +++ NEW CONSTRUCTOR: PUBLIC(+) CounterSnapshot$CounterDataPointSnapshot(double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplar, long) + +++ NEW CONSTRUCTOR: PUBLIC(+) CounterSnapshot$CounterDataPointSnapshot(double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplar, long, long, boolean) + +++ NEW CONSTRUCTOR: PUBLIC(+) CounterSnapshot$CounterDataPointSnapshot(double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplar, long, long) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot$CounterDataPointSnapshot$Builder builder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar getExemplar() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) double getValue() ++++ NEW CLASS: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.snapshots.DataPointSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) long getCreatedTimestampMillis() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels getLabels() + +++ NEW METHOD: PUBLIC(+) long getScrapeTimestampMillis() + +++ NEW METHOD: PUBLIC(+) boolean hasCreatedTimestamp() + +++ NEW METHOD: PUBLIC(+) boolean hasScrapeTimestamp() ++++ NEW CLASS: PUBLIC(+) ABSTRACT(+) STATIC(+) io.prometheus.metrics.model.snapshots.DataPointSnapshot$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + GENERIC TEMPLATES: +++ T:io.prometheus.metrics.model.snapshots.DataPointSnapshot$Builder + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) DataPointSnapshot$Builder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.DataPointSnapshot$Builder labels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.DataPointSnapshot$Builder scrapeTimestampMillis(long) ++++ NEW CLASS: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.snapshots.DistributionDataPointSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.DataPointSnapshot + +++ NEW METHOD: PUBLIC(+) long getCount() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplars getExemplars() + +++ NEW METHOD: PUBLIC(+) double getSum() + +++ NEW METHOD: PUBLIC(+) boolean hasCount() + +++ NEW METHOD: PUBLIC(+) boolean hasSum() ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.DuplicateLabelsException (compatible) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.io.Serializable + +++ NEW SUPERCLASS: java.lang.IllegalArgumentException + +++ NEW CONSTRUCTOR: PUBLIC(+) DuplicateLabelsException(io.prometheus.metrics.model.snapshots.MetricMetadata, io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels getLabels() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricMetadata getMetadata() ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String SPAN_ID + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String TRACE_ID + +++ NEW CONSTRUCTOR: PUBLIC(+) Exemplar(double, io.prometheus.metrics.model.snapshots.Labels, long) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Exemplar$Builder builder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels getLabels() + +++ NEW METHOD: PUBLIC(+) long getTimestampMillis() + +++ NEW METHOD: PUBLIC(+) double getValue() + +++ NEW METHOD: PUBLIC(+) boolean hasTimestamp() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Exemplar$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar$Builder labels(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar$Builder spanId(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar$Builder timestampMillis(long) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar$Builder traceId(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar$Builder value(double) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplars (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.Iterable + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Exemplars EMPTY + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Exemplars$Builder builder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar get(int) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar get(double, double) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar getLatest() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.util.Iterator iterator() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Exemplars of(java.util.Collection) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Exemplars of(io.prometheus.metrics.model.snapshots.Exemplar[]) + +++ NEW METHOD: PUBLIC(+) int size() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Exemplars$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplars build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplars$Builder exemplar(io.prometheus.metrics.model.snapshots.Exemplar) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplars$Builder exemplars(java.util.Collection) ++++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot + +++ NEW CONSTRUCTOR: PUBLIC(+) GaugeSnapshot(io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.util.List getDataPoints() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot$Builder dataPoint(io.prometheus.metrics.model.snapshots.GaugeSnapshot$GaugeDataPointSnapshot) ++++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot$GaugeDataPointSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.DataPointSnapshot + +++ NEW CONSTRUCTOR: PUBLIC(+) GaugeSnapshot$GaugeDataPointSnapshot(double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplar, long) + +++ NEW CONSTRUCTOR: PUBLIC(+) GaugeSnapshot$GaugeDataPointSnapshot(double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplar) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot$GaugeDataPointSnapshot$Builder builder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar getExemplar() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) double getValue() ++++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) int CLASSIC_HISTOGRAM + +++ NEW CONSTRUCTOR: PUBLIC(+) HistogramSnapshot(io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) + +++ NEW CONSTRUCTOR: PUBLIC(+) HistogramSnapshot(boolean, io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.util.List getDataPoints() + +++ NEW METHOD: PUBLIC(+) boolean isGaugeHistogram() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot$Builder dataPoint(io.prometheus.metrics.model.snapshots.HistogramSnapshot$HistogramDataPointSnapshot) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot$Builder gaugeHistogram(boolean) ++++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot$HistogramDataPointSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.DistributionDataPointSnapshot + +++ NEW CONSTRUCTOR: PUBLIC(+) HistogramSnapshot$HistogramDataPointSnapshot(int, long, double, io.prometheus.metrics.model.snapshots.NativeHistogramBuckets, io.prometheus.metrics.model.snapshots.NativeHistogramBuckets, double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplars, long) + +++ NEW CONSTRUCTOR: PUBLIC(+) HistogramSnapshot$HistogramDataPointSnapshot(io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets, int, long, double, io.prometheus.metrics.model.snapshots.NativeHistogramBuckets, io.prometheus.metrics.model.snapshots.NativeHistogramBuckets, double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplars, long) + +++ NEW CONSTRUCTOR: PUBLIC(+) HistogramSnapshot$HistogramDataPointSnapshot(io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets, int, long, double, io.prometheus.metrics.model.snapshots.NativeHistogramBuckets, io.prometheus.metrics.model.snapshots.NativeHistogramBuckets, double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplars, long, long) + +++ NEW CONSTRUCTOR: PUBLIC(+) HistogramSnapshot$HistogramDataPointSnapshot(io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets, double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplars, long) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot$HistogramDataPointSnapshot$Builder builder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets getClassicBuckets() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets getNativeBucketsForNegativeValues() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets getNativeBucketsForPositiveValues() + +++ NEW METHOD: PUBLIC(+) int getNativeSchema() + +++ NEW METHOD: PUBLIC(+) long getNativeZeroCount() + +++ NEW METHOD: PUBLIC(+) double getNativeZeroThreshold() + +++ NEW METHOD: PUBLIC(+) boolean hasClassicHistogramData() + +++ NEW METHOD: PUBLIC(+) boolean hasNativeHistogramData() ++++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.InfoSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot + +++ NEW CONSTRUCTOR: PUBLIC(+) InfoSnapshot(io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.InfoSnapshot$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.util.List getDataPoints() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.InfoSnapshot$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.InfoSnapshot build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.InfoSnapshot$Builder dataPoint(io.prometheus.metrics.model.snapshots.InfoSnapshot$InfoDataPointSnapshot) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.InfoSnapshot$Builder unit(io.prometheus.metrics.model.snapshots.Unit) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.InfoSnapshot$InfoDataPointSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.DataPointSnapshot + +++ NEW CONSTRUCTOR: PUBLIC(+) InfoSnapshot$InfoDataPointSnapshot(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW CONSTRUCTOR: PUBLIC(+) InfoSnapshot$InfoDataPointSnapshot(io.prometheus.metrics.model.snapshots.Labels, long) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.InfoSnapshot$InfoDataPointSnapshot$Builder builder() ++++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Label (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.Comparable + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) Label(java.lang.String, java.lang.String) + +++ NEW METHOD: PUBLIC(+) int compareTo(io.prometheus.metrics.model.snapshots.Label) + +++ NEW METHOD: PUBLIC(+) boolean equals(java.lang.Object) + +++ NEW METHOD: PUBLIC(+) java.lang.String getName() + +++ NEW METHOD: PUBLIC(+) java.lang.String getValue() + +++ NEW METHOD: PUBLIC(+) int hashCode() + +++ NEW METHOD: PUBLIC(+) java.lang.String toString() ++++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Labels (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.Comparable + +++ NEW INTERFACE: java.lang.Iterable + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Labels EMPTY + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels add(java.lang.String, java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Labels$Builder builder() + +++ NEW METHOD: PUBLIC(+) int compareTo(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) boolean contains(java.lang.String) + +++ NEW METHOD: PUBLIC(+) boolean equals(java.lang.Object) + +++ NEW METHOD: PUBLIC(+) java.lang.String get(java.lang.String) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String getName(int) + +++ NEW METHOD: PUBLIC(+) java.lang.String getPrometheusName(int) + +++ NEW METHOD: PUBLIC(+) java.lang.String getValue(int) + +++ NEW METHOD: PUBLIC(+) int hashCode() + +++ NEW METHOD: PUBLIC(+) boolean hasSameNames(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) boolean hasSameValues(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) boolean isEmpty() + +++ NEW METHOD: PUBLIC(+) java.util.Iterator iterator() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels merge(io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels merge(java.lang.String[], java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Labels of(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Labels of(java.util.List, java.util.List) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Labels of(java.lang.String[], java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) int size() + +++ NEW METHOD: PUBLIC(+) java.util.stream.Stream stream() + +++ NEW METHOD: PUBLIC(+) java.lang.String toString() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Labels$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels$Builder label(java.lang.String, java.lang.String) ++++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$CounterBuilder counter(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$GaugeBuilder gauge(java.lang.String) + +++ NEW METHOD: PUBLIC(+) java.util.Set getLabelNames() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricMetadata getMetadata() + +++ NEW METHOD: PUBLIC(+) java.lang.String getPrometheusName() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getType() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$HistogramBuilder histogram(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$InfoBuilder info(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor of(io.prometheus.metrics.model.registry.MetricType, io.prometheus.metrics.model.snapshots.MetricMetadata) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor of(io.prometheus.metrics.model.registry.MetricType, io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder of(io.prometheus.metrics.model.registry.MetricType, java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$StateSetBuilder stateSet(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$SummaryBuilder summary(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$UnknownBuilder unknown(java.lang.String) ++++ NEW CLASS: PUBLIC(+) ABSTRACT(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + GENERIC TEMPLATES: +++ T:io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricFamilyDescriptor$Builder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder help(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder labelName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder labelNames(java.lang.String[]) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder labelNames(java.util.Collection) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder name(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder unit(io.prometheus.metrics.model.snapshots.Unit) ++++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$CounterBuilder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricFamilyDescriptor$CounterBuilder() ++++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$GaugeBuilder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricFamilyDescriptor$GaugeBuilder() ++++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$HistogramBuilder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricFamilyDescriptor$HistogramBuilder() ++++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$InfoBuilder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricFamilyDescriptor$InfoBuilder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$InfoBuilder unit(io.prometheus.metrics.model.snapshots.Unit) ++++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$StateSetBuilder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricFamilyDescriptor$StateSetBuilder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$StateSetBuilder unit(io.prometheus.metrics.model.snapshots.Unit) ++++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$SummaryBuilder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricFamilyDescriptor$SummaryBuilder() ++++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$UnknownBuilder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricFamilyDescriptor$UnknownBuilder() ++++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricMetadata (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricMetadata(java.lang.String, java.lang.String, java.lang.String, io.prometheus.metrics.model.snapshots.Unit) + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricMetadata(java.lang.String) + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricMetadata(java.lang.String, java.lang.String, io.prometheus.metrics.model.snapshots.Unit) + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricMetadata(java.lang.String, java.lang.String, java.lang.String, java.lang.String, io.prometheus.metrics.model.snapshots.Unit) + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricMetadata(java.lang.String, java.lang.String) + +++ NEW METHOD: PUBLIC(+) java.lang.String getExpositionBaseName() + +++ NEW METHOD: PUBLIC(+) java.lang.String getExpositionBasePrometheusName() + +++ NEW METHOD: PUBLIC(+) java.lang.String getHelp() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) java.lang.String getName() + +++ NEW METHOD: PUBLIC(+) java.lang.String getOriginalName() + +++ NEW METHOD: PUBLIC(+) java.lang.String getPrometheusName() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Unit getUnit() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) boolean hasUnit() ++++ NEW CLASS: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.snapshots.MetricSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.util.List getDataPoints() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricMetadata getMetadata() ++++ NEW CLASS: PUBLIC(+) ABSTRACT(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + GENERIC TEMPLATES: +++ T:io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricSnapshot$Builder() + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.snapshots.MetricSnapshot build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder help(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder name(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder unit(io.prometheus.metrics.model.snapshots.Unit) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.Iterable + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricSnapshots(java.util.Collection) + +++ NEW CONSTRUCTOR: PUBLIC(+) MetricSnapshots(io.prometheus.metrics.model.snapshots.MetricSnapshot[]) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots$Builder builder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot get(int) + +++ NEW METHOD: PUBLIC(+) java.util.Iterator iterator() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots of(io.prometheus.metrics.model.snapshots.MetricSnapshot[]) + +++ NEW METHOD: PUBLIC(+) int size() + +++ NEW METHOD: PUBLIC(+) java.util.stream.Stream stream() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots build() + +++ NEW METHOD: PUBLIC(+) boolean containsMetricName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots$Builder metricSnapshot(io.prometheus.metrics.model.snapshots.MetricSnapshot) ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBucket (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) NativeHistogramBucket(int, long) + +++ NEW METHOD: PUBLIC(+) int getBucketIndex() + +++ NEW METHOD: PUBLIC(+) long getCount() ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.Iterable + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets EMPTY + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets$Builder builder() + +++ NEW METHOD: PUBLIC(+) int getBucketIndex(int) + +++ NEW METHOD: PUBLIC(+) long getCount(int) + +++ NEW METHOD: PUBLIC(+) java.util.Iterator iterator() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets of(int[], long[]) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets of(java.util.List, java.util.List) + +++ NEW METHOD: PUBLIC(+) int size() + +++ NEW METHOD: PUBLIC(+) java.util.stream.Stream stream() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets$Builder bucket(int, long) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets build() ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.PrometheusNaming (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusNaming() + +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String escapeName(java.lang.String, io.prometheus.metrics.config.EscapingScheme) + +++ NEW METHOD: PUBLIC(+) STATIC(+) boolean isValidLabelName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) boolean isValidLegacyLabelName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) boolean isValidLegacyMetricName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) boolean isValidMetricName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) boolean isValidUnitName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) boolean needsEscaping(java.lang.String, io.prometheus.metrics.config.EscapingScheme) + +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String normalizeMetricName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String normalizeMetricName(java.lang.String, io.prometheus.metrics.model.snapshots.Unit) + +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String prometheusName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String sanitizeLabelName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String sanitizeMetricName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String sanitizeMetricName(java.lang.String, io.prometheus.metrics.model.snapshots.Unit) + +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String sanitizeUnitName(java.lang.String) + +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String validateMetricName(java.lang.String) + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String validateUnitName(java.lang.String) + +++ NEW ANNOTATION: javax.annotation.Nullable ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.Quantile (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW CONSTRUCTOR: PUBLIC(+) Quantile(double, double) + +++ NEW METHOD: PUBLIC(+) double getQuantile() + +++ NEW METHOD: PUBLIC(+) double getValue() ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.Quantiles (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.Iterable + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Quantiles EMPTY + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Quantiles$Builder builder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Quantile get(int) + +++ NEW METHOD: PUBLIC(+) java.util.Iterator iterator() + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Quantiles of(java.util.List) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Quantiles of(io.prometheus.metrics.model.snapshots.Quantile[]) + +++ NEW METHOD: PUBLIC(+) int size() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Quantiles$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Quantiles build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Quantiles$Builder quantile(io.prometheus.metrics.model.snapshots.Quantile) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Quantiles$Builder quantile(double, double) ++++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot + +++ NEW CONSTRUCTOR: PUBLIC(+) StateSetSnapshot(io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.util.List getDataPoints() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot$Builder dataPoint(io.prometheus.metrics.model.snapshots.StateSetSnapshot$StateSetDataPointSnapshot) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot$Builder unit(io.prometheus.metrics.model.snapshots.Unit) ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot$State (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) java.lang.String getName() + +++ NEW METHOD: PUBLIC(+) boolean isTrue() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot$StateSetDataPointSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: java.lang.Iterable + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.DataPointSnapshot + +++ NEW CONSTRUCTOR: PUBLIC(+) StateSetSnapshot$StateSetDataPointSnapshot(java.lang.String[], boolean[], io.prometheus.metrics.model.snapshots.Labels, long) + +++ NEW CONSTRUCTOR: PUBLIC(+) StateSetSnapshot$StateSetDataPointSnapshot(java.lang.String[], boolean[], io.prometheus.metrics.model.snapshots.Labels) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot$StateSetDataPointSnapshot$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.lang.String getName(int) + +++ NEW METHOD: PUBLIC(+) boolean isTrue(int) + +++ NEW METHOD: PUBLIC(+) java.util.Iterator iterator() + +++ NEW METHOD: PUBLIC(+) int size() + +++ NEW METHOD: PUBLIC(+) java.util.stream.Stream stream() ++++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.SummarySnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot + +++ NEW CONSTRUCTOR: PUBLIC(+) SummarySnapshot(io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.SummarySnapshot$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.util.List getDataPoints() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.SummarySnapshot$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.SummarySnapshot build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.SummarySnapshot$Builder dataPoint(io.prometheus.metrics.model.snapshots.SummarySnapshot$SummaryDataPointSnapshot) ++++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.SummarySnapshot$SummaryDataPointSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.DistributionDataPointSnapshot + +++ NEW CONSTRUCTOR: PUBLIC(+) SummarySnapshot$SummaryDataPointSnapshot(long, double, io.prometheus.metrics.model.snapshots.Quantiles, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplars, long, long) + +++ NEW CONSTRUCTOR: PUBLIC(+) SummarySnapshot$SummaryDataPointSnapshot(long, double, io.prometheus.metrics.model.snapshots.Quantiles, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplars, long) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.SummarySnapshot$SummaryDataPointSnapshot$Builder builder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Quantiles getQuantiles() ++++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit BYTES + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit GRAMS + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit METERS + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit VOLTS + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit SECONDS + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit RATIO + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit CELSIUS + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit JOULES + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit AMPERES + +++ NEW CONSTRUCTOR: PUBLIC(+) Unit(java.lang.String) + +++ NEW METHOD: PUBLIC(+) boolean equals(java.lang.Object) + +++ NEW METHOD: PUBLIC(+) int hashCode() + +++ NEW METHOD: PUBLIC(+) STATIC(+) double kiloBytesToBytes(double) + +++ NEW METHOD: PUBLIC(+) STATIC(+) double millisToSeconds(long) + +++ NEW METHOD: PUBLIC(+) STATIC(+) double nanosToSeconds(long) + +++ NEW METHOD: PUBLIC(+) STATIC(+) double secondsToMillis(double) + +++ NEW METHOD: PUBLIC(+) java.lang.String toString() ++++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.UnknownSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot + +++ NEW CONSTRUCTOR: PUBLIC(+) UnknownSnapshot(io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.UnknownSnapshot$Builder builder() + +++ NEW METHOD: PUBLIC(+) java.util.List getDataPoints() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.UnknownSnapshot$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.UnknownSnapshot build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.UnknownSnapshot$Builder dataPoint(io.prometheus.metrics.model.snapshots.UnknownSnapshot$UnknownDataPointSnapshot) ++++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.UnknownSnapshot$UnknownDataPointSnapshot (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.DataPointSnapshot + +++ NEW CONSTRUCTOR: PUBLIC(+) UnknownSnapshot$UnknownDataPointSnapshot(double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplar, long) + +++ NEW CONSTRUCTOR: PUBLIC(+) UnknownSnapshot$UnknownDataPointSnapshot(double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplar) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.UnknownSnapshot$UnknownDataPointSnapshot$Builder builder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar getExemplar() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) double getValue() + diff --git a/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-simpleclient-bridge.txt b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-simpleclient-bridge.txt new file mode 100644 index 000000000..bb1fb6594 --- /dev/null +++ b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-simpleclient-bridge.txt @@ -0,0 +1,16 @@ +Comparing source compatibility of prometheus-metrics-simpleclient-bridge-1.6.2-SNAPSHOT.jar against prometheus-metrics-simpleclient-bridge-1.6.1.jar ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.simpleclient.bridge.SimpleclientCollector (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW INTERFACE: io.prometheus.metrics.model.registry.MultiCollector + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.simpleclient.bridge.SimpleclientCollector$Builder builder(io.prometheus.metrics.config.PrometheusProperties) + +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.simpleclient.bridge.SimpleclientCollector$Builder builder() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots collect() ++++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.simpleclient.bridge.SimpleclientCollector$Builder (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.simpleclient.bridge.SimpleclientCollector build() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.simpleclient.bridge.SimpleclientCollector$Builder collectorRegistry(io.prometheus.client.CollectorRegistry) + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.simpleclient.bridge.SimpleclientCollector register() + +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.simpleclient.bridge.SimpleclientCollector register(io.prometheus.metrics.model.registry.PrometheusRegistry) + diff --git a/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-tracer-common.txt b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-tracer-common.txt new file mode 100644 index 000000000..6782f73f2 --- /dev/null +++ b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-tracer-common.txt @@ -0,0 +1,13 @@ +Comparing source compatibility of prometheus-metrics-tracer-common-1.6.2-SNAPSHOT.jar against prometheus-metrics-tracer-common-1.6.1.jar ++++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.tracer.common.SpanContext (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String EXEMPLAR_ATTRIBUTE_NAME + +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String EXEMPLAR_ATTRIBUTE_VALUE + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String getCurrentSpanId() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String getCurrentTraceId() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) boolean isCurrentSpanSampled() + +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void markCurrentSpanAsExemplar() + diff --git a/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-tracer-initializer.txt b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-tracer-initializer.txt new file mode 100644 index 000000000..2d9b9b09d --- /dev/null +++ b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-tracer-initializer.txt @@ -0,0 +1,2 @@ +Comparing source compatibility of prometheus-metrics-tracer-initializer-1.6.2-SNAPSHOT.jar against prometheus-metrics-tracer-initializer-1.6.1.jar +No changes. diff --git a/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-tracer-otel-agent.txt b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-tracer-otel-agent.txt new file mode 100644 index 000000000..c44f14c31 --- /dev/null +++ b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-tracer-otel-agent.txt @@ -0,0 +1,2 @@ +Comparing source compatibility of prometheus-metrics-tracer-otel-agent-1.6.2-SNAPSHOT.jar against prometheus-metrics-tracer-otel-agent-1.6.1.jar +No changes. diff --git a/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-tracer-otel.txt b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-tracer-otel.txt new file mode 100644 index 000000000..b6419eebe --- /dev/null +++ b/docs/apidiffs/1.7.0_vs_1.6.1/prometheus-metrics-tracer-otel.txt @@ -0,0 +1,2 @@ +Comparing source compatibility of prometheus-metrics-tracer-otel-1.6.2-SNAPSHOT.jar against prometheus-metrics-tracer-otel-1.6.1.jar +No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-annotations.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-annotations.txt index b2f6a39d8..36053089a 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-annotations.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-annotations.txt @@ -1,11 +1,2 @@ -Comparing source compatibility of prometheus-metrics-annotations-1.6.2-SNAPSHOT.jar against -+++ NEW ANNOTATION: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.annotations.StableApi (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: java.lang.annotation.Annotation - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW ANNOTATION: java.lang.annotation.Documented - +++ NEW ANNOTATION: java.lang.annotation.Target - +++ NEW ELEMENT: value=java.lang.annotation.ElementType.TYPE,java.lang.annotation.ElementType.CONSTRUCTOR,java.lang.annotation.ElementType.METHOD,java.lang.annotation.ElementType.FIELD (+) - +++ NEW ANNOTATION: java.lang.annotation.Retention - +++ NEW ELEMENT: value=java.lang.annotation.RetentionPolicy.CLASS (+) - +Comparing source compatibility of prometheus-metrics-annotations-1.7.1-SNAPSHOT.jar against prometheus-metrics-annotations-1.7.0.jar +No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-config.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-config.txt index dd61db431..516d53a00 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-config.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-config.txt @@ -1,263 +1,2 @@ -Comparing source compatibility of prometheus-metrics-config-1.6.2-SNAPSHOT.jar against prometheus-metrics-config-1.6.1.jar -+++ NEW ENUM: PUBLIC(+) FINAL(+) io.prometheus.metrics.config.EscapingScheme (compatible) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: java.lang.constant.Constable - +++ NEW INTERFACE: java.lang.Comparable - +++ NEW INTERFACE: java.io.Serializable - +++ NEW SUPERCLASS: java.lang.Enum - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.config.EscapingScheme DOTS_ESCAPING - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.config.EscapingScheme ALLOW_UTF8 - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.config.EscapingScheme UNDERSCORE_ESCAPING - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.config.EscapingScheme VALUE_ENCODING_ESCAPING - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.config.EscapingScheme DEFAULT - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.EscapingScheme fromAcceptHeader(java.lang.String) - +++ NEW METHOD: PUBLIC(+) FINAL(+) java.lang.String getValue() - +++ NEW METHOD: PUBLIC(+) java.lang.String toHeaderFormat() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.EscapingScheme valueOf(java.lang.String) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.EscapingScheme[] values() -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.ExemplarsProperties (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExemplarsProperties$Builder builder() - +++ NEW METHOD: PUBLIC(+) java.lang.Integer getMaxRetentionPeriodSeconds() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.lang.Integer getMinRetentionPeriodSeconds() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.lang.Integer getSampleIntervalMilliseconds() - +++ NEW ANNOTATION: javax.annotation.Nullable -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExemplarsProperties$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExemplarsProperties build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExemplarsProperties$Builder maxRetentionPeriodSeconds(int) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExemplarsProperties$Builder minRetentionPeriodSeconds(int) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExemplarsProperties$Builder sampleIntervalMilliseconds(int) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.ExporterFilterProperties (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String METRIC_NAME_MUST_NOT_BE_EQUAL_TO - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String METRIC_NAME_MUST_START_WITH - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String METRIC_NAME_MUST_NOT_START_WITH - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String METRIC_NAME_MUST_BE_EQUAL_TO - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterFilterProperties$Builder builder() - +++ NEW METHOD: PUBLIC(+) java.util.List getAllowedMetricNamePrefixes() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.util.List getAllowedMetricNames() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.util.List getExcludedMetricNamePrefixes() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.util.List getExcludedMetricNames() - +++ NEW ANNOTATION: javax.annotation.Nullable -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterFilterProperties$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterFilterProperties$Builder allowedNames(java.lang.String[]) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterFilterProperties$Builder allowedPrefixes(java.lang.String[]) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterFilterProperties build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterFilterProperties$Builder excludedNames(java.lang.String[]) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterFilterProperties$Builder excludedPrefixes(java.lang.String[]) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.ExporterHttpServerProperties (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterHttpServerProperties$Builder builder() - +++ NEW METHOD: PUBLIC(+) java.lang.Integer getPort() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) boolean isPreferUncompressedResponse() -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterHttpServerProperties$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterHttpServerProperties build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterHttpServerProperties$Builder port(int) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterHttpServerProperties$Builder preferUncompressedResponse(boolean) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder builder() - +++ NEW METHOD: PUBLIC(+) java.lang.String getEndpoint() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.util.Map getHeaders() - +++ NEW METHOD: PUBLIC(+) java.lang.String getInterval() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.lang.Boolean getPreserveNames() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.lang.String getProtocol() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.util.Map getResourceAttributes() - +++ NEW METHOD: PUBLIC(+) java.lang.String getServiceInstanceId() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.lang.String getServiceName() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.lang.String getServiceNamespace() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.lang.String getServiceVersion() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.lang.String getTimeout() - +++ NEW ANNOTATION: javax.annotation.Nullable -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder endpoint(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder header(java.lang.String, java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder intervalSeconds(int) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder preserveNames(boolean) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder protocol(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder resourceAttribute(java.lang.String, java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder serviceInstanceId(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder serviceName(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder serviceNamespace(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder serviceVersion(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties$Builder timeoutSeconds(int) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.ExporterProperties (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterProperties$Builder builder() - +++ NEW METHOD: PUBLIC(+) boolean getExemplarsOnAllMetricTypes() - +++ NEW METHOD: PUBLIC(+) boolean getIncludeCreatedTimestamps() - +++ NEW METHOD: PUBLIC(+) boolean getPrometheusTimestampsInMs() -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterProperties$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterProperties build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterProperties$Builder exemplarsOnAllMetricTypes(boolean) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterProperties$Builder includeCreatedTimestamps(boolean) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterProperties$Builder prometheusTimestampsInMs(boolean) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties$Builder builder() - +++ NEW METHOD: PUBLIC(+) java.lang.String getAddress() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.time.Duration getConnectTimeout() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.EscapingScheme getEscapingScheme() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.lang.String getJob() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.time.Duration getReadTimeout() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.lang.String getScheme() - +++ NEW ANNOTATION: javax.annotation.Nullable -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties$Builder address(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties$Builder connectTimeout(java.time.Duration) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties$Builder escapingScheme(io.prometheus.metrics.config.EscapingScheme) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties$Builder job(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties$Builder readTimeout(java.time.Duration) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties$Builder scheme(java.lang.String) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) MetricsProperties(java.lang.Boolean, java.lang.Boolean, java.lang.Boolean, java.util.List, java.lang.Integer, java.lang.Double, java.lang.Double, java.lang.Integer, java.lang.Long, java.util.List, java.util.List, java.lang.Long, java.lang.Integer) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.MetricsProperties$Builder builder() - +++ NEW METHOD: PUBLIC(+) java.lang.Boolean getExemplarsEnabled() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.lang.Boolean getHistogramClassicOnly() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.util.List getHistogramClassicUpperBounds() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.lang.Integer getHistogramNativeInitialSchema() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.lang.Integer getHistogramNativeMaxNumberOfBuckets() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.lang.Double getHistogramNativeMaxZeroThreshold() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.lang.Double getHistogramNativeMinZeroThreshold() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.lang.Boolean getHistogramNativeOnly() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.lang.Long getHistogramNativeResetDurationSeconds() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.lang.Long getSummaryMaxAgeSeconds() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.lang.Integer getSummaryNumberOfAgeBuckets() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.util.List getSummaryQuantileErrors() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.util.List getSummaryQuantiles() - +++ NEW ANNOTATION: javax.annotation.Nullable -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.MetricsProperties$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder exemplarsEnabled(java.lang.Boolean) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder histogramClassicOnly(java.lang.Boolean) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder histogramClassicUpperBounds(double[]) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder histogramNativeInitialSchema(java.lang.Integer) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder histogramNativeMaxNumberOfBuckets(java.lang.Integer) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder histogramNativeMaxZeroThreshold(java.lang.Double) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder histogramNativeMinZeroThreshold(java.lang.Double) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder histogramNativeOnly(java.lang.Boolean) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder histogramNativeResetDurationSeconds(java.lang.Long) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder summaryMaxAgeSeconds(java.lang.Long) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder summaryNumberOfAgeBuckets(java.lang.Integer) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder summaryQuantileErrors(double[]) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties$Builder summaryQuantiles(double[]) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder builder() - +++ NEW METHOD: PUBLIC(+) boolean getCompositeValues() - +++ NEW METHOD: PUBLIC(+) boolean getContentNegotiation() - +++ NEW METHOD: PUBLIC(+) boolean getEnabled() - +++ NEW METHOD: PUBLIC(+) boolean getExemplarCompliance() - +++ NEW METHOD: PUBLIC(+) boolean getNativeHistograms() -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder compositeValues(boolean) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder contentNegotiation(boolean) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder enableAll() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder enabled(boolean) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder exemplarCompliance(boolean) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties$Builder nativeHistograms(boolean) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.PrometheusProperties get() - +++ NEW EXCEPTION: io.prometheus.metrics.config.PrometheusPropertiesException - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties getDefaultMetricProperties() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExemplarsProperties getExemplarProperties() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterFilterProperties getExporterFilterProperties() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterHttpServerProperties getExporterHttpServerProperties() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterOpenTelemetryProperties getExporterOpenTelemetryProperties() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterProperties getExporterProperties() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.ExporterPushgatewayProperties getExporterPushgatewayProperties() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties getMetricProperties(java.lang.String) - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties getOpenMetrics2Properties() -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder defaultMetricsProperties(io.prometheus.metrics.config.MetricsProperties) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder enableOpenMetrics2(java.util.function.Consumer) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder exemplarProperties(io.prometheus.metrics.config.ExemplarsProperties) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder exporterFilterProperties(io.prometheus.metrics.config.ExporterFilterProperties) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder exporterHttpServerProperties(io.prometheus.metrics.config.ExporterHttpServerProperties) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder exporterOpenTelemetryProperties(io.prometheus.metrics.config.ExporterOpenTelemetryProperties) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder exporterProperties(io.prometheus.metrics.config.ExporterProperties) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder metricProperties(java.util.Map) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder openMetrics2Properties(io.prometheus.metrics.config.OpenMetrics2Properties) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder pushgatewayProperties(io.prometheus.metrics.config.ExporterPushgatewayProperties) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.PrometheusProperties$Builder putMetricProperty(java.lang.String, io.prometheus.metrics.config.MetricsProperties) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.PrometheusPropertiesException (compatible) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: java.io.Serializable - +++ NEW SUPERCLASS: java.lang.RuntimeException - +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusPropertiesException(java.lang.String) - +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusPropertiesException(java.lang.String, java.lang.Exception) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.config.PrometheusPropertiesLoader (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusPropertiesLoader() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.PrometheusProperties load() - +++ NEW EXCEPTION: io.prometheus.metrics.config.PrometheusPropertiesException - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.config.PrometheusProperties load(java.util.Map) - +++ NEW EXCEPTION: io.prometheus.metrics.config.PrometheusPropertiesException - +Comparing source compatibility of prometheus-metrics-config-1.7.1-SNAPSHOT.jar against prometheus-metrics-config-1.7.0.jar +No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-core.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-core.txt index f6b1e9a9c..85d68d53a 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-core.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-core.txt @@ -1,353 +1,2 @@ -Comparing source compatibility of prometheus-metrics-core-1.6.2-SNAPSHOT.jar against prometheus-metrics-core-1.6.1.jar -+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.datapoints.CounterDataPoint (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) double get() - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) long getLongValue() - +++ NEW METHOD: PUBLIC(+) void inc() - +++ NEW METHOD: PUBLIC(+) void inc(long) - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void inc(double) - +++ NEW METHOD: PUBLIC(+) void incWithExemplar(io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) void incWithExemplar(long, io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void incWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) -+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.datapoints.DataPoint (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object -+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.datapoints.DistributionDataPoint (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint - +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.TimerApi - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) long getCount() - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) double getSum() - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void observe(double) - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void observeWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.datapoints.Timer startTimer() -+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.datapoints.GaugeDataPoint (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint - +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.TimerApi - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) void dec() - +++ NEW METHOD: PUBLIC(+) void dec(double) - +++ NEW METHOD: PUBLIC(+) void decWithExemplar(io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) void decWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) double get() - +++ NEW METHOD: PUBLIC(+) void inc() - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void inc(double) - +++ NEW METHOD: PUBLIC(+) void incWithExemplar(io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void incWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void set(double) - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void setWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.datapoints.Timer startTimer() -+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.datapoints.StateSetDataPoint (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void setFalse(java.lang.String) - +++ NEW METHOD: PUBLIC(+) void setFalse(java.lang.Enum) - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void setTrue(java.lang.String) - +++ NEW METHOD: PUBLIC(+) void setTrue(java.lang.Enum) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.datapoints.Timer (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: java.io.Closeable - +++ NEW INTERFACE: java.lang.AutoCloseable - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) void close() - +++ NEW METHOD: PUBLIC(+) double observeDuration() -+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.datapoints.TimerApi (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.datapoints.Timer startTimer() - +++ NEW METHOD: PUBLIC(+) void time(java.lang.Runnable) - +++ NEW METHOD: PUBLIC(+) java.lang.Object time(java.util.function.Supplier) - GENERIC TEMPLATES: +++ T:java.lang.Object - +++ NEW METHOD: PUBLIC(+) java.lang.Object timeChecked(java.util.concurrent.Callable) - +++ NEW EXCEPTION: java.lang.Exception - GENERIC TEMPLATES: +++ T:java.lang.Object -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.exemplars.ExemplarSampler (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) ExemplarSampler(io.prometheus.metrics.core.exemplars.ExemplarSamplerConfig, io.prometheus.metrics.tracer.common.SpanContext) - +++ NEW CONSTRUCTOR: PUBLIC(+) ExemplarSampler(io.prometheus.metrics.core.exemplars.ExemplarSamplerConfig) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplars collect() - +++ NEW METHOD: PUBLIC(+) void observe(double) - +++ NEW METHOD: PUBLIC(+) void observeWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) void reset() -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.exemplars.ExemplarSamplerConfig (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) int DEFAULT_MIN_RETENTION_PERIOD_SECONDS - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) int DEFAULT_MAX_RETENTION_PERIOD_SECONDS - +++ NEW CONSTRUCTOR: PUBLIC(+) ExemplarSamplerConfig(io.prometheus.metrics.config.ExemplarsProperties, int) - +++ NEW CONSTRUCTOR: PUBLIC(+) ExemplarSamplerConfig(io.prometheus.metrics.config.ExemplarsProperties, double[]) - +++ NEW METHOD: PUBLIC(+) double[] getHistogramClassicUpperBounds() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) long getMaxRetentionPeriodMillis() - +++ NEW METHOD: PUBLIC(+) long getMinRetentionPeriodMillis() - +++ NEW METHOD: PUBLIC(+) int getNumberOfExemplars() - +++ NEW METHOD: PUBLIC(+) long getSampleIntervalMillis() -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.Counter (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector - +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint - +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.CounterDataPoint - +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Counter$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Counter$Builder builder(io.prometheus.metrics.config.PrometheusProperties) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot collect() - +++ NEW METHOD: PUBLIC(+) double get() - +++ NEW METHOD: PUBLIC(+) long getLongValue() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() - +++ NEW ANNOTATION: java.lang.Deprecated - +++ NEW METHOD: PUBLIC(+) void inc(long) - +++ NEW METHOD: PUBLIC(+) void inc(double) - +++ NEW METHOD: PUBLIC(+) void incWithExemplar(long, io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) void incWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Counter$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric$Builder - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Counter build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Counter$Builder name(java.lang.String) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.CounterWithCallback (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector - +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.CallbackMetric - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.CounterWithCallback$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.CounterWithCallback$Builder builder(io.prometheus.metrics.config.PrometheusProperties) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot collect() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() - +++ NEW ANNOTATION: java.lang.Deprecated -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.CounterWithCallback$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.CallbackMetric$Builder - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.CounterWithCallback build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.CounterWithCallback$Builder callback(java.util.function.Consumer) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.CounterWithCallback$Builder name(java.lang.String) -+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) STATIC(+) io.prometheus.metrics.core.metrics.CounterWithCallback$Callback (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void call(double, java.lang.String[]) - +++ NEW ANNOTATION: java.lang.FunctionalInterface -+++* NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.Gauge (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector - +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint - +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.GaugeDataPoint - +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.TimerApi - +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Gauge$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Gauge$Builder builder(io.prometheus.metrics.config.PrometheusProperties) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot collect() - +++ NEW METHOD: PUBLIC(+) double get() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() - +++ NEW ANNOTATION: java.lang.Deprecated - +++ NEW METHOD: PUBLIC(+) void inc(double) - +++ NEW METHOD: PUBLIC(+) void incWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) void set(double) - +++ NEW METHOD: PUBLIC(+) void setWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Gauge$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric$Builder - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Gauge build() -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.GaugeWithCallback (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector - +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.CallbackMetric - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.GaugeWithCallback$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.GaugeWithCallback$Builder builder(io.prometheus.metrics.config.PrometheusProperties) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot collect() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() - +++ NEW ANNOTATION: java.lang.Deprecated -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.GaugeWithCallback$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.CallbackMetric$Builder - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.GaugeWithCallback build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.GaugeWithCallback$Builder callback(java.util.function.Consumer) -+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) STATIC(+) io.prometheus.metrics.core.metrics.GaugeWithCallback$Callback (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void call(double, java.lang.String[]) - +++ NEW ANNOTATION: java.lang.FunctionalInterface -+++* NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector - +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DistributionDataPoint - +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint - +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.TimerApi - +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder builder(io.prometheus.metrics.config.PrometheusProperties) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot collect() - +++ NEW METHOD: PUBLIC(+) long getCount() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() - +++ NEW ANNOTATION: java.lang.Deprecated - +++ NEW METHOD: PUBLIC(+) double getSum() - +++ NEW METHOD: PUBLIC(+) void observe(double) - +++ NEW METHOD: PUBLIC(+) void observeWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric$Builder - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) double[] DEFAULT_CLASSIC_UPPER_BOUNDS - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder classicExponentialUpperBounds(double, double, int) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder classicLinearUpperBounds(double, double, int) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder classicOnly() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder classicUpperBounds(double[]) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties getDefaultProperties() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder nativeInitialSchema(int) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder nativeMaxNumberOfBuckets(int) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder nativeMaxZeroThreshold(double) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder nativeMinZeroThreshold(double) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder nativeOnly() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$Builder nativeResetDuration(long, java.util.concurrent.TimeUnit) -+++* NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.Histogram$DataPoint (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DistributionDataPoint - +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint - +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.TimerApi - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) long getCount() - +++ NEW METHOD: PUBLIC(+) double getSum() - +++ NEW METHOD: PUBLIC(+) void observe(double) - +++ NEW METHOD: PUBLIC(+) void observeWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.Info (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector - +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.MetricWithFixedMetadata - +++ NEW METHOD: PUBLIC(+) void addLabelValues(java.lang.String[]) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Info$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Info$Builder builder(io.prometheus.metrics.config.PrometheusProperties) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.InfoSnapshot collect() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() - +++ NEW ANNOTATION: java.lang.Deprecated - +++ NEW METHOD: PUBLIC(+) void remove(java.lang.String[]) - +++ NEW METHOD: PUBLIC(+) void setLabelValues(java.lang.String[]) -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Info$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.MetricWithFixedMetadata$Builder - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Info build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Info$Builder name(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Info$Builder unit(io.prometheus.metrics.model.snapshots.Unit) -+++ NEW CLASS: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.metrics.Metric (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.snapshots.MetricSnapshot collect() -+++ NEW CLASS: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.metrics.MetricWithFixedMetadata (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector - +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.Metric - +++ NEW METHOD: PUBLIC(+) java.util.Set getLabelNames() - +++ NEW ANNOTATION: java.lang.Deprecated - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricMetadata getMetadata() - +++ NEW ANNOTATION: java.lang.Deprecated - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor getMetricFamilyDescriptor() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.lang.String getPrometheusName() - +++ NEW ANNOTATION: java.lang.Deprecated -+++ NEW CLASS: PUBLIC(+) ABSTRACT(+) STATIC(+) io.prometheus.metrics.core.metrics.MetricWithFixedMetadata$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - GENERIC TEMPLATES: +++ B:io.prometheus.metrics.core.metrics.MetricWithFixedMetadata$Builder, +++ M:io.prometheus.metrics.core.metrics.MetricWithFixedMetadata - +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.Metric$Builder - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.metrics.MetricWithFixedMetadata build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.MetricWithFixedMetadata$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.MetricWithFixedMetadata$Builder help(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.MetricWithFixedMetadata$Builder labelNames(java.lang.String[]) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.MetricWithFixedMetadata$Builder name(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.MetricWithFixedMetadata$Builder unit(io.prometheus.metrics.model.snapshots.Unit) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.SlidingWindow (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - GENERIC TEMPLATES: +++ T:java.lang.Object - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) SlidingWindow(java.lang.Class, java.util.function.Supplier, java.util.function.ObjDoubleConsumer, long, int) - +++ NEW METHOD: PUBLIC(+) java.lang.Object current() - +++ NEW METHOD: PUBLIC(+) void observe(double) -+++ NEW CLASS: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.core.metrics.StatefulMetric (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - GENERIC TEMPLATES: +++ D:io.prometheus.metrics.core.datapoints.DataPoint, +++ T:D - +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector - +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.MetricWithFixedMetadata - +++ NEW METHOD: PUBLIC(+) void clear() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot collect() - +++ NEW METHOD: PUBLIC(+) void initLabelValues(java.lang.String[]) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.datapoints.DataPoint labelValues(java.lang.String[]) - +++ NEW METHOD: PUBLIC(+) void remove(java.lang.String[]) - +++ NEW METHOD: PUBLIC(+) void removeIf(java.util.function.Function,java.lang.Boolean>) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.StateSet (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector - +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint - +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.StateSetDataPoint - +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.StateSet$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.StateSet$Builder builder(io.prometheus.metrics.config.PrometheusProperties) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot collect() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() - +++ NEW ANNOTATION: java.lang.Deprecated - +++ NEW METHOD: PUBLIC(+) void setFalse(java.lang.String) - +++ NEW METHOD: PUBLIC(+) void setTrue(java.lang.String) -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.StateSet$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric$Builder - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.StateSet build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.StateSet$Builder states(java.lang.Class>) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.StateSet$Builder states(java.lang.String[]) -+++* NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.Summary (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector - +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DistributionDataPoint - +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint - +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.TimerApi - +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Summary$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Summary$Builder builder(io.prometheus.metrics.config.PrometheusProperties) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.SummarySnapshot collect() - +++ NEW METHOD: PUBLIC(+) long getCount() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() - +++ NEW ANNOTATION: java.lang.Deprecated - +++ NEW METHOD: PUBLIC(+) double getSum() - +++ NEW METHOD: PUBLIC(+) void observe(double) - +++ NEW METHOD: PUBLIC(+) void observeWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.Summary$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.StatefulMetric$Builder - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) long DEFAULT_MAX_AGE_SECONDS - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) int DEFAULT_NUMBER_OF_AGE_BUCKETS - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Summary build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.MetricsProperties getDefaultProperties() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Summary$Builder maxAgeSeconds(long) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Summary$Builder numberOfAgeBuckets(int) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Summary$Builder quantile(double) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.Summary$Builder quantile(double, double) -+++* NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.Summary$DataPoint (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DistributionDataPoint - +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.DataPoint - +++ NEW INTERFACE: io.prometheus.metrics.core.datapoints.TimerApi - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) long getCount() - +++ NEW METHOD: PUBLIC(+) double getSum() - +++ NEW METHOD: PUBLIC(+) void observe(double) - +++ NEW METHOD: PUBLIC(+) void observeWithExemplar(double, io.prometheus.metrics.model.snapshots.Labels) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.metrics.SummaryWithCallback (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.model.registry.Collector - +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.CallbackMetric - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.SummaryWithCallback$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.SummaryWithCallback$Builder builder(io.prometheus.metrics.config.PrometheusProperties) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.SummarySnapshot collect() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() - +++ NEW ANNOTATION: java.lang.Deprecated -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.core.metrics.SummaryWithCallback$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.core.metrics.CallbackMetric$Builder - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.SummaryWithCallback build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.core.metrics.SummaryWithCallback$Builder callback(java.util.function.Consumer) -+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) STATIC(+) io.prometheus.metrics.core.metrics.SummaryWithCallback$Callback (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void call(long, double, io.prometheus.metrics.model.snapshots.Quantiles, java.lang.String[]) - +++ NEW ANNOTATION: java.lang.FunctionalInterface - +Comparing source compatibility of prometheus-metrics-core-1.7.1-SNAPSHOT.jar against prometheus-metrics-core-1.7.0.jar +No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-common.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-common.txt index d2ba333af..b88c7d665 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-common.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-common.txt @@ -1,40 +1,2 @@ -Comparing source compatibility of prometheus-metrics-exporter-common-1.6.2-SNAPSHOT.jar against prometheus-metrics-exporter-common-1.6.1.jar -+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.exporter.common.PrometheusHttpExchange (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: java.lang.AutoCloseable - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void close() - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.exporter.common.PrometheusHttpRequest getRequest() - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.exporter.common.PrometheusHttpResponse getResponse() - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void handleException(java.io.IOException) - +++ NEW EXCEPTION: java.io.IOException - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void handleException(java.lang.RuntimeException) -+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.exporter.common.PrometheusHttpRequest (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.model.registry.PrometheusScrapeRequest - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) java.lang.String getHeader(java.lang.String) - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.util.Enumeration getHeaders(java.lang.String) - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String getMethod() - +++ NEW METHOD: PUBLIC(+) java.lang.String getParameter(java.lang.String) - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.lang.String[] getParameterValues(java.lang.String) - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String getQueryString() -+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.exporter.common.PrometheusHttpResponse (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.io.OutputStream sendHeadersAndGetBody(int, int) - +++ NEW EXCEPTION: java.io.IOException - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void setHeader(java.lang.String, java.lang.String) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.common.PrometheusScrapeHandler (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusScrapeHandler() - +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusScrapeHandler(io.prometheus.metrics.model.registry.PrometheusRegistry) - +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusScrapeHandler(io.prometheus.metrics.config.PrometheusProperties) - +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusScrapeHandler(io.prometheus.metrics.config.PrometheusProperties, io.prometheus.metrics.model.registry.PrometheusRegistry) - +++ NEW METHOD: PUBLIC(+) void handleRequest(io.prometheus.metrics.exporter.common.PrometheusHttpExchange) - +++ NEW EXCEPTION: java.io.IOException - +Comparing source compatibility of prometheus-metrics-exporter-common-1.7.1-SNAPSHOT.jar against prometheus-metrics-exporter-common-1.7.0.jar +No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-httpserver.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-httpserver.txt index decc352f5..805828aef 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-httpserver.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-httpserver.txt @@ -1,52 +1,2 @@ -Comparing source compatibility of prometheus-metrics-exporter-httpserver-1.6.2-SNAPSHOT.jar against prometheus-metrics-exporter-httpserver-1.6.1.jar -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.DefaultHandler (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: com.sun.net.httpserver.HttpHandler - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) DefaultHandler(java.lang.String) - +++ NEW METHOD: PUBLIC(+) void handle(com.sun.net.httpserver.HttpExchange) - +++ NEW EXCEPTION: java.io.IOException -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HealthyHandler (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: com.sun.net.httpserver.HttpHandler - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) HealthyHandler() - +++ NEW METHOD: PUBLIC(+) void handle(com.sun.net.httpserver.HttpExchange) - +++ NEW EXCEPTION: java.io.IOException -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: java.io.Closeable - +++ NEW INTERFACE: java.lang.AutoCloseable - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder builder(io.prometheus.metrics.config.PrometheusProperties) - +++ NEW METHOD: PUBLIC(+) void close() - +++ NEW METHOD: PUBLIC(+) int getPort() - +++ NEW METHOD: PUBLIC(+) void stop() -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder authenticatedSubjectAttributeName(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder authenticator(com.sun.net.httpserver.Authenticator) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer buildAndStart() - +++ NEW EXCEPTION: java.io.IOException - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder defaultHandler(com.sun.net.httpserver.HttpHandler) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder executorService(java.util.concurrent.ExecutorService) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder hostname(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder httpsConfigurator(com.sun.net.httpserver.HttpsConfigurator) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder inetAddress(java.net.InetAddress) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder metricsHandlerPath(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder port(int) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder registerHealthHandler(boolean) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.HTTPServer$Builder registry(io.prometheus.metrics.model.registry.PrometheusRegistry) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.httpserver.MetricsHandler (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: com.sun.net.httpserver.HttpHandler - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) MetricsHandler(io.prometheus.metrics.config.PrometheusProperties) - +++ NEW CONSTRUCTOR: PUBLIC(+) MetricsHandler(io.prometheus.metrics.model.registry.PrometheusRegistry) - +++ NEW CONSTRUCTOR: PUBLIC(+) MetricsHandler(io.prometheus.metrics.config.PrometheusProperties, io.prometheus.metrics.model.registry.PrometheusRegistry) - +++ NEW CONSTRUCTOR: PUBLIC(+) MetricsHandler() - +++ NEW METHOD: PUBLIC(+) void handle(com.sun.net.httpserver.HttpExchange) - +++ NEW EXCEPTION: java.io.IOException - +Comparing source compatibility of prometheus-metrics-exporter-httpserver-1.7.1-SNAPSHOT.jar against prometheus-metrics-exporter-httpserver-1.7.0.jar +No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt index e5d128dd6..7f7163856 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-otel-agent-resources.txt @@ -1,2 +1,2 @@ -Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-otel-agent-resources-1.6.2-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-otel-agent-resources-1.6.1.jar +Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-otel-agent-resources-1.7.1-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-otel-agent-resources-1.7.0.jar No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-shaded.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-shaded.txt index 8bc4f87f6..543c8e67e 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-shaded.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry-shaded.txt @@ -1,26 +1,2 @@ -Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-1.6.2-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-1.6.1.jar -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: java.lang.AutoCloseable - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) OpenTelemetryExporter(io.prometheus.metrics.shaded.io_opentelemetry_2_28_1_alpha.sdk.metrics.export.MetricReader) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder builder(io.prometheus.metrics.config.PrometheusProperties) - +++ NEW METHOD: PUBLIC(+) void close() -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter buildAndStart() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder endpoint(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder header(java.lang.String, java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder intervalSeconds(int) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder preserveNames(boolean) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder protocol(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder registry(io.prometheus.metrics.model.registry.PrometheusRegistry) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder resourceAttribute(java.lang.String, java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceInstanceId(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceName(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceNamespace(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceVersion(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder timeoutSeconds(int) - +Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-1.7.1-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-1.7.0.jar +No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry.txt index 19d112b08..764881093 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-opentelemetry.txt @@ -1,26 +1,2 @@ -Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-no-otel-1.6.2-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-no-otel-1.6.1.jar -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: java.lang.AutoCloseable - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) OpenTelemetryExporter(io.opentelemetry.sdk.metrics.export.MetricReader) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder builder(io.prometheus.metrics.config.PrometheusProperties) - +++ NEW METHOD: PUBLIC(+) void close() -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter buildAndStart() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder endpoint(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder header(java.lang.String, java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder intervalSeconds(int) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder preserveNames(boolean) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder protocol(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder registry(io.prometheus.metrics.model.registry.PrometheusRegistry) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder resourceAttribute(java.lang.String, java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceInstanceId(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceName(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceNamespace(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder serviceVersion(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.opentelemetry.OpenTelemetryExporter$Builder timeoutSeconds(int) - +Comparing source compatibility of prometheus-metrics-exporter-opentelemetry-no-otel-1.7.1-SNAPSHOT.jar against prometheus-metrics-exporter-opentelemetry-no-otel-1.7.0.jar +No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-pushgateway.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-pushgateway.txt index 82cd98d0e..4a4595d9c 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-pushgateway.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-pushgateway.txt @@ -1,75 +1,2 @@ -Comparing source compatibility of prometheus-metrics-exporter-pushgateway-1.6.2-SNAPSHOT.jar against prometheus-metrics-exporter-pushgateway-1.6.1.jar -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.DefaultHttpConnectionFactory (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.exporter.pushgateway.HttpConnectionFactory - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) DefaultHttpConnectionFactory() - +++ NEW METHOD: PUBLIC(+) java.net.HttpURLConnection create(java.net.URL) - +++ NEW EXCEPTION: java.io.IOException -+++ NEW ENUM: PUBLIC(+) FINAL(+) io.prometheus.metrics.exporter.pushgateway.Format (compatible) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: java.lang.constant.Constable - +++ NEW INTERFACE: java.lang.Comparable - +++ NEW INTERFACE: java.io.Serializable - +++ NEW SUPERCLASS: java.lang.Enum - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.exporter.pushgateway.Format PROMETHEUS_PROTOBUF - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.exporter.pushgateway.Format PROMETHEUS_TEXT - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.pushgateway.Format valueOf(java.lang.String) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.pushgateway.Format[] values() -+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.exporter.pushgateway.HttpConnectionFactory (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.net.HttpURLConnection create(java.net.URL) - +++ NEW EXCEPTION: java.io.IOException - +++ NEW ANNOTATION: java.lang.FunctionalInterface -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder builder(io.prometheus.metrics.config.PrometheusProperties) - +++ NEW METHOD: PUBLIC(+) void delete() - +++ NEW EXCEPTION: java.io.IOException - +++ NEW METHOD: PUBLIC(+) void push() - +++ NEW EXCEPTION: java.io.IOException - +++ NEW METHOD: PUBLIC(+) void push(io.prometheus.metrics.model.registry.Collector) - +++ NEW EXCEPTION: java.io.IOException - +++ NEW METHOD: PUBLIC(+) void push(io.prometheus.metrics.model.registry.MultiCollector) - +++ NEW EXCEPTION: java.io.IOException - +++ NEW METHOD: PUBLIC(+) void pushAdd() - +++ NEW EXCEPTION: java.io.IOException - +++ NEW METHOD: PUBLIC(+) void pushAdd(io.prometheus.metrics.model.registry.Collector) - +++ NEW EXCEPTION: java.io.IOException - +++ NEW METHOD: PUBLIC(+) void pushAdd(io.prometheus.metrics.model.registry.MultiCollector) - +++ NEW EXCEPTION: java.io.IOException -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder address(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder basicAuth(java.lang.String, java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder bearerToken(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder connectionFactory(io.prometheus.metrics.exporter.pushgateway.HttpConnectionFactory) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder connectionTimeout(java.time.Duration) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder escapingScheme(io.prometheus.metrics.config.EscapingScheme) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder format(io.prometheus.metrics.exporter.pushgateway.Format) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder groupingKey(java.lang.String, java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder instanceIpGroupingKey() - +++ NEW EXCEPTION: java.net.UnknownHostException - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder job(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder prometheusTimestampsInMs(boolean) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder readTimeout(java.time.Duration) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder registry(io.prometheus.metrics.model.registry.PrometheusRegistry) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.exporter.pushgateway.PushGateway$Builder scheme(io.prometheus.metrics.exporter.pushgateway.Scheme) -+++ NEW ENUM: PUBLIC(+) FINAL(+) io.prometheus.metrics.exporter.pushgateway.Scheme (compatible) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: java.lang.constant.Constable - +++ NEW INTERFACE: java.lang.Comparable - +++ NEW INTERFACE: java.io.Serializable - +++ NEW SUPERCLASS: java.lang.Enum - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.exporter.pushgateway.Scheme HTTPS - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.exporter.pushgateway.Scheme HTTP - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.pushgateway.Scheme fromString(java.lang.String) - +++ NEW METHOD: PUBLIC(+) java.lang.String toString() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.pushgateway.Scheme valueOf(java.lang.String) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.exporter.pushgateway.Scheme[] values() - +Comparing source compatibility of prometheus-metrics-exporter-pushgateway-1.7.1-SNAPSHOT.jar against prometheus-metrics-exporter-pushgateway-1.7.0.jar +No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-jakarta.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-jakarta.txt index 61372aa39..5c8102616 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-jakarta.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-jakarta.txt @@ -1,12 +1,2 @@ -Comparing source compatibility of prometheus-metrics-exporter-servlet-jakarta-1.6.2-SNAPSHOT.jar against prometheus-metrics-exporter-servlet-jakarta-1.6.1.jar -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.servlet.jakarta.PrometheusMetricsServlet (compatible) - +++ CLASS FILE FORMAT VERSION: 61.0 <- n.a. - +++ NEW INTERFACE: jakarta.servlet.ServletConfig - +++ NEW INTERFACE: jakarta.servlet.Servlet - +++ NEW INTERFACE: java.io.Serializable - +++ NEW SUPERCLASS: jakarta.servlet.http.HttpServlet - +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusMetricsServlet(io.prometheus.metrics.config.PrometheusProperties) - +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusMetricsServlet(io.prometheus.metrics.config.PrometheusProperties, io.prometheus.metrics.model.registry.PrometheusRegistry) - +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusMetricsServlet() - +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusMetricsServlet(io.prometheus.metrics.model.registry.PrometheusRegistry) - +Comparing source compatibility of prometheus-metrics-exporter-servlet-jakarta-1.7.1-SNAPSHOT.jar against prometheus-metrics-exporter-servlet-jakarta-1.7.0.jar +No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-javax.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-javax.txt index 434cfaf65..397f97388 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-javax.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exporter-servlet-javax.txt @@ -1,12 +1,2 @@ -Comparing source compatibility of prometheus-metrics-exporter-servlet-javax-1.6.2-SNAPSHOT.jar against prometheus-metrics-exporter-servlet-javax-1.6.1.jar -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.exporter.servlet.javax.PrometheusMetricsServlet (compatible) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: javax.servlet.ServletConfig - +++ NEW INTERFACE: javax.servlet.Servlet - +++ NEW INTERFACE: java.io.Serializable - +++ NEW SUPERCLASS: javax.servlet.http.HttpServlet - +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusMetricsServlet(io.prometheus.metrics.config.PrometheusProperties) - +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusMetricsServlet(io.prometheus.metrics.model.registry.PrometheusRegistry) - +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusMetricsServlet(io.prometheus.metrics.config.PrometheusProperties, io.prometheus.metrics.model.registry.PrometheusRegistry) - +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusMetricsServlet() - +Comparing source compatibility of prometheus-metrics-exporter-servlet-javax-1.7.1-SNAPSHOT.jar against prometheus-metrics-exporter-servlet-javax-1.7.0.jar +No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats-shaded.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats-shaded.txt index 2523aafc1..379ca0c42 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats-shaded.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats-shaded.txt @@ -1,2 +1,2 @@ -Comparing source compatibility of prometheus-metrics-exposition-formats-1.6.2-SNAPSHOT.jar against prometheus-metrics-exposition-formats-1.6.1.jar +Comparing source compatibility of prometheus-metrics-exposition-formats-1.7.1-SNAPSHOT.jar against prometheus-metrics-exposition-formats-1.7.0.jar No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats.txt index 0f04c0d1e..c8a2300d8 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-formats.txt @@ -1,2 +1,2 @@ -Comparing source compatibility of prometheus-metrics-exposition-formats-no-protobuf-1.6.2-SNAPSHOT.jar against prometheus-metrics-exposition-formats-no-protobuf-1.6.1.jar +Comparing source compatibility of prometheus-metrics-exposition-formats-no-protobuf-1.7.1-SNAPSHOT.jar against prometheus-metrics-exposition-formats-no-protobuf-1.7.0.jar No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-textformats.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-textformats.txt index fd61bb649..df03a5870 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-textformats.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-exposition-textformats.txt @@ -1,98 +1,2 @@ -Comparing source compatibility of prometheus-metrics-exposition-textformats-1.6.2-SNAPSHOT.jar against prometheus-metrics-exposition-textformats-1.6.1.jar -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.expositionformats.ExpositionFormats (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.ExpositionFormatWriter findWriter(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter getOpenMetrics2TextFormatWriter() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter getOpenMetricsTextFormatWriter() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.PrometheusProtobufWriter getPrometheusProtobufWriter() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter getPrometheusTextFormatWriter() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.ExpositionFormats init() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.ExpositionFormats init(io.prometheus.metrics.config.PrometheusProperties) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.ExpositionFormats init(io.prometheus.metrics.config.ExporterProperties) - +++ NEW ANNOTATION: java.lang.Deprecated -+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.expositionformats.ExpositionFormatWriter (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) boolean accepts(java.lang.String) - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String getContentType() - +++ NEW METHOD: PUBLIC(+) boolean isAvailable() - +++ NEW METHOD: PUBLIC(+) java.lang.String toDebugString(io.prometheus.metrics.model.snapshots.MetricSnapshots, io.prometheus.metrics.config.EscapingScheme) - +++ NEW METHOD: PUBLIC(+) java.lang.String toDebugString(io.prometheus.metrics.model.snapshots.MetricSnapshots) - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void write(java.io.OutputStream, io.prometheus.metrics.model.snapshots.MetricSnapshots, io.prometheus.metrics.config.EscapingScheme) - +++ NEW EXCEPTION: java.io.IOException - +++ NEW METHOD: PUBLIC(+) void write(java.io.OutputStream, io.prometheus.metrics.model.snapshots.MetricSnapshots) - +++ NEW EXCEPTION: java.io.IOException -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.expositionformats.ExpositionFormatWriter - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String CONTENT_TYPE - +++ NEW CONSTRUCTOR: PUBLIC(+) OpenMetrics2TextFormatWriter(io.prometheus.metrics.config.OpenMetrics2Properties, boolean, boolean) - +++ NEW METHOD: PUBLIC(+) boolean accepts(java.lang.String) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter create() - +++ NEW METHOD: PUBLIC(+) java.lang.String getContentType() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.config.OpenMetrics2Properties getOpenMetrics2Properties() - +++ NEW METHOD: PUBLIC(+) void write(java.io.OutputStream, io.prometheus.metrics.model.snapshots.MetricSnapshots, io.prometheus.metrics.config.EscapingScheme) - +++ NEW EXCEPTION: java.io.IOException -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter$Builder setCreatedTimestampsEnabled(boolean) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter$Builder setExemplarsOnAllMetricTypesEnabled(boolean) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetrics2TextFormatWriter$Builder setOpenMetrics2Properties(io.prometheus.metrics.config.OpenMetrics2Properties) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.expositionformats.ExpositionFormatWriter - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String CONTENT_TYPE - +++ NEW CONSTRUCTOR: PUBLIC(+) OpenMetricsTextFormatWriter(boolean, boolean) - +++ NEW METHOD: PUBLIC(+) boolean accepts(java.lang.String) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter create() - +++ NEW METHOD: PUBLIC(+) java.lang.String getContentType() - +++ NEW METHOD: PUBLIC(+) void write(java.io.OutputStream, io.prometheus.metrics.model.snapshots.MetricSnapshots, io.prometheus.metrics.config.EscapingScheme) - +++ NEW EXCEPTION: java.io.IOException -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter$Builder setCreatedTimestampsEnabled(boolean) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter$Builder setExemplarsOnAllMetricTypesEnabled(boolean) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.expositionformats.PrometheusProtobufWriter (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.expositionformats.ExpositionFormatWriter - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String CONTENT_TYPE - +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusProtobufWriter() - +++ NEW METHOD: PUBLIC(+) boolean accepts(java.lang.String) - +++ NEW METHOD: PUBLIC(+) java.lang.String getContentType() - +++ NEW METHOD: PUBLIC(+) boolean isAvailable() - +++ NEW METHOD: PUBLIC(+) java.lang.String toDebugString(io.prometheus.metrics.model.snapshots.MetricSnapshots, io.prometheus.metrics.config.EscapingScheme) - +++ NEW METHOD: PUBLIC(+) void write(java.io.OutputStream, io.prometheus.metrics.model.snapshots.MetricSnapshots, io.prometheus.metrics.config.EscapingScheme) - +++ NEW EXCEPTION: java.io.IOException -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.expositionformats.ExpositionFormatWriter - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String CONTENT_TYPE - +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusTextFormatWriter(boolean) - +++ NEW ANNOTATION: java.lang.Deprecated - +++ NEW METHOD: PUBLIC(+) boolean accepts(java.lang.String) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter create() - +++ NEW METHOD: PUBLIC(+) java.lang.String getContentType() - +++ NEW METHOD: PUBLIC(+) void write(java.io.OutputStream, io.prometheus.metrics.model.snapshots.MetricSnapshots, io.prometheus.metrics.config.EscapingScheme) - +++ NEW EXCEPTION: java.io.IOException - +++ NEW METHOD: PUBLIC(+) void writeCreated(java.io.Writer, io.prometheus.metrics.model.snapshots.MetricSnapshot, io.prometheus.metrics.config.EscapingScheme) - +++ NEW EXCEPTION: java.io.IOException -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter$Builder setIncludeCreatedTimestamps(boolean) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.expositionformats.PrometheusTextFormatWriter$Builder setTimestampsInMs(boolean) - +++ NEW ANNOTATION: java.lang.Deprecated - +Comparing source compatibility of prometheus-metrics-exposition-textformats-1.7.1-SNAPSHOT.jar against prometheus-metrics-exposition-textformats-1.7.0.jar +No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-caffeine.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-caffeine.txt index f804dc9ca..7eb8a50a8 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-caffeine.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-caffeine.txt @@ -1,23 +1,2 @@ -Comparing source compatibility of prometheus-metrics-instrumentation-caffeine-1.6.2-SNAPSHOT.jar against prometheus-metrics-instrumentation-caffeine-1.6.1.jar -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.caffeine.CacheMetricsCollector (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.model.registry.MultiCollector - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) CacheMetricsCollector() - +++ NEW ANNOTATION: java.lang.Deprecated - +++ NEW METHOD: PUBLIC(+) void addCache(java.lang.String, com.github.benmanes.caffeine.cache.Cache) - +++ NEW METHOD: PUBLIC(+) void addCache(java.lang.String, com.github.benmanes.caffeine.cache.AsyncCache) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.caffeine.CacheMetricsCollector$Builder builder() - +++ NEW METHOD: PUBLIC(+) void clear() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots collect() - +++ NEW METHOD: PUBLIC(+) java.util.List getPrometheusNames() - +++ NEW ANNOTATION: java.lang.Deprecated - +++ NEW METHOD: PUBLIC(+) com.github.benmanes.caffeine.cache.Cache removeCache(java.lang.String) -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.caffeine.CacheMetricsCollector$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) CacheMetricsCollector$Builder() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.caffeine.CacheMetricsCollector build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.caffeine.CacheMetricsCollector$Builder collectEvictionWeightAsCounter(boolean) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.caffeine.CacheMetricsCollector$Builder collectWeightedSize(boolean) - +Comparing source compatibility of prometheus-metrics-instrumentation-caffeine-1.7.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-caffeine-1.7.0.jar +No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard.txt index a95df8aae..9c01af3a8 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard.txt @@ -1,19 +1,2 @@ -Comparing source compatibility of prometheus-metrics-instrumentation-dropwizard-1.6.2-SNAPSHOT.jar against prometheus-metrics-instrumentation-dropwizard-1.6.1.jar -+++* NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard.DropwizardExports (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.model.registry.MultiCollector - +++ NEW SUPERCLASS: io.prometheus.metrics.instrumentation.dropwizard5.internal.AbstractDropwizardExports - +++ NEW CONSTRUCTOR: PUBLIC(+) DropwizardExports(com.codahale.metrics.MetricRegistry) - +++ NEW CONSTRUCTOR: PUBLIC(+) DropwizardExports(com.codahale.metrics.MetricRegistry, com.codahale.metrics.MetricFilter) - +++ NEW CONSTRUCTOR: PUBLIC(+) DropwizardExports(com.codahale.metrics.MetricRegistry, com.codahale.metrics.MetricFilter, io.prometheus.metrics.instrumentation.dropwizard5.labels.CustomLabelMapper) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.dropwizard.DropwizardExports$Builder builder() -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.dropwizard.DropwizardExports$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard.DropwizardExports$Builder customLabelMapper(io.prometheus.metrics.instrumentation.dropwizard5.labels.CustomLabelMapper) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard.DropwizardExports$Builder dropwizardRegistry(com.codahale.metrics.MetricRegistry) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard.DropwizardExports$Builder invalidMetricHandler(io.prometheus.metrics.instrumentation.dropwizard5.InvalidMetricHandler) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard.DropwizardExports$Builder metricFilter(com.codahale.metrics.MetricFilter) - +++ NEW METHOD: PUBLIC(+) void register() - +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) - +Comparing source compatibility of prometheus-metrics-instrumentation-dropwizard-1.7.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-dropwizard-1.7.0.jar +No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard5.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard5.txt index e9c13ab17..a2b6ad468 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard5.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-dropwizard5.txt @@ -1,47 +1,2 @@ -Comparing source compatibility of prometheus-metrics-instrumentation-dropwizard5-1.6.2-SNAPSHOT.jar against prometheus-metrics-instrumentation-dropwizard5-1.6.1.jar -+++* NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard5.DropwizardExports (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.model.registry.MultiCollector - +++ NEW SUPERCLASS: io.prometheus.metrics.instrumentation.dropwizard5.internal.AbstractDropwizardExports - +++ NEW CONSTRUCTOR: PUBLIC(+) DropwizardExports(io.dropwizard.metrics5.MetricRegistry, io.dropwizard.metrics5.MetricFilter, io.prometheus.metrics.instrumentation.dropwizard5.labels.CustomLabelMapper) - +++ NEW CONSTRUCTOR: PUBLIC(+) DropwizardExports(io.dropwizard.metrics5.MetricRegistry) - +++ NEW CONSTRUCTOR: PUBLIC(+) DropwizardExports(io.dropwizard.metrics5.MetricRegistry, io.dropwizard.metrics5.MetricFilter) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.dropwizard5.DropwizardExports$Builder builder() -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.dropwizard5.DropwizardExports$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard5.DropwizardExports$Builder customLabelMapper(io.prometheus.metrics.instrumentation.dropwizard5.labels.CustomLabelMapper) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard5.DropwizardExports$Builder dropwizardRegistry(io.dropwizard.metrics5.MetricRegistry) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard5.DropwizardExports$Builder invalidMetricHandler(io.prometheus.metrics.instrumentation.dropwizard5.InvalidMetricHandler) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard5.DropwizardExports$Builder metricFilter(io.dropwizard.metrics5.MetricFilter) - +++ NEW METHOD: PUBLIC(+) void register() - +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) -+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.instrumentation.dropwizard5.InvalidMetricHandler (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.instrumentation.dropwizard5.InvalidMetricHandler ALWAYS_THROW - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) boolean suppressException(java.lang.String, java.lang.Exception) - +++ NEW ANNOTATION: java.lang.FunctionalInterface -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.dropwizard5.labels.CustomLabelMapper (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) CustomLabelMapper(java.util.List) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels getLabels(java.lang.String, java.util.List, java.util.List) - +++ NEW METHOD: PUBLIC(+) java.lang.String getName(java.lang.String) -+++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.instrumentation.dropwizard5.labels.MapperConfig (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) MapperConfig() - +++ NEW CONSTRUCTOR: PUBLIC(+) MapperConfig(java.lang.String, java.lang.String, java.util.Map) - +++ NEW METHOD: PUBLIC(+) boolean equals(java.lang.Object) - +++ NEW METHOD: PUBLIC(+) java.util.Map getLabels() - +++ NEW METHOD: PUBLIC(+) java.lang.String getMatch() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.lang.String getName() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) int hashCode() - +++ NEW METHOD: PUBLIC(+) void setLabels(java.util.Map) - +++ NEW METHOD: PUBLIC(+) void setMatch(java.lang.String) - +++ NEW METHOD: PUBLIC(+) void setName(java.lang.String) - +++ NEW METHOD: PUBLIC(+) java.lang.String toString() - +Comparing source compatibility of prometheus-metrics-instrumentation-dropwizard5-1.7.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-dropwizard5-1.7.0.jar +No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-guava.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-guava.txt index 815196d0e..371d0cb3b 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-guava.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-guava.txt @@ -1,13 +1,2 @@ -Comparing source compatibility of prometheus-metrics-instrumentation-guava-1.6.2-SNAPSHOT.jar against prometheus-metrics-instrumentation-guava-1.6.1.jar -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.guava.CacheMetricsCollector (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.model.registry.MultiCollector - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) CacheMetricsCollector() - +++ NEW METHOD: PUBLIC(+) void addCache(java.lang.String, com.google.common.cache.Cache) - +++ NEW METHOD: PUBLIC(+) void clear() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots collect() - +++ NEW METHOD: PUBLIC(+) java.util.List getPrometheusNames() - +++ NEW ANNOTATION: java.lang.Deprecated - +++ NEW METHOD: PUBLIC(+) com.google.common.cache.Cache removeCache(java.lang.String) - +Comparing source compatibility of prometheus-metrics-instrumentation-guava-1.7.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-guava-1.7.0.jar +No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-jvm.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-jvm.txt index 391bae997..bc37dda75 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-jvm.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-instrumentation-jvm.txt @@ -1,124 +1,2 @@ -Comparing source compatibility of prometheus-metrics-instrumentation-jvm-1.6.2-SNAPSHOT.jar against prometheus-metrics-instrumentation-jvm-1.6.1.jar -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmBufferPoolMetrics (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmBufferPoolMetrics$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmBufferPoolMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmBufferPoolMetrics$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmBufferPoolMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) void register() - +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmClassLoadingMetrics (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmClassLoadingMetrics$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmClassLoadingMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmClassLoadingMetrics$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmClassLoadingMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) void register() - +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmCompilationMetrics (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmCompilationMetrics$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmCompilationMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmCompilationMetrics$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmCompilationMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) void register() - +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmGarbageCollectorMetrics (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmGarbageCollectorMetrics$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmGarbageCollectorMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmGarbageCollectorMetrics$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmGarbageCollectorMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) void register() - +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryMetrics (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryMetrics$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryMetrics$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) void register() - +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryPoolAllocationMetrics (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryPoolAllocationMetrics$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryPoolAllocationMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryPoolAllocationMetrics$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMemoryPoolAllocationMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) void register() - +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMetrics (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) JvmMetrics() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMetrics$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMetrics$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) void register() - +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmNativeMemoryMetrics (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmNativeMemoryMetrics$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmNativeMemoryMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmNativeMemoryMetrics$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmNativeMemoryMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) void register() - +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmRuntimeInfoMetric (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmRuntimeInfoMetric$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmRuntimeInfoMetric$Builder builder(io.prometheus.metrics.config.PrometheusProperties) -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmRuntimeInfoMetric$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmRuntimeInfoMetric$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) void register() - +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmThreadsMetrics (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmThreadsMetrics$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmThreadsMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.JvmThreadsMetrics$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.JvmThreadsMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) void register() - +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.ProcessMetrics (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.ProcessMetrics$Builder builder() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.ProcessMetrics$Builder builder(io.prometheus.metrics.config.PrometheusProperties) -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.instrumentation.jvm.ProcessMetrics$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.instrumentation.jvm.ProcessMetrics$Builder constLabels(io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) void register() - +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.PrometheusRegistry) - +Comparing source compatibility of prometheus-metrics-instrumentation-jvm-1.7.1-SNAPSHOT.jar against prometheus-metrics-instrumentation-jvm-1.7.0.jar +No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-model.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-model.txt index 98a3e2b0d..25f90822c 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-model.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-model.txt @@ -1,600 +1,2 @@ -Comparing source compatibility of prometheus-metrics-model-1.6.2-SNAPSHOT.jar against prometheus-metrics-model-1.6.1.jar -+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.registry.Collector (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.snapshots.MetricSnapshot collect() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot collect(io.prometheus.metrics.model.registry.PrometheusScrapeRequest) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot collect(java.util.function.Predicate) - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot collect(java.util.function.Predicate, io.prometheus.metrics.model.registry.PrometheusScrapeRequest) - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.util.Set getLabelNames() - +++ NEW ANNOTATION: java.lang.Deprecated - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricMetadata getMetadata() - +++ NEW ANNOTATION: java.lang.Deprecated - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor getMetricFamilyDescriptor() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType() - +++ NEW ANNOTATION: java.lang.Deprecated - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.lang.String getPrometheusName() - +++ NEW ANNOTATION: java.lang.Deprecated - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW ANNOTATION: java.lang.FunctionalInterface -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: java.util.function.Predicate - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.util.function.Predicate ALLOW_ALL - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder builder() - +++ NEW METHOD: PUBLIC(+) boolean test(java.lang.String) -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder nameMustBeEqualTo(java.lang.String[]) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder nameMustBeEqualTo(java.util.Collection) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder nameMustNotBeEqualTo(java.lang.String[]) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder nameMustNotBeEqualTo(java.util.Collection) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder nameMustNotStartWith(java.lang.String[]) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder nameMustNotStartWith(java.util.Collection) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder nameMustStartWith(java.lang.String[]) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricNameFilter$Builder nameMustStartWith(java.util.Collection) -+++ NEW ENUM: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.registry.MetricType (compatible) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: java.lang.constant.Constable - +++ NEW INTERFACE: java.lang.Comparable - +++ NEW INTERFACE: java.io.Serializable - +++ NEW SUPERCLASS: java.lang.Enum - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.registry.MetricType SUMMARY - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.registry.MetricType HISTOGRAM - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.registry.MetricType STATESET - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.registry.MetricType UNKNOWN - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.registry.MetricType INFO - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.registry.MetricType COUNTER - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.registry.MetricType GAUGE - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.registry.MetricType valueOf(java.lang.String) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.registry.MetricType[] values() -+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.registry.MultiCollector (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.snapshots.MetricSnapshots collect() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots collect(io.prometheus.metrics.model.registry.PrometheusScrapeRequest) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots collect(java.util.function.Predicate) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots collect(java.util.function.Predicate, io.prometheus.metrics.model.registry.PrometheusScrapeRequest) - +++ NEW METHOD: PUBLIC(+) java.util.Set getLabelNames(java.lang.String) - +++ NEW ANNOTATION: java.lang.Deprecated - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricMetadata getMetadata(java.lang.String) - +++ NEW ANNOTATION: java.lang.Deprecated - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.util.List getMetricFamilyDescriptors() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getMetricType(java.lang.String) - +++ NEW ANNOTATION: java.lang.Deprecated - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.util.List getPrometheusNames() - +++ NEW ANNOTATION: java.lang.Deprecated - +++ NEW ANNOTATION: java.lang.FunctionalInterface -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.registry.PrometheusRegistry (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.registry.PrometheusRegistry defaultRegistry - +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusRegistry() - +++ NEW METHOD: PUBLIC(+) void clear() - +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.Collector) - +++ NEW METHOD: PUBLIC(+) void register(io.prometheus.metrics.model.registry.MultiCollector) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots scrape() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots scrape(io.prometheus.metrics.model.registry.PrometheusScrapeRequest) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots scrape(java.util.function.Predicate) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots scrape(java.util.function.Predicate, io.prometheus.metrics.model.registry.PrometheusScrapeRequest) - +++ NEW METHOD: PUBLIC(+) void unregister(io.prometheus.metrics.model.registry.Collector) - +++ NEW METHOD: PUBLIC(+) void unregister(io.prometheus.metrics.model.registry.MultiCollector) -+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.registry.PrometheusScrapeRequest (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String[] getParameterValues(java.lang.String) - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String getRequestPath() -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBucket (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: java.lang.Comparable - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) ClassicHistogramBucket(double, long) - +++ NEW METHOD: PUBLIC(+) int compareTo(io.prometheus.metrics.model.snapshots.ClassicHistogramBucket) - +++ NEW METHOD: PUBLIC(+) long getCount() - +++ NEW METHOD: PUBLIC(+) double getUpperBound() -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: java.lang.Iterable - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets EMPTY - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets$Builder builder() - +++ NEW METHOD: PUBLIC(+) long getCount(int) - +++ NEW METHOD: PUBLIC(+) double getUpperBound(int) - +++ NEW METHOD: PUBLIC(+) boolean isEmpty() - +++ NEW METHOD: PUBLIC(+) java.util.Iterator iterator() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets of(java.util.List, java.util.List) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets of(double[], java.lang.Number[]) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets of(double[], long[]) - +++ NEW METHOD: PUBLIC(+) int size() - +++ NEW METHOD: PUBLIC(+) java.util.stream.Stream stream() -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets$Builder bucket(double, long) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets build() -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot - +++ NEW CONSTRUCTOR: PUBLIC(+) CounterSnapshot(io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot$Builder builder() - +++ NEW METHOD: PUBLIC(+) java.util.List getDataPoints() -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot$Builder dataPoint(io.prometheus.metrics.model.snapshots.CounterSnapshot$CounterDataPointSnapshot) -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot$CounterDataPointSnapshot (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.DataPointSnapshot - +++ NEW CONSTRUCTOR: PUBLIC(+) CounterSnapshot$CounterDataPointSnapshot(double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplar, long) - +++ NEW CONSTRUCTOR: PUBLIC(+) CounterSnapshot$CounterDataPointSnapshot(double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplar, long, long, boolean) - +++ NEW CONSTRUCTOR: PUBLIC(+) CounterSnapshot$CounterDataPointSnapshot(double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplar, long, long) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.CounterSnapshot$CounterDataPointSnapshot$Builder builder() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar getExemplar() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) double getValue() -+++ NEW CLASS: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.snapshots.DataPointSnapshot (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) long getCreatedTimestampMillis() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels getLabels() - +++ NEW METHOD: PUBLIC(+) long getScrapeTimestampMillis() - +++ NEW METHOD: PUBLIC(+) boolean hasCreatedTimestamp() - +++ NEW METHOD: PUBLIC(+) boolean hasScrapeTimestamp() -+++ NEW CLASS: PUBLIC(+) ABSTRACT(+) STATIC(+) io.prometheus.metrics.model.snapshots.DataPointSnapshot$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - GENERIC TEMPLATES: +++ T:io.prometheus.metrics.model.snapshots.DataPointSnapshot$Builder - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) DataPointSnapshot$Builder() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.DataPointSnapshot$Builder labels(io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.DataPointSnapshot$Builder scrapeTimestampMillis(long) -+++ NEW CLASS: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.snapshots.DistributionDataPointSnapshot (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.DataPointSnapshot - +++ NEW METHOD: PUBLIC(+) long getCount() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplars getExemplars() - +++ NEW METHOD: PUBLIC(+) double getSum() - +++ NEW METHOD: PUBLIC(+) boolean hasCount() - +++ NEW METHOD: PUBLIC(+) boolean hasSum() -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.DuplicateLabelsException (compatible) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: java.io.Serializable - +++ NEW SUPERCLASS: java.lang.IllegalArgumentException - +++ NEW CONSTRUCTOR: PUBLIC(+) DuplicateLabelsException(io.prometheus.metrics.model.snapshots.MetricMetadata, io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels getLabels() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricMetadata getMetadata() -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String SPAN_ID - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String TRACE_ID - +++ NEW CONSTRUCTOR: PUBLIC(+) Exemplar(double, io.prometheus.metrics.model.snapshots.Labels, long) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Exemplar$Builder builder() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels getLabels() - +++ NEW METHOD: PUBLIC(+) long getTimestampMillis() - +++ NEW METHOD: PUBLIC(+) double getValue() - +++ NEW METHOD: PUBLIC(+) boolean hasTimestamp() -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Exemplar$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar$Builder labels(io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar$Builder spanId(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar$Builder timestampMillis(long) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar$Builder traceId(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar$Builder value(double) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplars (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: java.lang.Iterable - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Exemplars EMPTY - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Exemplars$Builder builder() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar get(int) - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar get(double, double) - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar getLatest() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.util.Iterator iterator() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Exemplars of(java.util.Collection) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Exemplars of(io.prometheus.metrics.model.snapshots.Exemplar[]) - +++ NEW METHOD: PUBLIC(+) int size() -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Exemplars$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplars build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplars$Builder exemplar(io.prometheus.metrics.model.snapshots.Exemplar) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplars$Builder exemplars(java.util.Collection) -+++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot - +++ NEW CONSTRUCTOR: PUBLIC(+) GaugeSnapshot(io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot$Builder builder() - +++ NEW METHOD: PUBLIC(+) java.util.List getDataPoints() -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot$Builder dataPoint(io.prometheus.metrics.model.snapshots.GaugeSnapshot$GaugeDataPointSnapshot) -+++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot$GaugeDataPointSnapshot (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.DataPointSnapshot - +++ NEW CONSTRUCTOR: PUBLIC(+) GaugeSnapshot$GaugeDataPointSnapshot(double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplar, long) - +++ NEW CONSTRUCTOR: PUBLIC(+) GaugeSnapshot$GaugeDataPointSnapshot(double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplar) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.GaugeSnapshot$GaugeDataPointSnapshot$Builder builder() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar getExemplar() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) double getValue() -+++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) int CLASSIC_HISTOGRAM - +++ NEW CONSTRUCTOR: PUBLIC(+) HistogramSnapshot(io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) - +++ NEW CONSTRUCTOR: PUBLIC(+) HistogramSnapshot(boolean, io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot$Builder builder() - +++ NEW METHOD: PUBLIC(+) java.util.List getDataPoints() - +++ NEW METHOD: PUBLIC(+) boolean isGaugeHistogram() -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot$Builder dataPoint(io.prometheus.metrics.model.snapshots.HistogramSnapshot$HistogramDataPointSnapshot) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot$Builder gaugeHistogram(boolean) -+++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot$HistogramDataPointSnapshot (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.DistributionDataPointSnapshot - +++ NEW CONSTRUCTOR: PUBLIC(+) HistogramSnapshot$HistogramDataPointSnapshot(int, long, double, io.prometheus.metrics.model.snapshots.NativeHistogramBuckets, io.prometheus.metrics.model.snapshots.NativeHistogramBuckets, double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplars, long) - +++ NEW CONSTRUCTOR: PUBLIC(+) HistogramSnapshot$HistogramDataPointSnapshot(io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets, int, long, double, io.prometheus.metrics.model.snapshots.NativeHistogramBuckets, io.prometheus.metrics.model.snapshots.NativeHistogramBuckets, double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplars, long) - +++ NEW CONSTRUCTOR: PUBLIC(+) HistogramSnapshot$HistogramDataPointSnapshot(io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets, int, long, double, io.prometheus.metrics.model.snapshots.NativeHistogramBuckets, io.prometheus.metrics.model.snapshots.NativeHistogramBuckets, double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplars, long, long) - +++ NEW CONSTRUCTOR: PUBLIC(+) HistogramSnapshot$HistogramDataPointSnapshot(io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets, double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplars, long) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.HistogramSnapshot$HistogramDataPointSnapshot$Builder builder() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.ClassicHistogramBuckets getClassicBuckets() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets getNativeBucketsForNegativeValues() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets getNativeBucketsForPositiveValues() - +++ NEW METHOD: PUBLIC(+) int getNativeSchema() - +++ NEW METHOD: PUBLIC(+) long getNativeZeroCount() - +++ NEW METHOD: PUBLIC(+) double getNativeZeroThreshold() - +++ NEW METHOD: PUBLIC(+) boolean hasClassicHistogramData() - +++ NEW METHOD: PUBLIC(+) boolean hasNativeHistogramData() -+++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.InfoSnapshot (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot - +++ NEW CONSTRUCTOR: PUBLIC(+) InfoSnapshot(io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.InfoSnapshot$Builder builder() - +++ NEW METHOD: PUBLIC(+) java.util.List getDataPoints() -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.InfoSnapshot$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.InfoSnapshot build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.InfoSnapshot$Builder dataPoint(io.prometheus.metrics.model.snapshots.InfoSnapshot$InfoDataPointSnapshot) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.InfoSnapshot$Builder unit(io.prometheus.metrics.model.snapshots.Unit) -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.InfoSnapshot$InfoDataPointSnapshot (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.DataPointSnapshot - +++ NEW CONSTRUCTOR: PUBLIC(+) InfoSnapshot$InfoDataPointSnapshot(io.prometheus.metrics.model.snapshots.Labels) - +++ NEW CONSTRUCTOR: PUBLIC(+) InfoSnapshot$InfoDataPointSnapshot(io.prometheus.metrics.model.snapshots.Labels, long) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.InfoSnapshot$InfoDataPointSnapshot$Builder builder() -+++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Label (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: java.lang.Comparable - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) Label(java.lang.String, java.lang.String) - +++ NEW METHOD: PUBLIC(+) int compareTo(io.prometheus.metrics.model.snapshots.Label) - +++ NEW METHOD: PUBLIC(+) boolean equals(java.lang.Object) - +++ NEW METHOD: PUBLIC(+) java.lang.String getName() - +++ NEW METHOD: PUBLIC(+) java.lang.String getValue() - +++ NEW METHOD: PUBLIC(+) int hashCode() - +++ NEW METHOD: PUBLIC(+) java.lang.String toString() -+++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Labels (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: java.lang.Comparable - +++ NEW INTERFACE: java.lang.Iterable - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Labels EMPTY - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels add(java.lang.String, java.lang.String) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Labels$Builder builder() - +++ NEW METHOD: PUBLIC(+) int compareTo(io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) boolean contains(java.lang.String) - +++ NEW METHOD: PUBLIC(+) boolean equals(java.lang.Object) - +++ NEW METHOD: PUBLIC(+) java.lang.String get(java.lang.String) - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.lang.String getName(int) - +++ NEW METHOD: PUBLIC(+) java.lang.String getPrometheusName(int) - +++ NEW METHOD: PUBLIC(+) java.lang.String getValue(int) - +++ NEW METHOD: PUBLIC(+) int hashCode() - +++ NEW METHOD: PUBLIC(+) boolean hasSameNames(io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) boolean hasSameValues(io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) boolean isEmpty() - +++ NEW METHOD: PUBLIC(+) java.util.Iterator iterator() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels merge(io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels merge(java.lang.String[], java.lang.String[]) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Labels of(java.lang.String[]) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Labels of(java.util.List, java.util.List) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Labels of(java.lang.String[], java.lang.String[]) - +++ NEW METHOD: PUBLIC(+) int size() - +++ NEW METHOD: PUBLIC(+) java.util.stream.Stream stream() - +++ NEW METHOD: PUBLIC(+) java.lang.String toString() -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Labels$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Labels$Builder label(java.lang.String, java.lang.String) -+++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$CounterBuilder counter(java.lang.String) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$GaugeBuilder gauge(java.lang.String) - +++ NEW METHOD: PUBLIC(+) java.util.Set getLabelNames() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricMetadata getMetadata() - +++ NEW METHOD: PUBLIC(+) java.lang.String getPrometheusName() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.registry.MetricType getType() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$HistogramBuilder histogram(java.lang.String) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$InfoBuilder info(java.lang.String) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor of(io.prometheus.metrics.model.registry.MetricType, io.prometheus.metrics.model.snapshots.MetricMetadata) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor of(io.prometheus.metrics.model.registry.MetricType, io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder of(io.prometheus.metrics.model.registry.MetricType, java.lang.String) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$StateSetBuilder stateSet(java.lang.String) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$SummaryBuilder summary(java.lang.String) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$UnknownBuilder unknown(java.lang.String) -+++ NEW CLASS: PUBLIC(+) ABSTRACT(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - GENERIC TEMPLATES: +++ T:io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) MetricFamilyDescriptor$Builder() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder help(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder labelName(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder labelNames(java.lang.String[]) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder labelNames(java.util.Collection) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder name(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder unit(io.prometheus.metrics.model.snapshots.Unit) -+++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$CounterBuilder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder - +++ NEW CONSTRUCTOR: PUBLIC(+) MetricFamilyDescriptor$CounterBuilder() -+++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$GaugeBuilder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder - +++ NEW CONSTRUCTOR: PUBLIC(+) MetricFamilyDescriptor$GaugeBuilder() -+++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$HistogramBuilder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder - +++ NEW CONSTRUCTOR: PUBLIC(+) MetricFamilyDescriptor$HistogramBuilder() -+++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$InfoBuilder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder - +++ NEW CONSTRUCTOR: PUBLIC(+) MetricFamilyDescriptor$InfoBuilder() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$InfoBuilder unit(io.prometheus.metrics.model.snapshots.Unit) -+++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$StateSetBuilder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder - +++ NEW CONSTRUCTOR: PUBLIC(+) MetricFamilyDescriptor$StateSetBuilder() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$StateSetBuilder unit(io.prometheus.metrics.model.snapshots.Unit) -+++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$SummaryBuilder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder - +++ NEW CONSTRUCTOR: PUBLIC(+) MetricFamilyDescriptor$SummaryBuilder() -+++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$UnknownBuilder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricFamilyDescriptor$Builder - +++ NEW CONSTRUCTOR: PUBLIC(+) MetricFamilyDescriptor$UnknownBuilder() -+++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.MetricMetadata (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) MetricMetadata(java.lang.String, java.lang.String, java.lang.String, io.prometheus.metrics.model.snapshots.Unit) - +++ NEW CONSTRUCTOR: PUBLIC(+) MetricMetadata(java.lang.String) - +++ NEW CONSTRUCTOR: PUBLIC(+) MetricMetadata(java.lang.String, java.lang.String, io.prometheus.metrics.model.snapshots.Unit) - +++ NEW CONSTRUCTOR: PUBLIC(+) MetricMetadata(java.lang.String, java.lang.String, java.lang.String, java.lang.String, io.prometheus.metrics.model.snapshots.Unit) - +++ NEW CONSTRUCTOR: PUBLIC(+) MetricMetadata(java.lang.String, java.lang.String) - +++ NEW METHOD: PUBLIC(+) java.lang.String getExpositionBaseName() - +++ NEW METHOD: PUBLIC(+) java.lang.String getExpositionBasePrometheusName() - +++ NEW METHOD: PUBLIC(+) java.lang.String getHelp() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) java.lang.String getName() - +++ NEW METHOD: PUBLIC(+) java.lang.String getOriginalName() - +++ NEW METHOD: PUBLIC(+) java.lang.String getPrometheusName() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Unit getUnit() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) boolean hasUnit() -+++ NEW CLASS: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.snapshots.MetricSnapshot (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.util.List getDataPoints() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricMetadata getMetadata() -+++ NEW CLASS: PUBLIC(+) ABSTRACT(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - GENERIC TEMPLATES: +++ T:io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) MetricSnapshot$Builder() - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.model.snapshots.MetricSnapshot build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder help(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder name(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder unit(io.prometheus.metrics.model.snapshots.Unit) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: java.lang.Iterable - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) MetricSnapshots(java.util.Collection) - +++ NEW CONSTRUCTOR: PUBLIC(+) MetricSnapshots(io.prometheus.metrics.model.snapshots.MetricSnapshot[]) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots$Builder builder() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshot get(int) - +++ NEW METHOD: PUBLIC(+) java.util.Iterator iterator() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots of(io.prometheus.metrics.model.snapshots.MetricSnapshot[]) - +++ NEW METHOD: PUBLIC(+) int size() - +++ NEW METHOD: PUBLIC(+) java.util.stream.Stream stream() -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots build() - +++ NEW METHOD: PUBLIC(+) boolean containsMetricName(java.lang.String) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots$Builder metricSnapshot(io.prometheus.metrics.model.snapshots.MetricSnapshot) -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBucket (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) NativeHistogramBucket(int, long) - +++ NEW METHOD: PUBLIC(+) int getBucketIndex() - +++ NEW METHOD: PUBLIC(+) long getCount() -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: java.lang.Iterable - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets EMPTY - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets$Builder builder() - +++ NEW METHOD: PUBLIC(+) int getBucketIndex(int) - +++ NEW METHOD: PUBLIC(+) long getCount(int) - +++ NEW METHOD: PUBLIC(+) java.util.Iterator iterator() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets of(int[], long[]) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets of(java.util.List, java.util.List) - +++ NEW METHOD: PUBLIC(+) int size() - +++ NEW METHOD: PUBLIC(+) java.util.stream.Stream stream() -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets$Builder bucket(int, long) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.NativeHistogramBuckets build() -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.PrometheusNaming (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) PrometheusNaming() - +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String escapeName(java.lang.String, io.prometheus.metrics.config.EscapingScheme) - +++ NEW METHOD: PUBLIC(+) STATIC(+) boolean isValidLabelName(java.lang.String) - +++ NEW METHOD: PUBLIC(+) STATIC(+) boolean isValidLegacyLabelName(java.lang.String) - +++ NEW METHOD: PUBLIC(+) STATIC(+) boolean isValidLegacyMetricName(java.lang.String) - +++ NEW METHOD: PUBLIC(+) STATIC(+) boolean isValidMetricName(java.lang.String) - +++ NEW METHOD: PUBLIC(+) STATIC(+) boolean isValidUnitName(java.lang.String) - +++ NEW METHOD: PUBLIC(+) STATIC(+) boolean needsEscaping(java.lang.String, io.prometheus.metrics.config.EscapingScheme) - +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String normalizeMetricName(java.lang.String) - +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String normalizeMetricName(java.lang.String, io.prometheus.metrics.model.snapshots.Unit) - +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String prometheusName(java.lang.String) - +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String sanitizeLabelName(java.lang.String) - +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String sanitizeMetricName(java.lang.String) - +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String sanitizeMetricName(java.lang.String, io.prometheus.metrics.model.snapshots.Unit) - +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String sanitizeUnitName(java.lang.String) - +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String validateMetricName(java.lang.String) - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) STATIC(+) java.lang.String validateUnitName(java.lang.String) - +++ NEW ANNOTATION: javax.annotation.Nullable -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.Quantile (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW CONSTRUCTOR: PUBLIC(+) Quantile(double, double) - +++ NEW METHOD: PUBLIC(+) double getQuantile() - +++ NEW METHOD: PUBLIC(+) double getValue() -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.model.snapshots.Quantiles (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: java.lang.Iterable - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Quantiles EMPTY - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Quantiles$Builder builder() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Quantile get(int) - +++ NEW METHOD: PUBLIC(+) java.util.Iterator iterator() - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Quantiles of(java.util.List) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Quantiles of(io.prometheus.metrics.model.snapshots.Quantile[]) - +++ NEW METHOD: PUBLIC(+) int size() -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.Quantiles$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Quantiles build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Quantiles$Builder quantile(io.prometheus.metrics.model.snapshots.Quantile) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Quantiles$Builder quantile(double, double) -+++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot - +++ NEW CONSTRUCTOR: PUBLIC(+) StateSetSnapshot(io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot$Builder builder() - +++ NEW METHOD: PUBLIC(+) java.util.List getDataPoints() -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot$Builder dataPoint(io.prometheus.metrics.model.snapshots.StateSetSnapshot$StateSetDataPointSnapshot) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot$Builder unit(io.prometheus.metrics.model.snapshots.Unit) -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot$State (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) java.lang.String getName() - +++ NEW METHOD: PUBLIC(+) boolean isTrue() -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot$StateSetDataPointSnapshot (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: java.lang.Iterable - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.DataPointSnapshot - +++ NEW CONSTRUCTOR: PUBLIC(+) StateSetSnapshot$StateSetDataPointSnapshot(java.lang.String[], boolean[], io.prometheus.metrics.model.snapshots.Labels, long) - +++ NEW CONSTRUCTOR: PUBLIC(+) StateSetSnapshot$StateSetDataPointSnapshot(java.lang.String[], boolean[], io.prometheus.metrics.model.snapshots.Labels) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.StateSetSnapshot$StateSetDataPointSnapshot$Builder builder() - +++ NEW METHOD: PUBLIC(+) java.lang.String getName(int) - +++ NEW METHOD: PUBLIC(+) boolean isTrue(int) - +++ NEW METHOD: PUBLIC(+) java.util.Iterator iterator() - +++ NEW METHOD: PUBLIC(+) int size() - +++ NEW METHOD: PUBLIC(+) java.util.stream.Stream stream() -+++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.SummarySnapshot (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot - +++ NEW CONSTRUCTOR: PUBLIC(+) SummarySnapshot(io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.SummarySnapshot$Builder builder() - +++ NEW METHOD: PUBLIC(+) java.util.List getDataPoints() -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.SummarySnapshot$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.SummarySnapshot build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.SummarySnapshot$Builder dataPoint(io.prometheus.metrics.model.snapshots.SummarySnapshot$SummaryDataPointSnapshot) -+++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.SummarySnapshot$SummaryDataPointSnapshot (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.DistributionDataPointSnapshot - +++ NEW CONSTRUCTOR: PUBLIC(+) SummarySnapshot$SummaryDataPointSnapshot(long, double, io.prometheus.metrics.model.snapshots.Quantiles, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplars, long, long) - +++ NEW CONSTRUCTOR: PUBLIC(+) SummarySnapshot$SummaryDataPointSnapshot(long, double, io.prometheus.metrics.model.snapshots.Quantiles, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplars, long) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.SummarySnapshot$SummaryDataPointSnapshot$Builder builder() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Quantiles getQuantiles() -+++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit BYTES - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit GRAMS - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit METERS - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit VOLTS - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit SECONDS - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit RATIO - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit CELSIUS - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit JOULES - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.Unit AMPERES - +++ NEW CONSTRUCTOR: PUBLIC(+) Unit(java.lang.String) - +++ NEW METHOD: PUBLIC(+) boolean equals(java.lang.Object) - +++ NEW METHOD: PUBLIC(+) int hashCode() - +++ NEW METHOD: PUBLIC(+) STATIC(+) double kiloBytesToBytes(double) - +++ NEW METHOD: PUBLIC(+) STATIC(+) double millisToSeconds(long) - +++ NEW METHOD: PUBLIC(+) STATIC(+) double nanosToSeconds(long) - +++ NEW METHOD: PUBLIC(+) STATIC(+) double secondsToMillis(double) - +++ NEW METHOD: PUBLIC(+) java.lang.String toString() -+++ NEW CLASS: PUBLIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.UnknownSnapshot (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot - +++ NEW CONSTRUCTOR: PUBLIC(+) UnknownSnapshot(io.prometheus.metrics.model.snapshots.MetricMetadata, java.util.Collection) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.UnknownSnapshot$Builder builder() - +++ NEW METHOD: PUBLIC(+) java.util.List getDataPoints() -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.UnknownSnapshot$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.MetricSnapshot$Builder - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.UnknownSnapshot build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.UnknownSnapshot$Builder dataPoint(io.prometheus.metrics.model.snapshots.UnknownSnapshot$UnknownDataPointSnapshot) -+++ NEW CLASS: PUBLIC(+) STATIC(+) FINAL(+) io.prometheus.metrics.model.snapshots.UnknownSnapshot$UnknownDataPointSnapshot (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: io.prometheus.metrics.model.snapshots.DataPointSnapshot - +++ NEW CONSTRUCTOR: PUBLIC(+) UnknownSnapshot$UnknownDataPointSnapshot(double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplar, long) - +++ NEW CONSTRUCTOR: PUBLIC(+) UnknownSnapshot$UnknownDataPointSnapshot(double, io.prometheus.metrics.model.snapshots.Labels, io.prometheus.metrics.model.snapshots.Exemplar) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.model.snapshots.UnknownSnapshot$UnknownDataPointSnapshot$Builder builder() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.Exemplar getExemplar() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) double getValue() - +Comparing source compatibility of prometheus-metrics-model-1.7.1-SNAPSHOT.jar against prometheus-metrics-model-1.7.0.jar +No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-simpleclient-bridge.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-simpleclient-bridge.txt index bb1fb6594..9c2f8993d 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-simpleclient-bridge.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-simpleclient-bridge.txt @@ -1,16 +1,2 @@ -Comparing source compatibility of prometheus-metrics-simpleclient-bridge-1.6.2-SNAPSHOT.jar against prometheus-metrics-simpleclient-bridge-1.6.1.jar -+++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.simpleclient.bridge.SimpleclientCollector (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW INTERFACE: io.prometheus.metrics.model.registry.MultiCollector - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.simpleclient.bridge.SimpleclientCollector$Builder builder(io.prometheus.metrics.config.PrometheusProperties) - +++ NEW METHOD: PUBLIC(+) STATIC(+) io.prometheus.metrics.simpleclient.bridge.SimpleclientCollector$Builder builder() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.model.snapshots.MetricSnapshots collect() -+++ NEW CLASS: PUBLIC(+) STATIC(+) io.prometheus.metrics.simpleclient.bridge.SimpleclientCollector$Builder (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.simpleclient.bridge.SimpleclientCollector build() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.simpleclient.bridge.SimpleclientCollector$Builder collectorRegistry(io.prometheus.client.CollectorRegistry) - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.simpleclient.bridge.SimpleclientCollector register() - +++ NEW METHOD: PUBLIC(+) io.prometheus.metrics.simpleclient.bridge.SimpleclientCollector register(io.prometheus.metrics.model.registry.PrometheusRegistry) - +Comparing source compatibility of prometheus-metrics-simpleclient-bridge-1.7.1-SNAPSHOT.jar against prometheus-metrics-simpleclient-bridge-1.7.0.jar +No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-common.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-common.txt index 6782f73f2..260b1e4fb 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-common.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-common.txt @@ -1,13 +1,2 @@ -Comparing source compatibility of prometheus-metrics-tracer-common-1.6.2-SNAPSHOT.jar against prometheus-metrics-tracer-common-1.6.1.jar -+++ NEW INTERFACE: PUBLIC(+) ABSTRACT(+) io.prometheus.metrics.tracer.common.SpanContext (not serializable) - +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. - +++ NEW SUPERCLASS: java.lang.Object - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String EXEMPLAR_ATTRIBUTE_NAME - +++ NEW FIELD: PUBLIC(+) STATIC(+) FINAL(+) java.lang.String EXEMPLAR_ATTRIBUTE_VALUE - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String getCurrentSpanId() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) java.lang.String getCurrentTraceId() - +++ NEW ANNOTATION: javax.annotation.Nullable - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) boolean isCurrentSpanSampled() - +++ NEW METHOD: PUBLIC(+) ABSTRACT(+) void markCurrentSpanAsExemplar() - +Comparing source compatibility of prometheus-metrics-tracer-common-1.7.1-SNAPSHOT.jar against prometheus-metrics-tracer-common-1.7.0.jar +No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-initializer.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-initializer.txt index 2d9b9b09d..7ffd7032c 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-initializer.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-initializer.txt @@ -1,2 +1,2 @@ -Comparing source compatibility of prometheus-metrics-tracer-initializer-1.6.2-SNAPSHOT.jar against prometheus-metrics-tracer-initializer-1.6.1.jar +Comparing source compatibility of prometheus-metrics-tracer-initializer-1.7.1-SNAPSHOT.jar against prometheus-metrics-tracer-initializer-1.7.0.jar No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel-agent.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel-agent.txt index c44f14c31..a29c989fb 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel-agent.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel-agent.txt @@ -1,2 +1,2 @@ -Comparing source compatibility of prometheus-metrics-tracer-otel-agent-1.6.2-SNAPSHOT.jar against prometheus-metrics-tracer-otel-agent-1.6.1.jar +Comparing source compatibility of prometheus-metrics-tracer-otel-agent-1.7.1-SNAPSHOT.jar against prometheus-metrics-tracer-otel-agent-1.7.0.jar No changes. diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel.txt index b6419eebe..3e6d87392 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-tracer-otel.txt @@ -1,2 +1,2 @@ -Comparing source compatibility of prometheus-metrics-tracer-otel-1.6.2-SNAPSHOT.jar against prometheus-metrics-tracer-otel-1.6.1.jar +Comparing source compatibility of prometheus-metrics-tracer-otel-1.7.1-SNAPSHOT.jar against prometheus-metrics-tracer-otel-1.7.0.jar No changes. diff --git a/pom.xml b/pom.xml index 06ccc1dff..fd9efa750 100644 --- a/pom.xml +++ b/pom.xml @@ -30,7 +30,7 @@ 8 25 - 1.6.1 + 1.7.0 0.70 false false From 583ace6d7c458109544ff3019b4b7cd68ad35fff Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Jun 2026 14:21:02 +0200 Subject: [PATCH 70/74] chore(deps): update actions/checkout digest to df4cb1c (#2180) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [actions/checkout](https://redirect.github.com/actions/checkout) ([changelog](https://redirect.github.com/actions/checkout/compare/de0fac2e4500dabe0009e67214ff5f5447ce83dd..df4cb1c069e1874edd31b4311f1884172cec0e10)) | action | digest | `de0fac2` → `df4cb1c` | --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Jay DeLuca --- .github/workflows/acceptance-tests.yml | 2 +- .github/workflows/api-diff.yml | 2 +- .github/workflows/build.yml | 2 +- .github/workflows/codeql.yml | 2 +- .github/workflows/generate-api-diff-baseline.yml | 4 ++-- .github/workflows/generate-protobuf.yml | 4 ++-- .github/workflows/github-pages.yaml | 2 +- .github/workflows/jmx-exporter-compatibility.yml | 2 +- .github/workflows/multi-version-test.yml | 2 +- .github/workflows/native-tests.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/scorecard.yml | 2 +- .github/workflows/test-release-build.yml | 2 +- 13 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/acceptance-tests.yml b/.github/workflows/acceptance-tests.yml index 0b3194e0c..404e73407 100644 --- a/.github/workflows/acceptance-tests.yml +++ b/.github/workflows/acceptance-tests.yml @@ -12,7 +12,7 @@ jobs: - name: Check out with: persist-credentials: false - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: version: v2026.5.18 diff --git a/.github/workflows/api-diff.yml b/.github/workflows/api-diff.yml index 99b7844ea..548b7139f 100644 --- a/.github/workflows/api-diff.yml +++ b/.github/workflows/api-diff.yml @@ -32,7 +32,7 @@ jobs: ${{ contains(github.event.pull_request.labels.*.name, 'breaking-api-change-accepted') }} steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 with: persist-credentials: false - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c6be7ed7b..b686c28cf 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,7 +9,7 @@ jobs: build: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 with: persist-credentials: false - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 521dab4f4..1de0ca840 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -21,7 +21,7 @@ jobs: security-events: write # required for github/codeql-action/analyze to upload SARIF steps: - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 with: persist-credentials: false diff --git a/.github/workflows/generate-api-diff-baseline.yml b/.github/workflows/generate-api-diff-baseline.yml index aee2b4ee6..a3ad47e86 100644 --- a/.github/workflows/generate-api-diff-baseline.yml +++ b/.github/workflows/generate-api-diff-baseline.yml @@ -29,7 +29,7 @@ jobs: permissions: contents: read # checkout + read-only `git fetch origin main` for the verify step steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 with: ref: ${{ github.ref }} persist-credentials: false @@ -90,7 +90,7 @@ jobs: permissions: contents: write # push regenerated docs/apidiffs back to the renovate branch steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 with: ref: ${{ github.ref }} # zizmor: ignore[artipacked] -- needs credentials to push diff --git a/.github/workflows/generate-protobuf.yml b/.github/workflows/generate-protobuf.yml index e096b5881..e186836c8 100644 --- a/.github/workflows/generate-protobuf.yml +++ b/.github/workflows/generate-protobuf.yml @@ -14,7 +14,7 @@ jobs: permissions: contents: read # checkout + read-only `git fetch origin main` for the verify step steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 with: ref: ${{ github.ref }} persist-credentials: false @@ -66,7 +66,7 @@ jobs: permissions: contents: write # push regenerated sources back to the renovate branch steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 with: ref: ${{ github.ref }} # zizmor: ignore[artipacked] -- needs credentials to push diff --git a/.github/workflows/github-pages.yaml b/.github/workflows/github-pages.yaml index bd1b58a47..270cdf677 100644 --- a/.github/workflows/github-pages.yaml +++ b/.github/workflows/github-pages.yaml @@ -32,7 +32,7 @@ jobs: if: github.repository == 'prometheus/client_java' runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 with: persist-credentials: false fetch-tags: "true" diff --git a/.github/workflows/jmx-exporter-compatibility.yml b/.github/workflows/jmx-exporter-compatibility.yml index afdaed42d..79a1e9eb9 100644 --- a/.github/workflows/jmx-exporter-compatibility.yml +++ b/.github/workflows/jmx-exporter-compatibility.yml @@ -19,7 +19,7 @@ jobs: jmx-exporter-compatibility: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 with: persist-credentials: false - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 diff --git a/.github/workflows/multi-version-test.yml b/.github/workflows/multi-version-test.yml index a0bfeef76..3545ce207 100644 --- a/.github/workflows/multi-version-test.yml +++ b/.github/workflows/multi-version-test.yml @@ -15,7 +15,7 @@ jobs: java: [17, 21, 25] steps: - name: Check out - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 with: persist-credentials: false diff --git a/.github/workflows/native-tests.yml b/.github/workflows/native-tests.yml index 81e4ed9b9..e21b9d94a 100644 --- a/.github/workflows/native-tests.yml +++ b/.github/workflows/native-tests.yml @@ -12,7 +12,7 @@ jobs: - name: Check out with: persist-credentials: false - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 with: version: v2026.5.18 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2e0732b56..6ba78b44a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -25,7 +25,7 @@ jobs: echo "${#GPG_SIGNING_KEY}" echo "${GPG_SIGNING_KEY}" | gpg --batch --import-options import-show --import - name: Checkout Plugin Repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 with: ref: ${{ inputs.tag }} persist-credentials: false diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 532a3787b..6e2f53bd7 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -22,7 +22,7 @@ jobs: id-token: write # required by scorecard-action for OIDC token steps: - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 with: persist-credentials: false diff --git a/.github/workflows/test-release-build.yml b/.github/workflows/test-release-build.yml index 9e88dc430..ff9ffbdad 100644 --- a/.github/workflows/test-release-build.yml +++ b/.github/workflows/test-release-build.yml @@ -13,7 +13,7 @@ jobs: build: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 with: persist-credentials: false fetch-tags: "true" From 5fb79291da21ea896224b51be4f8a21e8dd209df Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Jun 2026 16:23:24 +0200 Subject: [PATCH 71/74] chore(deps): update actions/checkout action to v6.0.3 (#2183) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [actions/checkout](https://redirect.github.com/actions/checkout) | action | patch | `v6.0.2` → `v6.0.3` | --- ### Release Notes
actions/checkout (actions/checkout) ### [`v6.0.3`](https://redirect.github.com/actions/checkout/blob/HEAD/CHANGELOG.md#v603) [Compare Source](https://redirect.github.com/actions/checkout/compare/v6.0.2...v6.0.3) - Fix checkout init for SHA-256 repositories by [@​yaananth](https://redirect.github.com/yaananth) in [#​2439](https://redirect.github.com/actions/checkout/pull/2439) - fix: expand merge commit SHA regex and add SHA-256 test cases by [@​yaananth](https://redirect.github.com/yaananth) in [#​2414](https://redirect.github.com/actions/checkout/pull/2414)
--- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled because a matching PR was automerged previously. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/prometheus/client_java). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Gregor Zeitlinger Signed-off-by: Jay DeLuca --- .github/workflows/micrometer-compatibility.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/micrometer-compatibility.yml b/.github/workflows/micrometer-compatibility.yml index 4811e4a10..11c4e8553 100644 --- a/.github/workflows/micrometer-compatibility.yml +++ b/.github/workflows/micrometer-compatibility.yml @@ -27,7 +27,7 @@ jobs: # renovate: datasource=git-refs depName=zeitlinger/micrometer packageName=https://github.com/zeitlinger/micrometer currentValue=feat/prometheus-client-opt-in ref: 1af1b3185058941eea57dc467bfe0df5a4786fe4 steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: persist-credentials: false - uses: jdx/mise-action@1648a7812b9aeae629881980618f079932869151 # v4.0.1 From 5859c72526503cda371dccdc2775ba8349a6cd7a Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Thu, 4 Jun 2026 13:18:43 -0400 Subject: [PATCH 72/74] add global exmemplar supplier Signed-off-by: Jay DeLuca --- .../prometheus-metrics-core.txt | 20 ++- docs/content/otel/tracing.md | 40 ++++++ .../exemplars/ExemplarLabelsSupplier.java | 55 +++++++ .../core/exemplars/ExemplarSampler.java | 47 ++++-- .../metrics/core/metrics/StatefulMetric.java | 16 ++- .../metrics/core/metrics/CounterTest.java | 135 ++++++++++++++++++ 6 files changed, 300 insertions(+), 13 deletions(-) create mode 100644 prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarLabelsSupplier.java diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-core.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-core.txt index 85d68d53a..552a5fa12 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-core.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-core.txt @@ -1,2 +1,20 @@ Comparing source compatibility of prometheus-metrics-core-1.7.1-SNAPSHOT.jar against prometheus-metrics-core-1.7.0.jar -No changes. ++++ NEW CLASS: PUBLIC(+) io.prometheus.metrics.core.exemplars.ExemplarLabelsSupplier (not serializable) + +++ CLASS FILE FORMAT VERSION: 52.0 <- n.a. + +++ NEW SUPERCLASS: java.lang.Object + +++ NEW METHOD: PUBLIC(+) STATIC(+) java.util.function.Supplier getExemplarLabelsSupplier() + +++ NEW ANNOTATION: javax.annotation.Nullable + +++ NEW METHOD: PUBLIC(+) STATIC(+) void setExemplarLabelsSupplier(java.util.function.Supplier) +*** MODIFIED CLASS: PUBLIC io.prometheus.metrics.core.exemplars.ExemplarSampler (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + +++ NEW CONSTRUCTOR: PUBLIC(+) ExemplarSampler(io.prometheus.metrics.core.exemplars.ExemplarSamplerConfig, java.util.function.Supplier) + +++ NEW CONSTRUCTOR: PUBLIC(+) ExemplarSampler(io.prometheus.metrics.core.exemplars.ExemplarSamplerConfig, io.prometheus.metrics.tracer.common.SpanContext, java.util.function.Supplier) +*** MODIFIED CLASS: PUBLIC io.prometheus.metrics.core.metrics.Counter (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 +*** MODIFIED CLASS: PUBLIC io.prometheus.metrics.core.metrics.Gauge (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 +*** MODIFIED CLASS: PUBLIC io.prometheus.metrics.core.metrics.Histogram (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 +*** MODIFIED CLASS: PUBLIC io.prometheus.metrics.core.metrics.Summary (not serializable) + === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 + diff --git a/docs/content/otel/tracing.md b/docs/content/otel/tracing.md index f00af9afe..9d598c6f4 100644 --- a/docs/content/otel/tracing.md +++ b/docs/content/otel/tracing.md @@ -75,3 +75,43 @@ The [examples/example-exemplar-tail-sampling/](https://github.com/prometheus/cli directory has a complete end-to-end example, with a distributed Java application with two services, an OpenTelemetry collector, Prometheus, Tempo as a trace database, and Grafana dashboards. Use docker-compose as described in the example's readme to run the example and explore the results. + +## Adding custom labels to exemplars + +Automatically-sampled exemplars carry the `trace_id` and `span_id` labels. You can attach +additional, custom labels (for example an internal identifier) to every automatically-sampled +exemplar. There are two options. + +### Global (all metrics) + +Register a global supplier to add custom labels to the exemplars of _all_ metrics, including +metrics registered by third-party libraries that you do not control. This is the right option when +you cannot modify the code that creates the metric: + +```java +ExemplarLabelsSupplier.setExemplarLabelsSupplier( + () -> Labels.of("management_id", currentManagementId())); +``` + +### Per metric + +If you only want the extra labels on a specific metric you define yourself, use the builder: + +```java +Counter counter = + Counter.builder() + .name("requests_total") + .exemplarLabelsSupplier(() -> Labels.of("management_id", currentManagementId())) + .build(); +``` + +### Notes + +- The supplier is invoked on the (rate-limited) hot path each time an exemplar is sampled, so it + should be cheap. It may return dynamic, request-scoped values (e.g. read from a thread-local). +- Custom labels are only added when a valid, sampled span context is present; the supplier never + causes an exemplar to be created on its own. +- Precedence on a label-name collision: the reserved `trace_id`/`span_id` labels always win, then + the per-metric supplier, then the global supplier. Colliding labels are silently dropped. +- If the supplier throws, the exception is swallowed and the exemplar is created without the + additional labels, so a misbehaving supplier never breaks metric collection. diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarLabelsSupplier.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarLabelsSupplier.java new file mode 100644 index 000000000..672df100c --- /dev/null +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarLabelsSupplier.java @@ -0,0 +1,55 @@ +package io.prometheus.metrics.core.exemplars; + +import io.prometheus.metrics.annotations.StableApi; +import io.prometheus.metrics.model.snapshots.Labels; +import java.util.concurrent.atomic.AtomicReference; +import java.util.function.Supplier; +import javax.annotation.Nullable; + +/** + * Global holder for a {@link Supplier} of additional {@link Labels} that are merged into every + * automatically-sampled Exemplar across the entire application. + * + *

This is the global counterpart to the per-metric {@code exemplarLabelsSupplier(...)} builder + * method. Registering a supplier here affects all metrics, including metrics registered by + * third-party libraries that the application does not control. This makes it the right tool when + * you cannot modify the code that creates the metrics. + * + *

The supplier is invoked on the metric hot path (rate-limited by the exemplar sampler), each + * time an Exemplar is sampled from a valid, sampled span context. It should therefore be cheap and + * non-blocking. It may return dynamic, request-scoped values, for example an identifier read from a + * thread-local: + * + *

{@code
+ * ExemplarLabelsSupplier.setExemplarLabelsSupplier(
+ *     () -> Labels.of("management_id", currentManagementId()));
+ * }
+ * + *

Labels returned by the supplier that collide with {@code trace_id}/{@code span_id} (or, when a + * per-metric supplier is also configured, with that supplier's labels) are silently dropped rather + * than causing an error: the per-metric supplier takes precedence over the global one, and the + * reserved {@code trace_id}/{@code span_id} labels always win. If the supplier throws, the + * exception is swallowed and the Exemplar is created without the additional labels, so a + * misbehaving supplier never breaks metric collection. + */ +@StableApi +public class ExemplarLabelsSupplier { + + private static final AtomicReference> supplierRef = new AtomicReference<>(); + + private ExemplarLabelsSupplier() {} + + /** + * Register a global supplier of additional exemplar labels. Pass {@code null} to remove a + * previously registered supplier. The most recently registered supplier wins. + */ + public static void setExemplarLabelsSupplier(@Nullable Supplier supplier) { + supplierRef.set(supplier); + } + + /** Returns the registered global supplier, or {@code null} if none has been set. */ + @Nullable + public static Supplier getExemplarLabelsSupplier() { + return supplierRef.get(); + } +} diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSampler.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSampler.java index 71657b417..ba945d74e 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSampler.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSampler.java @@ -6,6 +6,7 @@ import io.prometheus.metrics.core.util.Scheduler; import io.prometheus.metrics.model.snapshots.Exemplar; import io.prometheus.metrics.model.snapshots.Exemplars; +import io.prometheus.metrics.model.snapshots.Label; import io.prometheus.metrics.model.snapshots.Labels; import io.prometheus.metrics.tracer.common.SpanContext; import java.util.ArrayList; @@ -379,14 +380,14 @@ private Labels doSampleExemplar() { String traceId = spanContext.getCurrentTraceId(); if (spanId != null && traceId != null) { spanContext.markCurrentSpanAsExemplar(); - Labels base = Labels.of(Exemplar.TRACE_ID, traceId, Exemplar.SPAN_ID, spanId); - if (additionalLabelsSupplier != null) { - Labels extra = additionalLabelsSupplier.get(); - if (!extra.isEmpty()) { - return base.merge(extra); - } - } - return base; + Labels labels = Labels.of(Exemplar.TRACE_ID, traceId, Exemplar.SPAN_ID, spanId); + // Per-metric supplier first (more specific), then the global supplier. On a name + // collision the earlier (more specific) value is kept; the reserved trace_id/span_id + // labels always win over both. + labels = mergeAdditionalLabels(labels, additionalLabelsSupplier); + labels = + mergeAdditionalLabels(labels, ExemplarLabelsSupplier.getExemplarLabelsSupplier()); + return labels; } } } @@ -395,4 +396,34 @@ private Labels doSampleExemplar() { } return Labels.EMPTY; } + + /** + * Merge labels from {@code supplier} into {@code base}, dropping any label whose name already + * exists in {@code base}. Never throws: a {@code null} supplier, a {@code null}/empty result, a + * colliding label name, or an exception thrown by the supplier all result in {@code base} being + * returned unchanged (minus the offending labels). A misbehaving supplier must never break metric + * collection. + */ + private static Labels mergeAdditionalLabels(Labels base, @Nullable Supplier supplier) { + if (supplier == null) { + return base; + } + Labels extra; + try { + extra = supplier.get(); + } catch (RuntimeException ignored) { + return base; + } + if (extra == null || extra.isEmpty()) { + return base; + } + Labels result = base; + for (Label label : extra) { + // Guard with contains() so the single-entry merge below can never throw on a duplicate name. + if (!result.contains(label.getName())) { + result = result.merge(Labels.of(label.getName(), label.getValue())); + } + } + return result; + } } diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StatefulMetric.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StatefulMetric.java index f089edea6..6ad26fda3 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StatefulMetric.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/metrics/StatefulMetric.java @@ -208,10 +208,18 @@ protected Builder(List illegalLabelNames, PrometheusProperties config) { } /** - * Provide additional labels to be merged into every automatically-sampled exemplar. The - * supplier is called each time an exemplar is sampled, so it can return dynamic values (e.g. a - * request-scoped identifier from a thread-local). The supplier is only invoked when a valid, - * sampled span context is present; it has no effect when tracing is not active. + * Provide additional labels to be merged into every automatically-sampled exemplar of this + * metric. The supplier is called each time an exemplar is sampled, so it can return + * dynamic values (e.g. a request-scoped identifier from a thread-local). The supplier is only + * invoked when a valid, sampled span context is present; it has no effect when tracing is not + * active. + * + *

For a global supplier that applies to all metrics (including metrics registered by + * third-party libraries you do not control), see {@link + * io.prometheus.metrics.core.exemplars.ExemplarLabelsSupplier}. When both are configured, this + * per-metric supplier takes precedence over the global one on a label-name collision, and the + * reserved {@code trace_id}/{@code span_id} labels always win over both. Labels that collide + * are silently dropped. */ public B exemplarLabelsSupplier(Supplier supplier) { this.exemplarLabelsSupplier = supplier; diff --git a/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/CounterTest.java b/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/CounterTest.java index c5b80716e..c2b1e9b29 100644 --- a/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/CounterTest.java +++ b/prometheus-metrics-core/src/test/java/io/prometheus/metrics/core/metrics/CounterTest.java @@ -8,6 +8,7 @@ import io.prometheus.metrics.config.EscapingScheme; import io.prometheus.metrics.config.MetricsProperties; import io.prometheus.metrics.config.PrometheusProperties; +import io.prometheus.metrics.core.exemplars.ExemplarLabelsSupplier; import io.prometheus.metrics.core.exemplars.ExemplarSamplerConfigTestUtil; import io.prometheus.metrics.expositionformats.OpenMetricsTextFormatWriter; import io.prometheus.metrics.expositionformats.generated.Metrics; @@ -54,6 +55,37 @@ void setUp() throws NoSuchFieldException, IllegalAccessException { @AfterEach void tearDown() { SpanContextSupplier.setSpanContext(origSpanContext); + ExemplarLabelsSupplier.setExemplarLabelsSupplier(null); + } + + /** A {@link SpanContext} that always returns a fixed, sampled span. */ + private static SpanContext sampledSpanContext(String traceId, String spanId) { + return new SpanContext() { + @Override + public String getCurrentTraceId() { + return traceId; + } + + @Override + public String getCurrentSpanId() { + return spanId; + } + + @Override + public boolean isCurrentSpanSampled() { + return true; + } + + @Override + public void markCurrentSpanAsExemplar() {} + }; + } + + private static String openMetrics(Counter counter) throws Exception { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + new OpenMetricsTextFormatWriter(false, true) + .write(out, MetricSnapshots.of(counter.collect()), EscapingScheme.ALLOW_UTF8); + return out.toString(); } private CounterSnapshot.CounterDataPointSnapshot getData(Counter counter, String... labels) { @@ -381,6 +413,109 @@ public void markCurrentSpanAsExemplar() {} .contains("span_id=\"span-def\""); } + @Test + void globalExemplarLabelsSupplierAppearsInAutomaticallySampledExemplar() throws Exception { + SpanContextSupplier.setSpanContext(sampledSpanContext("trace-abc", "span-def")); + ExemplarLabelsSupplier.setExemplarLabelsSupplier(() -> Labels.of("management_id", "mgmt-42")); + + Counter counter = Counter.builder().name("requests_total").build(); + counter.inc(); // automatic sampling path + + assertThat(openMetrics(counter)) + .contains("management_id=\"mgmt-42\"") + .contains("trace_id=\"trace-abc\"") + .contains("span_id=\"span-def\""); + } + + @Test + void globalAndPerMetricSuppliersBothApply() throws Exception { + SpanContextSupplier.setSpanContext(sampledSpanContext("trace-abc", "span-def")); + ExemplarLabelsSupplier.setExemplarLabelsSupplier(() -> Labels.of("global_k", "g")); + + Counter counter = + Counter.builder() + .name("requests_total") + .exemplarLabelsSupplier(() -> Labels.of("metric_k", "m")) + .build(); + counter.inc(); + + assertThat(openMetrics(counter)) + .contains("global_k=\"g\"") + .contains("metric_k=\"m\"") + .contains("trace_id=\"trace-abc\"") + .contains("span_id=\"span-def\""); + } + + @Test + void perMetricSupplierWinsOverGlobalOnCollision() throws Exception { + SpanContextSupplier.setSpanContext(sampledSpanContext("trace-abc", "span-def")); + ExemplarLabelsSupplier.setExemplarLabelsSupplier(() -> Labels.of("k", "global")); + + Counter counter = + Counter.builder() + .name("requests_total") + .exemplarLabelsSupplier(() -> Labels.of("k", "metric")) + .build(); + counter.inc(); + + assertThat(openMetrics(counter)).contains("k=\"metric\"").doesNotContain("k=\"global\""); + } + + @Test + void globalSupplierCollidingWithTraceIdIsDropped() throws Exception { + SpanContextSupplier.setSpanContext(sampledSpanContext("trace-abc", "span-def")); + ExemplarLabelsSupplier.setExemplarLabelsSupplier(() -> Labels.of(Exemplar.TRACE_ID, "evil")); + + Counter counter = Counter.builder().name("requests_total").build(); + counter.inc(); + + assertThat(openMetrics(counter)) + .contains("trace_id=\"trace-abc\"") + .doesNotContain("trace_id=\"evil\""); + } + + @Test + void globalSupplierThrowingDoesNotBreakCollection() throws Exception { + SpanContextSupplier.setSpanContext(sampledSpanContext("trace-abc", "span-def")); + ExemplarLabelsSupplier.setExemplarLabelsSupplier( + () -> { + throw new RuntimeException("boom"); + }); + + Counter counter = Counter.builder().name("requests_total").build(); + counter.inc(); + + assertThat(openMetrics(counter)) + .contains("trace_id=\"trace-abc\"") + .contains("span_id=\"span-def\""); + } + + @Test + void globalSupplierWithoutSpanContextProducesNoExemplar() { + SpanContextSupplier.setSpanContext(null); + ExemplarLabelsSupplier.setExemplarLabelsSupplier(() -> Labels.of("management_id", "mgmt-42")); + + Counter counter = Counter.builder().name("requests_total").build(); + counter.inc(); + + assertThat(getData(counter).getExemplar()).isNull(); + } + + @Test + void globalSupplierMergedIntoCustomExemplar() throws Exception { + SpanContextSupplier.setSpanContext(sampledSpanContext("trace-abc", "span-def")); + ExemplarLabelsSupplier.setExemplarLabelsSupplier(() -> Labels.of("management_id", "mgmt-42")); + + Counter counter = Counter.builder().name("requests_total").build(); + counter.incWithExemplar(Labels.of("k", "v")); + + assertThat(openMetrics(counter)) + .contains("management_id=\"mgmt-42\"") + .contains("k=\"v\"") + .contains("trace_id=\"trace-abc\"") + .contains("span_id=\"span-def\""); + } + @Test void testExemplarSamplerDisabled() { Counter counter = Counter.builder().name("count_total").withoutExemplars().build(); From 069c9b4a1b2039e07777f1437c91a2288d925a5c Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Thu, 4 Jun 2026 13:49:34 -0400 Subject: [PATCH 73/74] cleanups Signed-off-by: Jay DeLuca --- .../prometheus-metrics-core.txt | 1 - .../core/exemplars/ExemplarSampler.java | 45 +++++++++++++------ .../metrics/core/metrics/Counter.java | 3 +- .../metrics/core/metrics/Gauge.java | 3 +- .../metrics/core/metrics/Histogram.java | 2 +- .../metrics/core/metrics/Summary.java | 2 +- 6 files changed, 37 insertions(+), 19 deletions(-) diff --git a/docs/apidiffs/current_vs_latest/prometheus-metrics-core.txt b/docs/apidiffs/current_vs_latest/prometheus-metrics-core.txt index 552a5fa12..fa164a17e 100644 --- a/docs/apidiffs/current_vs_latest/prometheus-metrics-core.txt +++ b/docs/apidiffs/current_vs_latest/prometheus-metrics-core.txt @@ -7,7 +7,6 @@ Comparing source compatibility of prometheus-metrics-core-1.7.1-SNAPSHOT.jar aga +++ NEW METHOD: PUBLIC(+) STATIC(+) void setExemplarLabelsSupplier(java.util.function.Supplier) *** MODIFIED CLASS: PUBLIC io.prometheus.metrics.core.exemplars.ExemplarSampler (not serializable) === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 - +++ NEW CONSTRUCTOR: PUBLIC(+) ExemplarSampler(io.prometheus.metrics.core.exemplars.ExemplarSamplerConfig, java.util.function.Supplier) +++ NEW CONSTRUCTOR: PUBLIC(+) ExemplarSampler(io.prometheus.metrics.core.exemplars.ExemplarSamplerConfig, io.prometheus.metrics.tracer.common.SpanContext, java.util.function.Supplier) *** MODIFIED CLASS: PUBLIC io.prometheus.metrics.core.metrics.Counter (not serializable) === CLASS FILE FORMAT VERSION: 52.0 <- 52.0 diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSampler.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSampler.java index ba945d74e..7d7e781a4 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSampler.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSampler.java @@ -6,7 +6,6 @@ import io.prometheus.metrics.core.util.Scheduler; import io.prometheus.metrics.model.snapshots.Exemplar; import io.prometheus.metrics.model.snapshots.Exemplars; -import io.prometheus.metrics.model.snapshots.Label; import io.prometheus.metrics.model.snapshots.Labels; import io.prometheus.metrics.tracer.common.SpanContext; import java.util.ArrayList; @@ -68,16 +67,11 @@ public ExemplarSampler(ExemplarSamplerConfig config, @Nullable SpanContext spanC } /** - * Constructor that accepts a supplier of additional labels to be merged into every + * Constructor that additionally accepts a supplier of labels to be merged into every * automatically-sampled exemplar. The supplier is called each time an exemplar is sampled from a * span context, so it can return dynamic values (e.g. a request-scoped identifier). The supplier * is only called when a valid, sampled span context is present. */ - public ExemplarSampler( - ExemplarSamplerConfig config, @Nullable Supplier additionalLabelsSupplier) { - this(config, null, additionalLabelsSupplier); - } - public ExemplarSampler( ExemplarSamplerConfig config, @Nullable SpanContext spanContext, @@ -411,19 +405,42 @@ private static Labels mergeAdditionalLabels(Labels base, @Nullable Supplier Date: Thu, 4 Jun 2026 15:08:44 -0400 Subject: [PATCH 74/74] fix merging of labels Signed-off-by: Jay DeLuca --- .../metrics/core/exemplars/ExemplarSampler.java | 13 ++++++++++++- .../metrics/core/metrics/CounterTest.java | 17 +++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSampler.java b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSampler.java index 7d7e781a4..9d44e97da 100644 --- a/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSampler.java +++ b/prometheus-metrics-core/src/main/java/io/prometheus/metrics/core/exemplars/ExemplarSampler.java @@ -339,7 +339,7 @@ private long durationUntilNextExemplarExpires(long now) { private long updateCustomExemplar(int index, double value, Labels labels, long now) { if (!labels.contains(Exemplar.TRACE_ID) && !labels.contains(Exemplar.SPAN_ID)) { - labels = labels.merge(doSampleExemplar()); + labels = mergeLabels(labels, doSampleExemplar()); } customExemplars[index] = Exemplar.builder().value(value).labels(labels).timestampMillis(now).build(); @@ -412,6 +412,17 @@ private static Labels mergeAdditionalLabels(Labels base, @Nullable Supplier Labels.of("k", "global", "management_id", "mgmt-42")); + + Counter counter = Counter.builder().name("requests_total").build(); + counter.incWithExemplar(Labels.of("k", "caller")); + + assertThat(openMetrics(counter)) + .contains("k=\"caller\"") + .contains("management_id=\"mgmt-42\"") + .contains("trace_id=\"trace-abc\"") + .contains("span_id=\"span-def\"") + .doesNotContain("k=\"global\""); + } + @Test void testExemplarSamplerDisabled() { Counter counter = Counter.builder().name("count_total").withoutExemplars().build();