CnOps 智能运维与可观测社区
首页开源项目实践文章视频课程常见问答开发者工具STAROps 专题
导航菜单
首页开源项目实践文章视频课程常见问答开发者工具STAROps 专题

CnOps 智能运维与可观测社区

愿景

CnOps 智能运维与可观测社区是一个以"智能运维与可观测"为核心的开放、包容、分享的技术社区,旨在聚集运维专家、开发者和爱好者,共同探讨、学习和分享可观测最佳实践与最新技术,与众多技术社区合作互动,共同探讨交叉领域的技术挑战,推动可观测领域的创新与进步。

内容社区

  • 实践文章
  • 视频课程
  • 开源项目
  • 常见问答
  • 开发者工具

友情链接

  • Prometheus
  • Grafana Lab
  • OpenTelemetry
  • LoongCollector

关注我们

阿里云云原生公众号阿里云云原生
阿里云可观测公众号阿里云可观测

Copyright © 2026 CnOps 社区. All rights reserved.

首页/开源项目/Prometheus/常见问题
文档目录
概述快速入门与替代方案的比较常见问题路线图设计文档媒体资源术语表长期支持

Prometheus

常见问题

Prometheus 是一个拥有活跃生态系统的开源系统监控和告警工具包。它是 Kubernetes 直接支持的唯一系统,也是云原生生态系统中的事实标准。请参阅概述。 请参阅比较页面。 主要的 Prometheus 服务器作为单一二进制文件独立运行,没有外部依赖。 是的。 云原生是一种灵活的运营模式,打破旧的服务边界以实现更灵活和可扩展的部署。 Prometheus...

通用问题

什么是 Prometheus?

Prometheus 是一个拥有活跃生态系统的开源系统监控和告警工具包。它是 Kubernetes 直接支持的唯一系统,也是云原生生态系统中的事实标准。请参阅概述。

Prometheus 与其他监控系统相比如何?

请参阅比较页面。

Prometheus 有哪些依赖?

主要的 Prometheus 服务器作为单一二进制文件独立运行,没有外部依赖。

这是云原生的吗?

是的。

云原生是一种灵活的运营模式,打破旧的服务边界以实现更灵活和可扩展的部署。

Prometheus 的服务发现与大多数工具和云平台集成。其维度数据模型可以扩展到数千万个活跃序列,允许监控大规模云原生部署。在运行服务时总是需要做出权衡,而 Prometheus 最重视的是将告警可靠地发送给人类。

Prometheus 可以实现高可用吗?

可以,在两台或更多独立的机器上运行相同的 Prometheus 服务器即可。

像 Thanos 这样的系统可以对数据进行去重。许多支持 remote write 的外部系统也可以对数据进行去重。

相同的告警将由 Alertmanager 进行去重。

Alertmanager 通过互连多个 Alertmanager 实例构建 Alertmanager 集群来支持高可用。

有人告诉我 Prometheus "无法扩展"。

这往往更多是一种营销说辞,而非事实。

单个 Prometheus 实例的性能可能超过一些将自己定位为 Prometheus 长期存储解决方案的系统。你可以在拥有数千万个活跃序列的情况下可靠地运行 Prometheus。

如果你需要更多,有几种选择。Robust Perception 博客上的 Scaling and Federating Prometheus 是一个很好的起点,我们集成页面上列出的长期存储系统也是如此。

Prometheus 使用什么语言编写?

大多数 Prometheus 组件使用 Go 编写。一些也使用 Java、Python 和 Ruby 编写。

Prometheus 的功能、存储格式和 API 有多稳定?

在 Prometheus GitHub 组织中已达到 1.0.0 版本的所有仓库基本遵循语义化版本。破坏性变更通过主版本号递增来标识。实验性组件可能例外,这些会在公告中明确标注。

即使尚未达到 1.0.0 版本的仓库通常也相当稳定。我们致力于为每个仓库提供正式的发布流程和最终的 1.0.0 版本。无论如何,破坏性变更都会在发布说明中指出(标记为 [CHANGE]),或者对于尚未正式发布的组件会明确沟通。

为什么选择拉取而非推送?

通过 HTTP 拉取提供了许多优势:

  • 你可以根据需要启动额外的监控实例,例如在开发变更时在笔记本电脑上运行。
  • 你可以更轻松、更可靠地判断目标是否宕机。
  • 你可以手动访问目标并使用 Web 浏览器检查其健康状况。

总的来说,我们认为拉取比推送略好,但在考虑监控系统时,这不应被视为一个重要因素。

对于必须推送的情况,我们提供了 Pushgateway。

如何将日志导入 Prometheus?

简短回答:不要这样做!请改用 Grafana Loki 或 OpenSearch 等工具。

详细回答:Prometheus 是一个用于收集和处理指标的系统,不是事件日志系统。Grafana 的博客文章日志、指标和图表,天呐!提供了关于日志和指标之间区别的更多细节。

如果你想从应用程序日志中提取 Prometheus 指标,Grafana Loki 正是为此而设计的。请参阅 Loki 的指标查询文档。

谁编写了 Prometheus?

Prometheus 最初由 Matt T. Proud 和 Julius Volz 私下发起。其初始开发的大部分工作由 SoundCloud 赞助。

现在它由众多公司和个人维护和扩展。

Prometheus 使用什么许可证发布?

Prometheus 使用 Apache 2.0 许可证发布。

Prometheus 的复数形式是什么?

经过广泛研究,已经确定 'Prometheus' 的正确复数形式是 'Prometheis'。

如果你记不住,"Prometheus instances" 是一个不错的替代说法。

我可以重新加载 Prometheus 的配置吗?

可以,向 Prometheus 进程发送 SIGHUP 信号或向 /-/reload 端点发送 HTTP POST 请求将重新加载并应用配置文件。各个组件会尝试优雅地处理失败的变更。

我可以发送告警吗?

可以,使用 Alertmanager。

我们支持通过电子邮件、各种原生集成以及任何人都可以添加集成的 webhook 系统来发送告警。

我可以创建仪表盘吗?

可以,我们推荐在生产环境中使用 Grafana。还有控制台模板可供使用。

我可以更改时区吗?为什么所有内容都是 UTC?

为了避免任何形式的时区混乱,特别是涉及所谓的夏令时时,我们决定在 Prometheus 的所有组件中内部专门使用 Unix 时间,并在显示时使用 UTC。可以在 UI 中引入精心设计的时区选择功能。欢迎贡献。请参阅 issue #500 了解此工作的当前状态。

插桩

哪些语言有插桩库?

有许多客户端库可用于使用 Prometheus 指标对你的服务进行插桩。有关详细信息,请参阅客户端库文档。

如果你有兴趣为新语言贡献客户端库,请参阅暴露格式。

我可以监控机器吗?

可以,Node Exporter 在 Linux 和其他 Unix 系统上暴露了大量机器级指标,如 CPU 使用率、内存、磁盘利用率、文件系统使用率和网络带宽。

我可以监控网络设备吗?

可以,SNMP Exporter 允许监控支持 SNMP 的设备。对于工业网络,还有一个 Modbus exporter。

我可以监控批处理作业吗?

可以,使用 Pushgateway。另请参阅监控批处理作业的最佳实践。

Prometheus 可以开箱监控哪些应用程序?

请参阅导出器和集成列表。

我可以通过 JMX 监控 JVM 应用程序吗?

可以,对于无法直接使用 Java 客户端进行插桩的应用程序,你可以使用 JMX Exporter 作为独立程序或 Java Agent 运行。

插桩对性能有什么影响?

不同客户端库和语言的性能可能有所不同。对于 Java,基准测试表明,使用 Java 客户端递增计数器/仪表盘大约需要 12-17 纳秒,具体取决于竞争情况。这对于除最关注延迟的代码外,都是可以忽略不计的。

实现

为什么所有样本值都是 64 位浮点数?

我们限制自己使用 64 位浮点数以简化设计。IEEE 754 双精度二进制浮点格式支持高达 253 的整数精度。如果你需要超过 253 但低于 263 的整数精度,支持原生 64 位整数(才)会有帮助。原则上,可以实现对不同样本值类型的支持(包括某种大整数,甚至支持超过 64 位),但这目前不是优先事项。一个计数器,即使每秒递增一百万次,也要超过 285 年才会遇到精度问题。

文章大纲