OVERVIEW
什么是 Prometheus?
Prometheus是一个最初在SoundCloud上构建的开源系统监控和警报工具包。 自2012年成立以来,许多公司和组织都采用Prometheus,该项目拥有非常活跃的开发人员和用户社区。 它现在是一个独立的开源项目,并且独立于任何公司。 为了强调这一点,并澄清项目的治理结构,Prometheus于2016年加入云本地计算基金会,作为Kubernetes之后的第二个托管项目。
有关Prometheus更详尽的概述,请参阅媒体部分链接的资源。
Features
Prometheus's 主要特性是:
- 一个多维数据模型,具有由度量名称和键/值对标识的时间序列数据
- 一种灵活的查询语言来利用这种维度
- 不依赖分布式存储; 单个服务器节点是自治的
- 时间序列收集通过HTTP上的拉式模型进行
- 推送时间序列通过中间网关支持
- 通过服务发现或静态配置来发现目标
- 多种模式的图形和仪表盘支持
组件
普罗米修斯生态系统由多个组件组成,其中许多组件是可选的:
- 主要Prometheus服务器收集和存储时间序列数据
- 用于检测应用程序代码的客户端库
- 支持短期工作的推送网关
- 专门用于HAProxy,StatsD,Graphite等服务的出口商
- 警报管理人员处理警报
- 各种支持工具
大多数Prometheus组件都是用Go编写的,因此它们很容易构建和部署为静态二进制文件。
结构
该图说明了Prometheus及其生态系统组件的一些架构:
普罗米修斯直接或通过中介推送网关从短期工作中提取仪器化工作的指标。 它在本地存储所有抓取的样本,并对这些数据运行规则,以聚合和记录现有数据的新时间序列或生成警报。 Grafana或其他API消费者可用于可视化收集的数据。
什么时候适合用?
普罗米修斯可以很好地记录任何纯数字时间序列。 它既适用于以机器为中心的监控,也适用于高度动态的面向服务的体系结构的监控。 在微服务世界中,它支持多维数据收集和查询是一个特别的优势。
普罗米修斯专为可靠性而设计,成为您在停电期间进行的系统,可让您快速诊断问题。 每个Prometheus服务器都是独立的,不依赖于网络存储或其他远程服务。 当基础设施的其他部分被破坏时,您可以依靠它,并且您不需要设置广泛的基础设施来使用它。
什么时候不适合用?
普罗米修斯重视可靠性。 即使在故障条件下,您也可以始终查看有关系统的统计信息。 如果您需要100%的准确性(例如按请求计费),Prometheus并不是一个好选择,因为收集的数据可能不够详细和完整。 在这种情况下,您最好使用其他系统来收集和分析数据以进行计费,Prometheus则可以进行其他监控。