我使用 watch 机制来监控另一个集群中的资源,例如特定命名空间下的 Pod。我想及时检测 watch 连接的健康状态,包括连接延迟以及连接是否断开。我注意到在断开连接后 30 秒内会生成错误日志,但我没有找到可以收集的相关指标。
我想公开有关监视操作延迟的指标。阅读客户端 go 和组件库源代码后,我仍然不知道该怎么做(使用其他预打包库的解决方案对我来说也很好)。或者有没有办法让我直接监视到目标集群的延迟?
我第一次尝试在这里添加观察。
informer.Informer().AddEventHandler(cache.FilteringResourceEventHandler{
FilterFunc: func(obj interface{}) bool {
// Update last synced time.
UpdateLastSyncedTime()
return true
},
}
但经过讨论,我发现这可能不是一个好方法。原因是,更新功能是由通知器事件触发的,这些事件源于集群中项目的更改或定期重新同步。要使前面提到的方法发挥作用,需要减少重新同步间隔,这可能会导致效率低下。