Grafana 是开源的查询、可视化与告警平台,可以连接 Prometheus、Loki、Tempo、数据库等数据源,把已有数据组织成 Explore 查询和可共享的 Dashboard。它适合已经有观测或业务数据、希望统一查看与讨论的团队;采集和长期存储仍由数据源或相关后端承担。

一张看板,最好回答一个明确问题
假设团队要观察一次发布是否正常,可以在同一时间范围查看请求量、延迟、错误率,再按环境或服务切换对象。这里的重点是几个面板共同回答“这次发布有没有异常”,而不是把所有能取得的数字放在首页。
Grafana 的模板变量可以让一份布局复用于不同环境、主机或服务。混合数据源也允许面板中的不同查询来自不同后端;不过字段名称、时间和单位要能对上,才能比较。毫秒和秒混在同一图里,图表正常渲染也可能给人错误印象。

临时调查与长期观察,用两种入口
Explore:先验证查询
Explore 适合临时改变时间范围、筛选条件和查询,并排比较不同结果。出现“没有数据”时,可以先看数据源地址、认证、标签和时间,而不是立刻修改面板布局。数据源连接测试通过,只说明连接条件满足,不表示该范围里一定有数据。
Dashboard:把有效查询交给团队
已经能回答问题的查询,再保存为面板,设置单位、展示形式、变量和刷新间隔。需要分享时,核对查看范围和分享方式;不同角色查看同一图表时,仍需按各自权限安排数据访问。
- 连接一个确实已有数据的后端,按其要求配置端点和最小读取权限。
- 在 Explore 取得预期结果,确认时间、标签和单位。
- 把查询放进面板,再增加真正需要的变量或转换。
- 把相关面板组成 Dashboard,说明观察对象和刷新节奏。
- 需要异常响应时,再安排告警规则与通知责任。
Dashboard 可以先保留少量用途明确的查询。用户、面板刷新和查询频率增加以后,后端与 Grafana 服务都可能承担更多负载;“能画图”与“长期查询成本可接受”是不同判断。
告警要说明谁收到、什么时候收到
Grafana Alerting 会评估查询与表达式,再通过联系点和通知策略发送消息。阈值只是其中一个条件,持续时间、评估间隔、维度标签、分组和静默也会影响结果。暂时没有数据,不能默认等同于业务已经故障。
- 规则:写清什么异常值得响应,以及要持续多久;区分业务异常、无数据和查询错误。
- 通知:确定联系点、标签路由与责任人,避免所有服务都发到同一处却没人负责。
- 维护:部署和检修期间安排静默或维护处理,再观察通知是否恢复;规则存在不代表通知链路可用。
Docker 保存的是 Grafana 配置,观测数据另有位置
对应开源版的镜像是 grafana/grafana。官方文档说明 grafana/grafana-oss 从 12.4.0 起不再更新,应使用新的镜像入口。以下命令用于本地评估,把端口绑定回环地址,并创建持久化卷:
docker volume create grafana-storage
docker run -d --name grafana -p 127.0.0.1:3000:3000 \
--volume grafana-storage:/var/lib/grafana \
grafana/grafana
打开 http://localhost:3000 完成首次登录与管理员密码设置,再添加数据源。默认 SQLite 保存用户、Dashboard 和平台配置;没有持久化卷时,删除容器会丢掉容器文件系统里的这些状态。
Grafana 配置备份与 Prometheus、Loki、Tempo 等后端备份不能互相替代。正式部署还应固定镜像与插件版本,准备 HTTPS、访问控制、恢复和升级方案。多实例需要按官方文档选择共享配置数据库及相关部署条件,复制多个单机容器不等于完整高可用。
用文件管理配置时,谁是最终来源
Provisioning 可以用文件创建数据源与 Dashboard,便于重建环境。数据源配置放在 provisioning/datasources,以下是 Prometheus 的结构示例;prometheus 主机名需换成部署环境中 Grafana 实际能访问的地址:
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
access: proxy
url: http://prometheus:9090
isDefault: true
editable: false
环境变量可以注入配置值,不能替代配置键或整段结构。多实例的数据源文件可维护版本号,避免旧配置在重启时覆盖新状态。需要 prune: true 自动清理时,先确认从文件移除对象就意味着要删除它;删除整份文件也可能触发清理。
Dashboard 的页面修改不会自动回写 Provisioning 源文件。即使允许在 UI 保存,之后源文件更新仍会覆盖数据库里的对应看板。团队要先约定文件与页面编辑的关系,避免一次临时调整在重建时消失。
二次开发可从 public/、packages/ 的前端与 pkg/ 的服务端分开查找,具体构建条件见贡献文档。仓库默认许可为 AGPL-3.0-only,部分路径有 Apache-2.0 等例外;使用或分发组件时按 LICENSING.md 的路径判断,不能把例外扩大成整个仓库的许可。
- 项目仓库:
https://github.com/grafana/grafana - Docker 安装与持久化:
https://grafana.com/docs/grafana/latest/setup-grafana/installation/docker/ - Provisioning 配置:
https://grafana.com/docs/grafana/latest/administration/provisioning/ - 告警文档:
https://grafana.com/docs/grafana/latest/alerting/ - 源码许可范围:
https://github.com/grafana/grafana/blob/main/LICENSING.md














暂无评论内容