cat 异常检测器 API

编辑

cat API 仅供用户通过命令行或 Kibana 控制台使用。 适合应用程序使用。对于应用程序使用,请使用 获取异常检测作业统计信息 API

返回关于异常检测作业的配置和使用信息。

请求

编辑

GET /_cat/ml/anomaly_detectors/<job_id>

GET /_cat/ml/anomaly_detectors

先决条件

编辑
  • 如果启用了 Elasticsearch 安全功能,您必须具有 monitor_mlmonitormanage_mlmanage 集群权限才能使用此 API。请参阅 安全权限机器学习安全权限

描述

编辑

此 API 最多返回 10,000 个作业。

有关异常检测的更多信息,请参阅 查找异常

路径参数

编辑
<job_id>
(可选,字符串) 异常检测作业的标识符。

查询参数

编辑
allow_no_match

(可选,布尔值) 指定在请求时要执行的操作

  • 包含通配符表达式,并且没有作业匹配。
  • 包含 _all 字符串或没有标识符,并且没有匹配项。
  • 包含通配符表达式,并且只有部分匹配项。

默认值为 true,当没有匹配项时返回一个空的 jobs 数组,当有部分匹配项时返回结果的子集。如果此参数为 false,当没有匹配项或只有部分匹配项时,请求将返回 404 状态码。

bytes
(可选,字节大小单位) 用于显示字节值的单位。
format
(可选,字符串) HTTP accept header 的简短版本。有效值包括 JSON、YAML 等。
h

(可选,字符串) 要显示的列名称的逗号分隔列表。

如果您不指定要包含的列,API 将返回默认列。如果您显式指定一个或多个列,它将仅返回指定的列。

有效列为

assignment_explanation, ae
仅对于打开的异常检测作业,包含与选择用于运行作业的节点相关的消息。
buckets.count, bc, bucketsCount
(默认) 作业生成的存储桶结果数。
buckets.time.exp_avg, btea, bucketsTimeExpAvg
所有存储桶处理时间的指数移动平均值,以毫秒为单位。
buckets.time.exp_avg_hour, bteah, bucketsTimeExpAvgHour
在 1 小时时间窗口内计算的存储桶处理时间的指数加权移动平均值,以毫秒为单位。
buckets.time.max, btmax, bucketsTimeMax
所有存储桶处理时间中的最大值,以毫秒为单位。
buckets.time.min, btmin, bucketsTimeMin
所有存储桶处理时间中的最小值,以毫秒为单位。
buckets.time.total, btt, bucketsTimeTotal
所有存储桶处理时间的总和,以毫秒为单位。
data.buckets, db, dataBuckets
已处理的存储桶数。
data.earliest_record, der, dataEarliestRecord
最早的按时间顺序排列的输入文档的时间戳。
data.empty_buckets, deb, dataEmptyBuckets
不包含任何数据的存储桶数。如果您的数据包含许多空存储桶,请考虑增加您的 bucket_span 或使用对数据中的间隙具有容错性的函数,例如 meannon_null_sumnon_zero_count
data.input_bytes, dib, dataInputBytes
发布到异常检测作业的输入数据字节数。
data.input_fields, dif, dataInputFields
发布到异常检测作业的输入文档中的字段总数。此计数包括未在分析中使用的字段。但是,请注意,如果您正在使用数据馈送,它仅从检索到的文档中提取所需的字段,然后再将其发布到作业。
data.input_records, dir, dataInputRecords
发布到异常检测作业的输入文档数。
data.invalid_dates, did, dataInvalidDates
输入文档中缺少日期字段或无法解析的日期的数量。
data.last, dl, dataLast
根据服务器时间,最后一次分析数据的时间戳。
data.last_empty_bucket, dleb, dataLastEmptyBucket
最后一个不包含任何数据的存储桶的时间戳。
data.last_sparse_bucket, dlsb, dataLastSparseBucket
被认为是稀疏的最后一个存储桶的时间戳。
data.latest_record, dlr, dataLatestRecord
最新的按时间顺序排列的输入文档的时间戳。
data.missing_fields, dmf, dataMissingFields

缺少异常检测作业配置为分析的字段的输入文档数。仍会处理缺少字段的输入文档,因为并非所有字段都可能丢失。

如果您正在使用数据馈送或以 JSON 格式将数据发布到作业,则高的 missing_field_count 通常并不表示数据问题。它不一定是引起关注的原因。

data.out_of_order_timestamps, doot, dataOutOfOrderTimestamps
时间戳按时间顺序先于当前异常检测存储桶的开始时间并偏移延迟窗口的输入文档数。此信息仅在您通过使用 发布数据 API 向异常检测作业提供数据时适用。由于作业要求时间序列数据按时间顺序升序排列,因此这些乱序的文档将被丢弃。
data.processed_fields, dpf, dataProcessedFields
异常检测作业处理的所有文档中的字段总数。只有在检测器配置对象中指定的字段才会计入此计数。时间戳不包括在此计数中。
data.processed_records, dpr, dataProcessedRecords
(默认) 异常检测作业处理的输入文档数。此值包括缺少字段的文档,因为仍然会分析它们。如果您使用数据馈送并在搜索查询中进行聚合,则 processed_record_count 是处理的聚合结果数,而不是 Elasticsearch 文档数。
data.sparse_buckets, dsb, dataSparseBuckets
与预期数据点数相比,包含少量数据点的存储桶数。如果您的数据包含许多稀疏的存储桶,请考虑使用更长的 bucket_span
forecasts.memory.avg, fmavg, forecastsMemoryAvg
与异常检测作业相关的预测的平均内存使用量(以字节为单位)。
forecasts.memory.max, fmmax, forecastsMemoryMax
与异常检测作业相关的预测的最大内存使用量(以字节为单位)。
forecasts.memory.min, fmmin, forecastsMemoryMin
与异常检测作业相关的预测的最小内存使用量(以字节为单位)。
forecasts.memory.total, fmt, forecastsMemoryTotal
与异常检测作业相关的预测的总内存使用量(以字节为单位)。
forecasts.records.avg, fravg, forecastsRecordsAvg
为与异常检测作业相关的预测写入的 model_forecast 文档的平均数量。
forecasts.records.max, frmax, forecastsRecordsMax
为与异常检测作业相关的预测写入的 model_forecast 文档的最大数量。
forecasts.records.min, frmin, forecastsRecordsMin
为与异常检测作业相关的预测写入的 model_forecast 文档的最小数量。
forecasts.records.total, frt, forecastsRecordsTotal
为与异常检测作业相关的预测写入的 model_forecast 文档的总数。
forecasts.time.avg, ftavg, forecastsTimeAvg
与异常检测作业相关的预测的平均运行时间(以毫秒为单位)。
forecasts.time.max, ftmax, forecastsTimeMax
与异常检测作业相关的预测的最大运行时间(以毫秒为单位)。
forecasts.time.min, ftmin, forecastsTimeMin
与异常检测作业相关的预测的最小运行时间(以毫秒为单位)。
forecasts.time.total, ftt, forecastsTimeTotal
与异常检测作业相关的预测的总运行时间(以毫秒为单位)。
forecasts.total, ft, forecastsTotal
(默认) 当前可用于作业的单个预测的数量。值 1 或更大表示存在预测。
id
(默认) 异常检测作业的标识符。
model.bucket_allocation_failures, mbaf, modelBucketAllocationFailures
由于模型内存不足,新传入数据中的实体未处理的存储桶数。这种情况也由 hard_limit: memory_status 属性值表示。
model.by_fields, mbf, modelByFields
模型分析的 by 字段值的数量。此值是作业中所有检测器的累积值。
model.bytes, mb, modelBytes
(默认)模型使用的内存字节数。这是自上次模型持久化以来的最大值。如果作业已关闭,则此值表示最新大小。
model.bytes_exceededmbemodelBytesExceeded
上次分配失败时超出内存使用上限的字节数。
model.categorization_statusmcsmodelCategorizationStatus

作业分类的状态。包含以下值之一

  • ok:分类执行情况良好(或者根本没有使用)。
  • warn:分类检测到类别分布,表明输入数据不适合分类。问题可能包括:只有一个类别、超过 90% 的类别是罕见的、类别数量大于分类文档数量的 50%、没有频繁匹配的类别,或超过 50% 的类别已失效。
model.categorized_doc_countmcdcmodelCategorizedDocCount
已分类字段的文档数量。
model.dead_category_countmdccmodelDeadCategoryCount
由分类创建的类别数量,这些类别将永远不会再次分配,因为另一个类别的定义使其成为失效类别的超集。(失效类别是分类方式的副作用,因为分类没有事先的训练。)
model.failed_category_countmdccmodelFailedCategoryCount
分类想要创建新类别但由于作业已达到其 model_memory_limit 而无法创建的次数。此计数不会跟踪哪些特定类别创建失败。因此,您不能使用此值来确定错过的唯一类别数量。
model.frequent_category_countmfccmodelFrequentCategoryCount
与超过 1% 的分类文档匹配的类别数量。
model.log_timemltmodelLogTime
根据服务器时间,收集模型统计信息时的时间戳。
model.memory_limitmmlmodelMemoryLimit
模型内存使用量的上限,在值增加时进行检查。
model.memory_statusmmsmodelMemoryStatus

(默认)数学模型的状态,可以具有以下值之一

  • ok:模型保持在配置的值以下。
  • soft_limit:模型使用了超过配置内存限制的 60%,并且将修剪较旧的未使用模型以释放空间。此外,在分类作业中,将不再存储更多的类别示例。
  • hard_limit:模型使用的空间超过了配置的内存限制。因此,并非所有传入数据都被处理。
model.output_memory_allocator_bytesmomabmodelOutputMemoryAllocatorBytes
用于输出异常检测作业文档的内存量(以字节为单位)。
model.over_fieldsmofmodelOverFields
模型分析的 over 字段值的数量。此值是作业中所有检测器的累积值。
model.partition_fieldsmpfmodelPartitionFields
模型分析的 partition 字段值的数量。此值是作业中所有检测器的累积值。
model.rare_category_countmrccmodelRareCategoryCount
仅与一个分类文档匹配的类别数量。
model.timestampmtmodelTimestamp
收集模型统计信息时最后一个记录的时间戳。
model.total_category_countmtccmodelTotalCategoryCount
由分类创建的类别数量。
node.addressnanodeAddress

节点的网络地址。

包含运行作业的节点的属性。此信息仅适用于打开的作业。

node.ephemeral_idnenodeEphemeralId

节点的临时 ID。

包含运行作业的节点的属性。此信息仅适用于打开的作业。

node.idninodeId

节点的唯一标识符。

包含运行作业的节点的属性。此信息仅适用于打开的作业。

node.namennnodeName

节点名称。

包含运行作业的节点的属性。此信息仅适用于打开的作业。

opened_timeot
仅适用于打开的作业,作业已打开的经过时间。
states

(默认)异常检测作业的状态,可以是以下值之一

  • closed:作业成功完成,并且其模型状态已持久化。必须先打开作业,然后才能接受更多数据。
  • closing:作业关闭操作正在进行中,尚未完成。正在关闭的作业无法接受更多数据。
  • failed:由于错误,作业未成功完成。这种情况可能是由于输入数据无效、分析期间发生致命错误或外部交互(例如进程被 Linux 内存不足 (OOM) 终止)导致的。如果作业已不可逆转地失败,则必须强制关闭然后删除。如果可以更正数据馈送,则可以关闭作业,然后再重新打开。
  • opened:该作业可用于接收和处理数据。
  • opening:作业打开操作正在进行中,尚未完成。
帮助
(可选,布尔值)如果为 true,则响应包括帮助信息。默认为 false
s
(可选,字符串)用于对响应进行排序的列名或列别名的逗号分隔列表。
时间
(可选,时间单位)用于显示时间值的单位。
v
(可选,布尔值)如果为 true,则响应包括列标题。默认为 false

示例

编辑
resp = client.cat.ml_jobs(
    h="id,s,dpr,mb",
    v=True,
)
print(resp)
response = client.cat.ml_jobs(
  h: 'id,s,dpr,mb',
  v: true
)
puts response
const response = await client.cat.mlJobs({
  h: "id,s,dpr,mb",
  v: "true",
});
console.log(response);
GET _cat/ml/anomaly_detectors?h=id,s,dpr,mb&v=true
id                        s dpr   mb
high_sum_total_sales closed 14022 1.5mb
low_request_rate     closed 1216  40.5kb
response_code_rates  closed 28146 132.7kb
url_scanning         closed 28146 501.6kb