Skip to main content
Python SDK 提供统一的日志和指标查询能力,适用于自动化排查训练任务、通用服务和大模型推理服务的运行问题。使用本文示例前,请先完成 Python SDK 快速开始。

查询用户日志

用户日志来自容器标准输出和标准错误。SDK 提供两类接口:
  • client.logs.query():直接按 Pod 名称查询,适合已知 Pod 名称的场景。
  • client.tasks.query_logs()、client.generalsvc.query_logs()、client.inference.query_logs():按业务对象 ID 查询,SDK 自动关联 Pod。

按 Pod 查询日志

分页查询:
查询参数如下: 响应字段如下: 如果 pods 为空,SDK 会抛出 ValueError。

按业务对象查询日志

按业务对象查询时,SDK 会自动关联该对象下的 Pod。
高层日志接口参数如下: 如果根据业务对象 ID 未关联到 Pod,查询接口返回空日志列表。

按时间和关键词查询

下载用户日志

需要保存排查记录时,可以将日志下载到文件。

按业务对象下载

通用服务和大模型推理服务也支持同样的高层下载接口:

按 Pod 流式下载

写入文件:
不传 file_path 时,SDK 会在当前目录自动生成日志文件名。file_path 不能是目录;如果目标文件已存在,应确保文件为空或改用新文件。 下载参数如下:

查询系统日志

系统日志来自工作负载 Pod 的 Kubernetes 事件,适合排查调度、拉取镜像、启动、驱逐、OOM 等平台侧问题。它与用户日志不同:用户日志是容器输出,系统日志是 Pod 生命周期事件。

按 Pod 查询系统日志

按时间范围查询:
系统日志底层接口参数如下: 系统日志响应字段如下:

按业务对象查询系统日志

系统日志高层接口也支持 start 和 end 参数。如果根据业务对象 ID 未关联到 Pod,接口返回空系统日志列表。 当前系统日志接口不支持按容器、工作负载名称、工作负载类型、关键词、分页或下载查询。

查询训练任务指标

训练任务指标可用于在脚本中分析 GPU、CPU、内存、网络、存储或节点侧异常。

查询任务或 Pod 指标

查询一个任务的指标均值:
查询一个 Pod 的指标:
查询同一任务下多个 Pod 的单项指标:
查询 Pod 所在节点的指标:
查询可用指标列表:

识别掉队 Pod

定位可疑 GPU

判断节点侧资源压力

可先查询 Pod 自身使用量,再查询 Pod 所在节点整体使用量,对比是否可能受到节点侧资源竞争影响。

常用训练任务指标

任务级和 Pod 级均可查询 53 个指标,节点级可查询 51 个指标,全部 Pod 维度可查询 47 个指标。完整指标以 client.tasks.metrics_catalog() 返回为准。

查询通用指标

除训练任务封装接口外,也可以通过 client.metrics 按资源类型查询指标。查询较长时间范围时,建议先获取推荐步长。
也可以导入模块级函数获取推荐步长:
查询时需要同时指定 resource_type 和 metric_type。当 resource_type="Pod" 时,传入 pod;当 resource_type="Node" 时,传入 node。

请求限制

日志查询与下载接口存在并发和请求次数限制。自动化脚本应控制轮询频率;如果返回请求过多或服务繁忙,请按响应中的重试建议退避后再请求。

相关文档