Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

admin metrics fails against RustFS 1.0.1 stable with 501 NotImplemented — wrong admin route (/metrics instead of /realtime)

Aperta Adatta ai principianti
#388 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
1/5
Tempo stimato
Meno di un'ora
Idoneità per principianti
90/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
rust
Ambito
cli

Direzione di ricerca

Inizia da realtime_metrics() in crates/s3/src/admin.rs, dove l'URL è costruito con self.admin_url("/metrics"); cambialo in /realtime per corrispondere alla route registrata in rustfs/src/admin/handlers/system.rs. Ricostruisci e verifica con rc admin metrics <alias> --json contro un server RustFS 1.0.1 (finito quando restituisce status: success con samples). Facoltativamente, proseguisci con gli helper di controllo versione add_known_server_capabilities / is_rustfs_beta_10 nello stesso file, in modo che le stringhe stabili 1.0.x siano considerate note e compatibili.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

rc admin metrics fails against a RustFS 1.0.1 (stable) server with:

{
  "status": "error",
  "error": {
    "type": "unsupported_feature",
    "message": "Failed to query realtime metrics: Unsupported feature: A header you provided implies functionality that is not implemented.",
    "capability": "admin.metrics",
    "suggestion": "Upgrade RustFS to beta.10 or later."
  }
}

This happens even with no extra flags (rc admin metrics <alias> --json), not just --by-disk.

Root cause: crates/s3/src/admin.rs, realtime_metrics(), builds the request URL via:

let mut url = self.admin_url("/metrics");

which resolves to /rustfs/admin/v3/metrics. The server (rustfs/rustfs) registers this handler at a different path — see rustfs/src/admin/handlers/system.rs:

r.insert(
    Method::GET,
    format!("{}{}", ADMIN_PREFIX, "/v3/realtime").as_str(),
    AdminOperation(&realtime::MetricsHandler {}),
)?;

i.e. /rustfs/admin/v3/realtime, not /v3/metrics. The mismatched path falls through to a generic NotImplemented response instead of a 404, which is what made this confusing to diagnose.

Fix: change the one line to:

let mut url = self.admin_url("/realtime");

Confirmed: after this one-line change and rebuilding, rc admin metrics works correctly against RustFS 1.0.1 (verified against a live server, status: success, samples returned, including --by-disk).

Side note (separate, lower-priority observation): the capability-discovery version gate in the same file (add_known_server_capabilities, is_rustfs_beta_10 / is_rustfs_rc_series) only recognizes beta.10-family and rc-prerelease version strings as "known capable" — a stable 1.0.1 version string doesn't match either pattern, so rc admin capabilities likely under-reports capabilities for any stable 1.0.x+ release. Didn't turn out to be the actual cause of the bug above, but probably worth a version-gate update too.

Lingua principale
Rust
Stelle
159
Fork
23
Merge medio
7h 4m
PR unite (30g)
10

Preparare l'ambiente

  • Include un Dockerfile o un file Docker Compose
  • Nessun modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di rustfs/cli

Tutte le issue di rustfs/cli

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.