跳到主要内容

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 进行通信


Grpc 接口定义

Grpc 接口