活学活用Prometheus(一):Prometheus简介

Prometheus是最初由SoundCloud开发的开源的系统监控和报警工具包。自2012年诞生以来,被许多公司和组织采用,该项目拥有非常活跃的社区和开发者。Prometheus现在是一个独立的开源项目,独立于任何公司进行维护。为了证明这一点,Prometheus于2016年加入了云原生计算基金会CNCF,成为了继Kubernetes之后的第二个CNCF托管项目。

Prometheus收集和存储metrics作为时间序列数据,也就是说,metrics与它被记录的时间戳以及称为标签的可选键值对一起被存储。

Prometheus主要特点

  • 由metric和键/值对标签标识的时间序列数据组成的多维数据模型。

  • 强大的查询语言 PromQL

  • 不依赖分布式存储,单个服务节点具有自治能力

  • 时间序列数据的收集是服务端通过HTTP协议的主动拉取方式实现的

  • 可以通过中间网关来推送时间序列数据

  • 可以通过服务发现或静态配置发现监控目标

  • 支持多种图标类型和仪表盘

什么是metrics

metrics是数值度量。时间序列数据是随着时间的推移而发生变化的记录。用户想要度量的内容因应用程序而异。对于web服务器来说,可能是请求次数,对于数据库来说,可能是活跃的连接数或活跃的查询数等。

metrics在弄清楚服务的工作状态方面发挥着重要作用。假设一个服务的某个接口很慢,这时候就需要有一些信息来了解这个接口为什么变慢。例如,当请求量很高时,接口可能会变慢。如果有请求量指标,就可以发现这个原因并增加服务器数量来提高响应速度。

组件

Prometheus生态体系包含很多组件,有很多都是可选的。

  • 最主要的是Prometheus server,用于抓取和存储时间序列数据

  • client libraries用来检测应用程序代码

  • push gateway支持任务类(一次性任务、定时任务)接入

  • Exporter 用来监控 HAProxy,StatsD,Graphite 等特殊的监控目标,并向 Prometheus 提供标准格式的监控样本数据。

  • alertmanager处理报警的

  • 其他各种周边工具

大多数Prometheus组件都是用Go语言编写的,很容易构建和部署。

架构

Prometheus 的整体架构以及生态系统组件如下图所示:

Prometheus从服务中获取Metrics,一种方式是直接获(持久化服务),另一种方式是通过push gateway获取(一次性任务、定时任务),Prometheus将抓取的所有数据样本存储在本地,并对数据执行一系列规则,从现有数据中聚合记录新的时间序列或生成警报。Grafana或其他可视化工具可以将收集的数据进行可视化。

适用场景

Prometheus适用于记录文本格式的时间序列数据。既适合以机器为中心的监控,也适合面向服务的体系结构的监控。在微服务的世界里,对多维数据收集和查询的支持是一个特别的优势。

Prometheus 是专为提高系统可靠性而设计的,可以在断电期间快速诊断问题,每个 Prometheus Server 都是相互独立的,不依赖于网络存储或其他远程服务。当基础架构出现故障时,可以通过 Prometheus 快速定位故障点,而且不会消耗大量的基础架构资源。

Prometheus 非常重视可靠性,即使在出现故障的情况下,也可以随时查看有关系统的可用统计信息。如果需要百分之百的准确度,例如按请求数量计费,那么 Prometheus 不太适合,因为它收集的数据可能不够详细完整。这种情况下,最好使用其他系统来收集和分析数据以进行计费,并使用 Prometheus 来监控系统的其余部分。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值