Repository navigation
CLO-188 Add events and more metrics to orchestratord - #38529
Alphadelta14 wants to merge 4 commits into
Conversation
There was a problem hiding this comment.
Pull request overview
Adds orchestratord reconciliation observability through Kubernetes warning events and Prometheus metrics.
Changes:
- Instruments reconciliation passes and controller-specific steps.
- Publishes failure events and grants required Kubernetes permissions.
- Adds metric and event verification coverage.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
src/orchestratord/src/reconcile.rs |
Implements reconciliation instrumentation and failure events. |
src/orchestratord/src/metrics.rs |
Registers shared reconciliation metrics. |
src/orchestratord/src/lib.rs |
Exposes the reconciliation module. |
src/orchestratord/src/controller/materialize.rs |
Instruments Materialize reconciliation steps. |
src/orchestratord/src/controller/console.rs |
Instruments Console reconciliation steps. |
src/orchestratord/src/controller/balancer.rs |
Instruments Balancer reconciliation steps. |
src/orchestratord/src/bin/orchestratord.rs |
Wraps controllers with observability and event recording. |
test/orchestratord/mzcompose.py |
Verifies Materialize reconciliation failure events. |
misc/helm-charts/operator/templates/clusterrole.yaml |
Grants event creation and patching permissions. |
misc/helm-charts/operator/tests/clusterrole_test.yaml |
Tests the new RBAC rule. |
doc/user/data/metrics.yml |
Documents the new metrics. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
QA LLM Review1. MEDIUM -- Aggregated failure event pins its
|
|
Confirmed, and fixed in 739b6f0. I verified both halves of the mechanism against the sources rather than taking them on faith:
So the window never closes while an object keeps failing, exactly as described. Worth calling out that I had flagged this same cache-key behavior in the follow-up branch's commit message but scoped it as bounded at six minutes, reasoning that a collision needed two events inside the window. That reasoning holds for transition events, which only fire on a state change and so have no republish treadmill, and is wrong for failures for the reason above. Fix: a I took that over the two suggested options deliberately: per-publish recorders drop aggregation entirely, which is the property that makes the event useful in You are also right that the existing assertion could not catch this. Added a One thing the probe turned up in passing, unrelated to this PR: ~affectionately written by claude |
739b6f0 to
119cfa3
Compare
QA LLM Review1. MEDIUM --
|
a014e8e to
c9b5448
Compare
Co-authored-by: claude <noreply@anthropic.com>
Losing the leadership lease aborts the in-flight reconciliations, which drops any live step guard. Defaulting a dropped guard to `failed` counted a lease handoff as a reconciliation failure, on a process that stays up and keeps exposing the counter. A `Drop` cannot tell a cancelled future from a `?` early return, so the default now says only what is known: the step did not conclude. `orchestratord_reconciliations_total` remains the failure signal, since it is recorded from the reconciler's actual `Result` and a cancelled pass never reaches it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Reconciliation is a handful of Kubernetes API calls. Measured on a settled operator, steps run 6ms to 90ms, the two that touch a generation's resources run 230ms to 420ms, and a whole pass runs 58ms to 350ms. The power-of-two spacing of `histogram_seconds_buckets` put twenty buckets across that band, which is resolution no operator question asks for. Both histograms now share one order-of-magnitude ladder, so a step's latency still reads against the whole pass it belongs to. That is 216 series on the leader replica rather than 552. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Kubernetes aggregates repeats of an event into one object carrying a count, and `kube`'s recorder keys that aggregation on everything about an event except its note, re-sending the cached note on a hit. Sharing one recorder across the process therefore pinned a failing resource's event to whichever error came first. The aggregation entry expires six minutes after its last use, but each republish refreshes it, and `k8s_controller`'s default backoff tops out at retrying every 128 to 256 seconds, so the entry of a resource that keeps failing never ages out. A Materialize applied before its backend secret exists first fails looking the secret up and then fails validating the license key, and the event went on reporting the lookup, under a count and a timestamp that both made it look current. `Publisher` now aggregates only while the note is unchanged, keeping the recorder that filed a resource's last event under a reason and reaching for a fresh one when the note differs. Repeats of one message still collapse into one event, which is what keeps a backoff from burying a resource, while a changed message files a new event. A pass that succeeds forgets what the resource reported, so the state is bounded by the resources currently reporting something. The new `failure-events` workflow drives an environment through two different failures in a row and requires the note to follow. It asserts that the note changed rather than what it says, so it does not encode either error's wording. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
c9b5448 to
9581b95
Compare
|
closed in favor of #39030 |
Motivation
There is a desire to be able to easier troubleshoot upgrades going sour or even progress of environment rollouts.
We can't create dashboards until we have appropriate metrics and events.
Description
This improves the observability experience associated with orchestratord.
We generally want events for failed reconciliations because those are super actionable.
We also need some metrics to be able monitor orchestratord.
Verification
self-managed deployment:
manual rbac (not upgrading my chart)
Non-leader doesn't have new metrics.
Leader however has a new set of metrics:
metric results
curl http://127.0.0.1:52682/metrics # HELP environmentd_needs_update Count of organizations in this cluster which are running outdated pod templates. Only the operator replica holding the leadership lease reconciles, so the others report zero. # TYPE environmentd_needs_update gauge environmentd_needs_update 0 # HELP orchestratord_is_leader Whether this operator replica holds the controller leadership lease, and is therefore the replica reconciling. Summed across the replicas this should be 1. A sustained 0 means no replica can take the lease, for instance because the service account lacks permission on leases, and the operator is reconciling nothing. # TYPE orchestratord_is_leader gauge orchestratord_is_leader 1 # HELP orchestratord_reconciliation_duration_seconds Time spent in one reconciliation pass. This covers only the reconciler itself, not the finalizer bookkeeping around it, and a pass that waits on a rollout returns promptly rather than blocking, so this measures work done and not the wall-clock length of a rollout. # TYPE orchestratord_reconciliation_duration_seconds histogram orchestratord_reconciliation_duration_seconds_bucket{controller="balancer",event_type="apply",le="0.001"} 0 orchestratord_reconciliation_duration_seconds_bucket{controller="balancer",event_type="apply",le="0.002"} 0 orchestratord_reconciliation_duration_seconds_bucket{controller="balancer",event_type="apply",le="0.004"} 0 orchestratord_reconciliation_duration_seconds_bucket{controller="balancer",event_type="apply",le="0.008"} 0 orchestratord_reconciliation_duration_seconds_bucket{controller="balancer",event_type="apply",le="0.016"} 0 orchestratord_reconciliation_duration_seconds_bucket{controller="balancer",event_type="apply",le="0.032"} 0 orchestratord_reconciliation_duration_seconds_bucket{controller="balancer",event_type="apply",le="0.064"} 8 orchestratord_reconciliation_duration_seconds_bucket{controller="balancer",event_type="apply",le="0.128"} 12 orchestratord_reconciliation_duration_seconds_bucket{controller="balancer",event_type="apply",le="0.256"} 12 orchestratord_reconciliation_duration_seconds_bucket{controller="balancer",event_type="apply",le="0.512"} 12 orchestratord_reconciliation_duration_seconds_bucket{controller="balancer",event_type="apply",le="1"} 12 orchestratord_reconciliation_duration_seconds_bucket{controller="balancer",event_type="apply",le="2"} 12 orchestratord_reconciliation_duration_seconds_bucket{controller="balancer",event_type="apply",le="4"} 12 orchestratord_reconciliation_duration_seconds_bucket{controller="balancer",event_type="apply",le="8"} 12 orchestratord_reconciliation_duration_seconds_bucket{controller="balancer",event_type="apply",le="16"} 12 orchestratord_reconciliation_duration_seconds_bucket{controller="balancer",event_type="apply",le="32"} 12 orchestratord_reconciliation_duration_seconds_bucket{controller="balancer",event_type="apply",le="64"} 12 orchestratord_reconciliation_duration_seconds_bucket{controller="balancer",event_type="apply",le="128"} 12 orchestratord_reconciliation_duration_seconds_bucket{controller="balancer",event_type="apply",le="256"} 12 orchestratord_reconciliation_duration_seconds_bucket{controller="balancer",event_type="apply",le="512"} 12 orchestratord_reconciliation_duration_seconds_bucket{controller="balancer",event_type="apply",le="+Inf"} 12 orchestratord_reconciliation_duration_seconds_sum{controller="balancer",event_type="apply"} 0.700450801 orchestratord_reconciliation_duration_seconds_count{controller="balancer",event_type="apply"} 12 orchestratord_reconciliation_duration_seconds_bucket{controller="console",event_type="apply",le="0.001"} 0 orchestratord_reconciliation_duration_seconds_bucket{controller="console",event_type="apply",le="0.002"} 0 orchestratord_reconciliation_duration_seconds_bucket{controller="console",event_type="apply",le="0.004"} 0 orchestratord_reconciliation_duration_seconds_bucket{controller="console",event_type="apply",le="0.008"} 0 orchestratord_reconciliation_duration_seconds_bucket{controller="console",event_type="apply",le="0.016"} 0 orchestratord_reconciliation_duration_seconds_bucket{controller="console",event_type="apply",le="0.032"} 0 orchestratord_reconciliation_duration_seconds_bucket{controller="console",event_type="apply",le="0.064"} 0 orchestratord_reconciliation_duration_seconds_bucket{controller="console",event_type="apply",le="0.128"} 3 orchestratord_reconciliation_duration_seconds_bucket{controller="console",event_type="apply",le="0.256"} 3 orchestratord_reconciliation_duration_seconds_bucket{controller="console",event_type="apply",le="0.512"} 3 orchestratord_reconciliation_duration_seconds_bucket{controller="console",event_type="apply",le="1"} 3 orchestratord_reconciliation_duration_seconds_bucket{controller="console",event_type="apply",le="2"} 3 orchestratord_reconciliation_duration_seconds_bucket{controller="console",event_type="apply",le="4"} 3 orchestratord_reconciliation_duration_seconds_bucket{controller="console",event_type="apply",le="8"} 3 orchestratord_reconciliation_duration_seconds_bucket{controller="console",event_type="apply",le="16"} 3 orchestratord_reconciliation_duration_seconds_bucket{controller="console",event_type="apply",le="32"} 3 orchestratord_reconciliation_duration_seconds_bucket{controller="console",event_type="apply",le="64"} 3 orchestratord_reconciliation_duration_seconds_bucket{controller="console",event_type="apply",le="128"} 3 orchestratord_reconciliation_duration_seconds_bucket{controller="console",event_type="apply",le="256"} 3 orchestratord_reconciliation_duration_seconds_bucket{controller="console",event_type="apply",le="512"} 3 orchestratord_reconciliation_duration_seconds_bucket{controller="console",event_type="apply",le="+Inf"} 3 orchestratord_reconciliation_duration_seconds_sum{controller="console",event_type="apply"} 0.308219488 orchestratord_reconciliation_duration_seconds_count{controller="console",event_type="apply"} 3 orchestratord_reconciliation_duration_seconds_bucket{controller="materialize",event_type="apply",le="0.001"} 0 orchestratord_reconciliation_duration_seconds_bucket{controller="materialize",event_type="apply",le="0.002"} 0 orchestratord_reconciliation_duration_seconds_bucket{controller="materialize",event_type="apply",le="0.004"} 0 orchestratord_reconciliation_duration_seconds_bucket{controller="materialize",event_type="apply",le="0.008"} 0 orchestratord_reconciliation_duration_seconds_bucket{controller="materialize",event_type="apply",le="0.016"} 0 orchestratord_reconciliation_duration_seconds_bucket{controller="materialize",event_type="apply",le="0.032"} 0 orchestratord_reconciliation_duration_seconds_bucket{controller="materialize",event_type="apply",le="0.064"} 0 orchestratord_reconciliation_duration_seconds_bucket{controller="materialize",event_type="apply",le="0.128"} 3 orchestratord_reconciliation_duration_seconds_bucket{controller="materialize",event_type="apply",le="0.256"} 6 orchestratord_reconciliation_duration_seconds_bucket{controller="materialize",event_type="apply",le="0.512"} 8 orchestratord_reconciliation_duration_seconds_bucket{controller="materialize",event_type="apply",le="1"} 8 orchestratord_reconciliation_duration_seconds_bucket{controller="materialize",event_type="apply",le="2"} 9 orchestratord_reconciliation_duration_seconds_bucket{controller="materialize",event_type="apply",le="4"} 9 orchestratord_reconciliation_duration_seconds_bucket{controller="materialize",event_type="apply",le="8"} 9 orchestratord_reconciliation_duration_seconds_bucket{controller="materialize",event_type="apply",le="16"} 9 orchestratord_reconciliation_duration_seconds_bucket{controller="materialize",event_type="apply",le="32"} 9 orchestratord_reconciliation_duration_seconds_bucket{controller="materialize",event_type="apply",le="64"} 9 orchestratord_reconciliation_duration_seconds_bucket{controller="materialize",event_type="apply",le="128"} 9 orchestratord_reconciliation_duration_seconds_bucket{controller="materialize",event_type="apply",le="256"} 9 orchestratord_reconciliation_duration_seconds_bucket{controller="materialize",event_type="apply",le="512"} 9 orchestratord_reconciliation_duration_seconds_bucket{controller="materialize",event_type="apply",le="+Inf"} 9 orchestratord_reconciliation_duration_seconds_sum{controller="materialize",event_type="apply"} 3.142999853 orchestratord_reconciliation_duration_seconds_count{controller="materialize",event_type="apply"} 9 # HELP orchestratord_reconciliation_step_duration_seconds Time spent in one reconciliation step. # TYPE orchestratord_reconciliation_step_duration_seconds histogram orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="certificate",le="0.001"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="certificate",le="0.002"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="certificate",le="0.004"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="certificate",le="0.008"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="certificate",le="0.016"} 8 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="certificate",le="0.032"} 10 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="certificate",le="0.064"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="certificate",le="0.128"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="certificate",le="0.256"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="certificate",le="0.512"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="certificate",le="1"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="certificate",le="2"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="certificate",le="4"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="certificate",le="8"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="certificate",le="16"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="certificate",le="32"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="certificate",le="64"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="certificate",le="128"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="certificate",le="256"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="certificate",le="512"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="certificate",le="+Inf"} 12 orchestratord_reconciliation_step_duration_seconds_sum{controller="balancer",step="certificate"} 0.247514518 orchestratord_reconciliation_step_duration_seconds_count{controller="balancer",step="certificate"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="deployment",le="0.001"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="deployment",le="0.002"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="deployment",le="0.004"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="deployment",le="0.008"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="deployment",le="0.016"} 2 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="deployment",le="0.032"} 11 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="deployment",le="0.064"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="deployment",le="0.128"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="deployment",le="0.256"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="deployment",le="0.512"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="deployment",le="1"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="deployment",le="2"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="deployment",le="4"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="deployment",le="8"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="deployment",le="16"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="deployment",le="32"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="deployment",le="64"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="deployment",le="128"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="deployment",le="256"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="deployment",le="512"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="deployment",le="+Inf"} 12 orchestratord_reconciliation_step_duration_seconds_sum{controller="balancer",step="deployment"} 0.267789756 orchestratord_reconciliation_step_duration_seconds_count{controller="balancer",step="deployment"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="service",le="0.001"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="service",le="0.002"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="service",le="0.004"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="service",le="0.008"} 8 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="service",le="0.016"} 10 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="service",le="0.032"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="service",le="0.064"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="service",le="0.128"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="service",le="0.256"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="service",le="0.512"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="service",le="1"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="service",le="2"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="service",le="4"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="service",le="8"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="service",le="16"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="service",le="32"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="service",le="64"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="service",le="128"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="service",le="256"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="service",le="512"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="service",le="+Inf"} 12 orchestratord_reconciliation_step_duration_seconds_sum{controller="balancer",step="service"} 0.11045456800000003 orchestratord_reconciliation_step_duration_seconds_count{controller="balancer",step="service"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="sync_status",le="0.001"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="sync_status",le="0.002"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="sync_status",le="0.004"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="sync_status",le="0.008"} 11 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="sync_status",le="0.016"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="sync_status",le="0.032"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="sync_status",le="0.064"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="sync_status",le="0.128"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="sync_status",le="0.256"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="sync_status",le="0.512"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="sync_status",le="1"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="sync_status",le="2"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="sync_status",le="4"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="sync_status",le="8"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="sync_status",le="16"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="sync_status",le="32"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="sync_status",le="64"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="sync_status",le="128"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="sync_status",le="256"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="sync_status",le="512"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="balancer",step="sync_status",le="+Inf"} 12 orchestratord_reconciliation_step_duration_seconds_sum{controller="balancer",step="sync_status"} 0.07420129500000001 orchestratord_reconciliation_step_duration_seconds_count{controller="balancer",step="sync_status"} 12 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="certificate",le="0.001"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="certificate",le="0.002"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="certificate",le="0.004"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="certificate",le="0.008"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="certificate",le="0.016"} 2 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="certificate",le="0.032"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="certificate",le="0.064"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="certificate",le="0.128"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="certificate",le="0.256"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="certificate",le="0.512"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="certificate",le="1"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="certificate",le="2"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="certificate",le="4"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="certificate",le="8"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="certificate",le="16"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="certificate",le="32"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="certificate",le="64"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="certificate",le="128"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="certificate",le="256"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="certificate",le="512"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="certificate",le="+Inf"} 3 orchestratord_reconciliation_step_duration_seconds_sum{controller="console",step="certificate"} 0.04436 orchestratord_reconciliation_step_duration_seconds_count{controller="console",step="certificate"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="configmap",le="0.001"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="configmap",le="0.002"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="configmap",le="0.004"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="configmap",le="0.008"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="configmap",le="0.016"} 1 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="configmap",le="0.032"} 2 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="configmap",le="0.064"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="configmap",le="0.128"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="configmap",le="0.256"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="configmap",le="0.512"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="configmap",le="1"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="configmap",le="2"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="configmap",le="4"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="configmap",le="8"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="configmap",le="16"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="configmap",le="32"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="configmap",le="64"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="configmap",le="128"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="configmap",le="256"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="configmap",le="512"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="configmap",le="+Inf"} 3 orchestratord_reconciliation_step_duration_seconds_sum{controller="console",step="configmap"} 0.065162343 orchestratord_reconciliation_step_duration_seconds_count{controller="console",step="configmap"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="deployment",le="0.001"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="deployment",le="0.002"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="deployment",le="0.004"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="deployment",le="0.008"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="deployment",le="0.016"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="deployment",le="0.032"} 2 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="deployment",le="0.064"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="deployment",le="0.128"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="deployment",le="0.256"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="deployment",le="0.512"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="deployment",le="1"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="deployment",le="2"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="deployment",le="4"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="deployment",le="8"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="deployment",le="16"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="deployment",le="32"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="deployment",le="64"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="deployment",le="128"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="deployment",le="256"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="deployment",le="512"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="deployment",le="+Inf"} 3 orchestratord_reconciliation_step_duration_seconds_sum{controller="console",step="deployment"} 0.086187142 orchestratord_reconciliation_step_duration_seconds_count{controller="console",step="deployment"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="network_policies",le="0.001"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="network_policies",le="0.002"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="network_policies",le="0.004"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="network_policies",le="0.008"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="network_policies",le="0.016"} 2 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="network_policies",le="0.032"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="network_policies",le="0.064"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="network_policies",le="0.128"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="network_policies",le="0.256"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="network_policies",le="0.512"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="network_policies",le="1"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="network_policies",le="2"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="network_policies",le="4"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="network_policies",le="8"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="network_policies",le="16"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="network_policies",le="32"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="network_policies",le="64"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="network_policies",le="128"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="network_policies",le="256"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="network_policies",le="512"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="network_policies",le="+Inf"} 3 orchestratord_reconciliation_step_duration_seconds_sum{controller="console",step="network_policies"} 0.04263577 orchestratord_reconciliation_step_duration_seconds_count{controller="console",step="network_policies"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="service",le="0.001"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="service",le="0.002"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="service",le="0.004"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="service",le="0.008"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="service",le="0.016"} 2 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="service",le="0.032"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="service",le="0.064"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="service",le="0.128"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="service",le="0.256"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="service",le="0.512"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="service",le="1"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="service",le="2"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="service",le="4"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="service",le="8"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="service",le="16"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="service",le="32"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="service",le="64"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="service",le="128"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="service",le="256"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="service",le="512"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="service",le="+Inf"} 3 orchestratord_reconciliation_step_duration_seconds_sum{controller="console",step="service"} 0.048906215 orchestratord_reconciliation_step_duration_seconds_count{controller="console",step="service"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="sync_status",le="0.001"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="sync_status",le="0.002"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="sync_status",le="0.004"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="sync_status",le="0.008"} 2 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="sync_status",le="0.016"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="sync_status",le="0.032"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="sync_status",le="0.064"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="sync_status",le="0.128"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="sync_status",le="0.256"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="sync_status",le="0.512"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="sync_status",le="1"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="sync_status",le="2"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="sync_status",le="4"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="sync_status",le="8"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="sync_status",le="16"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="sync_status",le="32"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="sync_status",le="64"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="sync_status",le="128"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="sync_status",le="256"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="sync_status",le="512"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="console",step="sync_status",le="+Inf"} 3 orchestratord_reconciliation_step_duration_seconds_sum{controller="console",step="sync_status"} 0.020792113 orchestratord_reconciliation_step_duration_seconds_count{controller="console",step="sync_status"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="balancer",le="0.001"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="balancer",le="0.002"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="balancer",le="0.004"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="balancer",le="0.008"} 1 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="balancer",le="0.016"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="balancer",le="0.032"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="balancer",le="0.064"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="balancer",le="0.128"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="balancer",le="0.256"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="balancer",le="0.512"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="balancer",le="1"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="balancer",le="2"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="balancer",le="4"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="balancer",le="8"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="balancer",le="16"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="balancer",le="32"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="balancer",le="64"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="balancer",le="128"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="balancer",le="256"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="balancer",le="512"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="balancer",le="+Inf"} 4 orchestratord_reconciliation_step_duration_seconds_sum{controller="materialize",step="balancer"} 0.035007639 orchestratord_reconciliation_step_duration_seconds_count{controller="materialize",step="balancer"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="console",le="0.001"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="console",le="0.002"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="console",le="0.004"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="console",le="0.008"} 2 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="console",le="0.016"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="console",le="0.032"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="console",le="0.064"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="console",le="0.128"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="console",le="0.256"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="console",le="0.512"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="console",le="1"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="console",le="2"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="console",le="4"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="console",le="8"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="console",le="16"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="console",le="32"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="console",le="64"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="console",le="128"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="console",le="256"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="console",le="512"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="console",le="+Inf"} 4 orchestratord_reconciliation_step_duration_seconds_sum{controller="materialize",step="console"} 0.031492469 orchestratord_reconciliation_step_duration_seconds_count{controller="materialize",step="console"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="generation_resources",le="0.001"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="generation_resources",le="0.002"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="generation_resources",le="0.004"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="generation_resources",le="0.008"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="generation_resources",le="0.016"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="generation_resources",le="0.032"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="generation_resources",le="0.064"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="generation_resources",le="0.128"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="generation_resources",le="0.256"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="generation_resources",le="0.512"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="generation_resources",le="1"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="generation_resources",le="2"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="generation_resources",le="4"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="generation_resources",le="8"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="generation_resources",le="16"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="generation_resources",le="32"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="generation_resources",le="64"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="generation_resources",le="128"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="generation_resources",le="256"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="generation_resources",le="512"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="generation_resources",le="+Inf"} 4 orchestratord_reconciliation_step_duration_seconds_sum{controller="materialize",step="generation_resources"} 1.677370107 orchestratord_reconciliation_step_duration_seconds_count{controller="materialize",step="generation_resources"} 4 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="global_resources",le="0.001"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="global_resources",le="0.002"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="global_resources",le="0.004"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="global_resources",le="0.008"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="global_resources",le="0.016"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="global_resources",le="0.032"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="global_resources",le="0.064"} 7 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="global_resources",le="0.128"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="global_resources",le="0.256"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="global_resources",le="0.512"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="global_resources",le="1"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="global_resources",le="2"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="global_resources",le="4"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="global_resources",le="8"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="global_resources",le="16"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="global_resources",le="32"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="global_resources",le="64"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="global_resources",le="128"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="global_resources",le="256"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="global_resources",le="512"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="global_resources",le="+Inf"} 9 orchestratord_reconciliation_step_duration_seconds_sum{controller="materialize",step="global_resources"} 0.6100546750000001 orchestratord_reconciliation_step_duration_seconds_count{controller="materialize",step="global_resources"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="promote",le="0.001"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="promote",le="0.002"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="promote",le="0.004"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="promote",le="0.008"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="promote",le="0.016"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="promote",le="0.032"} 1 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="promote",le="0.064"} 1 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="promote",le="0.128"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="promote",le="0.256"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="promote",le="0.512"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="promote",le="1"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="promote",le="2"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="promote",le="4"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="promote",le="8"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="promote",le="16"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="promote",le="32"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="promote",le="64"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="promote",le="128"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="promote",le="256"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="promote",le="512"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="promote",le="+Inf"} 3 orchestratord_reconciliation_step_duration_seconds_sum{controller="materialize",step="promote"} 0.255191096 orchestratord_reconciliation_step_duration_seconds_count{controller="materialize",step="promote"} 3 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="resolve_environment_id",le="0.001"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="resolve_environment_id",le="0.002"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="resolve_environment_id",le="0.004"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="resolve_environment_id",le="0.008"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="resolve_environment_id",le="0.016"} 7 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="resolve_environment_id",le="0.032"} 7 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="resolve_environment_id",le="0.064"} 7 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="resolve_environment_id",le="0.128"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="resolve_environment_id",le="0.256"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="resolve_environment_id",le="0.512"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="resolve_environment_id",le="1"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="resolve_environment_id",le="2"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="resolve_environment_id",le="4"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="resolve_environment_id",le="8"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="resolve_environment_id",le="16"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="resolve_environment_id",le="32"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="resolve_environment_id",le="64"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="resolve_environment_id",le="128"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="resolve_environment_id",le="256"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="resolve_environment_id",le="512"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="resolve_environment_id",le="+Inf"} 9 orchestratord_reconciliation_step_duration_seconds_sum{controller="materialize",step="resolve_environment_id"} 0.257982274 orchestratord_reconciliation_step_duration_seconds_count{controller="materialize",step="resolve_environment_id"} 9 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="teardown_generation",le="0.001"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="teardown_generation",le="0.002"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="teardown_generation",le="0.004"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="teardown_generation",le="0.008"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="teardown_generation",le="0.016"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="teardown_generation",le="0.032"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="teardown_generation",le="0.064"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="teardown_generation",le="0.128"} 0 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="teardown_generation",le="0.256"} 1 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="teardown_generation",le="0.512"} 1 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="teardown_generation",le="1"} 1 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="teardown_generation",le="2"} 1 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="teardown_generation",le="4"} 1 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="teardown_generation",le="8"} 1 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="teardown_generation",le="16"} 1 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="teardown_generation",le="32"} 1 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="teardown_generation",le="64"} 1 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="teardown_generation",le="128"} 1 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="teardown_generation",le="256"} 1 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="teardown_generation",le="512"} 1 orchestratord_reconciliation_step_duration_seconds_bucket{controller="materialize",step="teardown_generation",le="+Inf"} 1 orchestratord_reconciliation_step_duration_seconds_sum{controller="materialize",step="teardown_generation"} 0.232551199 orchestratord_reconciliation_step_duration_seconds_count{controller="materialize",step="teardown_generation"} 1 # HELP orchestratord_reconciliation_steps_total Count of reconciliation steps, by controller, by step, and by what the step concluded. Steps are the named phases a reconciliation pass moves through, so this is where a pass that fails or stalls identifies which phase it was in. An `outcome` of `abandoned` means the step did not conclude, which covers both an error propagating out of it and the pass being cancelled by a leadership handoff, so alert on orchestratord_reconciliations_total instead and read this to locate the step. # TYPE orchestratord_reconciliation_steps_total counter orchestratord_reconciliation_steps_total{controller="balancer",outcome="applied",step="certificate"} 12 orchestratord_reconciliation_steps_total{controller="balancer",outcome="applied",step="deployment"} 12 orchestratord_reconciliation_steps_total{controller="balancer",outcome="applied",step="service"} 12 orchestratord_reconciliation_steps_total{controller="balancer",outcome="applied",step="sync_status"} 12 orchestratord_reconciliation_steps_total{controller="console",outcome="applied",step="certificate"} 3 orchestratord_reconciliation_steps_total{controller="console",outcome="applied",step="configmap"} 3 orchestratord_reconciliation_steps_total{controller="console",outcome="applied",step="deployment"} 3 orchestratord_reconciliation_steps_total{controller="console",outcome="applied",step="network_policies"} 3 orchestratord_reconciliation_steps_total{controller="console",outcome="applied",step="service"} 3 orchestratord_reconciliation_steps_total{controller="console",outcome="applied",step="sync_status"} 3 orchestratord_reconciliation_steps_total{controller="materialize",outcome="applied",step="balancer"} 4 orchestratord_reconciliation_steps_total{controller="materialize",outcome="applied",step="console"} 4 orchestratord_reconciliation_steps_total{controller="materialize",outcome="applied",step="generation_resources"} 1 orchestratord_reconciliation_steps_total{controller="materialize",outcome="applied",step="global_resources"} 9 orchestratord_reconciliation_steps_total{controller="materialize",outcome="applied",step="promote"} 1 orchestratord_reconciliation_steps_total{controller="materialize",outcome="applied",step="resolve_environment_id"} 9 orchestratord_reconciliation_steps_total{controller="materialize",outcome="applied",step="teardown_generation"} 1 orchestratord_reconciliation_steps_total{controller="materialize",outcome="waiting",step="generation_resources"} 3 orchestratord_reconciliation_steps_total{controller="materialize",outcome="waiting",step="promote"} 2 # HELP orchestratord_reconciliations_total Count of reconciliation passes, by controller, by which of the controller's entry points ran, and by what the pass concluded. An `outcome` of `waiting` means the pass asked to be retried, which is normal during a rollout; `failed` means it returned an error, and is also reported as a Kubernetes event on the resource. # TYPE orchestratord_reconciliations_total counter orchestratord_reconciliations_total{controller="balancer",event_type="apply",outcome="applied"} 12 orchestratord_reconciliations_total{controller="console",event_type="apply",outcome="applied"} 3 orchestratord_reconciliations_total{controller="materialize",event_type="apply",outcome="applied"} 4 orchestratord_reconciliations_total{controller="materialize",event_type="apply",outcome="waiting"} 5Create a basic environment (outside of my working env)