点击关注公众号,k8s优秀车间主任及时送达


什么是普罗米修斯?

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

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

特征

普罗米修斯的主要特点是:


  • 一个多维数据模型,具有由指标名称和键/值对标识的时间序列数据
  • PromQL,一种 利用这种维度的灵活查询语言
  • 不依赖分布式存储;单个服务器节点是自治的
  • 时间序列收集通过 HTTP 上的拉模型发生
  • 通过中间网关支持推送时间序列
  • 通过服务发现或静态配置发现目标
  • 多种图形和仪表板支持模式

组件

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


  • 抓取和存储时间序列数据的主要Prometheus 服务器
  • 用于检测应用程序代码的客户端库
  • 支持短期工作的推送网关
  • HAProxy、StatsD、Graphite 等服务的专用出口商。
  • 一个警报管理器来处理警报
  • 各种支持工具

大多数 Prometheus 组件都是用Go编写的,这使得它们易于构建和部署为静态二进制文件。

建筑学

下图说明了 Prometheus 的架构及其一些生态系统组件:


Prometheus_数据

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

什么时候适合?

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

Prometheus 是为可靠性而设计的,它是您在中断期间访问的系统,让您能够快速诊断问题。每个 Prometheus 服务器都是独立的,不依赖于网络存储或其他远程服务。当基础架构的其他部分损坏时,您可以依赖它,并且您无需设置大量基础架构即可使用它。

什么时候不合适?

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