Grafana 面板概述
你是否曾想过面板是什么?在可观测性领域,这个术语经常被使用,但它究竟意味着什么?这个概念借鉴自汽车,汽车的仪表盘为驾驶员提供了操作车辆所需的控制装置。类似地,数字面板帮助我们理解和管理系统。本主题解释了 Grafana 面板的工作原理,使你能够更轻松地创建自己的面板。
下图展示了一个 Grafana 面板示例

Grafana 面板由面板组成,面板以精美的图表、图形和其他可视化方式显示数据。这些面板是使用将数据源的原始数据转换为可视化的组件创建的。这个过程包括将数据通过三个“门”:插件、查询以及可选的转换。
下图显示了所有“门”,随后详细解释了它们的目的、用法和重要性。

数据源
数据源指任何包含数据的实体。它可以是 SQL 数据库、Grafana Loki、Grafana Mimir 或基于 JSON 的 API。甚至可以是基本的 CSV 文件。创建面板可视化的第一步是选择包含所需数据的数据源。
由于不同数据源具有各自的结构并需要不同的查询方法,因此理解它们之间的区别可能很困难。然而,在面板中,你可以在一个视图中看到不同数据源的可视化数据,从而更容易全面理解你的数据。
插件
Grafana 插件是为 Grafana 添加新功能的软件。它们有多种类型,但现在我们将讨论数据源插件。Grafana 数据源插件的工作是接收你想要解答的查询,从数据源检索数据,并协调数据源数据模型与 Grafana 面板数据模型之间的差异。它通过使用一种称为数据帧的统一数据结构来完成此任务。
从数据源进入插件的数据可能采用多种不同格式(例如 JSON、行和列或 CSV),但当它离开插件并通过其余“门”到达可视化时,它始终以数据帧的形式呈现。
目前,Grafana 提供了种类繁多的 155 个数据源供你使用。最常用的选项已经预安装并可用。在探索其他选项之前,请先查找与你需求匹配的现有数据源。Grafana 会持续更新列表,但如果你找不到合适的数据源,你可以浏览插件目录或创建插件。
查询
查询允许你将全部数据精简到特定数据集,从而提供更易于管理的 可视化。它们有助于解答你关于系统和操作流程的问题。例如,一家拥有在线商店的公司可能想确定有多少客户将产品添加到他们的购物车。这可以通过一个查询来实现,该查询聚合购物车服务的访问指标,从而揭示每秒访问该服务的用户数量。
使用数据源时,务必认识到每个数据源都有其独特的查询语言。例如,Prometheus 数据源使用 PromQL,而 LogQL 用于日志,特定数据库使用 SQL。查询是 Grafana 中每个可视化的基础,并且一个面板可能使用多种查询语言。
下图显示了与 Prometheus 数据源关联的查询编辑器。node_cpu_seconds_total
查询是用 PromQL 编写的,仅请求一个指标。

转换
当可视化中的数据格式不符合你的要求时,你可以应用转换来处理查询返回的数据。初次使用时你可能不需要转换数据,但转换功能非常强大,值得一提。
在以下情况下,转换数据非常有用
- 你想将两个字段合并,例如将
名
和姓
连接成一个全名
字段。 - 你有 CSV 数据(全是文本),并且想要转换字段类型(例如从字符串中解析日期或数字)。
- 你想过滤、连接、合并或执行基础数据源或查询语言可能不支持的其他类似 SQL 的操作。
转换位于面板编辑对话框的“转换”选项卡中。选择你想要的转换,然后定义转换。下图显示你可以像查询一样拥有任意数量的转换。例如,你可以将一系列转换链接在一起,对数据类型进行更改、过滤结果、组织列,并将结果排序到单个数据管道中。每次面板刷新时,都会将转换应用于数据源中的最新数据。
下图显示了转换对话框

面板
数据经过获取、查询和转换后,传递到面板,这是 Grafana 可视化过程中的最后一道“门”。面板是一个容器,用于显示可视化并提供各种控制来操作它。面板配置是指定你希望如何查看数据的地方。例如,你使用面板右上角的下拉菜单指定你希望看到的可视化类型,如柱状图、饼图或直方图。
面板选项允许你自定义可视化的许多方面,并且选项会根据你选择的可视化类型而有所不同。面板还包含指定面板可视化数据的查询。
下图显示了正在编辑的表格面板,面板设置底部显示了查询,右侧显示了面板选项。在此图中,你可以看到数据源、插件、查询和面板是如何结合在一起的。

选择最佳可视化方式取决于数据以及你希望如何呈现它。要在一个地方查看可浏览和检查的面板示例,请参考Grafana Play,其中包含功能展示和各种示例。
结论
记住数据源、插件、查询、转换和面板的模型,你现在可以看透遇到的任何 Grafana 面板,并想象如何构建你自己的面板。
构建 Grafana 面板是一个过程,始于确定你的面板需求并识别哪些数据源支持这些需求。如果你想将专门的数据库与 Grafana 面板集成,必须确保安装了正确的插件,这样你才能添加一个与该插件一起使用的数据源。
在确定数据源并安装插件后,你可以编写查询、转换数据,并格式化可视化以满足你的需求。
这种组件架构是使 Grafana 如此强大和通用的原因之一。有了数据源插件和数据帧的抽象,你可以访问的任何数据源都可以采用相同的一般方法进行处理。