php小編魚仔介紹:在使用kubernetes操作員控制器時,我們有時會遇到刪除無法運行的指標的情況。這可能會導致運行時錯誤和不一致性。為了解決這個問題,我們需要採取一些步驟來刪除這些無法運行的指標。本文將提供詳細的解決方案,以協助您順利刪除無法運作的kubernetes操作員控制器指標。讓我們一起來看看吧!
我一直在研究我的操作員,其中我有一些自訂指標設定值並且工作正常(註冊和顯示指標值)。問題是指標刪除沒有發生。我試圖聲明一個單獨的函數來刪除指標。
我的操作員正在啟動有狀態集和服務,但在刪除我的 cr 後,子資源將被刪除,但指標不會得到任何更新/刪除。
func (r *cr) reconcile(ctx context.context, req ctrl.request) (ctrl.result, error) { ...... ...... if errors.isnotfound(err) { l.info("cr not found so maybe deleted") l.info("deleting cr metric instance") deletemetric(instance, true) return ctrl.result{}, nil }
func DeleteMetric(cr *CR, condition bool) { l := logf.Log.WithName("CR Metric deletion") l.Info("Deleting metric for CR", "instance", cr.Name, "from namespace", cr.Namespace) if condition { custom_metric_name.Delete(prometheus.Labels{ "name": cr.Name, "namespace": cr.Namespace, }) } }
我還嘗試使用 deletefunc
宣告謂詞,但沒有成功,我的指標仍然無法刪除。
感謝任何幫助或指示。
我能夠實現此功能,刪除指標只需根據已完成的資源操作使用刪除函數呼叫自訂指標即可。
僅供參考,對自訂指標呼叫刪除是可行的,您可以在自訂資源上完成工作後呼叫該函數。
https://pkg.go.dev/github .com/prometheus/client_golang/prometheus#MetricVec.DeleteLabelValues
以上是刪除無法執行 kubernetes 操作員控制器的指標的詳細內容。更多資訊請關注PHP中文網其他相關文章!