连接到 Graphite 数据源 - Amazon Managed Grafana

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

连接到 Graphite 数据源

Grafana 具有高级的 Graphite 查询编辑器,可让您快速浏览指标空间、添加函数、更改函数参数等等。编辑器可以处理所有类型的石墨查询。它甚至可以通过使用查询引用来处理复杂的嵌套查询。

石墨设置

要访问 Graphite 设置,请将鼠标悬停在配置(齿轮)图标上,然后选择 “数据源”,然后选择 Graphite 数据源。

名称 描述
Name 数据源名称。这就是您在面板和查询中查看数据源的方式。
Default 默认数据源意味着将为新面板预先选择该数据源。
URL 您的石墨网或石墨-API 安装的 HTTP 协议、IP 和端口。
Access 服务器(默认)= 必须可以从 Grafana 后端/服务器访问网址。
Auth
Basic Auth 启用对数据源的基本身份验证。
User 基本身份验证的用户名。
Password 用于基本身份验证的密码。
Custom HTTP Headers 选择添加标头以添加自定义 HTTP 标头。
Header 输入自定义标题名称。
Value 输入自定义标题值。
Graphite details
Version 选择您的 Graphite 版本。
Type 选择您的石墨类型。

访问模式控制如何处理对数据源的请求。如果没有其他说明,服务器应该是首选方式。

服务器访问模式(默认)

所有请求均通过浏览器向 Amazon Managed Grafana 提出,后者绕过可能的跨源资源共享 (CORS) 要求,将请求转发到数据源。如果您选择此访问模式,则必须可以从亚马逊托管 Grafana 访问该网址。

浏览器访问模式

Amazon Managed Grafana 不支持浏览器直接访问 Graphite 数据源。

石墨查询编辑器

Grafana 包含一个特定于 Graphite 的查询编辑器,可帮助您构建查询。

要查看发送到 Graphite 的查询的原始文本,请选择切换文本编辑模式(铅笔)图标。

选择要查询的指标

选择选择衡量指标以在指标空间中导航。开始后,您可以继续使用指针或键盘箭头键。您可以选择通配符并继续操作。

函数

要添加函数,请选择函数旁边的加号图标。您可以搜索该功能或从菜单中选择它。选择一个函数后,该函数将被添加,您的焦点将位于第一个参数的文本框中。要编辑或更改参数,请选择该参数,它将变成一个文本框。-要删除函数,请选择函数名称,然后选择 x 图标。

某些函数(例如)aliasByNode支持可选的第二个参数。要添加参数,请将鼠标悬停在第一个参数上,然后选择出现的+符号。要删除第二个可选参数,请选择该参数并将其保留为空白。编辑器会将其删除。

对标签进行排序

如果您想要一致的排序,请使用sortByName。当您在多个图表上使用相同的标签,并且它们的排序方式不同且使用不同的颜色时,这可能会很烦人。要修复此问题,请使用sortByName()

嵌套查询

你可以通过查询所在的行字母来引用查询(类似于 Microsoft Excel)。如果向图表中添加第二个查询,则可以通过键入 #A 来引用第一个查询。这为构建复合查询提供了一种便捷的方法。

使用通配符避免大量查询

有时,您可能希望看到在同一张图表上绘制的多个时间序列。例如,您可能想查看计算机上的 CPU 使用情况。首先,您可以通过为每个时间序列添加查询来创建图表cpu.percent.user.g,例如cpu.percent.system.g、等。这会导致对数据源进行 n 次查询,效率低下。

为了提高效率,可以在搜索中使用通配符,在一个查询中返回所有时间序列。例如,cpu.percent.*.g

修改表格或图表中的指标名称

使用alias函数更改 Grafana 表或图表上的指标名称;例如,或。aliasByNode() aliasSub()

积分整合

所有 Graphite 指标都经过整合,因此 Graphite 返回的数据点不会超过图表中的像素数。默认情况下,此合并是使用avg函数完成的。你可以通过添加 Graphite consolidateBy 函数来控制 Graphite 如何整合指标。

注意

这意味着图例汇总值(最大值、最小值、总计)不能同时全部正确。它们由 Grafana 在客户端计算得出。而且,根据您的合并功能,同时只能有一两个是正确的。

合并时间序列

要合并时间序列,请在函数列表中选择合并

数据探索和标签

在 Graphite 中,所有东西都是一个标签。

浏览数据时,先前选择的标签用于筛选剩余的结果集。要选择数据,您可以使用seriesByTag函数,该函数使用标签表达式 (=!==~!=~) 来筛选时间序列。

当您选择标签时,Grafana 查询生成器会自动为您执行此操作。

注意

提示:对于高基数标签,正则表达式搜索可能会很慢,因此请先尝试使用其他标签来缩小范围。从特定的名称或命名空间开始有助于减少结果。

模板变量

无需在指标查询中对服务器、应用程序和传感器名称等内容进行硬编码,而是可以使用变量来代替它们。变量显示为仪表板顶部的下拉选择框。您可以使用这些下拉框来更改控制面板中显示的数据。

有关模板和模板变量的更多信息,请参阅模板和变量

要使用标签值创建变量,请使用 Graf tags ana 函数和。tag_values

查询 描述
tags() 返回所有标签。
tags(server=~backend\*) 仅返回与筛选表达式匹配的序列出现的标签。
tag_values(server) 返回指定标签的标签值。
tag_values(server, server=~backend\*) 返回与这些表达式相匹配的系列中指定标签的筛选标签值。
tag_values(server, server=~backend\*, app=~${apps:regex}) 多个过滤器表达式和表达式可以包含其他变量。

有关更多详细信息,请参阅有关标签自动完成 API 的 Graphite 文档。

查询变量

您在查询字段中指定的查询应为指标查找类型的查询。例如,诸如之类的查询prod.servers.*将使用通配符位置中存在的所有可能值填充变量。

您也可以创建嵌套变量,在定义中使用其他变量。例如,在其查询定义$appapps.$app.servers.*使用该变量。

__searchFilter用于筛选查询变量结果

__searchFilter在查询字段中使用将根据您在下拉选择框中输入的内容筛选查询结果。如果不输入任何内容,则用作正__searchFilter*表达式的一部分时,默认值为 ``。

以下示例说明了当用户在下拉选择框中输入文本server时,如何将其__searchFilter用作查询字段的一部分,以启用搜索功能。

查询

apps.$app.servers.$__searchFilter

TagValues

tag_values(server, server=~${__searchFilter:regex})

变量用法

您可以在度量节点路径中使用变量,也可以将其用作函数的参数。

有两种语法:

  • $<varname>示例:apps.frontend。 $server.requests.

  • ${varname}示例:apps.frontend。 $ {server} .requests.count

为什么是两种方式? 第一种语法更易于阅读和编写,但不允许在单词中间使用变量。在表达式中使用第二种语法,例如my.server${serverNumber}.count

标签查询中的变量用法

标签查询中的多值变量使用 Grafana 5.0 中为变量引入的高级格式化语法:。{var:regex}非标签查询将对多值变量使用默认的 glob 格式。

以下代码示例显示了采用正则表达式格式并使用 Equal Tilde 运算符的标签表达式。=~

server=~${servers:regex}

有关更多信息,请参阅 高级变量格式选项

注释

通过注解,您可以将丰富的事件信息叠加在图表之上。您可以通过仪表板菜单/注释视图添加注释查询。有关更多信息,请参阅 注释

Graphite 支持两种查询注释的方法:

  • 常规指标查询。为此,您可以使用 Graphite 查询文本框。

  • 石墨事件查询。为此,您可以使用Graphite event tags文本框并指定标签或通配符(将其保留为空也应该有效)。