Prometheus 3.8.0 中的目标重新标记规则可视化
2025年12月2日作者 Julius Volz (@juliusv)
Prometheus 的目标重新标记功能允许您调整已发现目标的标签,甚至完全丢弃该目标。重新标记规则虽然功能强大,但可能难以理解和调试。您的规则必须与服务发现机制返回的预期标签相匹配,任何一步出错都可能导致目标标签不正确或被意外丢弃。
为了帮助您找出问题所在(或正确之处),Prometheus 3.8.0 在 Prometheus 服务器的 Web UI 中刚刚添加了一个重新标记可视化工具 ,让您可以检查每个重新标记规则是如何应用于已发现目标的标签的。让我们来看看它是如何工作的吧!
非开发人员如何为 Prometheus 做出贡献
2025年10月31日作者 Victoria Nduka (@nwanduka)
我第一次接触 Prometheus 项目是通过Linux 基金会导师计划 ,我在那里进行了用户体验研究。我记得当我被选为受指导者时感到的焦虑。我不仅对 Prometheus 不熟悉,对整个可观测性领域也一无所知。我担心自己力不从心,在一个以开发人员为重、而我没有任何开发背景的领域工作。
事实证明,那种焦虑是毫无根据的。我后来为项目做出了有意义的贡献,并且我了解到,我所经历的在开源项目的非技术贡献者中几乎是普遍现象。
如果您也感到同样的不确定,这篇文章就是为您而写的。我将分享您可能面临(或已经面临)的挑战,为什么您的贡献很重要,以及如何在 Prometheus 社区中找到您的位置。
YACE 加入 Prometheus 社区
2024年11月19日作者 Thomas Peitz (@thomaspeitz)
Yet Another Cloudwatch Exporter (YACE) 已正式加入 Prometheus 社区!此举将使其更易于用户访问,并为贡献者增强和维护该项目开辟新的机会。此外还有一篇来自 Cristian Greco 视角的博客文章 。
早期岁月
当我刚开始做 YACE 时,完全没想到它会发展到如此规模。那时,我在 Invision AG (不要与那个设计应用混淆)工作,这是一家专注于劳动力管理软件的公司。他们完全支持我将这个工具开源,在我的队友 Kai Forsthövel 的帮助下,YACE 诞生了。
我们的第一次提交是在 2018 年,我们的主要目标之一是使 CloudWatch 指标易于扩展并自动检测要测量的内容,同时保持用户体验的简单和直观。InVision AG 当时因为机器学习工作负载而需要伸缩其基础设施,我们需要一个能够轻松检测新基础设施的工具。对简洁性的关注一直是核心优先事项。从那时起,YACE 开始找到了它的受众。
宣布 Prometheus 3.0
2024年11月14日作者 Prometheus 团队
继最近在柏林 PromCon 上发布 Prometheus 3.0 beta 之后,Prometheus 团队很高兴地宣布 Prometheus 3.0 版本正式发布!
这个最新版本标志着一个重要的里程碑,因为这是 7 年来的第一个主要版本。在此期间,Prometheus 已经走过了很长的路,从一个面向早期采用者的项目发展成为云原生监控堆栈的标准组成部分。Prometheus 3.0 旨在通过增加一些令人兴奋的新功能,同时在很大程度上保持与先前版本的稳定性和兼容性,来继续这一旅程。
完整的 3.0 版本在 beta 版的基础上增加了一些新功能,并引入了一些额外的破坏性变更,我们将在本文中进行描述。
Prometheus 3.0 Beta 发布
2024年9月11日作者 Prometheus 团队
Prometheus 团队自豪地宣布 Prometheus 3.0-beta 版本发布!您可以在此处 下载。按照 beta 版的惯例,我们不建议用户在关键生产系统上安装 Prometheus 3.0-beta,但我们希望大家都能测试它并发现错误。
总的来说,唯一的破坏性变更是移除了已弃用的功能标志。Prometheus 团队努力确保向后兼容性,并且不破坏现有的安装,因此下面描述的所有新功能都是在现有功能的基础上构建的。大多数用户应该能够开箱即用地试用 Prometheus 3.0,无需任何配置更改。
我们对 OpenTelemetry 的承诺
2024年3月13日作者 Goutham Veeramachaneni (@Gouthamve) and Carrie Edwards (@carrieedwards)
OpenTelemetry 项目 是一个可观测性框架和工具包,旨在创建和管理遥测数据,如追踪、指标和日志。由于其信号之间的一致规范以及减少供应商锁定的承诺,它正在得到广泛采用,这是我们感到兴奋的事情。
回顾 2023 年
在过去几年里,我们与 OpenTelemetry 社区合作,确保 OpenTelemetry 和 Prometheus 能够双向支持。这促成了在两个系统之间进行转换的官方规范的起草,以及允许您将 Prometheus 指标摄取到 OpenTelemetry Collector 中(反之亦然)的实现。
从那时起,我们花了大量时间了解 OpenTelemetry 用户在 Prometheus 中存储指标时面临的挑战 ,并基于这些挑战,探讨了如何解决它们 。一些提议的更改需要仔细考虑,以避免破坏任何一方的运营承诺,例如同时支持推和拉。在 2023 年的柏林 PromCon 上,我们试图在其中一个演讲中 总结我们的想法。
在我们柏林的开发者峰会上 ,我们花了大部分时间深入讨论这些变化以及我们对 OpenTelemetry 的总体立场,广泛的共识是,我们希望“成为 OpenTelemetry 指标的默认存储” !
我们已经组建了一个核心的开发人员小组来领导这项倡议,我们将在 2024 年发布 Prometheus 3.0,并将 OTel 支持作为其更重要的功能之一。以下是 2024 年即将到来的功能的一瞥。
2023 年欧洲 PromCon 日程已发布
2023年9月1日作者 Matthias Loibl (@metalmatze)
欧洲 PromCon 是第八届完全专注于 Prometheus 监控系统的会议
德国柏林 – 2023年9月1日 – CNCF 和 Prometheus 团队发布了为期两天的 2023 年欧洲 PromCon 会议日程,该会议将于 2023年9月28日至9月29日在德国柏林举行。与会者将可以从 21 场完整时长(25分钟)的会议和多达 20 场五分钟的闪电演讲中进行选择,内容涵盖与Prometheus相关的各种主题。
PromCon 现已举办到第八届,它汇集了来自世界各地的 Prometheus 用户和开发者,交流知识、最佳实践以及使用 Prometheus 获得的经验。项目委员会审查了 66 份提交,这些提交将为当今围绕 Prometheus 的最紧迫问题提供新鲜且信息丰富的视角。
“我们对 PromCon 回到柏林感到非常兴奋。Prometheus 于 2012 年在柏林的 Soundcloud 创立。第一届 PromCon 在柏林举办,中间曾移至慕尼黑。今年,我们将在柏林 Friedrichshain 的 Radialsystem 接待约 300 名与会者。柏林拥有一个充满活力的 Prometheus 社区,许多 Prometheus 团队成员都住在附近。这是一个与所有热衷于系统和服务监控的 Prometheus 大家庭建立联系和交流的绝佳机会,”Polar Signals 的高级软件工程师兼 Prometheus 团队成员、领导今年 PromCon 项目委员会的 Matthias Loibl 说道。“这将是一个了解 Prometheus 团队最新发展并与一些大规模 Prometheus 用户近距离接触的盛会。”
关于 Prometheus 2.43 字符串标签优化的常见问题解答
2023年3月21日作者 Julien Pivotto (@roidelapluie)
Prometheus 2.43 刚刚发布,它带来了一些令人兴奋的功能和增强。其中一项重大改进是 stringlabels 版本,它使用了新的标签数据结构。这篇博文将回答一些关于 2.43 版本和 stringlabels 优化的常见问题。
什么是 stringlabels 版本?
stringlabels 版本是 Prometheus 2.43 的一个版本,它使用了新的标签数据结构。它将所有的标签/值存储在一个单一的字符串中,从而在大多数情况下减小了堆大小并带来了一些速度提升。这些优化并未包含在默认的二进制文件中,需要使用 Go 标签 stringlabels 来编译 Prometheus。
介绍 Prometheus Agent 模式,一种高效的云原生指标转发方式
2021年11月16日作者 Bartlomiej Plotka (@bwplotka)
Bartek Płotka 自 2019 年起担任 Prometheus 维护者,同时也是 Red Hat 的首席软件工程师。CNCF Thanos 项目的共同作者。CNCF 大使和 CNCF TAG Observability 的技术负责人。业余时间,他与 O'Reilly 合作撰写一本名为《Efficient Go》的书。文责自负!
我个人在 Prometheus 项目中喜爱的一点,也是我加入团队的众多原因之一,是该项目对其目标的专注。Prometheus 始终致力于在提供务实、可靠、廉价但极具价值的基于指标的监控方面不断突破界限。Prometheus 极其稳定和强大的 API、查询语言和集成协议(例如 Remote Write 和 OpenMetrics )使得云原生计算基金会(CNCF)的指标生态系统能够在这坚实的基础上发展。因此,发生了许多了不起的事情。
- 我们可以看到社区的导出器几乎可以获取关于任何事物的指标,例如容器 、eBPF 、Minecraft 服务器统计 ,甚至还有园艺时植物的健康状况 。
- 如今,大多数人都期望云原生软件有一个 Prometheus 可以抓取的 HTTP/HTTPS
/metrics端点。这个概念最初在谷歌内部秘密开发,并由 Prometheus 项目在全球推广。 - 可观测性的范式发生了转变。我们看到 SRE 和开发人员从第一天起就严重依赖指标,这提高了软件的弹性、可调试性和数据驱动的决策能力!
最终,我们几乎看不到没有运行 Prometheus 的 Kubernetes 集群。
Prometheus 合规性计划:第一轮结果
2021年10月14日作者 Richard "RichiH" Hartmann
今天,我们启动了 Prometheus 合规性计划,旨在确保 Prometheus 监控领域不同项目和供应商之间的互操作性。虽然法律文书工作仍需最终确定,但我们已经进行了测试,并将以下内容视为我们的第一轮结果。作为此次发布的一部分,Julius Volz 更新了他的 PromQL 测试结果 。
简单提醒一下:该计划称为 Prometheus 合规性(Conformance),软件可以遵循(compliant)特定的测试,从而产生一个兼容性(compatibility)评级。术语可能看起来很复杂,但它使我们能够讨论这个话题,而无需使用冗长的词语组合。
关于勒索软件命名
2021年6月10日作者 Richard "RichiH" Hartmann
正如奥斯卡·王尔德所说,模仿是最高形式的奉承。
“Prometheus”和“Thanos”这两个名字最近被一个勒索软件团伙所采用 。对此我们能做的并不多,只能告知您这件事正在发生。您能做的也不多,只能意识到这件事正在发生。
虽然我们没有理由相信该团伙会试图欺骗任何人下载我们项目的虚假二进制文件,但我们仍然建议遵循常见的供应链和安全实践。在部署软件时,请通过以下机制之一进行:
Prometheus 合规性计划:远程写入合规性测试结果
2021年5月5日作者 Richard "RichiH" Hartmann
正如 CNCF 和我们自己所宣布的,我们正在启动一个 Prometheus 合规性计划。
为了让大家在正式进行测试之前了解生态系统的现状,我们想展示我们这个愉快的小测试套件系列的最新成员:Prometheus 远程写入合规性测试套件,它根据我们的规范 测试远程写入协议的发送方部分。
在周一的 PromCon 上,Tom Wilkie 展示了几周前录制时的测试结果。在直播环节,他已经有了一个更新 。两天后,我们又有了两个更新:增加了可观测性管道工具 Vector ,以及现有系统的新版本 。
介绍 Prometheus 合规性计划
2021年5月3日作者 Richard "RichiH" Hartmann
Prometheus 是云原生领域及其他领域的指标监控标准。为了确保互操作性,保护用户免受意外,并促进更多的并行创新,Prometheus 项目在 CNCF 的帮助下推出了 Prometheus 合规性计划 ,以认证组件的合规性和 Prometheus 的兼容性。
预计 CNCF 治理委员会将在下次会议期间正式审查和批准该计划。我们邀请更广泛的社区在这个准备阶段帮助改进我们的测试。
借助我们广泛且不断扩展的测试套件 ,项目和供应商可以确定其对我们规范的遵循程度以及在 Prometheus 生态系统中的兼容性。
介绍 ‘@’ 修饰符
2021年2月18日作者 Ganesh Vernekar
您是否曾经选择某个东西的前 10 个时间序列,结果却得到了 100 个而不是 10 个?如果是这样,这篇文章就是为您准备的。让我带您了解问题的根源以及我是如何解决它的。
目前,topk() 查询只在即时查询中有意义,此时您会精确地得到 k 个结果,但当您将其作为范围查询运行时,您可能会得到远多于 k 个结果,因为每个步骤都是独立评估的。这个 @ 修饰符可以让您固定范围查询中所有步骤的排名。
在 Prometheus v2.25.0 中,我们引入了一个新的 PromQL 修饰符 @。类似于 offset 修饰符允许您将向量选择器、范围向量选择器和子查询的评估时间相对于当前评估时间偏移一个固定的时长,@ 修饰符允许您固定这些选择器的评估时间,而不管查询的评估时间是什么。这个语法的功劳归于Björn Rabenstein 。
<vector-selector> @ <timestamp>
<range-vector-selector> @ <timestamp>
<subquery> @ <timestamp>
<timestamp> 是一个 unix 时间戳,用浮点数字面量表示。
介绍功能标志
2021年2月17日作者 Ganesh Vernekar
我们一直遵循 SemVer 模型,在稳定性和破坏性变更方面做出了坚定的承诺。这一点将保持不变。
由于我们希望在实验方面更加大胆,我们计划更多地使用功能标志。
从 v2.25.0 开始,我们引入了一个名为已禁用功能的新部分,其中的功能隐藏在 --enable-feature 标志后面。您可以期待在未来的版本中,会有越来越多的功能被添加到这个部分。
此列表中的功能被认为是实验性的,并且只要它们仍然在 --enable-feature 后面,就会有以下考虑:
- 如果该功能有任何 API(Web API、代码接口等),API 规范可能会改变。
- 该功能的行为可能会改变。
- 它们可能会打破您可能对 Prometheus 的一些假设。
- 例如,查询不会在评估时间之前查找样本的假设,这将被
@修饰符和负偏移量打破。
- 例如,查询不会在评估时间之前查找样本的假设,这将被
- 它们可能不稳定,但我们当然会尽力保持它们的稳定。
远程读取与流式传输的结合
2019年10月10日作者 Bartlomiej Plotka (@bwplotka)
新的 Prometheus 版本 2.13.0 已经发布,和往常一样,它包含了许多修复和改进。您可以在这里 阅读变更内容。然而,有一个功能是某些项目和用户一直期待的:分块、流式的远程读取 API 版本 。
在本文中,我将深入介绍我们在远程协议中所做的更改、更改的原因以及如何有效地使用它。
远程 API
自 1.x 版本以来,Prometheus 就能够通过远程 API 直接与其存储进行交互。
此 API 允许第三方系统通过两种方法与指标数据交互:
- 写入 - 接收 Prometheus 推送的样本
- 读取 - 从 Prometheus 拉取样本

采访 ForgeRock
2019年6月18日作者 Simon Pasquier
继续我们的 Prometheus 用户访谈系列,来自 ForgeRock 的 Ludovic Poitou 讲述了他们的监控之旅。
您能介绍一下自己以及 ForgeRock 的业务吗?
我是 Ludovic Poitou,ForgeRock 的产品管理总监,常驻法国格勒诺布尔附近。ForgeRock 是一家国际身份和访问管理软件公司,拥有超过 500 名员工,于 2010 年在挪威成立,现在总部位于美国旧金山。我们提供解决方案来保护与客户、员工、设备和物品的每一次在线互动。我们拥有超过 800 家客户,从金融公司到政府服务部门。
在使用 Prometheus 之前,您的监控体验是怎样的?
ForgeRock 身份平台一直提供监控接口。但该平台由 4 个主要产品组成,每个产品都有不同的选项。例如,目录服务产品通过 SNMP、JMX 或 LDAP 提供监控信息,在最新版本中甚至可以通过 HTTP 提供 RESTful API。其他产品只有 REST 或 JMX。因此,监控整个平台很复杂,需要能够集成这些协议的工具。
采访 Hostinger
2019年2月6日作者 Brian Brazil
继续我们的 Prometheus 用户访谈系列,来自 Hostinger 的 Donatas Abraitis 讲述了他们的监控之旅。
您能介绍一下自己以及 Hostinger 的业务吗?
我是 Donatas Abraitis,Hostinger 的一名系统工程师。顾名思义,Hostinger 是一家托管公司。自 2004 年以来,我们拥有约 3000 万客户,其中包括 000webhost.com 项目——免费的虚拟主机提供商。
在使用 Prometheus 之前,您的监控体验是怎样的?
当 Hostinger 还是一家相当小的公司时,市场上作为开源监控工具的只有 Nagios、Cacti 和 Ganglia。这就像告诉年轻人软盘是什么一样,但 Nagios 和 Cacti 至今仍在开发周期中。
尽管当时没有自动化工具。Bash + Perl 就能完成工作。如果你想扩展你的团队和你自己,自动化永远不应被忽视。没有自动化——更多的人工手动工作。
那时大约有 150 台物理服务器。相比之下,到目前为止,我们大约有 2000 台服务器,包括虚拟机和物理机。
对于网络设备,SNMP 仍然被广泛使用。随着“白盒”交换机的兴起,SNMP 变得不那么必要了,因为可以安装常规工具。
代替 SNMP,你可以在交换机内部运行 node_exporter 或任何其他导出器,以人类可读的格式暴露你需要的任何指标。优美胜于丑陋,对吧?
我们使用 CumulusOS,在我们的情况下,它主要是 x86 架构,因此运行任何类型的 Linux 程序都绝对没有问题。
子查询支持
2019年1月28日作者 Ganesh Vernekar
简介
顾名思义,子查询是查询的一部分,允许您在查询中执行范围查询,这在以前是不可能的。这是一个长期的功能请求:prometheus/prometheus/1227 。
关于子查询支持的拉取请求 最近被合并到 Prometheus 中,并将在 Prometheus 2.7 中可用。让我们在下面了解更多关于它的信息。
动机
有时,您希望使用较低分辨率/范围(例如 5m)的 rate 来发现问题,同时将这些数据聚合到更高范围(例如 1h 的 max_over_time)。
以前,对于单个 PromQL 查询来说,上述操作是不可能的。如果您想在警报规则或图表的查询中进行范围选择,您需要有一个基于该查询的记录规则,并在由记录规则创建的指标上执行范围选择。例如:max_over_time(rate(my_counter_total[5m])[1h])。
当您想快速获取跨越数天或数周的数据结果时,可能需要等待相当长的时间,直到您的记录规则中有足够的数据才能使用。忘记添加记录规则可能会令人沮丧。并且为查询的每一步创建记录规则会很繁琐。
有了子查询支持,所有的等待和沮丧都得到了解决。
采访 Presslabs
2018年8月23日作者 Brian Brazil
继续我们的 Prometheus 用户访谈系列,来自 Presslabs 的 Mile Rosu 讲述了他们的监控之旅。
您能介绍一下自己以及 Presslabs 的业务吗?
Presslabs 是一个高性能的托管式 WordPress 托管平台,面向寻求为其网站访问者提供 100% 无缝体验的出版商、企业品牌和数字机构。
最近,我们为我们的核心产品开发了一个创新组件——WordPress 商业智能。用户现在可以在一个全面的仪表板中获取实时的、可操作的数据,以支持从问题到部署的短流程并持续改进他们的网站。
我们支持每月高达 20 亿次页面浏览量的无缝交付,这由一个由 100 台机器组成的机队提供支持,该机队完全致力于为要求苛刻的客户提供托管式 WordPress 托管。
我们目前正致力于为全球的 WordPress 出版商带来最佳体验。在这段旅程中,Kubernetes 促进了我们迈向即将到来的高可用性 WordPress 托管基础设施标准的道路。
Prometheus 在 CNCF 中毕业
2018年8月9日作者 Richard Hartmann
我们很高兴地宣布,从今天起,Prometheus 在 CNCF 中毕业。
Prometheus 是有史以来第二个达到这一级别的项目。通过让 Prometheus 毕业,CNCF 表明它对我们的代码和功能迭代速度、我们的成熟度和稳定性,以及我们的治理和社区流程充满信心。对于任何在内部讨论监控工具选择的人来说,这也起到了外部质量验证的作用。
自从达到孵化级别以来,发生了很多事情;其中一些比较突出:
- 我们完全重写了我们的存储后端,以支持服务的高流失率
- 我们大力推进稳定性,尤其是在 2.3.2 版本中
- 我们开始了一项文档推进工作,特别关注使 Prometheus 的采用和加入社区更加容易
实现自定义服务发现
2018年7月5日作者 Callum Styan
Prometheus 包含对许多服务发现(SD)系统的内置集成,例如 Consul、Kubernetes 和公共云提供商(如 Azure)。然而,我们无法为每一个服务发现选项提供集成实现。Prometheus 团队在支持当前这套 SD 集成方面已经捉襟见肘,因此为每一个可能的 SD 选项维护集成是不可行的。在许多情况下,当前的 SD 实现是由团队外部的人贡献的,然后没有得到很好的维护或测试。我们希望承诺只提供我们知道可以维护并且能按预期工作的服务发现机制的直接集成。因此,目前暂停了新的 SD 集成。
然而,我们知道仍然希望能够与其他 SD 机制集成,例如 Docker Swarm。最近,一项小的代码更改和一个示例被提交到 Prometheus 仓库的文档目录 中,用于实现自定义服务发现集成,而无需将其合并到主 Prometheus 二进制文件中。该代码更改允许我们利用内部的 Discovery Manager 代码来编写另一个可执行文件,该文件与新的 SD 机制交互,并输出一个与 Prometheus 的 file_sd 兼容的文件。通过将 Prometheus 和我们的新可执行文件放在一起,我们可以配置 Prometheus 读取我们可执行文件的 file_sd 兼容输出,从而从该服务发现机制中抓取目标。未来,这将使我们能够将 SD 集成移出主 Prometheus 二进制文件,以及将利用该适配器的稳定 SD 集成移入 Prometheus discovery 包中。
使用 file_sd 的集成,例如那些使用适配器代码实现的集成,都列在这里。
让我们来看一下示例代码。
采访 Datawire
2018年3月16日作者 Brian Brazil
继续我们的 Prometheus 用户访谈系列,来自 Datawire 的 Richard Li 讲述了他们如何过渡到 Prometheus。
您能介绍一下自己以及 Datawire 的业务吗?
在 Datawire,我们制作开源工具,帮助开发人员在 Kubernetes 上更快地编码。我们的项目包括 Telepresence ,用于 Kubernetes 服务的本地开发;Ambassador ,一个基于 Envoy 代理 构建的 Kubernetes 原生 API 网关;以及 Forge ,一个构建/部署系统。
我们在 AWS 的 Kubernetes 中运行着一些关键任务的云服务,以支持我们的开源工作。这些服务支持的用例包括每天动态配置数十个 Kubernetes 集群,然后这些集群被我们的自动化测试基础设施使用。
在使用 Prometheus 之前,您的监控体验是怎样的?
我们使用了 AWS CloudWatch。这很容易设置,但我们发现,随着我们采用更分布式的开发模式(微服务),我们希望有更多的灵活性和控制权。例如,我们希望每个团队都能根据需要自定义他们的监控,而不需要运营帮助。
采访 Scalefastr
2018年2月8日作者 Brian Brazil
继续我们的 Prometheus 用户访谈系列,来自 Scalefastr 的 Kevin Burton 讲述了他们如何使用 Prometheus。
您能介绍一下自己以及 Scalefastr 的业务吗?
我叫 Kevin Burton,是 Scalefastr 的 CEO。我的背景是分布式系统,我之前经营过 Datastreamer,这是一家构建了 PB 级分布式社交媒体爬虫和搜索引擎的公司。
在 Datastreamer,我们在基础设施方面遇到了可扩展性问题,并基于 Debian、Elasticsearch、Cassandra 和 Kubernetes 构建了一个高性能集群。
我们发现我们的许多客户也在他们的基础设施上苦苦挣扎,我对他们在 AWS 和谷歌云上托管大量内容所付出的费用感到惊讶。
我们不断评估在云中运行的成本,对我们来说,我们的托管成本将是我们目前支付的 5-10 倍。
我们决定基于开源和云原生技术(如 Kubernetes、Prometheus、Elasticsearch、Cassandra、Grafana、Etcd 等)推出一个新的云平台。
我们目前正在为几个 PB 级的客户提供托管服务,并于本月软启动我们的新平台。
Prometheus 在 CloudNativeCon 2017
2017年11月29日作者 Tom Wilkie 代表 Prometheus 团队
12月6日星期三是奥斯汀 CloudNativeCon 的 Prometheus 日,我们为您准备了一系列精彩的演讲和活动。前往 Prometheus 沙龙获取关于如何最好地监控 Kubernetes 的实践建议,参加一系列关于 Prometheus 各个方面的讲座,然后与一些 Prometheus 开发人员在 CNCF 展台交流,所有这些之后还有 Prometheus 欢乐时光。请继续阅读以获取更多详细信息...
宣布 Prometheus 2.0
2017年11月8日作者 Fabian Reinartz 代表 Prometheus 团队
大约一年半前,我们发布了 Prometheus 1.0。这次发布标志着该项目的一个重要里程碑。我们已经实现了一系列广泛的功能,这些功能构成了 Prometheus 简单而又极其强大的监控理念。
从那时起,我们增加并改进了各种服务发现集成,扩展了 PromQL,并对远程 API 的第一次迭代进行了实验,以实现可插拔的长期存储解决方案。
但还有哪些变化值得一个新的主要版本发布呢?
PromCon 2017 回顾
2017年9月4日作者 Julius Volz
发生了什么
两周前,来自世界各地的 Prometheus 用户和开发者齐聚慕尼黑,参加 PromCon 2017 ,这是第二届围绕 Prometheus 监控系统的会议。本次活动的目的是交流知识和最佳实践,并围绕使用 Prometheus 进行监控建立专业联系。谷歌的慕尼黑办公室今年为我们提供了更大的场地,这使得我们的与会者从 80 人增加到 220 人,而且门票仍然售罄!
观看回顾视频以了解活动印象
Prometheus 2.0 Alpha.3 采用新规则格式
2017年6月22日作者 Goutham Veeramachaneni
今天我们发布了 Prometheus 2.0 的第三个 alpha 版本。除了在新存储层中的各种错误修复外,它还包含一些计划中的破坏性更改。
标志更改
首先,我们迁移到了一个新的标志库,该库使用更常见的双破折号 -- 前缀来表示标志,而不是 Prometheus 迄今为止使用的单破折号。部署必须相应地进行调整。此外,此 alpha 版本移除了一些标志。自 Prometheus 1.0.0 以来的完整列表是:
web.telemetry-path- 所有
storage.remote.*标志 - 所有
storage.local.*标志 query.staleness-deltaalertmanager.url
采访 L’Atelier Animation
2017年6月14日作者 Brian Brazil
继续我们的 Prometheus 用户访谈系列,来自 L'Atelier Animation 的 Philippe Panaite 和 Barthelemy Stevens 讲述了他们如何将他们的动画工作室从 Nagios、Graphite 和 InfluxDB 的混合模式切换到 Prometheus。
您能介绍一下自己以及 L’Atelier Animation 的业务吗?
L’Atelier Animation 是一家位于加拿大美丽城市蒙特利尔的 3D 动画工作室。我们的第一部故事片 《了不起的菲丽西》 (又名 "Leap")于 2017 年全球上映,美国上映预计在今年晚些时候。
我们目前正致力于一部动画电视剧和我们的第二部故事片。 我们的基础设施包括大约300个渲染刀片服务器、150个工作站和20台各种服务器。除少数几台Mac外,所有设备都运行在Linux(CentOS )上,没有一台Windows机器。
iAdvize访谈
2017年5月17日作者 Brian Brazil
在我们的Prometheus用户系列访谈中,来自iAdvize的Laurent COMMARIEU讲述了他们如何用Prometheus取代旧有的Nagios和Centreon监控系统。
您能介绍一下iAdvize是做什么的吗?
我是Laurent COMMARIEU,iAdvize的一名系统工程师。我在一个60人的研发部门中,属于一个由5名系统工程师组成的团队。我们的主要工作是确保应用程序、服务以及底层系统的正常运行。我们与开发人员合作,确保他们的代码能以最简单的方式进入生产环境,并在每个步骤中提供必要的反馈。这就是监控如此重要的原因。
iAdvize是一个全栈对话式商务平台。我们为品牌提供一种简单的方式,无论沟通渠道如何(聊天、电话、视频、Facebook页面、Facebook Messenger、Twitter、Instagram、WhatsApp、短信等),都能集中与客户互动。我们的客户遍布40个国家的电子商务、银行、旅游、时尚等行业 。我们是一家拥有200名员工的国际公司,在法国、英国、德国、西班牙和意大利设有办事处。我们在2015年筹集了1600万美元。
Prometheus 2.0 抢先看
2017年4月10日作者 Fabian Reinartz
2016年7月,Prometheus的1.0版本发布,这是一个重要的里程碑。自那时起,我们增加了许多新功能,比如新的服务发现集成和实验性的远程API。我们也意识到,基础设施领域的新发展,特别是Kubernetes 的出现,使得被监控的环境变得更加动态。不出所料,这也给Prometheus带来了新的挑战,我们发现其存储层存在性能瓶颈。
在过去的几个月里,我们一直在设计和实现一个新的存储概念,以解决这些瓶颈,并在整体性能上显示出显著的提升。这也为添加热备份等功能铺平了道路。
这些变化是如此根本,以至于将催生一个新的主要版本:Prometheus 2.0。在稳定版发布之前,我们计划在存储之外增加一些重要的功能和改动。然而,今天我们发布了Prometheus 2.0的早期alpha版本,以启动新存储的稳定化进程。
Europace访谈
2017年4月6日作者 Brian Brazil
在我们的Prometheus用户系列访谈中,来自Europace的Tobias Gesellchen讲述了他们是如何发现Prometheus的。
您能介绍一下Europace是做什么的吗?
Europace AG 开发并运营基于网络的EUROPACE金融市场,这是德国最大的抵押贷款、建筑金融产品和个人贷款平台。一个完全集成的系统连接了约400个合作伙伴——银行、保险公司和金融产品分销商。每月有数千名用户在EUROPACE上执行约35,000笔交易,总额高达40亿欧元。我们的工程师定期在http://tech.europace.de/ 和@EuropaceTech 上发表博客。
Weaveworks访谈
2017年2月20日作者 Brian Brazil
在我们的Prometheus用户系列访谈中,来自Weaveworks的Tom Wilkie讲述了他们如何选择Prometheus并正在其基础上进行构建。
您能介绍一下Weaveworks吗?
Weaveworks 提供 Weave Cloud ,这项服务通过结合开源项目和软件即服务(SaaS)的方式,将微服务“运营化”。
Weave Cloud包括
- 使用Weave Scope 进行可视化
- 使用Weave Flux 进行持续部署
- 使用容器SDN Weave Net 进行网络连接
- 使用我们开源的、分布式的Prometheus即服务Weave Cortex 进行监控。
您可以免费试用Weave Cloud 60天 。要了解我们产品的最新信息,请查看我们的博客 、Twitter 或Slack (邀请链接 )。
Canonical访谈
2016年11月16日作者 Brian Brazil
在我们的Prometheus用户系列访谈中,Canonical讲述了他们向Prometheus过渡的过程。
您能介绍一下您自己和Canonical公司吗?
Canonical 最为人所知的可能是作为Ubuntu Linux的赞助公司。我们还制作或参与了许多其他开源项目,包括MAAS、Juju和OpenStack,并为这些产品提供商业支持。大多数OpenStack部署都由Ubuntu驱动,其中55%的生产云和58%的大型云部署 都使用Ubuntu。
我的团队BootStack是我们完全托管的私有云服务。我们为Canonical的客户构建和运营OpenStack云。
JustWatch访谈
2016年10月12日作者 Brian Brazil
在我们的Prometheus用户系列访谈中,JustWatch讲述了他们如何建立自己的监控系统。
您能介绍一下您自己和JustWatch公司吗?
对于消费者而言,JustWatch 是一个流媒体搜索引擎,帮助用户查找在哪里可以合法地在线或在影院观看电影和电视剧。您可以在17个国家的所有主要流媒体提供商(如Netflix、HBO、Amazon Video、iTunes、Google Play等)中搜索电影内容。
对于我们的客户,如电影制片厂或视频点播提供商,我们是一家国际电影营销公司,从我们的消费者应用中收集关于全球影迷购买行为和电影品味的匿名数据。我们帮助制片厂向正确的受众宣传其内容,并通过最大限度地减少无效覆盖来提高数字视频广告的效率。
Compose访谈
2016年9月21日作者 Brian Brazil
在我们的Prometheus用户系列访谈中,Compose讲述了他们从Graphite和InfluxDB到Prometheus的监控之旅。
您能介绍一下您自己和Compose公司吗?
Compose 为全球开发者提供生产就绪的数据库集群即服务。应用开发者只需在我们这里点击几下,就能在几分钟内获得一个多主机、高可用、自动备份且安全的数据库。这些数据库部署会随着需求的增加而自动扩展,这样开发者就可以把时间花在构建出色的应用上,而不是运营数据库。
我们在AWS、Google Cloud Platform和SoftLayer的每个区域至少拥有数十个主机集群。每个集群都跨越可用区(如果支持),并为大约1000个高可用数据库部署提供服务,这些部署都在各自的私有网络中。我们正在筹备更多的区域和提供商。
DigitalOcean访谈
2016年9月14日作者 Brian Brazil
在我们的Prometheus用户系列访谈中,DigitalOcean讲述了他们如何使用Prometheus。Carlos Amedee还在PromCon 2016上谈到了推广过程中的社会因素 。
您能介绍一下您自己和DigitalOcean公司吗?
我叫Ian Hansen,在平台指标团队工作。DigitalOcean 提供简单的云计算服务。至今,我们已在13个区域创建了2000万个Droplets(SSD云服务器)。我们最近还发布了新的块存储产品。
ShuttleCloud访谈
2016年9月7日作者 Brian Brazil
在我们的Prometheus用户系列访谈中,ShuttleCloud讲述了他们是如何开始使用Prometheus的。来自ShuttleCloud的Ignacio还在PromCon 2016上解释了为什么Prometheus对小型初创公司有益 。
ShuttleCloud是做什么的?
ShuttleCloud是世界上最具扩展性的电子邮件和联系人数据导入系统。我们通过自动化数据导入的切换体验,帮助包括Google和Comcast在内的一些领先的电子邮件和通讯录提供商增加用户增长和参与度。
通过将我们的API集成到他们的服务中,我们的客户让他们的用户能够轻松地将电子邮件和联系人从一个参与的提供商迁移到另一个,减少了用户在切换到新提供商时面临的摩擦。我们支持的24/7电子邮件提供商包括美国所有主要的互联网服务提供商:Comcast、Time Warner Cable、AT&T、Verizon等。
通过为终端用户提供一个简单的电子邮件迁移路径(同时完全控制导入工具的用户界面),我们的客户显著提高了用户的激活率和上手体验。
PromCon 2016 - 圆满结束!
2016年9月4日作者 Julius Volz
发生了什么
上周,来自世界各地的八十位Prometheus用户和开发者齐聚柏林,参加了为期两天的首届Prometheus监控系统会议:PromCon 2016 。这次会议的目标是交流使用Prometheus所获得的知识、最佳实践和经验。我们还希望发展社区,并帮助人们围绕服务监控建立专业联系。以下是第一天上午的一些印象。
拉取模式无法扩展 - 真的吗?
2016年7月23日作者 Julius Volz
让我们来谈谈一个特别顽固的误解。每当讨论监控系统并提到Prometheus基于拉取(pull-based)的指标收集方法时,总会有人插话说,基于拉取的方法“根本上无法扩展”。给出的理由通常很模糊,或者只适用于与Prometheus截然不同的系统。事实上,我们在最大规模下使用基于拉取的监控系统的经验与这种说法恰恰相反。
我们已经有一个关于为什么Prometheus选择拉取而非推送的常见问题解答条目,但它没有专门关注扩展性方面。让我们来仔细看看围绕这个说法的常见误解,并分析它们是否以及如何适用于Prometheus。
Prometheus 达到 1.0 版本
2016年7月18日作者 Fabian Reinartz 代表 Prometheus 团队
今年一月,我们发表了一篇关于Prometheus公开发布第一年的博客文章,总结了这对我们来说是一段多么美妙的旅程,并希望它能成为您创新且实用的监控解决方案。自那时起,Prometheus也加入了云原生计算基金会,在那里我们找到了很好的伙伴,成为继Kubernetes 之后第二个创始项目。
我们最近的工作重点是提供一个稳定的API和用户界面,以Prometheus的1.0版本为标志。我们很高兴地宣布,我们已经实现了这个目标,Prometheus 1.0今天正式可用 。
1.0版本对您意味着什么?
如果您已经使用Prometheus一段时间,您可能已经注意到,在过去的一年里,破坏性更改的频率和影响显著减少。本着同样的精神,达到1.0意味着后续的1.x版本将保持API稳定。升级不会破坏基于Prometheus API构建的程序,更新也不需要重新初始化存储或更改部署。自定义仪表盘和警报在1.x版本更新中也将保持不变。我们相信Prometheus 1.0是一个可靠的监控解决方案。现在Prometheus服务器已经达到了稳定的API状态,其他模块也将随着时间的推移达到它们自己的稳定版本1.0。
Prometheus将加入云原生计算基金会
2016年5月9日作者 Julius Volz 代表 Prometheus 核心开发者
自Prometheus诞生以来,我们一直在为该项目寻找一种独立于任何单一公司的可持续治理模式。最近,我们与新成立的云原生计算基金会 (CNCF)进行了讨论,该基金会由Google、CoreOS、Docker、Weaveworks、Mesosphere以及其他领先的基础设施公司 支持。
今天,我们很高兴地宣布,CNCF的技术监督委员会一致投票 接受Prometheus作为继Kubernetes之后的第二个托管项目!您可以在CNCF的官方新闻稿 中找到更多关于这些计划的信息。
何时(不)使用varbit块
2016年5月8日作者 Björn “Beorn” Rabenstein
Prometheus服务器的嵌入式时间序列数据库(TSDB)将每个时间序列的原始样本数据组织成大小恒为1024字节的块。除了原始样本数据,一个块还包含一些元数据,允许为每个块选择不同的编码。最根本的区别是编码版本。您可以通过命令行标志 `-storage.local.chunk-encoding-version` 来为新创建的块选择版本。到目前为止,只支持两个版本:0代表原始的增量编码,1代表改进的双增量编码。随着0.18.0 版本的发布,我们增加了版本2,这是双增量编码的另一种变体。我们称之为*varbit编码*,因为它在块内为每个样本使用了可变位宽。虽然版本1在几乎所有方面都优于版本0,但在版本1和版本2之间存在真正的权衡。这篇博客文章将帮助您做出决定。版本1仍然是默认编码,所以如果您在阅读本文后想尝试版本2,您必须通过命令行标志明确选择它。来回切换没有坏处,但请注意,现有的块一旦创建,其编码版本就不会改变。然而,这些块将根据配置的保留时间逐渐被淘汰,并被使用命令行标志中指定的编码的块所取代。
ShowMax访谈
2016年5月1日作者 Brian Brazil
这是我们对Prometheus用户的系列访谈中的第二篇,让他们分享评估和使用Prometheus的经验。
您能介绍一下您自己和ShowMax公司吗?
我叫Antonin Kral,负责ShowMax 的研发和架构工作。在此之前,我在过去12年里担任过架构师和首席技术官的角色。
ShowMax是一项于2015年在南非推出的订阅视频点播服务。我们拥有超过20,000集电视剧和电影的丰富内容库。我们的服务目前在全球65个国家提供。当更知名的竞争对手在美洲和欧洲激战时,ShowMax正在解决一个更困难的问题:在撒哈拉以南非洲一个网络连接几乎不存在的村庄里,你如何“刷剧”?全球已有35%的视频是流媒体播放,但仍有许多地方这场革命尚未触及。

我们管理着大约50项服务,这些服务大多运行在围绕CoreOS构建的私有集群上。它们主要处理来自我们客户端(Android、iOS、AppleTV、JavaScript、三星电视、LG电视等)的API请求,其中一些则用于内部。最大的内部管道之一是视频编码,在处理大批量摄取时可以占用400多台物理服务器。
我们大部分后端服务是用Ruby、Go或Python编写的。在用Ruby编写应用时,我们使用EventMachine(MRI上的Goliath,JRuby上的Puma)。Go通常用于需要高吞吐量且业务逻辑不那么复杂的应用。对于用Python编写的服务,我们对Falcon非常满意。数据存储在PostgreSQL和ElasticSearch集群中。我们使用etcd和自定义工具来配置Varnish进行请求路由。
Life360访谈
2016年3月23日作者 Brian Brazil
这是我们对Prometheus用户的系列访谈中的第一篇,让他们分享评估和使用Prometheus的经验。我们的第一次访谈是与Life360的Daniel进行的。
您能介绍一下您自己和Life360公司吗?
我是Daniel Ben Yosef,又名dby,我是Life360 的一名基础设施工程师,在此之前,我在过去9年里担任过系统工程师的角色。
Life360创造的技术帮助家庭保持联系,我们是面向家庭的家庭网络应用。我们为这些家庭提供服务,业务相当繁忙——高峰期我们每分钟为7000万注册家庭处理70万次请求。
我们在生产环境中管理着大约20项服务,主要处理来自移动客户端(Android、iOS和Windows Phone)的位置请求,高峰期跨越150多个实例。冗余和高可用性是我们的目标,我们努力尽可能保持100%的正常运行时间,因为家庭信任我们的可用性。
我们的用户数据存储在MySQL多主集群和12节点的Cassandra环中,后者随时持有约4TB的数据。我们有使用Go、Python、PHP编写的服务,并计划将Java引入我们的技术栈。我们使用Consul进行服务发现,当然我们的Prometheus设置也与它集成。
自定义Alertmanager模板
2016年3月3日作者 Fabian Reinartz
Alertmanager处理由Prometheus服务器发送的警报,并根据其标签将通知发送给不同的接收器。
接收器可以是多种不同集成之一,例如PagerDuty、Slack、电子邮件,或通过通用webhook接口的自定义集成(例如JIRA )。
模板
发送给接收器的消息是通过模板构建的。Alertmanager自带默认模板,但也允许定义自定义模板。
在这篇博客文章中,我们将逐步介绍一个简单的Slack通知定制。
我们使用这个简单的Alertmanager配置,将所有警报发送到Slack。
global:
slack_api_url: '<slack_webhook_url>'
route:
receiver: 'slack-notifications'
# All alerts in a notification have the same value for these labels.
group_by: [alertname, datacenter, app]
receivers:
- name: 'slack-notifications'
slack_configs:
- channel: '#alerts'
默认情况下,Alertmanager发送的Slack消息如下所示:

它告诉我们有一个触发中的警报,后面是警报分组的标签值(alertname、datacenter、app)以及警报共有的其他标签值(critical)。
Prometheus 开源开发一周年
2016年1月26日作者 Julius Volz
开始
一年前的今天,我们正式向外界宣布了Prometheus。这对我们来说是一个很好的机会,可以回顾并分享自那以后项目发生的精彩事情。但首先,让我们从头说起。
虽然我们早在2012年就在GitHub上启动了Prometheus作为一个开源项目,但我们起初并没有大张旗鼓。我们想给项目时间来成熟,并能够毫无摩擦地进行实验。Prometheus于2013年被逐步引入SoundCloud 的生产监控中,随后在公司内部得到越来越多的使用,并在2014年被我们的朋友Docker和Boxever早期采用。多年来,Prometheus越来越成熟,尽管它已经解决了人们的监控问题,但对广大公众来说仍然是未知的。
使用etcd实现自定义服务发现
2015年8月17日作者 Fabian Reinartz
在之前的一篇文章中,我们介绍了在Prometheus中进行服务发现的多种新方法。自那时以来,发生了很多变化。我们改进了内部实现,并收到了我们社区的杰出贡献,增加了对Kubernetes和Marathon服务发现的支持。这些功能将在0.16版本发布时可用。
我们还谈到了自定义服务发现的话题。
并非所有类型的服务发现都足够通用,可以直接包含在Prometheus中。很可能您的组织有专有的系统,而您只需要让它与Prometheus协同工作。这并不意味着您不能享受到自动发现新监控目标的好处。
在这篇文章中,我们将实现一个小工具程序,它将一个基于etcd (高一致性分布式键值存储)的自定义服务发现方法连接到Prometheus。
监控DreamHack——全球最大的数字节
2015年6月24日作者 Christian Svensson (DreamHack 网络团队)
编者按:本文是Prometheus用户撰写的客座文章。
如果你为成千上万要求苛刻的游戏玩家运营网络,你需要真正了解网络内部正在发生什么。哦,而且所有东西都必须在短短五天内从零开始搭建。
如果你从未听说过DreamHack ,这里简单介绍一下:将20,000人聚集在一起,其中大多数人自带电脑。再混合上职业游戏(电竞)、编程比赛和现场音乐会。结果就是世界上最大规模的、专门致力于一切数字事物的节日。
为了使这样的活动成为可能,需要有大量的基础设施。普通情况下,这种规模的基础设施需要数月才能建成,但DreamHack的团队在短短五天内就从零开始搭建了一切。这当然包括配置网络交换机等工作,但也包括搭建电力分配系统,设立食品和饮料店,甚至搭建实际的桌子。
负责构建和运营所有与网络相关事宜的团队正式名称为网络团队,但我们通常称自己为*tech*或*dhtech*。这篇文章将聚焦于dhtech的工作,以及我们如何在2015年DreamHack夏季赛期间使用Prometheus,试图将我们的监控提升到一个新的水平。
实用异常检测
2015年6月18日作者 Brian Brazil
John Allspaw在他的《致监控/指标/警报公司的公开信 》中断言,“试图在正确的时间完美地检测异常是不可能的”。
我见过一些有才华的工程师试图构建系统,以根据时间序列数据自动检测和诊断问题。虽然确实可以做出一个演示,但数据总是太过嘈杂,使得这种方法除了最简单的真实世界系统外,都无法奏效。
但希望并未完全破灭。有许多常见的异常,您可以使用自定义规则来检测和处理。Prometheus的查询语言为您提供了发现这些异常同时避免误报的工具。
Prometheus 0.14.0中的高级服务发现
2015年6月1日作者 Fabian Reinartz, Julius Volz
本周我们发布了Prometheus v0.14.0——一个包含了许多期待已久的补充和改进的版本。
在用户方面,Prometheus现在支持新的服务发现机制。除了DNS-SRV记录,它现在开箱即用地支持Consul ,并且一个基于文件的接口允许您连接自己的发现机制。随着时间的推移,我们计划向Prometheus添加其他常见的服务发现机制。
除了许多小的修复和改进,您现在还可以在运行时通过向Prometheus进程发送`SIGHUP`信号来重新加载配置。有关更改的完整列表,请查看此版本的更新日志 。
在这篇博客文章中,我们将仔细研究内置的服务发现机制,并提供一些实际的例子。作为额外的资源,请参阅Prometheus的配置文档。
Prometheus监控在互联网上传播
2015年4月24日作者 Brian Brazil
距离我们公开发布Prometheus 0.10.0版本已经过去将近三个月了,现在我们已经更新到了0.13.1版本。
SoundCloud的发布博文 仍然是关于Prometheus关键组件的最佳概述,但网上关于Prometheus的活动还有很多。这篇文章将让你了解所有你可能错过的动态。
未来,我们将利用这个博客发布更多的文章和公告,帮助您充分利用Prometheus。
