

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

# 使用亚马逊 OpenSearch 服务数据源
<a name="ES-use-datasource"></a>

## 指标查询编辑器
<a name="ES-metric-query-editor"></a>

 OpenSearch 查询编辑器允许您选择多个指标并按多个术语或筛选条件进行分组。使用右侧的加号和减号图标 add/remove 查看指标或按子句分组。一些指标和 group by 子句具有选项。选择选项文本展开行，以查看和编辑指标或分组依据选项。

## 使用管道处理语言（PPL）
<a name="ES-PPL"></a>

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 服务数据](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/ppl-support.html)。

## 序列命名和别名模式
<a name="ES-series-naming-and-alias-patterns"></a>

 您可以使用 `Alias` 输入字段控制时间序列的名称。


|  模式  |  说明  | 
| --- | --- | 
|  {{term fieldname}}  |  替换为术语 Group By 的值。 | 
|  {{metric}}  |  替换为指标名称（例如 Average、Min、Max）。 | 
|  {{field}}  |  替换为指标字段名称。 | 

## 管道指标
<a name="ES-pipeline-metrics"></a>

*一些指标聚合称为管道聚合；例如，*移动平均*线和衍生物。* OpenSearch 管道指标需要另一个指标作为依据。使用指标旁边的眼睛图标可隐藏指标，使其不显示在图表中。这对于查询中仅包含用于管道指标的指标很有用。

## 模板化
<a name="ES-templating"></a>

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

 有关模板化和模板变量的更多信息，请参阅 [模板和变量](templates-and-variables.md)。

### 查询变量
<a name="ES-query-variable"></a>

 OpenSearch *服务数据源支持两种类型的查询，您可以在查询变量的*查询*字段中使用。*该查询是使用自定义 JSON 字符串编写的。


|  Query  |  说明  | 
| --- | --- | 
|  {"find": "fields", "type": "keyword"}  |  返回索引类型为 keyword 的字段名称列表。 | 
|  {"find": "terms", "field": "@hostname", "size": 1000}  |  使用术语聚合返回字段的值列表。查询将使用当前控制面板的时间范围作为查询的时间范围。 | 
|  {"find": "terms", "field": "@hostname", "query": '<lucene query>'}  |  使用术语聚合和指定的 Lucene 查询筛选条件返回字段的值列表。查询将使用当前控制面板的时间范围作为查询的时间范围。 | 

术语查询的默认大小限制为 500。要设置自定义限制，请在查询中设置大小属性。您可以在查询中使用其他变量。以下代码示例显示了一个名为 `$host` 的变量的查询定义。

```
{"find": "terms", "field": "@hostname", "query": "@source:$source"}
```

在前面的示例中，我们在查询定义中使用了另一个名为 `$source` 的变量。每当您使用下拉列表更改 `$source` 变量的当前值时，它都会启动 `$host` 变量的更新。更新后，`$host` 变量仅包含按（在本例中为 `@source` 文档属性）筛选的主机名。

默认情况下，这些查询按术语顺序返回结果（然后可以按字母顺序或数字顺序对任何变量进行排序）。要生成按文档计数排序的术语列表（前 N 个值列表），请添加 `doc_count` 的 `orderBy` 属性。这将自动选择降序排序。可通过设置 `order: "asc"` 将 `asc` 与 doc\_count（后 N 个值列表）结合使用，但不建议这样做，因为会增加文档计数的误差。要使术语按文档计数顺序排列，请将变量的**排序**下拉列表设置为**禁用**。或者，您也可以使用**按字母顺序**对其重新排序。

```
{"find": "terms", "field": "@hostname", "orderBy": "doc_count"}
```

### 在查询中使用变量
<a name="ES-using-variables-in-queries"></a>

 共有两种语法：
+  `$<varname>` 示例：@hostname:$hostname 
+  `[[varname]]` 示例：@hostname:[[hostname]] 

 为什么是两种？ 第一种语法更容易读写，但不能在词中间使用变量。启用*Multi-value*或*包含所有值*选项后，Grafana 会将标签从纯文本转换为条件。 Lucene-compatible 

 在前面的示例中，我们有一个 lucene 查询，该查询使用名为 `$hostname` 的变量根据 `@hostname` 属性筛选文档。同时使用了*术语*分组依据字段输入框中的变量。这让您可以使用变量快速更改数据的分组方式。

## Annotations
<a name="ES-annotations"></a>

您可以使用注释在图形上叠加丰富的事件信息。您可以使用控制面板菜单或注释视图添加注释查询。Grafana 可以查询 OpenSearch 任何索引中的注解事件。有关更多信息，请参阅 [Annotations](dashboard-annotations.md)。


|  名称  |  说明  | 
| --- | --- | 
|  Query  |  您可以将搜索查询留空，也可以指定 Lucene 查询。 | 
|  Time  |  时间字段的名称；必须是日期字段。 | 
|  Time End  |  时间结束字段的可选名称必须是日期字段。如果设置，注释将被标记为介于 time 和 time-end 之间的区域。 | 
|  Text  |  事件描述字段。 | 
|  Tags  |  用于事件标签的可选字段名称（可以是数组或 CSV 字符串）。 | 

## 查询 日志
<a name="ES-querying-logs-beta"></a>

 在 “浏览” 中可以查询和显示来自 OpenSearch 的日志数据。要显示您的日志，请选择 OpenSearch 服务数据源，然后根据需要输入 Lucene 查询。有关更多信息，请参阅 [Explore](explore.md)。

### 日志查询
<a name="ES-log-queries"></a>

 返回结果后，日志面板会显示日志行列表和条形图，其中 x 轴显示时间，y 轴显示频率或计数。

### 筛选日志消息
<a name="ES-filter-log-messages"></a>

 或者，在查询字段中输入 Lucene 查询以筛选日志消息。例如，如果使用默认的 Filebeat 设置，则可以使用 `fields.level:error` 仅显示错误日志消息。