文章目录
Prometheus 是什么?
Prometheus 是一个开源的监控和告警系统,最初由 SoundCloud 开发,现已成为 CNCF 的一个重要项目。它的基本原理、架构和配套使用的插件如下:
基本原理
Prometheus 基于时间序列的数据存储和查询,它主要通过主动拉取(pull)方式从被监控的目标(targets)中收集数据。每个被监控的服务暴露一个 HTTP 端点(通常是 /metrics
),Prometheus 定期从这些端点拉取指标数据,并存储在时序数据库中。
Prometheus 采用的时间序列数据模型是多维度的,包含如下组成部分:
-
Metric 名称:
指标的名称,如http_requests_total
,用于描述具体的监控指标。 -
标签(Label):
指标的标签用于为同一个指标打上不同的维度,如method="POST"
或status="200"
。 -
时间戳:
每个数据点带有一个时间戳,记录数据收集的时间。 -
值:
在特定时间点采集的数值。
解决的问题
Prometheus 主要用于监控和告警,适用于大规模分布式系统。它可以帮助你实现以下功能:
-
实时监控:
实时采集和存储系统、服务的运行指标数据(如 CPU 使用率、内存占用、网络流量等)。 -
历史查询:
存储的时间序列数据可以用于分析历史性能,查询特定时间点的系统状态。 -
告警:
基于收集到的监控数据,Prometheus 可以设置告警规则,当某个指标超过预设阈值时,触发告警(如 CPU 占用率超过 90%)。 -
自动发现目标:
通过服务发现或静态配置,自动找到需要监控的服务和实例,动态调整监控对象。
Prometheus 架构
Prometheus 的架构由多个组件组成,主要包括以下部分: