Skip to content

参考: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自定义图形(拓扑/流程)任意
NewsRSS 信息流RSS

二、常用数据源清单

数据源用途查询语言
Prometheus指标(最常用)PromQL
Loki日志LogQL
Tempo追踪TraceQL
Mimir指标长期存储PromQL
Pyroscope持续剖析flamegraph
Elasticsearch日志/全文检索Lucene/KQL
Jaeger追踪(兼容)Jaeger UI
MySQL/PostgreSQL业务数据SQL
ClickHouseOLAP 分析SQL
CloudWatchAWS 监控CloudWatch Metrics/Logs
Azure MonitorAzure 监控KQL
Google Cloud MonitoringGCP 监控MQL
InfluxDB时序 DBInfluxQL/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 Providergrafana_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,两者常并存。

权威链接