概述

浏览 0      扫码          2019-11-14 09:36:21     码农文档      译文原文 英文原文

公告:如果您也想加入翻译队伍,或者您有相关中文文档想要贡献给大家,请联系coderdocument@163.com ,谢谢!

Prometheus是什么?

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

有关普罗米修斯的更详细的概述,请参阅媒体部分链接的参考资料。

特性

Prometheus的主机特性有:

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

组件

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

大多数Prometheus组件都是用Go编写的,因此很容易构建并部署为静态二进制文件。

架构

下图展示了Prometheus的架构和它的生态系统的一些组成部分:

Prometheus architecture

Prometheus从添加监控的作业中获取数据,要么直接获取,要么通过中间推送网关获取短期存活作业的数据。它在本地存储所有抓取的样本,并对这些数据运行规则,以聚合和记录来自现有数据的新时间序列,或者生成告警。Grafana 或其他API消费者可用于可视化收集的数据。

什么时候合适?

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

Prometheus是为可靠性而设计的,它是一个你在停机时用来快速诊断问题的系统。每个Prometheus服务器是独立的,不依赖于网络存储或其他远程服务。当你的基础设施的其他部分损坏时,你可以依赖它,并且不需要设置大量的基础设施来使用它。

什么时候不合适?

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

返回顶部