0

在此处输入图像描述

在我们正在构建的系统中,我们需要使用 Prometheus 监控在 k8s 集群中运行的组件(Kafka Connect、Spark..等)。由于 k8s 集群运行在不同的网络中,Prometheus 服务器无法直接抓取这些组件。为此,我们将在我们的 k8s 集群中运行 PushGateWay。

我想出了以下设计:

  1. 自定义构建的“推送代理”组件读取“kube-api-service”以获取我们要监视的每个组件的 pod 列表。(还定期检查 pod 健康/检查新 pod ..等)
  2. “推送代理”会定期在每个 pod 中报废出口商。(调用每个 pod 的 /metrics 端点)。将这些刮取的矩阵存储在缓冲区中。
  3. “推送代理”定期将缓冲的矩阵推送到 PushGateWay。
  4. 这个 PushGateWay 可以从 Prometheus 访问。Prometheus 定期从 PushGW 刮取矩阵。

问题是:

  1. 有没有像我们计划构建的“推送代理”这样的组件?
  2. 这是处理此问题的有效设计吗?
4

0 回答 0