系列文章
Grafana 简介
Grafana 是 Grafana Labs 的第一款也是最重要的产品。它的定位是可视化, 用于监控展示 和 可观察性. 是当前最为完善、流行的云原生、公有云和企业监控可视化平台。
Dashboard anything. Observe everything
无论你的数据存储在哪里,都可以对其进行查询、可视化、预警和理解。有了 Grafana,你可以通过漂亮、灵活的仪表盘创建、探索和分享你的所有数据。
Grafana 的巨大优势
📈统一数据,而非数据库
Grafana 并不要求你将数据输入到后端存储或供应商数据库。相反,Grafana 采取了一种独特的方法,通过统一你现有的数据,不管它在哪里,来提供一个 “单一的玻璃窗”。
有了 Grafana,你可以利用你的任何现有数据–无论是来自 Kubernetes 集群、树莓派、不同的云服务,甚至是谷歌表格–并以你想要的方式将其可视化,所有这些都来自一个单一的仪表盘。
👥共享 协作
Grafana 建立在这样一个原则上:数据应该被你组织中的每一个人访问,而不仅仅是单一的运营人员。
通过数据的民主化,Grafana 有助于促进一种文化,在这种文化中,数据可以很容易地被需要它的人使用和访问,帮助打破数据孤岛并赋予团队权力。
Grafana 仪表盘不仅为从众多来源收集的数据赋予了深刻的意义,而且你还可以与其他团队成员分享你创建的仪表盘,让你们一起探索数据。
有了 Grafana,任何人都可以创建和分享动态仪表盘,以促进协作和透明度。
丰富的仪表板生态
通过 Grafana,既可以展示:
运维人员的仪表板, 如 Kubernetes Dashboard:
也可以展示开发团队的 Sprints:
还可以展示财务人员的 Revenue:
另外,Grafana 还提供了 Dashboards 的 registry, 提供成千上万、丰富多彩的仪表板。
数据关联
Grafana 可以了解所有相关的数据–以及它们之间的关系–对于尽快根治事件和确定意外系统行为的真正来源非常重要。Grafana 允许团队在一个地方对所有的数据进行无缝的可视化和跳转。
最典型的就是 Grafana Labs 的 LGTM 技术栈,包括:
- Loki(Logging)
- Grafana(可视化)
- Tempo(Tracing)
- Mimir(Metrics)
通过如下的技术细节,可以实现 Logging、Tracing、Metrics 的无缝可视化和跳转:
- Metrics -> Logs: 基于服务发现和统一 labels
- Logs -> Metrics: 基于 LogQL 提取 Metric 指标
- Logs -> Traces: 基于衍生字段 (fields) 或自动化的日志
- Traces -> Logs: 基于 labels
- Traces -> Metrics: 基于来自 spans 的 Metric 指标
- Metrics -> Traces: 基于 Prometheus 的 Exemplars.
具体如下图:
即使没有采用 Grafana Labs 的解决方案,也仍然能实现一定程度的无缝跳转。
如:
- Metric 使用 Prometheus
- Logging 使用 EFK
- Tracing 使用 Jaeger
如果日志中也包括 trace_id
, Name 至少可以通过 trace_id
, 实现 Logs -> Traces 的无缝跳转。
丰富的面板
丰富的面板、丰富的配置、多彩的配色。…
- 时序面板
- 折线图
- 面积图
- 散点图
- …
- 表格
- 状态时间线(如下图)
- 统计数据 (stat)
- 仪表盘 (Gauge)
- 柱状图和饼状图
- 地理地图
- 热力图
- 日志图
- 甘特图
- 链路图
- …
丰富的插件和数据源
用 Grafana 插件连接你的工具和你的团队。数据源插件通过 API 连接到现有的数据源,并实时呈现数据,而不需要你迁移或摄取你的数据。如:
- Zabbix 插件和数据源
- Cloudflare 插件
- Json 数据源
- Mysql 数据源
- ES 数据源
- Jaeger 数据源
- Github 数据源
- Zipkin 数据源
- Prometheus 数据源
- …
告警
有了 Grafana 告警功能,你可以在一个简单的用户界面中创建、管理和屏蔽所有的警报,使你能够轻松地整合和集中所有的警报。
Transformations (转化)
Transformations 功能非常强大,是定制专业、美观的仪表板的必备功能。
转化允许你在不同的查询和数据源之间重命名、汇总、合并和执行计算。
Annotations(注释)
用来自不同数据源的丰富的事件对图表进行注释。悬停在事件上会显示完整的事件元数据和标签。
Panel 编辑器
面板编辑器使配置、定制和探索所有面板变得容易,在所有可视化中设置数据选项的用户界面是一致的。
Template Variables(模板变量)
用模板变量创建动态和可重复使用的仪表盘,模板变量以下拉方式出现在仪表盘的顶部。
混合数据源
在同一个图形中混合不同的数据源!你可以在每个查询的基础上指定一个数据源。如在一个仪表板中同时展示 Metric 和 Logs 的数据。
下一步
下一步,我们将通过一系列文章,完整地展示通过 Grafana 统一展示的全部细节,具体为:
- 数据源:
- AWS CloudWatch
- Prometheus
- Prometheus AlertManager
- Zabbix(通过插件)
- ElasticSearch
- Jaeger
- 仪表板:
- AWS EC2 (基于 CloudWatch)
- Prometheus Pod(基于 Prometheus)
- Linux Server (基于 Zabbix)
- App Log Quick Search(基于 ES)
- Explore:
- Jaeger
- Alerting
- 无缝可视化和跳转:
- 从 Logs(ES) 跳转到 Traces(Jaeger)
敬请期待~
三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.