本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用亚马逊 OpenSearch 服务数据源
指标查询编辑器
OpenSearch 查询编辑器允许您选择多个指标并按多个术语或筛选条件进行分组。使用右边的加号和减号图标添加/删除指标或按子句分组。一些指标和分组依据子句有选项。选择选项文本以展开\ 行以查看和编辑指标或按选项分组。
使用管道处理语言 (PPL)
Amazon S OpenSearch ervice 数据源支持管道处理语言 (PPL),该语言支持更简单但强大的查询和可视化功能。 OpenSearchPPL 使客户无需撰写冗长的 OpenSearch 域特定语言 (DSL) 语句或使用 JSON 对象编写查询即可浏览和查找数据。使用 PPL,您可以将查询写成一组由管道分隔的命令,类似于 UNIX 管道。
以下面的示例 DSL 查询为例:
GET opensearch_sample_data_logs/_search{"from":0,"size":0,"timeout":"1m","query":{"bool":{"should":[{"term":{"response.keyword":{"value":"404","boost":1}}},{"term":{"response.keyword":{"value":"503","boost":1}}}],"adjust_pure_negative":true,"boost":1}},"sort":[{"_doc":{"order":"asc"}}],"aggregations":{"composite_buckets":{"composite":{"size":1000,"sources":[{"host":{"terms":{"field":"host.keyword","missing_bucket":true,"order":"asc"}}},{"response":{"terms":{"field":"response.keyword","missing_bucket":true,"order":"asc"}}}]},"aggregations":{"request_count":{"value_count":{"field":"request.keyword"}},"sales_bucket_sort":{"bucket_sort":{"sort":[{"request_count":{"order":"desc"}}],"size":10}}}}}}>
前面的 DSL 查询可以替换为以下 PPL 命令,该命令简洁易懂。
source = opensearch_sample_data_logs | where response='404' or response='503' | stats count(request) as request_count by host, response | sort –request_count
有关 PPL 的更多信息,请参阅使用管道处理语言查询 Amazon OpenSearch 服务数据。
系列命名和别名模式
您可以使用Alias
输入字段控制时间序列的名称。
模式 | 描述 |
---|---|
{{term fieldname}}
|
替换为 “分组依据” 一词的值。 |
{{metric}}
|
替换为指标名称(例如 平均值、最小值、最大值)。 |
{{field}}
|
替换为指标字段名称。 |
管道指标
一些指标聚合称为管道聚合;例如,移动平均线和衍生物。 OpenSearch 管道指标需要另一个指标作为依据。使用指标旁边的眼睛图标可隐藏指标不显示在图表中。这对于查询中仅包含的用于管道指标的指标很有用。
模板化
无需在指标查询中对服务器、应用程序和传感器名称等内容进行硬编码,而可以使用变量代替它们。变量显示为仪表板顶部的下拉选择框。您可以使用这些下拉框来更改控制面板中显示的数据。
有关模板和模板变量的更多信息,请参阅模板和变量。
查询变量
OpenSearch 服务数据源支持两种类型的查询,您可以在查询变量的查询字段中使用。该查询是使用自定义 JSON 字符串编写的。
查询 | 描述 |
---|---|
{"find": "fields",
"type": "keyword"}
|
返回索引类型为的字段名称列表keyword 。 |
{"find": "terms",
"field": "@hostname",
"size": 1000}
|
使用术语聚合返回字段的值列表。Query 将使用当前仪表板的时间范围作为查询的时间范围。 |
{"find": "terms",
"field": "@hostname",
"query": '<lucene query>'}
|
使用术语聚合和指定的 Lucene 查询过滤器返回字段的值列表。Query 将使用当前仪表板的时间范围作为查询的时间范围。 |
术语查询的默认大小限制为 500。要设置自定义限制,请在查询中设置大小属性。你可以在查询中使用其他变量。以下代码示例显示了名为的变量的查询定义$host
。
{"find": "terms", "field": "@hostname", "query": "@source:$source"}
在前面的示例中,我们在查询定义中使用了另一个名为$source
的变量。每当你使用下拉列表更改$source
变量的当前值时,它都会启动$host
变量的更新。更新后,该$host
变量仅包含由 d @source
ocument 属性筛选的主机名。
默认情况下,这些查询按术语顺序返回结果(然后可以像任何变量一样按字母顺序或数字排序)。要生成按文档计数排序的术语列表(前 N 个值列表),请添加一个orderBy
属性。doc_count
这将自动选择降序排序。asc
与 doc_count(底部 N 个列表)一起使用可以通过设置来完成order:
"asc"
,但不鼓励这样做,因为它会增加文档计数的错误。要使术语按文档计数顺序排列,请将变量的 “排序” 下拉列表设置为 “已禁用”。或者,您可能仍然想使用字母顺序对它们进行重新排序。
{"find": "terms", "field": "@hostname", "orderBy": "doc_count"}
在查询中使用变量
有两种语法:
-
$<varname>
示例:@hostname:$hostname -
[[varname]]
示例:@hostname:[[主机名]]
为什么是两种方式? 第一种语法更易于阅读和编写,但它不允许在单词中间使用变量。启用 “多值” 或 “包括所有值” 选项后,Grafana 会将标签从纯文本转换为兼容 Lucene 的条件。
在前面的示例中,我们有一个 lucene 查询,它使用名为的变量根据@hostname
属性筛选文档。$hostname
它还在按字段分组的术语输入框中使用一个变量。这允许您使用变量来快速更改数据的分组方式。
注释
标注允许您将丰富的事件信息叠加在图表之上。您可以使用 “控制板” 菜单或 “批注” 视图添加注释查询。Grafana 可以查询 OpenSearch 任何索引中的注解事件。有关更多信息,请参阅 注释。
名称 | 描述 |
---|---|
Query
|
您可以将搜索查询保留为空白或指定 Lucene 查询。 |
Time
|
时间字段的名称;必须是日期字段。 |
Time End
|
时间结束字段的可选名称必须是日期字段。如果设置,则注释将被标记为介于时间和时间结束之间的区域。 |
Text
|
“事件描述” 字段。 |
Tags
|
用于事件标签的可选字段名称(可以是数组或 CSV 字符串)。 |
查询 日志
在 “浏览” 中可以查询和显示来自 OpenSearch 的日志数据。要显示您的日志,请选择 OpenSearch 服务数据源,然后根据需要输入 Lucene 查询。有关更多信息,请参阅 探索。
记录查询
返回结果后,日志面板将显示日志行列表和条形图,其中 x 轴显示时间,y 轴显示频率或计数。
筛选日志消息
或者,在查询字段中输入 Lucene 查询以筛选日志消息。例如,使用默认 Filebeat 设置,您应该fields.level:error
能够使用仅显示错误日志消息。