Prometheus 核心概念详解:时间序列、样本、指标类型与任务实例
前言Prometheus 作为云原生时代最核心的监控系统之一凭借其强大的多维数据模型和灵活的查询语言 PromQL已成为 Kubernetes 生态中监控方案的事实标准。本文将从零开始系统介绍 Prometheus 的核心概念——时间序列、样本、指标类型、以及 Job 与 Instance帮助读者建立扎实的理论基础。一、什么是 PrometheusPrometheus 是一套开源的系统监控和告警工具包由 SoundCloud 于 2012 年开源。2016 年它加入云原生计算基金会CNCF成为继 Kubernetes 之后第二个从 CNCF 毕业的项目。与传统监控系统不同Prometheus 采用Pull拉取模型即 Prometheus 服务器主动从被监控的目标服务中拉取指标数据。这种设计使得服务发现和动态配置更加灵活特别适合云原生和微服务架构。Prometheus 从根本上存储的所有数据都是时间序列数据Time Series Data。正是这个简单而强大的数据模型赋予了 Prometheus 卓越的查询和分析能力。二、时间序列Time Series2.1 什么是时间序列在 Prometheus 中时间序列是指属于相同指标名称和相同标签维度的一组带时间戳的值流。简单来说时间序列就是一个随时间不断更新的数据流。每个时间序列都由以下两部分共同唯一标识指标名称Metric Name描述被监控事物的整体特征标签Labels一组键值对用于进一步细分数据维度例如下面就是一个完整的时间序列标识texthttp_requests_total{jobapi-server, instance10.0.0.1:443, methodGET}指标名称http_requests_totalHTTP 请求总数标签jobapi-server、instance10.0.0.1:443、methodGET重要原则标签的组合直接决定了时间序列的数量。每一组唯一的标签组合都会创建一个新的时间序列。因此在设计标签时应谨慎避免使用无界标签如用户 ID、请求 ID否则会导致时间序列数量爆炸严重影响 Prometheus 性能。2.2 时间序列的组成从数据结构上看每个时间序列由三部分组成组成部分说明指标名称标识被监控的对象如http_requests_total、cpu_usage标签集一组键值对用于多维度的细分和过滤样本序列按时间排序的多个样本值见下文Prometheus 会将所有采集到的样本数据以时间序列的方式保存在内存数据库 TSDB 中并定期持久化到硬盘。三、样本Sample3.1 什么是样本样本Sample是时间序列的基本数据单位。如果把时间序列比作一条随时间延伸的线那么样本就是这条线上的一个个数据点。Prometheus 每次从目标抓取数据得到的结果就是一个或多个样本。每个样本由三部分组成text样本 度量名称 标签集 值 时间戳具体来说每个样本包含时间戳Timestamp精确到毫秒的 Unix 时间戳表示数据采集的时间点度量名称Metric Name该样本所属的指标名称标签Labels一组键值对用于区分不同的数据维度度量值Value一个 float64 类型的浮点数3.2 样本示例下面是一个完整的 Prometheus 样本texthttp_requests_total{methodGET, status200, jobapi-server, instanceserver1} 10234 1617902462000这个样本的含义是组成部分值说明度量名称http_requests_totalHTTP 请求总数标签methodGETHTTP 方法为 GET标签status200响应状态码为 200标签jobapi-server属于 api-server 任务标签instanceserver1来自 server1 实例值10234累计请求数为 10234时间戳1617902462000采集时间毫秒级 Unix 时间戳注意job和instance这两个标签是由 Prometheus 在抓取时自动生成并附加到样本上的用于标识数据的来源。四、指标的四种类型Prometheus 的客户端库提供了四种核心指标类型。需要特别说明的是Prometheus 服务端本身并不区分这些类型而是将所有指标统一视为无类型的时间序列。这些类型主要服务于客户端库的 API 设计和在线传输协议帮助开发者选择合适的接口上报数据。4.1 Counter计数器Counter是一种单调递增的指标类型它的值只能增加或在进程重启时重置为 0。核心特点只增不减除非重启重置适合统计发生了多少次典型使用场景HTTP 请求总数错误发生次数消息队列处理的消息数磁盘 I/O 操作次数命名惯例Counter 类型指标通常以_total结尾。示例text# HELP http_requests_total Total number of HTTP API requests # TYPE http_requests_total counter http_requests_total{apiadd_product, status200} 4633433 http_requests_total{apiadd_product, status500} 12345PromQL 查询技巧Counter 的绝对值本身意义有限通常结合rate()或increase()函数计算速率或增量promql# 过去5分钟内每秒的平均请求数 rate(http_requests_total{apiadd_product}[5m])4.2 Gauge仪表盘Gauge是一种可以任意增减的指标类型用于表示可以上下波动的瞬时值。核心特点可增可减反映当前状态而非累计值典型使用场景CPU 使用率内存占用量当前在线用户数队列长度温度示例text# HELP node_memory_MemFree_bytes Memory free in bytes # TYPE node_memory_MemFree_bytes gauge node_memory_MemFree_bytes 24567889924.3 Histogram直方图Histogram用于观察和分析样本值的分布情况。它通过将数据计入可配置的存储桶bucket中来统计分布。核心特点将观察值按预设的桶边界进行分组计数同时提供所有样本的总和sum和总数count适合分析请求延迟、响应大小等典型使用场景API 响应时间分布请求大小分布任何需要了解值落在哪个区间的指标工作原理Histogram 会生成多个时间序列basename_bucket{le上边界}值 ≤ 上边界的样本数量basename_sum所有样本值的总和basename_count样本总数长尾问题平均值往往会掩盖极端值。例如大多数请求响应都在 100ms 以内但个别请求需要 5 秒平均值可能仍然看起来不错。Histogram 通过分桶统计可以精准定位这类长尾问题。4.4 Summary摘要Summary与 Histogram 类似也用于分析样本分布。但两者的实现方式有本质区别对比维度HistogramSummary分位数计算位置服务端Prometheus 服务器客户端被监控的应用分位数精度估算值基于桶精确值是否可聚合✅ 可聚合多个实例的数据❌ 不可跨实例聚合灵活性桶边界可配置分位数可配置典型使用场景需要精确分位数的场景如 SLO 监控不需要跨实例聚合分位数的场景选择建议需要聚合多个实例的分位数 → 选择Histogram需要精确分位数且不跨实例聚合 → 选择Summary4.5 四种指标类型速查表类型变化特性典型场景关键操作Counter只增不减重启归零请求总数、错误次数Inc()Gauge可增可减CPU 使用率、内存占用、在线人数Set()、Inc()、Dec()Histogram分桶计数 总和API 响应时间分布Observe()Summary客户端分位数精确分位数统计Observe()五、Job 与 Instance5.1 基本概念在 Prometheus 的术语中Instance实例一个可以被抓取的目标端点Endpoint通常对应一个单独的进程Job任务一组具有相同用途的 Instance 的集合例如为了可扩展性或可靠性而复制的进程简单来说Instance 是抓取的目标Job 是目标的集合。5.2 举例说明假设我们有一个 API 服务器服务为了高可用部署了 4 个副本实例textJob任务api-server ├── Instance 11.2.3.4:5670 ├── Instance 21.2.3.4:5671 ├── Instance 35.6.7.8:5670 └── Instance 45.6.7.8:5671在这个例子中api-server是一个Job代表API 服务器这个服务4 个不同 IP 和端口的进程是Instance代表该服务的具体运行实例5.3 Prometheus 自动生成的标签当 Prometheus 抓取一个目标时会自动附加两个关键标签到所有采集的时间序列上标签来源说明job配置文件中的job_name目标所属的任务名称instance目标 URL 的host:port部分具体被抓取的实例地址例如抓取配置为yamlscrape_configs: - job_name: api-server static_configs: - targets: [1.2.3.4:5670, 1.2.3.4:5671]所有从这些目标采集的样本都会自动带上jobapi-server和对应的instance1.2.3.4:5670等标签。5.4 自动生成的运维指标对于每一次实例抓取Prometheus 还会自动存储以下时间序列指标名称说明up{job..., instance...}实例是否健康可达1正常0失败scrape_duration_seconds{...}本次抓取的耗时scrape_samples_scraped{...}目标暴露的样本数量scrape_series_added{...}本次抓取新增的时间序列数量其中up指标最为常用可用于监控所有实例的可用性状态。5.5 Job 与 Instance 的关系图解text┌─────────────────────────────────────────────────────┐ │ Job: api-server │ │ ┌─────────────┐ ┌─────────────┐ │ │ │ Instance 1 │ │ Instance 2 │ ── 自动添加 │ │ │1.2.3.4:5670│ │1.2.3.4:5671│ jobapi-server │ │ └─────────────┘ └─────────────┘ instance... │ │ ┌─────────────┐ ┌─────────────┐ │ │ │ Instance 3 │ │ Instance 4 │ │ │ │5.6.7.8:5670│ │5.6.7.8:5671│ │ │ └─────────────┘ └─────────────┘ │ └─────────────────────────────────────────────────────┘总结本文系统介绍了 Prometheus 的五大核心概念时间序列Time Series由指标名称和标签共同唯一标识的数据流是 Prometheus 数据模型的基础。样本Sample时间序列中的单个数据点由时间戳和 float64 数值组成是 Prometheus 存储的基本单位。四种指标类型Counter只增不减适合计数Gauge可增可减适合反映瞬时状态Histogram分桶统计分布服务端计算分位数Summary客户端计算分位数精确但不可聚合Instance实例被抓取的目标端点通常对应一个进程。Job任务一组相同用途的 Instance 集合。理解这些概念是掌握 Prometheus 监控体系的基石。无论是配置抓取任务、编写 PromQL 查询还是设计自定义监控指标都离不开对这些核心概念的深刻理解。后续的文章中我们将进一步深入 Prometheus 的安装部署、配置详解和 PromQL 查询实战。

相关新闻

终极免费原神辅助工具Akebi-GC:如何提升游戏体验的专业指南

终极免费原神辅助工具Akebi-GC:如何提升游戏体验的专业指南

终极免费原神辅助工具Akebi-GC:如何提升游戏体验的专业指南 【免费下载链接】Akebi-GC (Fork) The great software for some game that exploiting anime girls (and boys). 项目地址: https://gitcode.com/gh_mirrors/ak/Akebi-GC 想要在原神中获得更加流畅…

2026/7/7 7:43:20阅读更多 →
使用Deepseek进行Oracle恢复,引起重大故障---惜分飞

使用Deepseek进行Oracle恢复,引起重大故障---惜分飞

一个恢复case,查询数据库是open状态,有一个数据文件处于offline,删除表空间报offline的文件不能读写 根据经验,这个是一个小问题,可能就是由于datafile 5 offline了,而这个文件是undo表空间的所以出现这样…

2026/7/7 7:43:20阅读更多 →
架构决策记录 ADR:别让方案只活在会议里

架构决策记录 ADR:别让方案只活在会议里

架构决策记录 ADR:别让方案只活在会议里 一、架构评审结束不代表决策被保存 很多架构方案在评审会上讨论得很充分,最后口头决定采用某个方案。但几个月后,团队只记得“当时好像这么定了”,却忘了为什么放弃另一个方案、哪些风险被…

2026/7/7 7:38:19阅读更多 →
58.1.智慧银行-指纹+人脸-基于STM32单片机物联网设计【硬件+APP+云平台】

58.1.智慧银行-指纹+人脸-基于STM32单片机物联网设计【硬件+APP+云平台】

(1)硬件端 1.开启设备自动连接WiFi,LED闪烁提示设备正在工作; 2.实时监测:硬件设备收集的数据每隔3-5秒自动向云平台传输一次数据,通过APP可随时实时监测装置所检测的各项数据; 3.震动感应器:检…

2026/7/7 9:48:32阅读更多 →
Mac双系统Windows蓝屏导致macOS无限重启/五国?恢复模式数据抢救指南

Mac双系统Windows蓝屏导致macOS无限重启/五国?恢复模式数据抢救指南

摘要: 苹果电脑装双系统,Windows 蓝屏后不仅进不去系统,连 macOS 也跟着崩溃,开机直接“五国”断电怎么办?本文记录了一次真实的底层连环崩溃排障过程,并教你如何在磁盘结构损坏、图形界面彻底罢工的情况下…

2026/7/7 9:48:32阅读更多 →
如何快速获取Bilibili视频的完整评论数据?终极解决方案来了!

如何快速获取Bilibili视频的完整评论数据?终极解决方案来了!

如何快速获取Bilibili视频的完整评论数据?终极解决方案来了! 【免费下载链接】BilibiliCommentScraper B站视频评论爬虫 Bilibili完整爬取评论数据,包括一级评论、二级评论、昵称、用户ID、发布时间、点赞数 项目地址: https://gitcode.com…

2026/7/7 9:48:32阅读更多 →
K-818T 变压器中柱软胶-侵染一体成型与减振降噪-技术参数与选型

K-818T 变压器中柱软胶-侵染一体成型与减振降噪-技术参数与选型

一、30秒速览K-818T是一款专为变压器磁芯中柱点胶设计的单组份含环氧树脂高弹性软胶&#xff0c;采用潜伏性固化剂&#xff0c;具备优异的触变性&#xff08;触变指数3.5~5.0&#xff09;和极低的内应力特性&#xff08;残余应力<1.5 MPa&#xff09;。其核心突破在于“侵染…

2026/7/7 9:48:32阅读更多 →
Jaeger 生产化部署:Kubernetes 下的高可用与持久化

Jaeger 生产化部署:Kubernetes 下的高可用与持久化

系列导读 你现在看到的是《Tempo 与 Jaeger 分布式追踪实战:从原理到生产部署的完整指南》的第 7/10 篇,当前这篇会重点解决:以 Kubernetes 为平台,展示 Jaeger 生产级部署的完整流程,包含高可用和灾难恢复方案。 上一篇回顾:第 6 篇《Tempo 高级配置:多租户、采样策略…

2026/7/7 9:48:32阅读更多 →
如何一次性获取B站视频的所有评论?这个开源工具让你轻松搞定数据分析

如何一次性获取B站视频的所有评论?这个开源工具让你轻松搞定数据分析

如何一次性获取B站视频的所有评论&#xff1f;这个开源工具让你轻松搞定数据分析 【免费下载链接】BilibiliCommentScraper B站视频评论爬虫 Bilibili完整爬取评论数据&#xff0c;包括一级评论、二级评论、昵称、用户ID、发布时间、点赞数 项目地址: https://gitcode.com/gh…

2026/7/7 9:43:29阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述&#xff1a;从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目&#xff0c;叫 skills4/skills &#xff0c;它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景&#xff1a;一个旨在展示或教授某种技能的仓库&#xff0c;本身却成了安…

2026/7/7 4:43:43阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示&#xff1a;因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战&#xff1a;从“黑箱预测”到“可信推理”2026年6月&#xff0c;第7届机器学习与趋势国际会议&#xff08;MLT 2026&#xff09;将在悉尼召开。会议议程中&#xff0c;“因果与可解释机器学习…

2026/7/7 2:56:31阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时&#xff0c;通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中&#xff0c;是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/7 1:03:28阅读更多 →
Acunetix v24.8 深度解析:DAST漏洞扫描器核心原理与DevSecOps实践

Acunetix v24.8 深度解析:DAST漏洞扫描器核心原理与DevSecOps实践

1. 项目概述&#xff1a;Acunetix v24.8 高级版漏洞扫描器深度解析作为一名在网络安全领域摸爬滚打多年的老兵&#xff0c;我深知一款趁手的“兵器”对于安全测试工作意味着什么。今天要聊的&#xff0c;就是Web应用安全测试领域里一个响当当的名字——Acunetix。特别是其v24.8…

2026/7/7 0:02:41阅读更多 →
国产化信创改造:达梦/人大金仓适配与多数据库兼容方案实战(SpringBoot)

国产化信创改造:达梦/人大金仓适配与多数据库兼容方案实战(SpringBoot)

国产化信创改造&#xff1a;达梦/人大金仓适配与多数据库兼容方案实战&#xff08;SpringBoot&#xff09; &#x1f310; 演示地址&#xff1a;http://ruoyioffice.com | &#x1f4e6; 源码1GitHub&#xff1a;ruoyi-office | &#x1f4e6; 源码2GitCode&#xff1a;ruoyi-o…

2026/7/7 0:02:41阅读更多 →
CentOS 7/8 SSH 连接失败:5步系统性排错流程与决策树

CentOS 7/8 SSH 连接失败:5步系统性排错流程与决策树

CentOS SSH连接故障排查&#xff1a;从基础检查到深度修复的完整指南引言当你尝试通过Xshell或其他SSH客户端连接CentOS服务器时&#xff0c;突然遭遇"Connection refused"或"Connection timed out"的错误提示&#xff0c;这种经历对任何运维人员或开发者来…

2026/7/7 0:02:41阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时&#xff0c;发现推理速度只有可怜的 1-2 FPS&#xff0c;而别人的演示视频却能跑到 30 FPS 以上&#xff0c;那么问题很可能不在模型本身&#xff0c;而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后&#xff0c;会直接使用官方示例…

2026/7/7 5:11:21阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一&#xff1a;为什么你需要了解 Coze 和 Dify&#xff1f;如果你对 AI 应用开发感兴趣&#xff0c;但一看到“大模型”、“智能体”、“工作流”这些词就头疼&#xff0c;觉得门槛太高&#xff0c;那这篇文章就是为你准备的。很多开发者&#xff0c;包括我自己&#…

2026/7/7 5:11:21阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会&#xff1a;配图一直是个让人头疼的问题。2026年&#xff0c;AI生图工具已经非常成熟了&#xff0c;但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1&#xff1a;速度之王2026年6月11日&#xff0c…

2026/7/7 5:11:21阅读更多 →