Prometheus 与 Grafana 配置

Prometheus 介绍

1. 什么是 Prometheus?

Prometheus 是一个开源的系统监控和告警工具包

2. 特性

Prometheus 的主要特性包括:

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

3. 什么是指标(Metric)?

指标在通俗意义上是数值测量,术语“时间序列”是指随时间记录的变化。用户希望测量的内容因应用程序而异。

对于 Web 服务器,可能是请求时间;

对于数据库,可能是活动连接数或活动查询数等等。

4. 架构

Prometheus已埋点的作业中抓取指标,可以直接抓取,也可以通过中间推送网关抓取短生命周期作业的指标。它将所有抓取的样本 存储在本地,并根据这些数据运行规则,以聚合并记录现有数据中的新时间序列或生成告警。Grafana 或其他 API 消费者可用于可视化收集到的数据

5. 为什么选择拉而不是推?

Prometheus 默认采用的是一种 “拉模型(PullModel)” 架构,它会主动周期性地拉取被监控目标的指标数据 。每个被监控的服务需要暴露一个支持 Prometheus格式HTTP 接口,通常路径是 /metrics(如 Spring Boot/actuator/prometheus

Prometheus 启动

Graph 页面查询核心线程数

Grafana 看板

Grafana + Prometheus 是一套常见的可观测性组合

如果是docker运行,为了让 Grafana 能够通过容器名访问 Prometheus,需要先创建一个共享网络 monitoring

Grafana启动