Skip to content

feat: add micrometer compatibility workflow#1

Open
zeitlinger wants to merge 11 commits into
fix/legacy-gauge-family-namefrom
feat/micrometer-compat-task
Open

feat: add micrometer compatibility workflow#1
zeitlinger wants to merge 11 commits into
fix/legacy-gauge-family-namefrom
feat/micrometer-compat-task

Conversation

@zeitlinger
Copy link
Copy Markdown
Owner

@zeitlinger zeitlinger commented May 5, 2026

Summary

Adds the Micrometer compatibility workflow and task tooling that were split out
of prometheus#2093.

This branch is intentionally stacked on top of the extracted prom-side fix:
prometheus#2100

What changed

  • Add downstream Micrometer compatibility tasks and workflow so this class of
    regression is exercised automatically against Micrometer
  • Support fork-based compatibility testing
  • Derive the Micrometer test version from the pom instead of duplicating it
  • Pin the downstream Micrometer target to an immutable commit SHA so PR CI is
    deterministic

Related Micrometer work

While debugging the suffix regression, we also found a separate Micrometer
adapter bug: registration-time collision detection needed snapshot-derived
MultiCollector metadata.

That fix lives on the downstream Micrometer branch used by the compatibility
job. The coverage added here is regression protection; the prom-side bug fix is
in prometheus#2100.

Related

Testing

  • mise run build
  • mise run lint

zeitlinger added 8 commits May 5, 2026 15:03
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
@zeitlinger zeitlinger force-pushed the fix/legacy-gauge-family-name branch from 0eea3c1 to 74917b8 Compare May 8, 2026 07:36
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
…at-task

Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
zeitlinger added a commit to prometheus/client_java that referenced this pull request May 13, 2026
Fixes #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:
zeitlinger#1

## Related

- Replaces: #2093
- Issue: #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`
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