跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言

Prometheus 监控系统核心概念与架构解析

Prometheus 是一套开源的监控、报警及时间序列数据库组合,广泛应用于云原生环境。其核心优势包括低依赖、自动发现及高性能存储。架构上采用拉取模式,包含 Server、Alertmanager、PushGateway 等组件。数据模型基于带标签的时间序列,支持 Counter、Gauge、Histogram、Summary 四种类型,分别适用于累计值、瞬时值、分布统计及分位数分析场景。

墨染流年发布于 2017/8/21更新于 2026/10/2486 浏览
Prometheus 监控系统核心概念与架构解析
Prometheus 是什么?

Prometheus 是一套开源的监控、报警及时间序列数据库的组合,最初由 SoundCloud 开发。随着社区发展,它逐渐独立为开源项目并由云原生计算基金会(CNCF)托管。Google SRE 指南中也提及了与其 BorgMon 系统相似的实现思路。如今在 Kubernetes 容器管理生态中,Prometheus 几乎是事实标准的监控组件。

核心优势
  • 外部依赖极少,部署简单
  • 丰富的系统集成支持(Docker、HAProxy、Nginx、JMX 等)
  • 服务自动发现机制
  • 可嵌入代码内部采集指标
  • 专为分布式和微服务架构设计
关键特性
  • 自定义多维数据模型
  • 高效存储:单条采样约占用 3.5 字节。以 320 万时间序列、每 30 秒采样、保留 60 天为例,磁盘消耗约 228GB
  • 强大的 PromQL 查询语言
  • 灵活的可视化集成(Grafana、Promdash 等)

相比 Graphite 等产品,Prometheus 在读写性能上表现优异,其数据结构设计与 OpenTSDB 有异曲同工之妙。

系统架构

Prometheus 系统架构图

核心流程如下:Prometheus Server 负责定时从目标端抓取 metrics 数据,因此每个被监控目标需暴露 HTTP 接口供其拉取。 支持多种服务发现方式,包括配置文件、文本文件、ZooKeeper、Consul 以及 DNS SRV 查找。 Alertmanager 是独立组件,处理 Prometheus 发出的告警通知,支持灵活的路由策略。 可视化方面,除了 Grafana 等主流工具,也提供内置模板引擎及 HTTP API 供自定义输出。 PushGateway 允许客户端主动推送指标数据,适用于短生命周期的任务监控。

熟悉 StatsD 的用户会发现两者相似,区别在于 StatsD 通常采用推模式直接发送服务器,而 Prometheus 主要基于拉取模式。

数据模型

所有数据存储均基于时间序列。一条时间序列由唯一的指标名称(metric name)和一组标签(labels)组成。不同标签组合代表不同的时间序列。

指标名称与标签

每条时间序列格式为:指标名称 {标签="值"}。 指标命名建议遵循 应用_对象_类型_单位 规范,例如:

  • push_total
  • userlogin_mysql_duration_seconds
  • app_memory_usage_bytes

标签用于区分同一指标的不同维度,如 HTTP 请求的方法(GET/POST)或端点(endpoint)。

http_requests_total{method="POST", endpoint="/api/tracks"}

注意:针对同一指标名,增加或删除标签都会形成新的时间序列。若类比传统数据库,指标名相当于表名,标签是字段,timestamp 是主键,数值为 float64 类型。

四种数据类型
Counter

累计值,只增不减。适用于请求总数、错误计数等。重启后重置。 示例:http_response_total{method="GET", endpoint="/api/tracks"} 100

Gauge

常规数值,可增可减。适用于温度、内存使用率等。重启后重置。 示例:memory_usage_bytes{host="master-01"} 100

Histogram

柱状图,用于跟踪事件规模分布,如请求耗时、响应大小。提供 count 和 sum 统计,并支持分桶(bucket)统计。 示例:记录小于 10ms 的 5 次,小于 20ms 的 1 次等。

Histogram 示意图

Summary

与 Histogram 类似,但计算方式不同。同样提供 count 和 sum,额外支持 quantiles(分位数)功能。 例如 quantile=0.95 表示采样值的 95% 分位点。

目录

  1. Prometheus 是什么?
  2. 核心优势
  3. 关键特性
  4. 系统架构
  5. 数据模型
  6. 指标名称与标签
  7. 四种数据类型
  8. Counter
  9. Gauge
  10. Histogram
  11. Summary

更多推荐文章

查看全部
  • Kotlin Multiplatform 赋能 HarmonyOS 应用开发实践与解析
  • Python3 基础语法与实战应用指南:爬虫数据分析机器学习入门
  • 前缀和算法详解与实战应用
  • AIGC 背景下图文内容社区数据指标体系构建指南
  • 人形全身 VLA 模型Ψ0:人类视频预训练与流匹配动作专家
  • Circle Loss:统一 Softmax 与 Triplet 的圆形优化视角
  • Python 标准库与第三方库实战:日期、字符串与 Excel 操作
  • Python 基础教程:循环控制与核心数据结构详解
  • ChatDoctor 使用指南:基于 LLaMA 的医疗 AI 助手
  • OpenVLA 深度解析:基于 Prismatic VLM 的离散化动作预测方案
  • 软件解耦与扩展:基于 C++ 与 C# 的插件式开发
  • xsimd 实战指南:从零开始掌握 C++ SIMD 编程
  • OpenClaw 架构解析:构建可落地的个人 AI Agent 操作系统
  • Linux 服务器配置 SFTP 完整指南与安全实践
  • Android 集成 WebRTC 与 VAD 的 AI 辅助开发实战:从选型到性能优化
  • 基于 AI 的 B 站充电视频页面结构分析与鉴权实现
  • 前端防抖节流主流库实战与避坑指南
  • self-llm 开源大模型部署与微调入门指南
  • AI 大模型在专利翻译领域的应用与实践
  • GitHub Spec-Kit 规范驱动开发实战指南

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online