【问题标题】:Prometheus Stats Collection - Do I need to expose endpoint?Prometheus Stats Collection - 我需要公开端点吗?
【发布时间】:2019-10-09 13:29:49
【问题描述】:

如果我需要使用 Prometheus,我是否必须始终将端点公开给 scrape 我的服务以收集指标。如果我正在运行后端服务,为什么我只想公开一个端点来收集统计信息。

我正在寻找一种替代或非常优化的方式来处理这个问题。有人对实施有任何想法吗?

我认为的替代方法之一是让通用指标收集器通过消息传递从所有应用程序收集统计信息,然后收集器将指标写入 Prometheus。

【问题讨论】:

    标签: prometheus


    【解决方案1】:

    通常 Prometheus 会开箱即用地抓取目标,因此您将重新创建 Prometheus 本身的主要功能。很多时候,您会在第二个端口上拥有通用的 NodeExporter 和特定于应用程序的导出器(例如 DB 或 JMX)。 Prometheus UI 以非常漂亮的视图向您显示不健康的抓取目标。

    当然,您应该投资于在/metrics 端点上添加身份验证。

    如果您有很多目标要抓取,我强烈建议您将 Prometheus 自动发现功能与自动化基础架构配置(例如 Ansible)结合使用,这样您就不必手动维护抓取目标。不过,要使此功能正常工作,您的 Prometheus 必须位于同一网段中。

    【讨论】:

    • 但是拥有一个运行速度快、速度快的后端服务暴露端点似乎是一种开销。我在一分钟内处理数百万个事件,而性能是我最关心的。想法?
    • 但是如果你想拥有该服务的内部数据,你必须以某种方式公开它。如果你不想接触你的服务代码本身,你可以使用像 JMX 这样的通用导出器(如果在 Java 上)。这些导出器通常是轻量级工具,它们只是创建指标端点供 Prometheus 抓取。可以在这里找到一个大列表:prometheus.io/docs/instrumenting/exporters
    • 我的主要动机不是引入一些可以继续分析我的应用程序并导致不需要的情况的东西。我正在编写一个高性能平台,它总共有 6 个线程关联到 6 个内核,并且不希望在我不知情和设置频率的情况下对我的应用程序进行不可见的快照。
    猜你喜欢
    • 2021-08-16
    • 2020-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-29
    • 1970-01-01
    • 2021-06-07
    • 2017-02-21
    相关资源
    最近更新 更多