获取类别 API
编辑获取类别 API
编辑检索一个或多个类别的异常检测作业结果。
请求
编辑GET _ml/anomaly_detectors/<job_id>/results/categories
GET _ml/anomaly_detectors/<job_id>/results/categories/<category_id>
先决条件
编辑需要 monitor_ml
集群权限。此权限包含在内置角色 machine_learning_user
中。
描述
编辑在作业配置中指定 categorization_field_name
时,可以查看生成的类别的定义。类别定义描述了匹配的常用术语,并包含匹配值的示例。
来自分类分析的异常结果可作为桶、影响因素和记录结果获得。例如,结果可能表明在 16:45 存在异常的日志消息类别 11 计数。然后,您可以检查该类别的描述和示例。有关更多信息,请参阅 对日志消息进行分类。
路径参数
编辑-
<job_id>
- (必需,字符串) 异常检测作业的标识符。
-
<category_id>
- (可选,长整型) 类别的标识符,在作业中是唯一的。如果既未指定类别 ID 也未指定
partition_field_value
,则 API 会返回有关所有类别的信息。如果仅指定partition_field_value
,则会返回有关指定分区的所有类别的信息。
查询参数
编辑-
from
- (可选,整数) 跳过指定数量的类别。默认为
0
。 -
partition_field_value
- (可选,字符串) 仅返回指定分区的类别。
-
size
- (可选,整数) 指定要获取的最大类别数。默认为
100
。
请求正文
编辑您也可以在请求正文中指定 partition_field_value
查询参数。
-
page
-
page
的属性-
from
- (可选,整数) 跳过指定数量的类别。默认为
0
。 -
size
- (可选,整数) 指定要获取的最大类别数。默认为
100
。
-
响应正文
编辑API 返回一个类别对象的数组,这些对象具有以下属性
-
category_id
- (无符号整数) 类别的唯一标识符。即使启用了每个分区的分类,
category_id
在作业级别也是唯一的。 -
examples
- (数组) 与类别匹配的实际值的示例列表。
-
grok_pattern
- [预览] 此功能处于技术预览阶段,可能会在将来的版本中更改或删除。Elastic 将努力解决任何问题,但技术预览中的功能不受正式 GA 功能的支持 SLA 的约束。 (字符串) 可以用于 Logstash 或摄取管道从与类别匹配的消息中提取字段的 Grok 模式。此字段是实验性的,可能会在将来的版本中更改或删除。找到的 Grok 模式并非最佳,但通常是手动调整的良好起点。
-
job_id
- (字符串) 异常检测作业的标识符。
-
max_matching_length
- (无符号整数) 与类别匹配的字段的最大长度。该值会增加 10%,以启用对尚未分析的类似字段的匹配。
-
partition_field_name
- (字符串) 如果启用了每个分区的分类,则此属性标识用于分段分类的字段。禁用每个分区的分类时,此属性不存在。
-
partition_field_value
- (字符串) 如果启用了每个分区的分类,则此属性标识类别的
partition_field_name
的值。禁用每个分区的分类时,此属性不存在。 -
regex
- (字符串) 用于搜索与类别匹配的值的正则表达式。
-
terms
- (字符串) 类别值中匹配的常用标记的空格分隔列表。
-
num_matches
- (长整型) 此类别已匹配的消息数。仅在作业
_flush
或_close
后才能保证具有最新的准确计数 -
preferred_to_categories
- (列表) 此当前类别包含的
category_id
条目的列表。分类器处理的任何新消息都将与此类别匹配,而不是此列表中的任何类别。仅在作业_flush
或_close
后才能保证具有最新的准确类别列表
示例
编辑resp = client.ml.get_categories( job_id="esxi_log", page={ "size": 1 }, ) print(resp)
response = client.ml.get_categories( job_id: 'esxi_log', body: { page: { size: 1 } } ) puts response
const response = await client.ml.getCategories({ job_id: "esxi_log", page: { size: 1, }, }); console.log(response);
GET _ml/anomaly_detectors/esxi_log/results/categories { "page":{ "size": 1 } }
{ "count": 11, "categories": [ { "job_id" : "esxi_log", "category_id" : 1, "terms" : "Vpxa verbose vpxavpxaInvtVm opID VpxaInvtVmChangeListener Guest DiskInfo Changed", "regex" : ".*?Vpxa.+?verbose.+?vpxavpxaInvtVm.+?opID.+?VpxaInvtVmChangeListener.+?Guest.+?DiskInfo.+?Changed.*", "max_matching_length": 154, "examples" : [ "Oct 19 17:04:44 esxi1.acme.com Vpxa: [3CB3FB90 verbose 'vpxavpxaInvtVm' opID=WFU-33d82c31] [VpxaInvtVmChangeListener] Guest DiskInfo Changed", "Oct 19 17:04:45 esxi2.acme.com Vpxa: [3CA66B90 verbose 'vpxavpxaInvtVm' opID=WFU-33927856] [VpxaInvtVmChangeListener] Guest DiskInfo Changed", "Oct 19 17:04:51 esxi1.acme.com Vpxa: [FFDBAB90 verbose 'vpxavpxaInvtVm' opID=WFU-25e0d447] [VpxaInvtVmChangeListener] Guest DiskInfo Changed", "Oct 19 17:04:58 esxi2.acme.com Vpxa: [FFDDBB90 verbose 'vpxavpxaInvtVm' opID=WFU-bbff0134] [VpxaInvtVmChangeListener] Guest DiskInfo Changed" ], "grok_pattern" : ".*?%{SYSLOGTIMESTAMP:timestamp}.+?Vpxa.+?%{BASE16NUM:field}.+?verbose.+?vpxavpxaInvtVm.+?opID.+?VpxaInvtVmChangeListener.+?Guest.+?DiskInfo.+?Changed.*" } ] }