Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

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

Aberta Para iniciantes
#388 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
1/5
Tempo estimado
Menos de uma hora
Facilidade para iniciantes
90/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
rust
Domínio
cli

Direção de pesquisa

Comece em realtime_metrics() em crates/s3/src/admin.rs, onde a URL é construída com self.admin_url("/metrics"); altere para /realtime para corresponder à rota registrada em rustfs/src/admin/handlers/system.rs. Reconstrua e verifique com rc admin metrics <alias> --json contra um servidor RustFS 1.0.1 (concluído quando retornar status: success com samples). Opcionalmente, acompanhe os helpers de controle de versão add_known_server_capabilities / is_rustfs_beta_10 no mesmo arquivo para que strings estáveis 1.0.x sejam contadas como conhecidas e compatíveis.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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.

Linguagem predominante
Rust
Estrelas
159
Forks
23
Merge médio
7h 4min
PRs com merge (30d)
10

Preparar o ambiente

  • Inclui um Dockerfile ou arquivo Docker Compose
  • Sem modelo de pull request
  • Sem guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de rustfs/cli

Todas as issues de rustfs/cli

Issues semelhantes

Mais issues de Rust

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.