普罗米修斯监控
内容
普罗米修斯监控¶
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
工作节点传输的带宽