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

CnOps 智能运维与可观测社区

愿景

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

内容社区

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

友情链接

  • Prometheus
  • Grafana Lab
  • OpenTelemetry
  • LoongCollector

关注我们

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

Copyright © 2026 CnOps 社区. All rights reserved.

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

Prometheus

概述

Prometheus 是一个开源的系统监控和告警工具包,最初由 SoundCloud 构建。自 2012 年诞生以来,许多公司和组织已经采用了 Prometheus,该项目拥有非常活跃的开发者和用户社区。它现在是一个独立的开源项目,独立于任何公司进行维护。为了强调这一点并明确项目的治理结构,Prometheus 于 2016 年加入了云原生计算基金会,成为继 Kubernetes...

什么是 Prometheus?

Prometheus 是一个开源的系统监控和告警工具包,最初由 SoundCloud 构建。自 2012 年诞生以来,许多公司和组织已经采用了 Prometheus,该项目拥有非常活跃的开发者和用户社区。它现在是一个独立的开源项目,独立于任何公司进行维护。为了强调这一点并明确项目的治理结构,Prometheus 于 2016 年加入了云原生计算基金会,成为继 Kubernetes 之后的第二个托管项目。

Prometheus 将其指标作为时间序列数据进行收集和存储,即指标信息与记录时的时间戳一起存储,并附带可选的键值对(称为标签)。

有关 Prometheus 更详细的概述,请参阅媒体部分链接的资源。

特性

Prometheus 的主要特性包括:

  • 多维数据模型,时间序列数据通过指标名称和键/值对进行标识
  • PromQL,一种灵活的查询语言,可以充分利用这种多维性
  • 不依赖分布式存储;单个服务器节点是自治的
  • 通过基于 HTTP 的拉取模型进行时间序列收集
  • 通过中间网关支持推送时间序列
  • 通过服务发现或静态配置来发现目标
  • 支持多种图形和仪表盘展示模式

什么是指标?

通俗地说,指标是数值度量。时间序列是指随时间推移记录变化的过程。用户想要测量的内容因应用程序而异。对于 Web 服务器,可能是请求响应时间;对于数据库,可能是活跃连接数或活跃查询数等等。

指标在理解应用程序为何以某种方式运行方面起着重要作用。假设你正在运行一个 Web 应用程序,并发现它运行缓慢。要了解应用程序正在发生什么,你需要一些信息。例如,当请求数量很高时,应用程序可能会变慢。如果你拥有请求计数指标,就可以确定原因并增加服务器数量来处理负载。

组件

Prometheus 生态系统由多个组件组成,其中许多是可选的:

  • 主要的 Prometheus 服务器,用于抓取和存储时间序列数据
  • 客户端库,用于对应用程序代码进行插桩
  • 推送网关,用于支持短生命周期的作业
  • 针对 HAProxy、StatsD、Graphite 等服务的专用导出器
  • Alertmanager,用于处理告警
  • 各种辅助工具

大多数 Prometheus 组件使用 Go 编写,使其易于构建和部署为静态二进制文件。

架构

下图展示了 Prometheus 的架构及其部分生态系统组件:

Prometheus architecture

Prometheus 从已插桩的作业中直接抓取指标,或者通过中间推送网关抓取短生命周期作业的指标。它在本地存储所有抓取的样本,并对这些数据运行规则,以便从现有数据中聚合和记录新的时间序列,或者生成告警。Grafana 或其他 API 消费者可用于可视化收集的数据。

何时适用?

Prometheus 非常适合记录任何纯数值的时间序列。它既适用于以机器为中心的监控,也适用于高度动态的面向服务的架构的监控。在微服务的世界中,它对多维数据收集和查询的支持是一个特别的优势。

Prometheus 专为可靠性而设计,在故障期间你可以依赖它来快速诊断问题。每个 Prometheus 服务器都是独立的,不依赖于网络存储或其他远程服务。当基础设施的其他部分出现故障时,你仍然可以依赖它,而且不需要搭建大量基础设施就可以使用它。

何时不适用?

Prometheus 重视可靠性。即使在故障条件下,你也可以随时查看系统的可用统计信息。如果你需要 100% 的精确度,例如按请求计费,Prometheus 不是一个好的选择,因为收集的数据可能不够详细和完整。在这种情况下,你最好使用其他系统来收集和分析计费数据,而使用 Prometheus 来处理其余的监控需求。

文章大纲