03.1、Prometheus简介
Prometheus 简介
欢迎来到第 3 章的学习。在前面的章节中,我们了解了可观察性的基础和 OpenTelemetry 的架构。现在我们要深入学习 Prometheus,这是 Grafana Stack 的核心组件之一。
本节将学习:Prometheus 是什么?Pull vs Push 模式的区别?以及 Prometheus 的适用场景。
Prometheus 是什么
Prometheus 是什么? Prometheus 是一个开源的监控和告警系统,专门用于收集和存储时间序列数据。
Prometheus 的核心特点是什么?
第一个特点:开源。 Prometheus 是完全开源的,CNCF 毕业项目。它是在 2018 年成为 CNCF 毕业项目的,和 Kubernetes 一样,都是 CNCF 的毕业项目。
第二个特点:时间序列数据库。 Prometheus 专门用于存储时间序列数据。它不是为了存储普通数据,而是专门为了存储时间序列数据而设计的。
第三个特点:Pull 模式。 Prometheus 主动拉取指标数据。它不是等待应用推送数据,而是主动去拉取数据。这个我们等一下会详细讲。
第四个特点:多维度数据模型。 Prometheus 基于 Label 的多维度数据模型。可以通过 Label 来区分和分组指标,非常灵活。
第五个特点:强大的查询语言。 Prometheus 提供了 PromQL 查询语言。可以用 PromQL 来查询和分析数据,非常强大。
Prometheus 的地位是什么? Prometheus 是行业标准的时间序列数据库。它与 Kubernetes 深度集成,广泛被企业采用。
这就是 Prometheus,一个强大的监控和告警系统。
Pull vs Push 模式的区别
Pull 模式是什么? Prometheus 使用 Pull 模式。
Pull 模式的工作方式:Prometheus 主动拉取指标,应用暴露指标端点(比如
/metricsPull 模式的优点是什么?
- 配置简单。只需要配置 Prometheus 抓取目标,应用不需要知道 Prometheus 的地址。
- 应用无需知道监控系统。应用只需要暴露指标端点,不需要关心谁在监控它。
- 支持服务发现。Prometheus 可以自动发现服务,不需要手动配置。
- 易于扩展。可以轻松添加新的监控目标,不需要修改应用代码。
Push 模式是什么? 传统监控使用 Push 模式。
Push 模式的工作方式:应用主动推送指标,应用需要知道监控系统地址,应用负责数据传输。
Push 模式的缺点是什么?
- 应用耦合监控系统。应用需要知道监控系统的地址,耦合度高。
- 配置复杂。需要在应用中配置监控系统地址,配置复杂。
- 难以扩展。添加新的监控目标需要修改应用代码。
- 单点故障风险。如果监控系统不可用,应用可能受到影响。
这就是 Pull vs Push 模式的区别。Prometheus 使用 Pull 模式,这是它的一大优势。
Prometheus 的适用场景
Prometheus 适用于哪些场景呢?
第一个场景:系统监控。 CPU、内存、磁盘、网络使用率,操作系统指标,容器和 Kubernetes 监控。Prometheus 非常适合监控系统资源使用情况。
第二个场景:应用监控。 应用程序指标、业务指标、性能指标。可以用 Prometheus 监控应用的运行状态和业务指标。
第三个场景:服务监控。 HTTP 请求指标、RPC 调用指标、数据库查询指标。可以用 Prometheus 监控服务的健康状态和性能指标。
第四个场景:告警。 基于规则的告警、通知系统集成、告警管理。Prometheus 不仅可以监控,还可以告警。
场景示例:Prometheus 可以用于系统监控、应用监控、服务监控、告警等多种场景。
这就是 Prometheus 的适用场景。它非常通用,可以用于各种监控场景。
本节小结
在本节中,我们学习了 Prometheus 的基础知识:
第一个是 Prometheus 是什么。 Prometheus 是开源的监控和告警系统,CNCF 毕业项目,专门用于收集和存储时间序列数据。
第二个是 Pull vs Push 模式。 Prometheus 使用 Pull 模式,主动拉取指标,配置简单,易于扩展。
第三个是适用场景。 Prometheus 适用于系统监控、应用监控、服务监控、告警等多种场景。
这就是 Prometheus 的基础知识。理解这些基础知识,是掌握 Prometheus 的关键。
在下一节,我们将学习如何安装 Prometheus。我们会在 Windows、macOS、Linux 上分别演示安装过程。