获取记录 API
编辑获取记录 API
编辑检索异常检测作业的异常记录。
请求
编辑GET _ml/anomaly_detectors/<job_id>/results/records
先决条件
编辑需要 monitor_ml
集群权限。此权限包含在 machine_learning_user
内置角色中。
描述
编辑记录包含详细的分析结果。它们根据检测器配置描述在输入数据中识别出的异常活动。
根据输入数据的特征和大小,可能存在许多异常记录。实际上,通常有太多记录无法手动处理。因此,机器学习功能会将异常记录进行复杂的聚合到存储桶中。
记录结果的数量取决于每个存储桶中发现的异常数量,这与建模的时间序列的数量和检测器的数量有关。
路径参数
编辑-
<job_id>
- (必需,字符串)异常检测作业的标识符。
查询参数
编辑-
desc
- (可选,布尔值)如果为 true,则结果按降序排序。
-
end
- (可选,字符串)返回时间戳早于此时间的记录。默认为
-1
,表示未设置,结果不限于特定的时间戳。 -
exclude_interim
- (可选,布尔值)如果为
true
,则输出将排除临时结果。默认为false
,表示包含临时结果。 -
from
- (可选,整数)跳过指定数量的记录。默认为
0
。 -
record_score
- (可选,双精度浮点数)返回异常分数大于或等于此值的记录。默认为
0.0
。 -
size
- (可选,整数)指定要获取的最大记录数。默认为
100
。 -
sort
- (可选,字符串)指定请求记录的排序字段。默认情况下,记录按
record_score
值排序。 -
start
- (可选,字符串)返回时间戳在此时间之后的记录。默认为
-1
,表示未设置,结果不限于特定的时间戳。
请求正文
编辑您也可以在请求正文中指定查询参数;例外的是 from
和 size
,请改用 page
-
page
-
page
的属性-
from
- (可选,整数)跳过指定数量的记录。默认为
0
。 -
size
- (可选,整数)指定要获取的最大记录数。默认为
100
。
-
响应正文
编辑API 返回一个记录对象数组,其中包含以下属性
-
actual
- (数组)存储桶的实际值。
-
anomaly_score_explanation
-
(对象)如果存在,它会提供有关影响初始异常得分的因素的信息。
anomaly_score_explanation
的属性-
anomaly_characteristics_impact
- (可选,整数)来自检测到的异常的持续时间和幅度相对于历史平均值的影响。
-
anomaly_length
- (可选,整数)检测到的异常的长度(以存储桶数为单位)。
-
anomaly_type
- (可选,字符串)检测到的异常的类型:峰值或下降。
-
high_variance_penalty
- (可选,布尔值)表示具有较大置信区间的存储桶的异常分数降低。如果存储桶具有较大的置信区间,则会降低分数。
-
incomplete_bucket_penalty
- (可选,布尔值)如果存储桶包含的样本数少于预期,则会降低分数。如果存储桶包含的样本数少于预期,则会降低分数。
-
lower_confidence_bound
- (可选,双精度浮点数)95% 置信区间的下限。
-
multimodal_distribution
- (可选,布尔值)指示存储桶值的概率分布是否具有多个模式。当存在多个模式时,典型值可能不是最可能的。
-
multi_bucket_impact
- (可选,整数)过去 12 个存储桶中实际值和典型值之间偏差的影响。
-
single_bucket_impact
- (可选,整数)当前存储桶中实际值和典型值之间偏差的影响。
-
typical_value
- (可选,双精度浮点数)此存储桶的典型(预期)值。
-
upper_confidence_bound
- (可选,双精度浮点数)95% 置信区间的上限。
-
-
bucket_span
- (数字)存储桶的长度(以秒为单位)。此值与作业中指定的
bucket_span
相匹配。 -
by_field_name
- (字符串)用于拆分数据的字段。特别是,此属性用于分析分割相对于其自身历史记录的情况。它用于查找分割上下文中不寻常的值。
-
by_field_value
- (字符串)
by_field_name
的值。 -
causes
- (数组)对于总体分析,必须在检测器中指定 over 字段。此属性包含一个异常记录数组,这些记录是为 over 字段标识的异常的原因。如果不存在 over 字段,则此字段不存在。此子资源包含
over_field_name
的最异常的记录。出于可扩展性原因,最多返回 10 个最显著的异常原因。作为核心分析建模的一部分,这些低级异常记录会为其父 over 字段记录聚合。causes 资源包含与记录资源类似的元素,即actual
、typical
、geo_results.actual_point
、geo_results.typical_point
、*_field_name
和*_field_value
。概率和分数不适用于原因。 -
detector_index
- (数字)检测器的唯一标识符。
-
field_name
- (字符串)某些函数需要一个字段才能操作,例如,
sum()
。对于这些函数,此值是要分析的字段的名称。 -
function
- (字符串)异常发生的函数,如检测器配置中所指定。例如,
max
。 -
function_description
- (字符串)异常发生的函数的描述,如检测器配置中所指定。
-
geo_results
-
(可选,对象)如果检测器函数为
lat_long
,则此对象包含实际值和典型值的纬度和经度的逗号分隔字符串。geo_results
的属性-
actual_point
- (字符串)格式化为
geo_point
的存储桶的实际值。 -
typical_point
- (字符串)格式化为
geo_point
的存储桶的典型值。
-
-
influencers
- (数组)如果在检测器配置中指定了
influencers
,则此数组包含导致或应为异常负责的影响因素。 -
initial_record_score
- (数字)一个介于 0 到 100 之间的标准化分数,该分数基于此记录的异常概率。这是处理存储桶时计算的初始值。
-
is_interim
- (布尔值)如果为
true
,则表示这是一个临时结果。换句话说,结果是基于部分输入数据计算的。 -
job_id
- (字符串)异常检测作业的标识符。
-
multi_bucket_impact
- (数字)指示异常是多存储桶还是单存储桶的强度。该值介于
-5.0
到+5.0
之间,其中-5.0
表示异常纯粹是单存储桶,+5.0
表示异常纯粹是多存储桶。 -
over_field_name
- (字符串)用于拆分数据的字段。特别是,此属性用于分析分割相对于所有分割历史记录的情况。它用于查找所有分割群体中不寻常的值。有关更多信息,请参阅执行总体分析。
-
over_field_value
- (字符串)
over_field_name
的值。 -
partition_field_name
- (字符串)用于细分分析的字段。当您使用此属性时,此字段的每个值都有完全独立的基线。
-
partition_field_value
- (字符串)
partition_field_name
的值。 -
probability
- (数字)单个异常发生的概率,范围为 0 到 1。例如,0.0000772031。此值可以保持超过 300 位小数的高精度,因此提供
record_score
作为对此值的可读且友好的解释。 -
record_score
- (数字)一个介于 0 到 100 之间的标准化分数,该分数基于此记录的异常概率。与
initial_record_score
不同,此值将在分析新数据时通过重新标准化过程进行更新。 -
result_type
- (字符串)内部。此值始终设置为
record
。 -
timestamp
- (日期)计算这些结果的存储桶的开始时间。
-
typical
- (数组)根据分析建模,存储桶的典型值。
根据分析的字段,会添加额外的记录属性。例如,如果以 hostname
作为分组字段进行分析,则会在结果文档中添加一个 hostname
字段。此信息使您能够更轻松地过滤异常结果。
示例
编辑resp = client.ml.get_records( job_id="low_request_rate", sort="record_score", desc=True, start="1454944100000", ) print(resp)
response = client.ml.get_records( job_id: 'low_request_rate', body: { sort: 'record_score', desc: true, start: '1454944100000' } ) puts response
const response = await client.ml.getRecords({ job_id: "low_request_rate", sort: "record_score", desc: true, start: 1454944100000, }); console.log(response);
GET _ml/anomaly_detectors/low_request_rate/results/records { "sort": "record_score", "desc": true, "start": "1454944100000" }
{ "count" : 4, "records" : [ { "job_id" : "low_request_rate", "result_type" : "record", "probability" : 1.3882308899968812E-4, "multi_bucket_impact" : -5.0, "record_score" : 94.98554565630553, "initial_record_score" : 94.98554565630553, "bucket_span" : 3600, "detector_index" : 0, "is_interim" : false, "timestamp" : 1577793600000, "function" : "low_count", "function_description" : "count", "typical" : [ 28.254208230188834 ], "actual" : [ 0.0 ] }, ... ] }