系统指标#
Ray 导出了多个系统指标,这些指标提供了对 Ray 工作负载状态的内省,以及硬件利用率统计数据。下表描述了官方支持的指标:
备注
某些标签在所有指标中都很常见,例如 `SessionName`(唯一标识一个 Ray 集群实例),`instance`(由 Prometheus 应用的每个节点的标签),以及 `JobId`(Ray 作业 ID,视情况而定)。
Prometheus 指标 |
标签 |
描述 |
---|---|---|
|
|
当前任务数量(包括远程函数和actor调用)按状态分类。状态标签(例如,RUNNING, FINISHED, FAILED)描述了任务的状态。更多信息请参见 rpc::TaskState。函数/方法名称作为Name标签可用。如果任务由于失败或重建而重试,IsRetry标签将设置为“1”,否则为“0”。 |
|
|
特定状态下的当前演员数量。状态标签由 rpc::ActorTableData proto 在 gcs.proto 中描述。演员类名在 Name 标签中可用。 |
|
|
集群中每个节点的逻辑资源使用情况。每种资源都有一些数量处于 要么 使用状态或可用状态。Name 标签定义了资源名称(例如,CPU,GPU)。 |
|
|
对象存储内存使用量(字节),`按逻辑位置细分 <ray-project/ray>`_(SPILLED、MMAP_DISK、MMAP_SHM 和 WORKER_HEAP)。定义如下。SPILLED——已溢出到磁盘或远程存储解决方案(例如,AWS S3)的对象。默认是磁盘。MMAP_DISK——存储在磁盘上的内存映射页上的对象。这种模式非常慢,只有在内存压力极大的情况下才会发生。MMAP_SHM——存储在共享内存中的内存映射页上的对象。这种模式是默认的,在没有内存压力的情况下。WORKER_HEAP——通常较小的对象,存储在 Ray Worker 进程本身的内存中。小对象存储在 worker 堆中。 |
|
|
当前按状态划分的放置组数量。状态标签(例如,PENDING、CREATED、REMOVED)描述了放置组的状态。更多信息请参见 rpc::PlacementGroupTable。 |
|
|
Ray 内存不足杀手(https://docs.ray.io/en/master/ray-core/scheduling/ray-oom-prevention.html)终止的任务和角色的数量,按类型(任务或角色)和名称(任务和角色的名称)细分。 |
|
|
每个节点的CPU利用率,以百分比表示(0..100)。这应该乘以每个节点的核心数,以将单位转换为核心数。 |
|
|
每个节点的CPU核心数。 |
|
|
每个GPU的GPU利用率作为一个百分比量(0..NGPU*100)。 |
|
|
每个节点使用的磁盘空间量,以字节为单位。 |
|
|
每个节点可用的磁盘空间,以字节为单位。 |
|
|
每个节点的磁盘写入吞吐量,以每秒字节数为单位。 |
|
|
每个节点的磁盘读取吞吐量,以每秒字节数为单位。 |
|
|
每个节点使用的物理内存量,以字节为单位。 |
|
|
每个节点可用的物理内存量,以字节为单位。 |
|
|
按逻辑 Ray 组件划分的测量到的唯一集合大小(以兆字节为单位)。Ray 组件包括系统组件(例如,raylet、gcs、dashboard 或 agent)以及正在运行的任务/角色的方法名称。 |
|
|
按逻辑Ray组件细分的测量CPU百分比。Ray组件包括系统组件(例如,raylet、gcs、dashboard或agent)和正在运行的任务/角色的方法名称。 |
|
|
每个GPU使用的GPU内存量,以字节为单位。 |
|
|
每个节点的网络接收吞吐量,以每秒字节数为单位。 |
|
|
每个节点的网络发送吞吐量,以每秒字节数为单位。 |
|
|
集群中健康节点的数量,按自动缩放器节点类型细分。 |
|
|
自动伸缩器报告的失败节点数量,按节点类型细分。 |
|
|
自动缩放器报告的待处理节点数量,按节点类型细分。 |
指标语义与一致性#
Ray 保证其所有内部状态指标即使在出现故障的情况下也是 最终 一致的——如果任何工作节点失败,最终正确的状态将反映在 Prometheus 时间序列输出中。然而,任何特定的指标查询并不能保证反映集群状态的精确快照。
对于 ray_tasks
和 ray_actors
指标,您应该使用求和查询来绘制它们的输出(例如,sum(ray_tasks) by (Name, State)
)。这样做的原因是 Ray 的任务指标是从多个分布式组件发出的。因此,存在多个指标点,包括负指标点,这些指标点必须从不同的进程中求和,以生成分布式系统的正确逻辑视图。例如,对于一个提交并执行的单个任务,Ray 可能会发出 (提交者) SUBMITTED_TO_WORKER: 1, (执行者) SUBMITTED_TO_WORKER: -1, (执行者) RUNNING: 1
,在求和后简化为 SUBMITTED_TO_WORKER: 0, RUNNING: 1
。