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中文网其他相关文章!