Skip to content

Scope embedded SILO Console metrics to the current MINIO cluster #764

Description

@Vonng

Parent: #763

Problem

Pigsty deliberately uses one shared job="minio" label for MinIO/SILO metrics. That is convenient for common dashboards, but the embedded Console currently receives only the VictoriaMetrics URL and job ID. With two MINIO clusters in one VictoriaMetrics tenant, an unscoped Console query can mix both clusters and display incorrect totals, health, drive, or traffic values.

Pigsty file-SD targets already carry a cls label, so the missing piece is to pass the current cluster selector into the Console.

Proposed change

For the embedded SILO Console, render the equivalent of:

MINIO_PROMETHEUS_JOB_ID=minio
MINIO_PROMETHEUS_EXTRA_LABELS='cls="<current-minio-cluster>"'

Keep job="minio" as the product-wide metric family selector and use cls as the tenant/cluster boundary. A separately deployed Console should use the equivalent CONSOLE_PROMETHEUS_JOB_ID and CONSOLE_PROMETHEUS_EXTRA_LABELS variables.

The Console must combine the configured selector with every widget query, including V3 queries and fallback/empty-state checks.

Related Console work:

Acceptance criteria

  • Two SILO clusters publish into the same VictoriaMetrics tenant under job="minio".
  • Opening either embedded Console shows only that cluster's series and totals.
  • The selector is applied to Info, Usage, Traffic, Resources, and any query-driven health widget.
  • Single-cluster behavior is unchanged.
  • Cluster names are safely escaped and malformed extra-label configuration fails visibly rather than silently widening the query.
  • A PromQL/API test demonstrates that unscoped data contains both clusters while each Console result contains exactly its configured cls.

Metadata

Metadata

Assignees

No one assigned

    Labels

    ENHANCEMENTNew feature or requestMINIOMINIO RelatedMONITORMonitoring related

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions