| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
Signed-off-by: Jay DeLuca <jaydeluca4@gmail.com>
Signed-off-by: Jay DeLuca <jaydeluca4@gmail.com>
Signed-off-by: Jay DeLuca <jaydeluca4@gmail.com>
Signed-off-by: Ubuntu <jaydeluca4@gmail.com>
Signed-off-by: Jay DeLuca <jaydeluca4@gmail.com>
There was a problem hiding this comment.
This PR targets allocation reduction in the text exposition layer by removing repeated string building in hot formatting paths and replacing Long.toString(...) calls with direct writer-based long formatting. It also adds benchmark coverage around histogram text rendering so the impact can be measured in the benchmarking module.
Changes:
Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.
Show a summary per file| File | Description |
|---|---|
| prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/TextFormatUtil.java | Replaces Long.toString(...) with manual long/timestamp writing helpers. |
| prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/PrometheusTextFormatWriter.java | Caches metric names and suffixed variants to reduce per-datapoint allocations in Prometheus text output. |
| prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/OpenMetricsTextFormatWriter.java | Applies the same cached-name optimization to OpenMetrics 1 text output. |
| prometheus-metrics-exposition-textformats/src/main/java/io/prometheus/metrics/expositionformats/OpenMetrics2TextFormatWriter.java | Reduces classic histogram bucket-name concatenation in OpenMetrics 2 text output. |
| mise.toml | Updates benchmark tasks to pass JMH GC-profiler arguments. |
| benchmarks/src/main/java/io/prometheus/metrics/benchmarks/HistogramTextFormatBenchmark.java | Adds a dedicated JMH benchmark for classic histogram text rendering. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Sorry, something went wrong.
Signed-off-by: Jay DeLuca <jaydeluca4@gmail.com>
🤖 I have created a release *beep* *boop* --- ## [1.7.0](v1.6.1...v1.7.0) (2026-06-03) ### Features * Add StableApi marker and API diff check ([#2168](#2168)) ([768fd3a](768fd3a)) * add typed metric family descriptors ([#2114](#2114)) ([9c3b097](9c3b097)) * track api-diff baseline via Renovate and store diffs in docs/apidiffs ([#2174](#2174)) ([3adb890](3adb890)) ### Bug Fixes * **deps:** update dependency com.github.ben-manes.caffeine:caffeine to v3.2.4 ([#2088](#2088)) ([144eb61](144eb61)) * **deps:** update dependency io.dropwizard.metrics:metrics-core to v4.2.39 ([#2139](#2139)) ([5817d13](5817d13)) * **deps:** update dependency io.dropwizard.metrics5:metrics-core to v5.0.7 ([#2140](#2140)) ([261c451](261c451)) * **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.28.0-alpha ([#2126](#2126)) ([b62b5d0](b62b5d0)) * **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.28.0-alpha ([#2127](#2127)) ([e11ce3d](e11ce3d)) * **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.28.1-alpha ([#2132](#2132)) ([b09be38](b09be38)) * **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.28.1-alpha ([#2133](#2133)) ([a241c16](a241c16)) * **deps:** update dependency org.apache.tomcat.embed:tomcat-embed-core to v11.0.22 ([#2099](#2099)) ([22125c5](22125c5)) * **deps:** update jetty monorepo to v12.1.10 ([#2169](#2169)) ([ddd3991](ddd3991)) * **deps:** update jetty monorepo to v12.1.9 ([#2102](#2102)) ([04bee70](04bee70)) * **deps:** update protobuf ([#2129](#2129)) ([320538a](320538a)) * Reduce allocations for classic histogram buckets ([#2081](#2081)) ([edd160a](edd160a)) * restore legacy suffix compatibility ([#2100](#2100)) ([b2ae70f](b2ae70f)) * restore reserved suffix stripping in `PrometheusNaming.sanitizeMetricName()` ([#2124](#2124)) ([2d0f508](2d0f508)) ### Performance Improvements * Refactored sorting to use optimized sort algorithms ([#2161](#2161)) ([25b94fc](25b94fc)) ### Documentation * clarify downstream adapter validation requirements ([#2101](#2101)) ([ef8c75c](ef8c75c)) * Document OM2 ([#2059](#2059)) ([45d753c](45d753c)) * document PushGateway shading workaround ([#2106](#2106)) ([8ca0eb8](8ca0eb8)) --- > [!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 <gregor.zeitlinger@grafana.com>
🤖 I have created a release *beep* *boop* --- ## [1.7.0](v1.6.1...v1.7.0) (2026-06-03) ### Features * Add StableApi marker and API diff check ([#2168](#2168)) ([768fd3a](768fd3a)) * add typed metric family descriptors ([#2114](#2114)) ([9c3b097](9c3b097)) * track api-diff baseline via Renovate and store diffs in docs/apidiffs ([#2174](#2174)) ([3adb890](3adb890)) ### Bug Fixes * **deps:** update dependency com.github.ben-manes.caffeine:caffeine to v3.2.4 ([#2088](#2088)) ([144eb61](144eb61)) * **deps:** update dependency io.dropwizard.metrics:metrics-core to v4.2.39 ([#2139](#2139)) ([5817d13](5817d13)) * **deps:** update dependency io.dropwizard.metrics5:metrics-core to v5.0.7 ([#2140](#2140)) ([261c451](261c451)) * **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.28.0-alpha ([#2126](#2126)) ([b62b5d0](b62b5d0)) * **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.28.0-alpha ([#2127](#2127)) ([e11ce3d](e11ce3d)) * **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.28.1-alpha ([#2132](#2132)) ([b09be38](b09be38)) * **deps:** update dependency io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha to v2.28.1-alpha ([#2133](#2133)) ([a241c16](a241c16)) * **deps:** update dependency org.apache.tomcat.embed:tomcat-embed-core to v11.0.22 ([#2099](#2099)) ([22125c5](22125c5)) * **deps:** update jetty monorepo to v12.1.10 ([#2169](#2169)) ([ddd3991](ddd3991)) * **deps:** update jetty monorepo to v12.1.9 ([#2102](#2102)) ([04bee70](04bee70)) * **deps:** update protobuf ([#2129](#2129)) ([320538a](320538a)) * Reduce allocations for classic histogram buckets ([#2081](#2081)) ([edd160a](edd160a)) * restore legacy suffix compatibility ([#2100](#2100)) ([b2ae70f](b2ae70f)) * restore reserved suffix stripping in `PrometheusNaming.sanitizeMetricName()` ([#2124](#2124)) ([2d0f508](2d0f508)) ### Performance Improvements * Refactored sorting to use optimized sort algorithms ([#2161](#2161)) ([25b94fc](25b94fc)) ### Documentation * clarify downstream adapter validation requirements ([#2101](#2101)) ([ef8c75c](ef8c75c)) * Document OM2 ([#2059](#2059)) ([45d753c](45d753c)) * document PushGateway shading workaround ([#2106](#2106)) ([8ca0eb8](8ca0eb8)) --- > [!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 <gregor.zeitlinger@grafana.com> Signed-off-by: Jay DeLuca <jaydeluca4@gmail.com>
| Back | FazBrowse Home | New Git URL |
Related to #2075
This reduces allocation and GC pressure in histogram text formatting by eliminating unnecessary intermediate allocations.