我有五个与 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 中。但它声称
(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