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,但我们希望大家都能测试它并发现 bug。
总的来说,唯一的破坏性变更是移除了已弃用的功能标志。Prometheus 团队努力确保向后兼容性,不破坏现有安装,因此下面描述的所有新功能都是在现有功能的基础上构建的。大多数用户应该能够直接试用 Prometheus 3.0,无需任何配置更改。
我们对 OpenTelemetry 的承诺
2024年3月13日作者 Goutham Veeramachaneni (@Gouthamve) 和 Carrie Edwards (@carrieedwards)
OpenTelemetry 项目是一个可观测性框架和工具包,旨在创建和管理遥测数据,如追踪、指标和日志。由于其信号之间的一致规范以及减少供应商锁定的承诺,它正得到广泛采用,这一点我们感到非常兴奋。
回顾 2023 年
在过去的几年里,我们与 OpenTelemetry 社区合作,确保 OpenTelemetry 和 Prometheus 能够双向支持。这促成了在两个系统之间进行转换的官方规范的起草,以及允许您将 Prometheus 指标摄取到 OpenTelemetry Collector 中(反之亦然)的实现。
自那时起,我们花费了大量时间来了解 OpenTelemetry 用户在 Prometheus 中存储指标时面临的挑战,并基于这些挑战探索了如何解决它们。一些提议的变更需要仔细考虑,以避免破坏任何一方的运营承诺,例如同时支持推(push)和拉(pull)模式。在 PromCon Berlin 2023 大会上,我们试图在其中一个演讲中总结我们的想法。
在我们于柏林举行的开发者峰会上,我们花了大部分时间深入讨论这些变更以及我们对 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 现已进入第 8 届,它汇集了来自世界各地的 Prometheus 用户和开发者,交流知识、最佳实践以及使用 Prometheus 获得的经验。项目委员会审查了 66 份提交的演讲,将为当今围绕 Prometheus 的最紧迫议题提供新鲜且信息丰富的视角。
“我们非常激动 PromCon 回到柏林。Prometheus 于 2012 年在柏林的 Soundcloud 诞生。第一届 PromCon 在柏林举办,期间曾移至慕尼黑。今年我们将在柏林弗里德里希斯海因的 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)的指标生态系统能够在这坚实的基础上发展。因此,发生了许多了不起的事情。
- 我们可以看到社区的导出器(exporter)几乎可以获取关于任何事物的指标,例如容器、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 远程写入(Remote Write)合规性测试套件,它根据我们的规范测试远程写入协议的发送方部分。
在周一的 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 个?如果是这样,这篇文章就是为您准备的。让我带您了解问题的根源以及我是如何修复它的。
目前,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 允许第三方系统通过两种方法与指标数据进行交互:
- 写入(Write) - 接收由 Prometheus 推送的样本
- 读取(Read) - 从 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
来发现问题,同时将这些数据聚合到更高范围(例如 max_over_time
为 1h
)。
以前,对于单个 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 上更快地编码。我们的项目包括用于 Kubernetes 服务本地开发的 Telepresence;一个基于 Envoy Proxy 的 Kubernetes 原生 API 网关 Ambassador;以及一个构建/部署系统 Forge。
我们在 AWS 的 Kubernetes 中运行着一些任务关键型的云服务,以支持我们的开源工作。这些服务支持的用例包括每天动态配置数十个 Kubernetes 集群,然后由我们的自动化测试基础设施使用。
在使用 Prometheus 之前,您的监控体验是怎样的?
我们曾使用 AWS CloudWatch。这很容易设置,但我们发现,随着我们采用更分布式的开发模型(微服务),我们希望有更大的灵活性和控制力。例如,我们希望每个团队能够根据需要自定义他们的监控,而不需要运营人员的帮助。
专访 Scalefastr
2018年2月8日作者 Brian Brazil
继续我们的 Prometheus 用户专访系列,来自 Scalefastr 的 Kevin Burton 讲述了他们是如何使用 Prometheus 的。
您能介绍一下您自己和 Scalefastr 的业务吗?
我的名字是 Kevin Burton,我是 Scalefastr 的首席执行官。我的背景是分布式系统,我之前经营过 Datastreamer,这是一家构建了 PB 级分布式社交媒体爬虫和搜索引擎的公司。
在 Datastreamer,我们在基础设施方面遇到了可扩展性问题,并基于 Debian、Elasticsearch、Cassandra 和 Kubernetes 构建了一个高性能集群。
我们发现我们的许多客户也在他们的基础设施上挣扎,我惊讶于他们在 AWS 和 Google Cloud 上托管大量内容所支付的费用。
我们不断评估在云上运行的成本,对我们来说,我们的托管成本将是我们目前支付的 5-10 倍。
我们决定推出一个新的云平台,该平台基于开源和云原生技术,如 Kubernetes、Prometheus、Elasticsearch、Cassandra、Grafana、Etcd 等。
我们目前正在为几个 PB 级的客户提供托管服务,并计划本月软启动我们的新平台。
Prometheus 在 CloudNativeCon 2017
2017年11月29日作者 Tom Wilkie 代表 Prometheus 团队
12 月 6 日星期三是奥斯汀 CloudNativeCon 的 Prometheus 日,我们为您准备了一系列精彩的演讲和活动。前往 Prometheus Salon 获取有关如何最好地监控 Kubernetes 的实践建议,参加一系列关于 Prometheus 各个方面的演讲,然后在 CNCF 展位与一些 Prometheus 开发人员交流,所有活动之后还有 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-delta
alertmanager.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 动画工作室。我们的第一部故事片 “Ballerina”(又名“Leap”)于 2017 年全球上映,预计今年晚些时候在美国上映。
我们目前正在努力制作一部动画电视剧和我们的第二部故事片。 我们的基础设施包括大约 300 台渲染刀片机、150 个工作站和二十台各种服务器。除了一两台 Mac,所有设备都运行在 Linux (CentOS) 上,没有一台 Windows 机器。
专访 iAdvize
2017年5月17日作者 Brian Brazil
继续我们的 Prometheus 用户专访系列,来自 iAdvize 的 Laurent COMMARIEU 讲述了他们如何用 Prometheus 取代了他们遗留的 Nagios 和 Centreon 监控系统。
您能介绍一下 iAdvize 的业务吗?
我是 iAdvize 的系统工程师 Laurent COMMARIEU。我在一个 60 人的研发部门工作,团队里有 5 名系统工程师。我们的工作主要是确保应用程序、服务和底层系统的正常运行。我们与开发人员合作,确保他们的代码能够以最简单的方式进入生产环境,并在每一步提供必要的反馈。这就是监控的重要性所在。
iAdvize 是一个全栈对话式商务平台。无论沟通渠道如何(聊天、通话、视频、Facebook Pages、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 实现持续部署
- 使用 Weave Net(容器 SDN)实现网络连接
- 使用 Weave Cortex 进行监控,这是我们开源的、分布式的 Prometheus 即服务。
您可以免费试用 Weave Cloud 60 天。要了解我们产品的最新信息,请查看我们的博客、Twitter 或 Slack(邀请链接)。
Canonical 访谈
2016 年 11 月 16 日作者 Brian Brazil
继续我们的 Prometheus 用户访谈系列,Canonical 讲述了他们如何向 Prometheus 过渡。
能介绍一下您自己以及 Canonical 是做什么的吗?
Canonical 最为人所知的身份可能是赞助 Ubuntu Linux 的公司。我们还开发或贡献了许多其他开源项目,包括 MAAS、Juju 和 OpenStack,并为这些产品提供商业支持。Ubuntu 为大多数 OpenStack 部署提供支持,占生产云的 55%,以及大型云部署的 58%。
我所在的团队 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 万个 Droplet(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 等。
通过为最终用户提供迁移电子邮件的简单路径(同时保持对导入工具 UI 的完全控制),我们的客户显著改善了用户的激活和上手体验。
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。