

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

# 异常
<a name="CWL_QuerySyntax-Anomaly"></a>

 使用 `anomaly` 可以通过机器学习自动识别日志数据中的异常模式和潜在问题。

`anomaly` 命令扩展了现有 `pattern` 功能，并利用高级分析来帮助识别日志数据中的潜在异常。您可以使用 `anomaly` 自动在日志中发现异常模式或行为，从而减少识别和解决操作问题所需的时间。

`anomaly` 命令与 ` pattern` 命令配合使用，首先识别日志模式，然后检测这些模式中的异常。您也可以将 `anomaly` 与 ` filter` 或 ` sort` 命令结合使用，将异常检测集中在数据的特定子集上。

**anomaly 命令输入**

 `anomaly` 命令通常在 ` pattern` 命令之后使用，用于分析日志数据中发现的模式。该命令不需要额外的参数，它会分析查询中前面命令的输出。

**已识别的异常类型**

 `anomaly` 命令可识别五种不同类型的异常：
+ *模式频率异常*：特定日志模式的异常频率，例如当应用程序开始生成比平时更多的错误消息时。
+ *新模式异常*：以前未曾见过的日志模式，可能表明日志中出现了新的错误或消息类型。
+ *令牌变异异常*：日志消息内容的意外更改，可能表示预期日志格式存在异常变化。
+ *数字令牌异常*：日志中数值的异常变化，可以帮助检测潜在性能问题或意外的指标变化。
+ *HTTP 错误代码异常*：与 HTTP 错误响应相关的模式，在监视 Web 应用程序时特别有用。 APIs

**anomaly 命令输入**

 `anomaly` 命令会保留输入数据中的所有字段并添加异常检测结果，以帮助识别日志数据中的异常模式。

**示例**

以下命令可识别日志数据中的模式，然后检测这些模式中的异常：

```
fields @timestamp, @message
| pattern @message
| anomaly
```

`anomaly` 命令可以与筛选结合使用，以专注于特定的日志类型：

```
fields @timestamp, @message
| filter @type = "REPORT"
| pattern @message
| anomaly
```

`anomaly` 命令可以与排序结合使用以整理结果：

```
fields @timestamp, @message
| filter @type = "ERROR"
| pattern @message
| anomaly
| sort @timestamp desc
```