参考:Panel 类型、数据源与易错点
基于 Grafana 11.x · 核于 2026-08
速查
- Grafana 定位:可观测性可视化平台,不采集数据,连接 100+ 数据源统一展示。
- Dashboard = Panels + Variables + Annotations + Time range + Refresh,本质是 JSON 文件(可版本管理)。
- Panel 四要素:数据源 + 查询 / 可视化类型 / Field+Override / Alert。
- Variables:Query(动态)/ Custom / Text box / Interval / Datasource / Constant;
$var在查询中替换。 - 统一 Alerting:Alert Rule(条件+for)→ Contact Point(接收方)→ Notification Policy(路由分组)→ Silence(静默)。
- LGTM:Loki(日志)/ Tempo(追踪)/ Mimir(指标长期存储)+ Pyroscope(剖析),traceID 贯穿关联。
- Exemplar:指标采样点带 traceID,点击跳转 Tempo trace——「指标进追踪」入口。
一、Panel 类型速查
| 类型 | 适用场景 | 数据源示例 |
|---|---|---|
| Time series | 时序趋势(QPS/延迟/CPU) | Prometheus/Loki/CloudWatch |
| Stat | 单个关键数字 + 阈值色 | 任意 |
| Bar gauge | 多维度横向对比 | 任意 |
| Gauge | 仪表盘(带阈值) | 任意(百分比类) |
| Table | 多列结构化数据 | 任意(MySQL/ES) |
| Geomap | 地理分布热力 | 任意(带经纬度) |
| Node graph | 节点关系/拓扑 | Tempo/服务网格 |
| Flame graph | 剖析火焰图 | Pyroscope |
| Logs | 日志流(时间线) | Loki |
| Trace view | 追踪瀑布图 | Tempo/Jaeger |
| Pie chart | 占比分布 | 任意 |
| Heatmap | 密度分布 | Prometheus(Histogram) |
| Bar chart | 离散柱状 | 任意 |
| State timeline | 状态时段(如 up=0/1) | 任意 |
| Canvas | 自定义图形(拓扑/流程) | 任意 |
| News | RSS 信息流 | RSS |
二、常用数据源清单
| 数据源 | 用途 | 查询语言 |
|---|---|---|
| Prometheus | 指标(最常用) | PromQL |
| Loki | 日志 | LogQL |
| Tempo | 追踪 | TraceQL |
| Mimir | 指标长期存储 | PromQL |
| Pyroscope | 持续剖析 | flamegraph |
| Elasticsearch | 日志/全文检索 | Lucene/KQL |
| Jaeger | 追踪(兼容) | Jaeger UI |
| MySQL/PostgreSQL | 业务数据 | SQL |
| ClickHouse | OLAP 分析 | SQL |
| CloudWatch | AWS 监控 | CloudWatch Metrics/Logs |
| Azure Monitor | Azure 监控 | KQL |
| Google Cloud Monitoring | GCP 监控 | MQL |
| InfluxDB | 时序 DB | InfluxQL/Flux |
| Graphite | 老牌时序 | Graphite |
| Zipkin | 追踪(兼容) | Zipkin UI |
| Testdata | 模拟数据(调试) | - |
三、Variables 语法速查
promql
// Query 变量:从 Prometheus 查所有 service
label_values(http_requests_total, service)
// → [订单服务, 用户服务, 支付服务]
// Panel 引用 $service
rate(http_requests_total{service="$service"}[5m])
// Interval 变量:动态窗口
rate(http_requests_total[$__interval]) // 自动用变量值
rate(http_requests_total[$__rate_interval]) // rate 专用(避免太短)
// 全局内置变量
$__timeFilter() // 时间范围过滤(SQL 数据源)
$__from / $__to // 时间范围时间戳
$__range // 时间范围时长四、统一 Alerting 配置速查
yaml
# Alert Rule
groups:
- name: service-alerts
rules:
- uid: high-error-rate # 唯一 ID
title: "{{ $labels.service }} 错误率高"
condition: B # 引用查询 B 的条件
data:
- refId: A
relativeTimeRange: { from: 600 } # 过去 10 分钟
datasource: { type: prometheus, uid: prom-1 }
model: { expr: 'sum(rate(http_requests_total{code=~"5.."}[5m])) by (service)' }
- refId: B
model: { expr: '$A / sum(rate(http_requests_total[5m])) by (service) > 0.01' }
for: 5m
labels: { severity: critical }
annotations: { summary: "错误率 {{ $value | humanizePercentage }}" }
# Contact Point
contactPoints:
- uid: dingtalk-cp
name: 钉钉告警
type: dingding
settings: { url: 'https://oapi.dingtalk.com/robot/send?...' }
# Notification Policy
policies:
- receiver: dingtalk-cp
group_by: [alertname, service]
group_wait: 30s
routes:
- matchers: [severity="critical"]
receiver: pagerduty-cp五、Dashboard as Code(企业实践)
- Grafonnet(Jsonnet 库):用 Jsonnet 编程生成 Dashboard JSON,参数化复用。
- Terraform Provider:
grafana_dashboard资源,Dashboard 进 IaC,CI 部署 + 版本管理。 - Helm Chart(K8s):Dashboard JSON 进 ConfigMap,随 Grafana 部署自动导入。
- 版本管理:Dashboard JSON 进 Git,PR review 变更——避免手动改面板难回滚。
六、易错点清单
- 「Grafana 采集数据」:错。Grafana 只读数据源,不采集——没 Prometheus/Loki 就没数据可看,部署是组合件。
- 「Dashboard 越多越好」:错。Dashboard 多维护成本高(变量/依赖/版本),企业级需 Dashboard as Code 治理。
- 「Loki 全文检索和 ES 一样强」:错。Loki 只索引 label,内容检索要 grep 拉出的日志流——全文模糊搜索弱于 ES,但存储成本约 1/10。
- 「Tempo 不支持属性检索」:旧版对(只能 traceID),新版 Search API/TraceQL 已支持按 service/latency/status 属性查。
- 「Mimir 替代 Prometheus」:错。Mimir 是 Prometheus 的长期存储后端,Prometheus 仍负责采集——两者是 remote_write 关系。
- 「Pyroscope 是日志工具」:错。Pyroscope 是持续剖析(CPU/内存火焰图),是可观测性第四支柱,与日志(Loki)不同维度。
- 「变量和注解一样」:错。变量是下拉框(参数化查询),注解是时间轴事件标注(关联事件与指标)。
- 「Grafana 告警必须配 Alertmanager」:错。新版 Grafana Alerting 内置 Alertmanager 能力,可独立工作;也可对接外部 Alertmanager(兼容)。
- 「Exemplar 是普通指标」:错。Exemplar 是带 traceID 的采样点(高基数但瞬时),用于跳转到 Tempo trace——是「指标进追踪」的桥梁。
- 「TraceQL 和 PromQL 一样」:错。TraceQL 是 Tempo 专属(按属性查 trace),PromQL 是 Prometheus 专属(时序聚合)。
- 「企业版和开源版功能一样」:错。RBAC/SSO/Audit/Reporting 是企业版/Cloud 功能,开源版无。
- 「Loki 比 ES 好所以该全面替换」:错。要看场景——按 label 定位 + 关键词过滤选 Loki,复杂全文检索/聚合选 ES,两者常并存。