feat(executor): add garbage collector Prometheus metrics#7550
feat(executor): add garbage collector Prometheus metrics#7550davidlin20dev wants to merge 1 commit into
Conversation
Emit objects_deleted, deletion_errors, and sweep_duration under a dedicated executor:gc: sub-scope, created once in the constructor and updated during each collect() sweep. Unit tests assert the counters move and the sweep is timed. Part of flyteorg#7455. Signed-off-by: davidlin20dev <davidlin20.dev@gmail.com>
71636b1 to
26030c3
Compare
|
Is it possible to rework these using OTEL instead of prometheus? |
Hi @Sovietaced, happy to switch these to OTel. I went with Prometheus because #7445 and #7455 (umbrella issue) are both centered around promutils, so that's @pingsutw, since you opened these issues: could you confirm whether OTel is the preferred Thanks both, appreciate the help! |
|
@davidlin20dev thanks for working it. Sorry for the late reply, I was OOO. yes, we decide to use OTEL |
Tracking issue
Related to #7455 (part of #7445; does not close the issue).
Why are the changes needed?
The garbage collector emits no metrics, so there is no visibility into whether terminal-
TaskActioncleanup is happening, failing, or keeping up. A broken or slow GC silently letsTaskActionCRDs pile up in etcd until the cluster is already degraded.What changes were proposed in this pull request?
Three Prometheus instruments under a dedicated
executor:gc:sub-scope, created once in the constructor and updated each sweep:objects_deleted(counter): per successful delete.deletion_errors(counter): per failed delete.sweep_duration(stopwatch): full-sweep duration, timed viadefer.The scope is injected through
NewGarbageCollector(..., scope)fromsetup.go(executorScope.NewSubScope("gc")). No labels, to keep cardinality bounded.How was this patch tested?
New unit tests in
garbage_collector_metrics_test.go(controller-runtime fake client, no envtest):TestGarbageCollectorDeletedMetric: a successful sweep movesobjects_deleted0 to 1, records a sweep, and leavesdeletion_errorsat 0.TestGarbageCollectorDeletionErrorMetric: an injected delete failure movesdeletion_errors0 to 1, andobjects_deletedstays 0.Verified via the default registry, since endpoint exposure depends on #7453.
go test ./executor/pkg/controller/ -run TestGarbageCollector -count=1 -vLabels
added
Setup process
N/A
Screenshots
N/A
Check all the applicable boxes
Related PRs
N/A
Docs link
N/A