如何配置 Prometheus 以获取聚合指标?

如何配置 Prometheus 以获取聚合指标?

我有五个与 Prometheus 聚合指标接收配置相关的问题。

我的系统中有一些不变量:

  • 需要检测的 Python 服务器代码
  • 需要获取警报的聚合指标的 Prometheus 服务

中间的一切目前正在设计中。我读了一些关于它应该如何运作的资料,但一直绕圈子。

推送网关明确地不支持聚合:

Pushgateway 显然不是一个聚合器或分布式计数器而是一个指标缓存。它没有统计信息语义。推送的指标与永久运行程序中呈现的抓取指标完全相同。如果您需要分布式计数,您可以将实际的 statsd 与Prometheus statsd 导出器或查看Weavework 的聚合网关

但是之后(1)为什么它的官方Python 客户端支持Histogram, 哪个

允许对分位数进行聚合计算

如果我走这statsd条路,那么statsd_exporter

由于 StatsD 导出器使用与 StatsD 本身相同的线路协议,您还可以配置应用程序以将 StatsD 指标直接发送到导出器。在这种情况下,您不再需要运行 StatsD 服务器。

(2)这是否意味着普罗米修斯实际上statsd_exporter单独支持聚合吗?

我想使用最流行的 Python 绑定statsd,简称为statsd在 pypi 中。但它声称

统计信息是一个友好的前端石墨。这是 statsd 守护进程的 Python 客户端。

(3)如果我只使用statsd_exporter,我可以跳过 Graphite 依赖吗?

最后:文档statsd_exporter还说

我们仅建议将其作为中间解决方案,并建议切换到原生 Prometheus 仪表在长期。

Python 的“原生 Prometheus 实现”链接让我回想起了prometheus_client,但它立刻让我感觉像是不是客户- 它是与服务器实现紧密耦合,如下所示:

指标通常通过 HTTP 公开,以供 Prometheus 服务器读取。

最简单的方法是通过start_http_server,它将在给定端口上的守护进程线程中启动 HTTP 服务器。

(4)这是否意味着“本机”检测需要您附加一个检测服务器被 Prometheus 查询的代码?(5)如果使用的话Histogram,它会支持聚合吗?

答案1

存在一个处理聚合的 Prometheus 网关:https://github.com/weaveworks/prom-aggregation-gateway

但请注意,仪表聚合目前尚未实现,https://github.com/weaveworks/prom-aggregation-gateway/issues/8

相关内容