Skip to content

Ready compute host count fails to record in every environment #513

Open

Description

@ecv

Summary

The count of ready compute hosts per cell is not recorded in production or staging, because vmalert rejects every evaluation of cell:compute_hosts_ready:count as two series with one labelset. Production has failed every 20 seconds since about 15:00Z on 21 October, and staging since about 09:00Z, so the series has no samples for any cell. Nothing reads it yet, so no alert or dashboard is blind today, but each failure adds an error to the alert evaluator's count.

Cause

The fallback branch, or cell:compute_hosts:count * 0, reads a stored series that carries vmalert's external label alerting_environment. The computed branch has only cluster and region, so or keeps both. vmalert then adds the external label to the computed series, and the two collide. It fails only once a cell has a ready host, which is when the computed branch returns anything, and one failing cell drops the result for all three.

vmalert's error, from production:

rule "cell:compute_hosts_ready:count": failed to execute: original metric {[{alerting_environment production} {cluster us-central-1-alice} {region us-central-1}] [1792608240] [0]}; resulting labels "__name__=cell:compute_hosts_ready:count,alerting_environment=production,cluster=us-central-1-alice,region=us-central-1": result contains metrics with the same labelset during evaluation

Matching the fallback on the computed labels should fix it: or on (cluster, region) (cell:compute_hosts:count * 0).

Acceptance criteria

  • cell:compute_hosts_ready:count records one series per cell in production and staging
  • vmalert logs no errors for the compute-capacity.recording group

Related to #502

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

    No labels
    No labels

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions