Prometheus和Grafana简介

Prometheus 是一款开源的时序数据监控系统 ,核心用于采集、存储分布式系统的指标数据(如服务器 CPU 使用率、接口响应时间);Grafana 则是一款开源的数据可视化平台,主要用于将 Prometheus 等数据源的指标数据,以图表、仪表盘等形式直观展示,二者常搭配使用,构成 "监控采集 + 可视化展示" 的完整监控方案。

一、Prometheus:监控数据的 "采集与存储中心"

Prometheus 的核心作用是解决 "从哪里拿数据、怎么存数据" 的问题,它不负责数据展示,专注于监控数据的全生命周期管理。

1. 核心功能
  • 指标采集 :通过 "拉取(Pull)" 模式主动从目标服务(如 Java 应用、MySQL 数据库、服务器)抓取指标数据。目标服务需暴露一个 HTTP 接口(如 Spring Boot 应用的/actuator/prometheus),返回符合 Prometheus 格式的指标(如http_requests_total 100,表示 HTTP 请求总数为 100)。
  • 时序存储 :将采集到的指标数据以 "时序" 形式存储(按时间戳顺序排列),采用自研的 TSDB(Time Series Database)数据库,优化了时序数据的读写性能,支持按标签(如service=orderhost=server1)筛选数据。
  • 灵活查询 :提供 PromQL 查询语言,可对指标进行计算和筛选。例如:
    • http_requests_total{service="order"}:查询 "订单服务" 的 HTTP 请求总数;
    • rate(http_requests_total[5m]):计算 "近 5 分钟内 HTTP 请求的每秒增长率"(即 QPS)。
  • 告警触发:支持基于 PromQL 配置告警规则(如 "CPU 使用率连续 5 分钟超过 80%"),当规则触发时,通过 Alertmanager 组件向邮件、钉钉等渠道发送告警通知。
2. 适用场景
  • 监控分布式系统的基础设施(服务器、容器、数据库);
  • 监控业务系统的核心指标(接口 QPS、错误率、订单量);
  • 构建自定义告警规则,及时发现系统异常。

二、Grafana:监控数据的 "可视化展示窗口"

Grafana 本身不采集数据,而是作为 "数据展示层",对接 Prometheus 等多种数据源(还支持 Elasticsearch、InfluxDB 等),将枯燥的指标数据转化为直观的图表,方便运维或业务人员快速理解系统状态。

1. 核心功能
  • 仪表盘(Dashboard):支持自定义仪表盘,将多个相关指标(如 "订单服务的 QPS、错误率、响应时间")组合成一个页面,按业务场景分类展示(如 "支付系统监控仪表盘""用户中心监控仪表盘")。
  • 丰富图表:提供折线图、柱状图、饼图、仪表盘等多种图表类型,支持按时间范围(如近 1 小时、近 7 天)切换数据展示,直观呈现指标的变化趋势。
  • 多数据源支持:可同时对接多个 Prometheus 实例(如 "生产环境 Prometheus""测试环境 Prometheus"),或混合对接其他数据源(如用 Prometheus 监控指标,用 Elasticsearch 展示日志)。
  • 权限控制:支持按角色分配权限(如 "运维人员可编辑仪表盘,业务人员仅可查看"),确保监控数据的访问安全。
2. 适用场景
  • 构建运维监控大屏,实时查看系统整体健康状态;
  • 向业务团队展示核心业务指标(如 "今日订单量趋势""用户注册量");
  • 排查问题时,通过图表快速定位指标异常(如 "QPS 突降时,响应时间是否同步升高")。

三、Prometheus + Grafana:经典搭配流程

二者结合使用时,工作流程如下:

  1. 数据采集:Prometheus 通过 "拉取" 模式,从目标服务(如订单服务、MySQL)采集指标数据,存储到 TSDB 中;
  2. 数据查询:Grafana 对接 Prometheus 数据源,通过 PromQL 查询需要展示的指标;
  3. 可视化展示:Grafana 将查询到的指标以图表形式展示在自定义的仪表盘上,支持实时刷新;
  4. 告警联动:当 Prometheus 触发告警时,除了发送通知,也可在 Grafana 中标记异常时间点,方便事后回溯。

简单来说,Prometheus 像 "监控数据的仓库管理员",负责收集和保管数据;Grafana 像 "数据展览馆的设计师",负责将仓库里的数据整理成美观易懂的展览。二者搭配,是目前分布式系统监控领域最主流的方案之一。

相关推荐
码界奇点1 天前
Apache IoTDB 架构特性与 PrometheusGrafana 监控体系部署实践
架构·apache·grafana·prometheus·iotdb
Linux-palpitate1 天前
基于Prometheus和Grafana的MySQL监控,服务器监控
服务器·grafana·prometheus
hello_2502 天前
golang程序对接prometheus
开发语言·golang·prometheus
yiqian19893 天前
grafana做状态变化的监控图表
grafana
angushine3 天前
Docker方式安装Prometheus+Grafana+Node Exporter
docker·grafana·prometheus
SRETalk4 天前
夜莺监控设计思考(三)时序库、agent 的一些设计考量
prometheus·可观测性·监控告警·nightingale·opentelemetry·夜莺监控·categraf
时空无限4 天前
grafana dashboard 监控 json 文件 uid 长度限制
grafana
q9085447035 天前
Prometheus+Grafana 智能监控告警系统(服务器指标采集、mysql指标采集)
服务器·grafana·prometheus
风清再凯7 天前
03_Pushgateway使用&Prometheus的服务发现机制
服务发现·prometheus