普罗米修斯监控

Prometheus 是一个广泛流行的工具,用于监控和警报各种系统。如果安装了 prometheus_client 包,分布式集群会提供许多 Prometheus 指标。这些指标以 Prometheus 的基于文本的格式在调度器和工作器的 /metrics 端点上暴露。

可用指标

除了 prometheus_client 默认暴露的指标外,调度器和工作器还暴露了一些 Dask 特定的指标。

调度器指标

调度器暴露了以下关于自身的指标:

dask_scheduler_clients

连接的客户端数量

dask_scheduler_client_connections_added_total

添加到调度器的客户端连接总数

备注

此指标 计算不同的客户端。如果一个客户端断开连接并在之后重新连接,它将被计算两次。

dask_scheduler_client_connections_removed_total

从调度器中移除的客户端连接总数

备注

此指标 计算不同的客户端。如果一个客户端断开连接,然后重新连接并再次断开,它将被计算两次。

dask_scheduler_desired_workers

任务图调度器所需的工人数量

dask_scheduler_gil_contention_seconds_total

表示 潜在 GIL 争用的累积总值,以任何线程持有 GIL 锁定期间的累积秒数形式表示。在此期间,其他线程可能或可能没有实际尝试获取 GIL。

备注

需要安装 gilknocker ,并且设置 distributed.admin.system-monitor.gil.enabled 配置。

dask_scheduler_gc_collection_seconds_total

垃圾回收总时间 dask_scheduler_gc_collection_seconds_total

备注

由于测量开销,此指标仅测量在 generation=2 上的垃圾收集所花费的时间

dask_scheduler_workers

调度器已知的工人数量

dask_scheduler_workers_added_total

调度器中添加的工人总数

dask_scheduler_workers_removed_total

从调度器中移除的工人总数

dask_scheduler_上次_总时间

累计系统监控时间

dask_scheduler_tasks

调度器已知的任务数量

dask_scheduler_tasks_suspicious_total

任务被标记为可疑的总次数

dask_scheduler_tasks_forgotten_total

已处理的任务总数不再在内存中,并且已从调度器作业队列中移除。

备注

调度器上所有任务都处于遗忘状态的任务组不包括在内。

dask_scheduler_tasks_compute_seconds_total

计算任务所花费的总时间(按前缀)

dask_scheduler_任务_传输_秒数_总计

总时间(每个前缀)用于传输

dask_scheduler_tasks_output_bytes

当前内存中任务的大小,按任务前缀细分,不包括重复项。请注意,当任务输出在工作者之间传输时,通常会得到一个重复项,因此此度量将低于实际集群范围内的管理内存。另请参见 dask_worker_memory_bytes,它会计算重复项。

dask_scheduler_task_groups

调度器已知的任务组数量

dask_scheduler_prefix_state_totals_total

每个状态下任务前缀的累计计数

dask_scheduler_tick_count_total

自服务器启动以来观察到的总滴答数

dask_scheduler_tick_duration_maximum_seconds

自Prometheus上次抓取指标以来观察到的最大刻度持续时间。如果这显著高于在 distributed.admin.tick.interval 中配置的值(默认:20ms),则表明事件循环被阻塞,这反过来会妨碍任务的及时执行和网络通信。

信号量指标

关于 Semaphore 对象的以下指标在调度器上可用:

dask_semaphore_max_leases

每个信号量允许的最大租约数。

备注

在每个信号量的生命周期内,这将保持不变。

dask_semaphore_active_leases

每个信号量的当前活跃租约数量

dask_semaphore_pending_leases

每个信号量当前待处理的租约数量

dask_信号量_获取_总计

每个信号量获取的租约总数

dask_信号量_释放_总数

每个信号量释放的租约总数

备注

如果在信号量关闭时仍有租约处于活动状态,则在执行后此计数将不等于 dask_semaphore_acquire_total

dask_semaphore_average_pending_lease_time_s

每个信号量获取租约所花费时间的指数移动平均值

备注

这仅包括在调度器端花费的时间,不包括在通信上花费的时间。

备注

这个平均值是基于租赁顺序而不是租赁获取时间计算的。

工作窃取指标

如果启用了 工作窃取 ,调度器会暴露这些指标:

dask_stealing_request_count_total

盗窃请求的总数

dask_stealing_request_cost_total

请求盗窃的总成本

Worker 指标

worker 暴露了关于自身的这些指标:

dask_worker_tasks

工作者的任务数量

dask_worker_threads

工作线程数量

dask_worker_gil_contention_seconds_total

表示 潜在 GIL 争用的累积总值,以任何线程持有 GIL 锁定期间的累积秒数形式表示。在此期间,其他线程可能或可能没有实际尝试获取 GIL。

备注

需要安装 gilknocker ,并且设置 distributed.admin.system-monitor.gil.enabled 配置。

dask_worker_gc_collection_seconds_total

垃圾回收总时间 dask_scheduler_gc_collection_seconds_total

备注

由于测量开销,此指标仅测量在 generation=2 上的垃圾收集所花费的时间

dask_worker_latency_seconds

工作连接的延迟

dask_worker_memory_bytes

内存分解

dask_worker_transfer_incoming_bytes

从其他工作者打开的数据传输的总大小

dask_worker_transfer_incoming_count

从其他工作者发起的开放数据传输的数量

dask_worker_transfer_incoming_count_total

自工作进程启动以来,从其他工作进程传输的数据总数

dask_worker_transfer_outgoing_bytes

向其他工作者开放的数据传输大小

dask_worker_transfer_outgoing_bytes_total

自工作进程启动以来,向其他工作进程开放的数据传输总大小

dask_worker_transfer_outgoing_count

与其他工作者的开放数据传输数量

dask_worker_transfer_outgoing_count_total

自工作进程启动以来,向其他工作进程传输的数据总数

dask_worker_concurrent_fetch_requests

已弃用: 此指标已重命名为 dask_worker_transfer_incoming_count

dask_worker_tick_count_total

自服务器启动以来观察到的总滴答数

dask_worker_tick_duration_maximum_seconds

自Prometheus上次抓取指标以来观察到的最大刻度持续时间。如果这显著高于在 distributed.admin.tick.interval 中配置的值(默认:20ms),则表明事件循环被阻塞,这反过来会妨碍任务的及时执行和网络通信。

dask_worker_spill_bytes_total

自工作进程启动以来溢出/未溢出数据的总量;换句话说,归因于溢出活动的累积磁盘I/O。这包括一个 memory_read 度量,允许推导缓存命中率:

cache hit ratio = memory_read / (memory_read + disk_read)
dask_worker_spill_count_total

自工作进程启动以来的溢出/未溢出键的总数;换句话说,归因于溢出活动的累积磁盘访问。这包括一个 memory_read 度量,允许推导缓存命中率:

cache hit ratio = memory_read / (memory_read + disk_read)
dask_worker_spill_time_seconds_total

自工作进程启动以来,用于溢出/取消溢出的总时间,按活动细分:(反)序列化、(解)压缩、(取消)溢出。

如果安装了 crick 包,worker 还会额外暴露:

dask_worker_tick_duration_median_seconds

工作节点的中位数刻度持续时间

dask_worker_task_duration_median_seconds

工作节点的中位任务运行时间

dask_worker_transfer_bandwidth_median_bytes

工作节点传输的带宽