系列文章

  • Grafana 系列文章

Grafana 简介

Grafana 是 Grafana Labs 的第一款也是最重要的产品。它的定位是可视化, 用于监控展示 和 可观察性. 是当前最为完善、流行的云原生、公有云和企业监控可视化平台。

Dashboard anything. Observe everything

无论你的数据存储在哪里,都可以对其进行查询、可视化、预警和理解。有了 Grafana,你可以通过漂亮、灵活的仪表盘创建、探索和分享你的所有数据。

grafana 表格 不显示 grafana展示表格_数据

Grafana 的巨大优势

📈统一数据,而非数据库

Grafana 并不要求你将数据输入到后端存储或供应商数据库。相反,Grafana 采取了一种独特的方法,通过统一你现有的数据,不管它在哪里,来提供一个 "单一的玻璃窗"。

有了 Grafana,你可以利用你的任何现有数据--无论是来自 Kubernetes 集群、树莓派、不同的云服务,甚至是谷歌表格--并以你想要的方式将其可视化,所有这些都来自一个单一的仪表盘。

👥共享 协作

Grafana 建立在这样一个原则上:数据应该被你组织中的每一个人访问,而不仅仅是单一的运营人员。

通过数据的民主化,Grafana 有助于促进一种文化,在这种文化中,数据可以很容易地被需要它的人使用和访问,帮助打破数据孤岛并赋予团队权力。

Grafana 仪表盘不仅为从众多来源收集的数据赋予了深刻的意义,而且你还可以与其他团队成员分享你创建的仪表盘,让你们一起探索数据。

有了 Grafana,任何人都可以创建和分享动态仪表盘,以促进协作和透明度。

丰富的仪表板生态

通过 Grafana,既可以展示:

运维人员的仪表板, 如 Kubernetes Dashboard:

grafana 表格 不显示 grafana展示表格_数据_02

也可以展示开发团队的 Sprints:

grafana 表格 不显示 grafana展示表格_grafana 表格 不显示_03

还可以展示财务人员的 Revenue:

grafana 表格 不显示 grafana展示表格_数据源_04

另外,Grafana 还提供了 Dashboards 的 registry, 提供成千上万、丰富多彩的仪表板。

数据关联

Grafana 可以了解所有相关的数据--以及它们之间的关系--对于尽快根治事件和确定意外系统行为的真正来源非常重要。Grafana 允许团队在一个地方对所有的数据进行无缝的可视化和跳转。

最典型的就是 Grafana Labs 的 LGTM 技术栈,包括:

  • Loki(Logging)
  • Grafana(可视化)
  • Tempo(Tracing)
  • Mimir(Metrics)

LGTM

通过如下的技术细节,可以实现 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 表格 不显示 grafana展示表格_grafana 表格 不显示_05

即使没有采用 Grafana Labs 的解决方案,也仍然能实现一定程度的无缝跳转。

如:

  • Metric 使用 Prometheus
  • Logging 使用 EFK
  • Tracing 使用 Jaeger

如果日志中也包括 trace_id, Name 至少可以通过 trace_id, 实现 Logs -> Traces 的无缝跳转。

丰富的面板

丰富的面板、丰富的配置、多彩的配色。..

  • 时序面板
  • 折线图
  • 面积图
  • 散点图
  • ...
  • 表格
  • 状态时间线(如下图)
  • 统计数据 (stat)
  • 仪表盘 (Gauge)
  • 柱状图和饼状图
  • 地理地图
  • 热力图
  • 日志图
  • 甘特图
  • 链路图
  • ...

grafana 表格 不显示 grafana展示表格_数据_06

丰富的插件和数据源

用 Grafana 插件连接你的工具和你的团队。数据源插件通过 API 连接到现有的数据源,并实时呈现数据,而不需要你迁移或摄取你的数据。如:

  • Zabbix 插件和数据源
  • Cloudflare 插件
  • Json 数据源
  • Mysql 数据源
  • ES 数据源
  • Jaeger 数据源
  • Github 数据源
  • Zipkin 数据源
  • Prometheus 数据源
  • ...
告警

有了 Grafana 告警功能,你可以在一个简单的用户界面中创建、管理和屏蔽所有的警报,使你能够轻松地整合和集中所有的警报。

grafana 表格 不显示 grafana展示表格_云原生_07

Transformations (转化)

Transformations 功能非常强大,是定制专业、美观的仪表板的必备功能。

转化允许你在不同的查询和数据源之间重命名、汇总、合并和执行计算。

grafana 表格 不显示 grafana展示表格_数据_08

Annotations(注释)

用来自不同数据源的丰富的事件对图表进行注释。悬停在事件上会显示完整的事件元数据和标签。

grafana 表格 不显示 grafana展示表格_grafana 表格 不显示_09

Panel 编辑器

面板编辑器使配置、定制和探索所有面板变得容易,在所有可视化中设置数据选项的用户界面是一致的。

Template Variables(模板变量)

用模板变量创建动态和可重复使用的仪表盘,模板变量以下拉方式出现在仪表盘的顶部。

grafana 表格 不显示 grafana展示表格_数据源_10

混合数据源

在同一个图形中混合不同的数据源!你可以在每个查询的基础上指定一个数据源。如在一个仪表板中同时展示 Metric 和 Logs 的数据。

下一步

下一步,我们将通过一系列文章,完整地展示通过 Grafana 统一展示的全部细节,具体为:

  1. 数据源:
  1. AWS CloudWatch
  2. Prometheus
  3. Prometheus AlertManager
  4. Zabbix(通过插件)
  5. ElasticSearch
  6. Jaeger
  1. 仪表板:
  1. AWS EC2 (基于 CloudWatch)
  2. Prometheus Pod(基于 Prometheus)
  3. Linux Server (基于 Zabbix)
  4. App Log Quick Search(基于 ES)
  1. Explore:
  1. Jaeger
  1. Alerting
  2. 无缝可视化和跳转:
  1. 从 Logs(ES) 跳转到 Traces(Jaeger)