具有动态规则的 Prometheus 服务器

Prometheus Server with Dynamic Rules

我目前正在开发一个使用 Prometheus Server(不是 Prometheus Operator)的项目。 我们希望引入一种无需重新部署即可修改 PrometheusRules 的方法。

我对容器和 Kubernetes 完全陌生,有点不知所措,所以我希望有人能告诉我我是否在浪费时间尝试完成这项工作。

目前我想到的是:

  1. 将 PrometheusRules 存储在配置映射中。
  2. 将规则的配置映射应用于 Prometheus 服务器配置。
  3. 为可以修改此 configMap 的 Prometheus 服务器创建一个 sidecar。
  4. Sidecar 将有一个 API 公开,因此用户将具有规则的 CRUD 功能。
  5. 成功修改规则后,sidecar 将触发 Prometheus 服务器上的重新加载端点,使其重新加载其配置文件而无需重新启动容器。

谢谢

您的初始用例似乎有效,但我会说有更好的方法来实现这一点。

对于第 1,2 点,我建议您使用 Prometheus Helm Chart 以便于使用、更好的配置管理和部署。这会将 Prometheus 配置作为一个单元来跟踪,而不是单独维护规则文件。

对于第 3,4 点:- 对实时配置进行直接的未跟踪更改似乎不安全。使用上面提到的 helm chart,我建议您在 之前 进行更改部署到集群(使用像 Git 这样的 VCS 来跟踪更改)

最佳情况:- 还设置 CI/CD 管道以立即部署更改。

如前所述使用重新加载 API 重新加载新发布的配置。

进一步了解 Helm