Observer 插件
Observer 插件
observer 主要作用就是 watch observabilityIndicant,周期性获取 metrics 数据,而要实现的 plugin 就是作为数据提供方。
实现 plugin 只需要实现一个 Grpc 的接口即可。接口只要包含三个函数:
GetPluginName
该接口主要是用来获取插件名称,以便 oserver 控制器可以忽略某些自己不关注的 cr.
GetCapabilities
获取当前插件支持的能力,例如,获取一段时间cpu的最大值,或者内存的平均值等。
当客户在 cr 中编写要获取的指标聚合值,observer 会根据从当前 plugin 获取到的支持的能力与用户所写的进行整合例如:
用户对与 cpu 需要 ma x和 min 的聚合,但是 plugin 却只提供了 min 的聚合能力,所以 observer 插件在请求数据的时候,只会请求 min 的聚合值。
GetMetrixs
返回目标 Pod 的聚合指标数据。
实现相关接口后启动 rpc 进程,与 observer 的程序共同部署(sidecar 模式) ,二者通过 unix domain socket
进行通信