Prometheus - Introduction


Prometheus - Introduction

Key Word:

来自于 Google 的 Borg 体系,它的原型系统叫作 BorgMon

2012 前Google工程师在 SoundCloud 上研发的开源系统监视和警报工具

2016 年加入 CNCF 成为第二个孵化项目

用于指标收集及告警,不包括日志或者分布式追踪


古希腊语:Προμηθεύς、英语:Prometheus,名字的含义是“先见之明”

当时宙斯禁止人类用火,普罗米修斯看到人类生活的困苦,帮人类从奥林匹斯山盗取了火,因此触怒宙斯。

宙斯为了惩罚人类,将潘多拉的盒子放到人间。

再将普罗米修斯锁在高加索山的悬崖上,每天派一只鹰去吃他的内脏。

Prometheus - Introduction


特点:

多维数据模型,度量名称、标签(键值对)、时间序列数据

PromQL,灵活的查询语言,利用此进行数据操作

不依赖分布式存储;单个服务器节点是自治的

时间序列收集通过HTTP上的拉模型进行

通过中间网关支持推送时间序列

通过服务发现或静态配置发现目标

多种图形和仪表板支持模式



组成:

Promethues 用于主动收集及存储时间序列数据

Exporter 用于某种服务的指标监控及暴露

PushGateway 用于接受短期工作的服务主动推送指标

AlertManager 用于告警处理,例如通过邮件推送

ClientLibraries 用于自行开发的服务指标监控及暴露


目前整体的解决方案统称为 Prometheus Stack

基于 Kuberentes Operator,包括对 Kuberentes Cluster的监控

并且实现了对监控目标的动态发现(基于标签或者注解)


架构:

Prometheus - Introduction



Pull & Push

Promethes 支持 Pull 模式拉取监控数据,也支持 Push 模式,区别在于数据的采集方。

Pull 模式:由Prometheus 定期 Pull 对应 Job 定义的 Target 来获取对应的监控数据。

Push 模式:由被监控对象主动 Push 监控数据到 PushGateway,而后Prometheus 在从 PushGateway 进行数据采集。


默认情况下,Prometheus 官方推荐使用 Pull 模式,但由于某些特殊场景下,例如批处理作业等无法知道具体的执行时间从而确定何时进行采集,或者是网络无法直接被 Prometheus 访问,从而要使用 Push 模式进行主动推送监控数据。


上一篇:Prometheus - Node Exporter


下一篇:Elasticsearch Document & Type & Index