Skip to content

Prometheus metrics omit a signals_instance label — multi-instance dashboards can't group/filter by instance #408

Description

@fheikens

signals_collection_cycles_total (and the sibling collection metrics) are registered with labels []string{"target", "status"} only (internal/metrics/metrics.go:58). There is no signals_instance label on any metric.

Downstream, the multi-instance Grafana dashboard (timeseries-demo observability/grafana/dashboards/signals-multi-instance.json) has a mandatory template variable label_values(signals_collection_cycles_total, signals_instance) and every panel filters {signals_instance=~"$signals_instance"}. Because the label doesn't exist, the variable is empty and every panel shows "No Data" — regardless of scrape health. This has recurred across demos.

Signals already has an instance_id (DB meta / export metadata) — it just isn't attached to the Prometheus metrics.

Ask: attach a stable signals_instance label (from instance_id, or a configurable instance name) to the exposed metrics — as a registry ConstLabel or per-metric label — so multi-instance dashboards can group/filter by instance. Add a metrics test asserting the label is present.

Until this ships, the demo injects signals_instance as a static Prometheus scrape label as a workaround (timeseries-demo #419).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    effort:SSmall effort (3-8 hours)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions