获取训练模型统计信息 API
编辑获取训练模型统计信息 API编辑
检索训练模型的使用信息。
请求编辑
GET _ml/trained_models/_stats
GET _ml/trained_models/_all/_stats
GET _ml/trained_models/<model_id_or_deployment_id>/_stats
GET _ml/trained_models/<model_id_or_deployment_id>,<model_id_2_or_deployment_id_2>/_stats
GET _ml/trained_models/<model_id_pattern*_or_deployment_id_pattern*>,<model_id_2_or_deployment_id_2>/_stats
先决条件编辑
需要 monitor_ml
集群权限。此权限包含在 machine_learning_user
内置角色中。
描述编辑
您可以通过使用模型 ID、部署 ID 或通配符表达式的逗号分隔列表,在单个 API 请求中获取多个训练模型或训练模型部署的使用信息。
路径参数编辑
-
<model_id_or_deployment_id>
- (可选,字符串)模型或部署的唯一标识符。如果一个模型有多个部署,并且其中一个部署的 ID 与模型 ID 匹配,则模型 ID 优先;将返回该模型所有部署的结果。
查询参数编辑
-
allow_no_match
-
(可选,布尔值)指定在以下情况下该怎么做:
- 请求包含通配符表达式,但没有匹配的模型。
- 包含
_all
字符串或没有标识符,并且没有匹配项。 - 包含通配符表达式,并且只有部分匹配。
默认值为
true
,当没有匹配项时返回空数组,当有部分匹配时返回结果子集。如果此参数为false
,则当没有匹配项或只有部分匹配时,请求将返回404
状态代码。 -
from
- (可选,整数)跳过指定数量的模型。默认值为
0
。 -
size
- (可选,整数)指定要获取的最大模型数。默认值为
100
。
响应正文编辑
-
count
- (整数)与请求的 ID 模式匹配的训练模型统计信息的总数。可能高于
trained_model_stats
数组中的项目数,因为数组的大小受提供的size
参数的限制。 -
trained_model_stats
-
(数组)训练模型统计信息数组,按
model_id
值升序排序。训练模型统计信息的属性
-
deployment_stats
-
(列表)如果部署了提供的
model_id
值之一,则为部署统计信息的集合部署统计信息的属性
-
allocation_status
-
(对象)根据部署配置给出的详细分配状态。
分配统计信息的属性
-
allocation_count
- (整数)分配模型的当前节点数。
-
cache_size
- (字节值)模型在每个节点上的推理缓存大小(JVM 堆外部的内存)。
-
state
-
(字符串)与节点相关的详细分配状态。
-
starting
:正在尝试分配,但当前没有节点分配模型。 -
started
:至少有一个节点分配了模型。 -
fully_allocated
:部署已完全分配并满足target_allocation_count
。
-
-
target_allocation_count
- (整数)模型分配所需的节点数。
-
-
deployment_id
- 模型部署的唯一标识符。
-
error_count
- (整数)部署中所有节点的
error_count
总和。 -
inference_count
- (整数)部署中所有节点的
inference_count
总和。 -
model_id
- (字符串)训练模型的唯一标识符。
-
nodes
-
(对象数组)当前分配了模型的每个节点的部署统计信息。
节点统计信息的属性
-
average_inference_time_ms
- (双精度)每个推理调用在此节点上完成的平均时间。平均值是在部署的整个生命周期内计算的。
-
average_inference_time_ms_excluding_cache_hits
- (双精度)对训练模型执行推理的平均时间,不包括响应来自缓存的情况。缓存的推理调用返回速度非常快,因为不评估模型,通过排除缓存命中,该值可以准确衡量评估模型所需的平均时间。
-
average_inference_time_ms_last_minute
- (双精度)在最后一分钟内,每个推理调用在此节点上完成的平均时间。
-
error_count
- (整数)评估训练模型时的错误数。
-
inference_cache_hit_count
- (整数)针对此模型对此节点发出的推理调用的总数,这些调用是从推理缓存中提供的。
-
inference_cache_hit_count_last_minute
- (整数)在最后一分钟内针对此模型对此节点发出的推理调用的数量,这些调用是从推理缓存中提供的。
-
inference_count
- (整数)针对此模型对此节点发出的推理调用的总数。
-
last_access
- (长整型)此节点上模型的最后一次推理调用的纪元时间戳。
-
node
-
(对象)与节点相关的信息。
节点的属性
-
attributes
- (对象)列出节点属性,例如
ml.machine_memory
或ml.max_open_jobs
设置。 -
ephemeral_id
- (字符串)节点的临时 ID。
-
id
- (字符串)节点的唯一标识符。
-
name
- (字符串)节点名称。
-
transport_address
- (字符串)接受传输 HTTP 连接的主机和端口。
-
-
number_of_allocations
- (整数)分配给此节点的分配数量。
-
number_of_pending_requests
- (整数)排队等待处理的推理请求的数量。
-
peak_throughput_per_minute
- (整数)在 1 分钟内处理的峰值请求数。
-
routing_state
-
(对象)此分配的当前路由状态和当前路由状态的原因。
routing_state 的属性
-
reason
- (字符串)当前状态的原因。通常仅在
routing_state
为failed
时填充。 -
routing_state
- (字符串)当前路由状态。
-
starting
:模型正在尝试在此模型上分配,推理调用尚不被接受。 -
started
:模型已分配并准备好接受推理请求。 -
stopping
:模型正在从该节点取消分配。 -
stopped
:模型已从此节点完全取消分配。 -
failed
:分配尝试失败,有关潜在原因,请参见reason
字段。
-
-
rejected_execution_count
- (整数)由于队列已满而未处理的推理请求的数量。
-
start_time
- (长整型)分配开始时的纪元时间戳。
-
threads_per_allocation
- (整数)推理期间每个分配的线程数。此值受节点上硬件线程数的限制;因此,它可能与 启动训练模型部署 API 中的
threads_per_allocation
值不同。 -
timeout_count
- (整数)在处理之前超时的推理请求的数量。
-
throughput_last_minute
- (整数)过去 1 分钟内处理的请求数。
-
-
number_of_allocations
- (整数)训练模型部署的请求分配数量。
-
peak_throughput_per_minute
- (整数)部署中所有节点在 1 分钟内处理的峰值请求数。这是通过将每个节点的
peak_throughput_per_minute
值相加计算得出的。 -
priority
- (字符串)部署优先级。
-
rejected_execution_count
- (整数)部署中所有节点的
rejected_execution_count
总和。如果推理队列已满,则各个节点将拒绝推理请求。队列大小由 启动训练模型部署 API 中的queue_capacity
设置控制。 -
reason
- (字符串)当前部署状态的原因。通常仅在模型未部署到节点时填充。
-
start_time
- (长整型)部署开始时的纪元时间戳。
-
state
-
(字符串)部署的总体状态。值可以是
-
starting
:部署最近已启动,但尚不可用,因为模型未分配给任何节点。 -
started
:部署可用,因为至少有一个节点分配了模型。 -
stopping
:部署正在准备停止并从相关节点取消分配模型。
-
-
threads_per_allocation
- (整数)推理过程使用的每个分配的线程数。
-
timeout_count
- (整数)部署中所有节点的
timeout_count
总和。 -
queue_capacity
- (整数)在拒绝新请求之前,可以排队的推理请求数量。
-
-
inference_stats
-
(对象)推理统计字段的集合。
推理统计的属性
-
ingest
- (对象)所有节点上模型的摄取统计信息集合。这些值是各个节点统计信息的总和。格式与节点统计信息中的
ingest
部分相匹配。 -
model_id
- (字符串)训练模型的唯一标识符。
-
model_size_stats
-
(对象)模型大小统计字段的集合。
模型大小统计的属性
-
model_size_bytes
- (整数)模型的大小(以字节为单位)。
-
required_native_memory_bytes
- (整数)加载模型所需的内存量(以字节为单位)。
-
-
pipeline_count
- (整数)当前引用该模型的摄取管道数量。
-
响应代码编辑
-
404
(缺少资源) - 如果
allow_no_match
为false
,则此代码表示没有与请求匹配的资源,或者只有部分匹配请求的资源。
示例编辑
以下示例获取所有已训练模型的使用情况信息
resp = client.ml.get_trained_models_stats() print(resp)
response = client.ml.get_trained_models_stats puts response
GET _ml/trained_models/_stats
API 返回以下结果
{ "count": 2, "trained_model_stats": [ { "model_id": "flight-delay-prediction-1574775339910", "pipeline_count": 0, "inference_stats": { "failure_count": 0, "inference_count": 4, "cache_miss_count": 3, "missing_all_fields_count": 0, "timestamp": 1592399986979 } }, { "model_id": "regression-job-one-1574775307356", "pipeline_count": 1, "inference_stats": { "failure_count": 0, "inference_count": 178, "cache_miss_count": 3, "missing_all_fields_count": 0, "timestamp": 1592399986979 }, "ingest": { "total": { "count": 178, "time_in_millis": 8, "current": 0, "failed": 0 }, "pipelines": { "flight-delay": { "count": 178, "time_in_millis": 8, "current": 0, "failed": 0, "processors": [ { "inference": { "type": "inference", "stats": { "count": 178, "time_in_millis": 7, "current": 0, "failed": 0 } } } ] } } } } ] }