;面板和可视化;查询和转换数据

查询和转换数据

数据源查询返回的数据可以通过转换进行转换,然后通过不同类型的可视化进行可视化。查询语言和查询构建器UI取决于数据源类型。Grafana支持许多不同类型的数据源。

关于查询

查询是Grafana面板如何与数据源通信以获取可视化数据。查询是用数据源使用的查询语言编写的问题。查询发送到数据源的频率以及收集多少个数据点可以在面板数据源选项中进行调整。

使用您的查询编辑器来编写查询。每个数据源都有自己的查询编辑器,我们对其进行了定制,以包括数据源的特性和功能。Grafana支持每个面板最多26个查询。

重要!您必须熟悉数据源的查询语言。有关数据源的更多信息,请参见数据源

查询编辑器

根据数据源的不同,查询编辑器可能会提供自动补全、指标名称或变量建议。

由于查询语言之间的差异,数据源的查询编辑器看起来也不同。下面是查询编辑器的两个示例。

InfluxDB查询编辑器

Prometheus (PromQL)查询编辑器

查询语法

数据源使用不同的查询语言返回数据。下面是两个查询示例:

PostgreSQL

SELECT hostname FROM host WHERE region IN($region)

PromQL

query_result (max_over_time(<标准> [$ {__range_s}年代])! = < >状态)

查询中使用的数据源

除了您在Grafana中配置的数据源之外,还有三个特殊的数据源可用:

  • Grafana -生成随机行走数据的内置数据源,可用于测试可视化和运行实验。
  • 混合,选择此选项可在同一面板中查询多个数据源。当您选择这个数据源时,Grafana允许您为添加的每个新查询选择一个数据源。
    • 第一个查询使用在您选择之前所选择的数据源混合
    • 不能更改现有查询以使用混合数据源。
  • 指示板,选择此选项可使用同一仪表板中的另一个面板中的结果集。

您可以将来自多个数据源的数据组合到单个仪表板上,但是每个面板都绑定到属于特定组织的特定数据源。

Query选项卡由以下元素组成:

  • 数据源选择器:使用数据源选择器选择要查询的数据源。有关数据源的更多信息,请参见数据源
  • 查询选项:使您能够设置最大数据检索参数和查询执行时间间隔。
  • 查询检查器按钮:打开查询检查器面板,您可以在其中查看和优化查询。
  • 查询编辑器列表:列出您编写的查询。
  • 表达式:使用表达式构建器创建警报表达式。有关表达式的更多信息,请参见使用表达式来操作数据

添加查询

查询返回Grafana在仪表板中可视化的数据。当您创建一个面板时,Grafana会自动选择默认数据源。

要添加查询

  1. 编辑要向其添加查询的面板。
  2. 单击查询选项卡。
  3. 单击数据源下拉菜单并选择数据源。
  4. 点击查询选项配置所需的最大数据点数。有关查询选项的详细信息,请参见查询选项
  5. 使用查询编辑器编写查询。
  6. 点击应用

系统查询数据源并在可视化中显示数据。

管理查询

查询以可折叠的查询行组织。每个查询行包含一个查询编辑器,并用字母(a、B、C等)标识。

您可以:

图标 描述
切换查询编辑器帮助。如果数据源支持,请单击此图标以显示关于如何使用查询编辑器或提供对常见查询的快速访问的信息。
复制查询。重复查询在处理多个相似的复杂查询时非常有用,并且您希望尝试不同的变体或做一些小更改。
隐藏查询。Grafana不会向数据源发送隐藏的查询。
删除查询。删除查询将永久删除它,但有时可以通过恢复到以前保存的面板版本来恢复已删除的查询。
重新排序的查询。通过单击并按住拖动图标来更改查询的顺序,然后将查询拖动到所需的位置。结果的顺序反映了查询的顺序,因此您经常可以根据查询顺序调整可视化结果。

查询选项

点击查询选项在数据源选择器旁边查看所选数据源的设置。此处所做的更改仅影响在此面板中进行的查询。

Grafana设置的默认值以深灰色文本显示。更改以白色文本显示。若要将字段返回为默认设置,请从字段中删除白色文本。

面板数据源查询选项:

  • 最大数据点-如果数据源支持它,则为返回的每个系列设置最大数据点数。如果查询返回的数据点多于最大数据点设置,则数据源将它们合并(通过使用average、max或其他函数将它们聚合在一起来减少返回的点数)。

    限制点数的数量主要有两个原因:性能和平滑线。默认值是图形的宽度(或像素数),因为没有必要拥有超过图形面板所能显示的数据点。

    对于流数据,滚动缓冲区使用最大数据点值。(流是一种连续的数据流,缓冲是一种将流划分为块的方法)。洛基以实时跟踪模式传输数据。

  • 最小间隔-为自动计算的间隔设置最小限制,通常是最小刮擦间隔。如果每15秒保存一个数据点,那么没有必要让间隔更低。另一个用例是将其设置为比刮取间隔更高的最小值,以获得更粗粒度、功能良好的查询。

  • 间隔,间隔是在按时间聚合或分组数据点时可以使用的时间跨度。

    Grafana自动计算一个适当的间隔,它可以作为模板查询中的变量使用。变量的单位是秒:__interval美元或者以毫秒为单位:__interval_ms美元.它通常用于聚合函数,如sum或average。例如,使用interval变量的Prometheus查询:率(http_requests_total [$ __interval])

    这个自动间隔是根据图形的宽度计算的。如果用户放大很多,那么间隔就会变大,导致更粗粒度的聚合,而如果用户放大,那么间隔就会减小,导致更细粒度的聚合。

    有关更多信息,请参阅全局变量

  • 相对时间-您可以覆盖各个面板的相对时间范围,使它们不同于在仪表板右上角的仪表板时间选择器中选择的内容。这允许您在同一个仪表板上显示来自不同时间段或天数的指标。

  • 时间偏移——时移函数是覆盖单个面板的时间范围的另一种方法。它只适用于相对时间范围,并允许您调整时间范围。

    例如,您可以将面板的时间范围更改为比仪表板时间选择器早两个小时。有关更多信息,请参阅时间范围控制

  • 缓存超时-(此字段仅在数据源中可用时才可见。)如果时间序列存储具有查询缓存,则此选项可以覆盖默认缓存超时。指定为以秒为单位的数值。

例子

  • 相对时间:
例子 相对时间场
最后5分钟 now-5m
到目前为止的一天 现在/ d
最近5天 now-5d / d
这周到目前为止 现在/ w
过去2年 now-2y / y
  • 时移:
例子 时移场
最后一周 1 w / w
整整两个星期前 2 w / w
过去整整一个月 1 M / M
这一整年 1 d / y
过去一整年 1 y / y

面板时间覆盖和时间转移

查询选项,您可以覆盖各个面板的相对时间范围,这将导致它们与位于右上方的仪表板时间选择器中所选择的不同。这使您能够同时显示来自不同时间段或日期的指标。

注意:当仪表板的时间范围是绝对时,面板时间覆盖将不起作用。