Prometheus

55708
下载
Prometheus 是一个开源的监控和告警系统,专注于时间序列数据的采集与存储。由 SoundCloud 开发,配备高级查询语言PromQL,便于数据挖掘与分析,并无缝对接多种可视化平台。

什么时候使用 Pushgateway


Pushgateway 是一个中间媒介服务,可以让你从无法被抓取的工作负载中推送指标数据。有关详细信息,请参阅推送指标数据

我应该使用 Pushgateway 吗?

我们仅推荐在某些限定情况下使用 Pushgateway。 盲目地使用 Pushgateway 代替 Prometheus 常规的抓取模型进行一般指标收集时,可能会陷入一些陷阱:

  • 当通过单个 Pushgateway 监控多个实例时,Pushgateway 会成为单一故障点和潜在的瓶颈。
  • 你会失去 Prometheus 通过up指标自动进行的实例健康监测(每轮抓取生成)。
  • Pushgateway 永远不会丢弃推送的数据。除非你通过 Pushgateway 的 API 手动删除这些序列,否则它们将会永远被暴露给 Prometheus。

特别是当一个工作负载的不同实例通过instance标签或其他类似方式在 Pushgateway 中区分其指标时,这一点尤为重要。即使发起实例重命名或移除,该实例的指标仍然会保留在 Pushgateway 中。这是因为 Pushgateway 的指标生命周期与向其推送指标的过程的生命周期根本不同。相比之下,Prometheus 的常规拉取式式监控是:当实例消失(无论是有意还是无意),它的指标都将自动随之消失。使用 Pushgateway 时,指标则不会自动消失,你需要手动删除所有过时的指标,或者自行自动化此生命周期同步流程。

通常,Pushgateway 唯一有效的使用场景是捕获服务级别的批处理作业的结果。所谓“服务级别”的批处理作业是指与特定主机或作业实例无语义关联的作业(例如,整个服务中删除一定数量用户的批处理作业)。这类作业的指标不应包含机器或实例标签,以将特定主机或实例的生命周期和指标分离。这降低了管理 Pushgateway 中过时指标的负担。详情参见批量作业监控的最佳实践

替代策略

如果入站防火墙或 NAT 阻止了从目标抓取指标数据,请考虑将 Prometheus 服务器移除出网络屏障。我们通常建议在监控实例所在的同一网络上运行 Prometheus 服务器。否则,请考虑 PushProx,它允许 Prometheus 穿越防火墙或 NAT。

对于与主机相关的批量作业(如自动安全更新 cronjob 或配置管理客户端运行次数),可以使用 Node ExporterTextfile Collector(文本文件收集器)而不是 Pushgateway 来暴露指标。

该文档基于 Prometheus 官方文档翻译而成。


observability.cn Authors 2024 | Documentation Distributed under CC-BY-4.0
Copyright © 2017-2024, Alibaba. All rights reserved. Alibaba has registered trademarks and uses trademarks.
浙ICP备2021005855号-32