api7 / api7/aisix

build(deps): metrics-exporter-prometheus 0.16 is two minor lines behind; upgrade needs a rig-quantified pass

Open
#962 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement P2
Dominant language
Rust
Stars
157
Forks
32
Avg merge
1h 25m
Merged PRs (30d)
145

Description

What

The Prometheus exporter stack is two minor lines behind: metrics-exporter-prometheus 0.16.2 (latest 0.18.3), which pins metrics-util 0.19.1. This surfaced in the dependency-hygiene audit as the holder of three duplicate-version groups (rand 0.9, hashbrown 0.15, thiserror 1 via the exporter), and as an outdated version of a performance-sensitive dependency.

Why this is not a drive-by upgrade

  • metrics-util is the hot-path metrics registry (per-request record() path); an upgrade can move per-request cost in either direction and must be quantified on the benchmark rig (same-rig A/B, saturation grid) before landing.
  • The exporter renders the /metrics text exposition; an upgrade must pass the series-diff harness byte-identically (or any diff must be explicitly reviewed as a rendering change, not a data change).

Suggested acceptance

  • Same-rig A/B within the noise gate (±5%), fail=0
  • Series-diff harness: zero unexplained diffs against the same traffic
  • Duplicate groups rand 0.9.x and hashbrown 0.15.x collapse or shift as expected

No behavior or performance numbers are claimed here; this issue only records the version gap and the gate it must pass.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the dependency configuration and the metrics-exporter-prometheus integration, then review the benchmark rig and series-diff harness used for the exporter’s /metrics output. Upgrade the exporter and its metrics-util dependency, run the same-rig A/B saturation grid and series-diff checks, and confirm the duplicate dependency groups change as expected with no unexplained diffs.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
observability
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.