Prometheus 官网翻译
概述
什么是prometheus
普罗米修斯是一个开源系统监控和预警工具箱最初在SoundCloud构建。自动2012年成立以来,许多公司和机构采用了prometheus,现在他是一个独立的开源项目独立于任何公司进行维护。为了强调这一点并澄清prometheus的治理结构,prometheus在2016年加入了云原生基金会(CNCF)成为了第二个项目,紧跟Kubernetes之后。
prometheus收集和存储,指标和时序数据。换言之,指标信息和他被记录时的时间戳一起存储。并附带可选的键值对标签。
特点
prometheus主要的特点包括:
- 一个多维的数据模型,其中时序数据通过指标名和键值对进行标识。
- PromQL,一个灵活的查询语言,可以利用这个维度。
- 不依赖分布式存储,单独服务节点是自主的
- 时序的收集是通过HTTP上的拉取模型进行的
- 通过中间网关推送时序
- 通过服务发现或者静态配置发现目标
- 多种图形和仪表盘支持模式
什么是指标
指标是以非专业术语表达的数值测量。术语时序原来记录随时间的变化。用户想要测量的内容因程序而异。在web服务中,它可能是请求时间;再数据库中,它可以是活动连接或活动查询的数量等等。
指标在理解你的程序为何以某种方式工作中发挥着重要作用。来假设你正在运行一个web应用程序,并且发现他很慢。为了知道你的应用发生了什么。你需要一些信息。举个例子,当请求数量比较高,应用可能变得缓慢。如果你有请求书的指标,你可以确定原因并且增加处理负载的服务器数量。
组件
prometheus生态包括了许多组件,其中很多是可选的
- prometheus的主服务器用于抓去和存储时序数据
- 用于检测应用代码的客户端库
- 推送网关用于支持短时作业
- 为HAProxy、StatsD、Graphite等服务提供特定用途的导出器。
- 一个用于处理警报的 alertmanager 。
- 各种支持工具
大多数prometheus组件都是go写的,因此很容易发布和以二进制的方式静态部署。
体系结构
图解说明prometheus的体系结构和生态组件
prometheus从以仪表话的作业中抓取指标,可以直接抓取,也可以通过中间网关抓取短时作业指标。它存储所有抓取样本在本地,并对这些数据运行规则,以从现有数据中聚合记录新的事件序列或生成警报。Grafana或者其他API消费者可以使用可视化所收集的数据。
什么时候合适?
prometheus非常适合记录任何纯数字的时序数据中。它既适合以机器为中心的健康,也适合高度动态的面向服务体系结构的监控。在微服务的世界里,它对多维数据的收集和查询的支持是一个特别的优势。
prometheus是为可靠性而设计的,成为您在停机期间使用的系统,使您能够快速诊断问题。每个普罗米修斯服务是独立的,不依赖网络存储或远程服务。当你的基础设施部分出现故障时,你可以关联他,而且你不需要设置广泛的基础设施来使用它。
什么时候不适用?
prometheus重视可靠性。你可以随时查看系统的可用统计信息,甚至在故障条件下。如果你想做到百分之百的准确,例如按请求计费,prometheus不是一个好的选择,因为收集到的数据不够详细和完整。在这种情况下,您最好使用其他系统来收集和分析用于计费的数据,并使用普罗米修斯来进行其余的监控。