Grafana
Grafana 是业界主流的开源可观测性可视化平台,支持连接数十种数据源(Prometheus、Elasticsearch、Loki、ClickHouse 等),通过 Dashboard + Panel 提供实时图表、告警和探索能力。
核心概念
| 概念 | 说明 |
|---|---|
| Data Source | 数据源连接配置(Prometheus、Loki、MySQL 等) |
| Dashboard | 面板集合,一个页面展示多个关联指标 |
| Panel | 单个图表/表格/状态块,绑定一个查询 |
| Variable | 面板顶部的下拉变量,用于动态筛选(实例、环境、服务) |
| Alert Rule | 基于查询结果的告警规则,触发时通知 Contact Point |
| Folder | Dashboard 分组管理 |
快速启动(Docker)
services:
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
environment:
GF_SECURITY_ADMIN_PASSWORD: admin123
volumes:
- grafana_data:/var/lib/grafana
- ./grafana/provisioning:/etc/grafana/provisioning
volumes:
grafana_data:数据源配置(Provisioning)
通过配置文件自动注入数据源,无需手动在 UI 添加:
# grafana/provisioning/datasources/prometheus.yml
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
url: http://prometheus:9090
isDefault: true
jsonData:
timeInterval: "15s"# grafana/provisioning/datasources/loki.yml
apiVersion: 1
datasources:
- name: Loki
type: loki
url: http://loki:3100Dashboard 即代码(Dashboard as Code)
将 Dashboard JSON 放入 provisioning 目录,启动时自动导入:
# grafana/provisioning/dashboards/provider.yml
apiVersion: 1
providers:
- name: default
folder: "Auto-Provisioned"
type: file
options:
path: /etc/grafana/provisioning/dashboards推荐使用社区 Dashboard(grafana.com/dashboards):
4701— JVM Micrometer(Spring Boot)1860— Node Exporter Full(主机监控)14282— Kubernetes 集群概览
常用 Panel 类型
| Panel | 适用场景 |
|---|---|
| Time Series | 时序折线图,监控趋势 |
| Stat | 单值大字体展示(当前 QPS、错误率) |
| Gauge | 仪表盘(CPU 使用率、堆内存占用率) |
| Bar Chart | 分类对比(各接口 P99) |
| Table | 多维度明细数据 |
| Logs | 日志面板(配合 Loki) |
| Alert List | 当前触发的告警列表 |
变量(Variable)使用
在 Dashboard 设置 → Variables 中添加,查询 Prometheus label 值:
# 变量:instance,查询所有在线实例
label_values(up{job="spring-app"}, instance)Panel 查询中引用变量:
rate(http_requests_total{instance="$instance"}[5m])告警配置
告警规则 → 绑定数据源查询 → 设置条件(如 last() > 0.05) → 关联 Contact Point:
# 通过 provisioning 配置告警通知渠道
apiVersion: 1
contactPoints:
- orgId: 1
name: DingTalk
receivers:
- uid: dingtalk-webhook
type: webhook
settings:
url: "https://oapi.dingtalk.com/robot/send?access_token=xxx"
httpMethod: POSTGrafana LGTM 栈
Grafana 官方提供完整的可观测性套件:
| 组件 | 职责 |
|---|---|
| Loki | 日志聚合(类似 Elasticsearch,但更轻量) |
| Grafana | 可视化 |
| Tempo | 分布式链路追踪(兼容 Jaeger/Zipkin 格式) |
| Mimir | 长期 Prometheus 指标存储(多租户) |
相关链接
- Prometheus — 最常见的 Grafana 数据源
- OpenTelemetry — 统一采集后推送到各后端
- SkyWalking — APM 自带 UI,也可对接 Grafana
- 可观测性(架构) · 云原生