Skip to content

feat(observability): gated histogram buckets for firefly.* + honest exemplars doc#9

Merged
casc84ab merged 1 commit into
mainfrom
feat/observability-histogram-buckets-and-exemplars-doc
Jul 16, 2026
Merged

feat(observability): gated histogram buckets for firefly.* + honest exemplars doc#9
casc84ab merged 1 commit into
mainfrom
feat/observability-histogram-buckets-and-exemplars-doc

Conversation

@casc84ab

Copy link
Copy Markdown
Contributor

Response to the observability master document (metrics findings M3/M4).

M3 — histogram buckets (gated, default OFF)

firefly.* timers/summaries publish client-side percentiles only, with no le buckets, so p99 is not aggregable across pods and histogram_quantile() is impossible. This adds management.metrics.distribution.percentiles-histogram.firefly, driven by FIREFLY_OBSERVABILITY_METRICS_HISTOGRAMS_ENABLED (default false).

  • Config-only (idiomatic Spring Boot MeterFilter); the timer/summary builders are untouched.
  • Ships inert — zero cardinality impact until the platform flips the env var once the GreptimeDB budget is approved. Enabling it is the prerequisite for functional exemplars.
  • Existing publishPercentiles gauges are unaffected.

M4 — honest exemplars doc

ExemplarsAutoConfiguration is an empty marker and the scrape→collector→store pipeline drops OpenMetrics exemplars, so metric→trace click-through does not work today. The Javadoc now says so and lists the three unmet preconditions instead of promising jump-to-trace.

No behavioural change on default config.

…xemplars doc

Add management.metrics.distribution.percentiles-histogram.firefly, gated by
FIREFLY_OBSERVABILITY_METRICS_HISTOGRAMS_ENABLED and DEFAULT OFF. When enabled it
applies a Micrometer MeterFilter to every firefly.* meter so p99 becomes
aggregable across pods (histogram_quantile()) and metric→trace exemplars can
anchor to _bucket samples. Ships inert so there is no cardinality impact until the
platform opts in; the client-side publishPercentiles are unaffected.

Also correct the ExemplarsAutoConfiguration Javadoc: exemplars are NOT functional
in the current scrape→collector→store pipeline (no buckets by default, 0.0.4
exposition, exemplars dropped in transit). Stop promising metric→trace
click-through and document the three unmet preconditions.
@casc84ab
casc84ab merged commit 820cea5 into main Jul 16, 2026
1 check passed
@casc84ab
casc84ab deleted the feat/observability-histogram-buckets-and-exemplars-doc branch July 16, 2026 10:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant