celery inspect stats
stats()
方法是Celery inspect
模块中的一个方法,用于收集和返回关于Celery worker的各种统计信息。这些统计信息可以帮助你了解worker的当前状态和性能指标。stats()
返回的结果是一个字典,其中键是worker的名字,值是一个包含多个统计指标的字典。
- 官网
stats()
方法返回的内容
stats()
方法返回的内容通常包括但不限于以下信息:
-
worker的状态:
pid
:worker进程的ID。freq
:心跳频率(每秒发送的心跳次数)。alive
:worker是否存活(布尔值)。load平均值
:系统负载平均值,通常包括1分钟、5分钟和15分钟的负载平均值。sw_ident
:worker使用的软件标识。sw_ver
:worker使用的软件版本。sw_sys
:worker所在的系统信息。
-
任务处理状态:
total
:处理过的总任务数。processed
:处理过的任务数。scheduled
:预定的任务数。active
:正在执行的任务数。reserved
:预留的任务数。revoked
:被撤销的任务数。consumer
:消费者状态信息。
-
队列信息:
queues
:队列信息,包括队列名称和队列中的消息数量。active_queues
:活动队列的信息。
-
配置信息:
conf
:worker的配置信息。pool
:工作池的信息,包括最大并发数等。
-
其他统计信息:
clock
:worker上的时钟。tasks
:任务相关信息。events
:事件相关信息。
示例输出
下面是一个stats()
方法返回的示例输出:
{'celery@worker1': {'pid': 12345,'freq': 1.0,'loadavg': [0.9, 0.8, 0.7],'sw_ident': 'celery','sw_ver': '5.2.2','sw_sys': 'Linux-5.4.0-106-generic-x86_64-with-glibc2.29','total': 100,'processed': 100,'scheduled': 0,'active': 1,'reserved': 0,'revoked': 0,'consumer': {'active_queues': [{'name': 'default', 'exchange': 'default', 'bindings': ['*']}],'qos': {'prefetch_count': 1, 'prefetch_size': 0, 'global': False},'concurrency': 4,'deliveries': {'total': 100, 'get': 100, 'put': 0},'tasks': {'total': 100, 'received': 100, 'acked': 100, 'rejected': 0},'processes': {'max': 4, 'active': 4, 'idle': 0, 'exhausted': 0},'events': {'processed': 100, 'rejected': 0, 'revoked': 0, 'failed': 0},'pool': {'max-concurrency': 4, 'max-tasks-per-child': None, 'max-memory-per-child': None},'queues': {'default': {'bindings': ['*'], 'exchange': 'default', 'name': 'default', 'messages': 0}},'tasks-by-type': {'task_type_1': 50, 'task_type_2': 50}},'clock': 1642321200.0,'events': {'enabled': True, 'last_enabled': 1642321200.0, 'last_disabled': 0.0},'conf': {'broker_url': 'amqp://guest:guest@localhost:5672//','task_serializer': 'json','result_serializer': 'json','accept_content': ['json'],'timezone': 'UTC','enable_utc': True,'task_track_started': True,'task_ignore_result': False,'task_send_sent_event': True,'task_acks_late': True,'worker_hijack_root_logger': False,'worker_redirect_stdouts_level': 'INFO','worker_redirect_stdouts': True,'worker_send_task_events': True,'worker_cancel_long_running_tasks_on_shutdown': False,'worker_prefetch_multiplier': 1,'worker_max_tasks_per_child': None,'worker_max_memory_per_child': None,'worker_send_task_sent_event': True,'worker_state_db': None,'worker_log_color': True,'worker_log_format': '%(levelname)s: %(message)s','worker_task_log_format': '%(levelname)s: tasks.%(__name__)s[%( delivery_tag)09d]: %(message)s','worker_loglevel': 'INFO','worker_send_task_error_emails': False,'worker_send_task_success_emails': False,'worker_send_task_failure_emails': False,'worker_send_task_retry_emails': False,'worker_send_task_retry_policy': {'interval_start': 0, 'interval_step': 0.2, 'interval_max': 0.2, 'max_retries': None},'worker_send_task_retry_interval': 0.2,'worker_send_task_retry_max_retries': None,'worker_send_task_retry_interval_max': 0.2,'worker_send_task_retry_interval_start': 0,'worker_send_task_retry_interval_step': 0.2,'worker_send_task_retry_interval_jitter': 0,'worker_send_task_retry_backoff': False,'worker_send_task_retry_backoff_max': 0,'worker_send_task_retry_backoff_jitter': 0,'worker_send_task_retry_backoff_max_jitter': 0,'worker_send_task_retry_backoff_factor': 1,'worker_send_task_retry_backoff_max_factor': 1,'worker_send_task_retry_backoff_jitter_factor': 1,'worker_send_task_retry_backoff_max_jitter_factor': 1,'worker_send_task_retry_backoff_jitter_max': 0,'worker_send_task_retry_backoff_max_jitter_max': 0,'worker_send_task_retry_backoff_jitter_min': 0,'worker_send_task_retry_backoff_max_jitter_min': 0,'worker_send_task_retry_backoff_jitter': False,'worker_send_task_retry_backoff_max_jitter': False,'worker_send_task_retry_backoff_jitter_factor': 1,'worker_send_task_retry_backoff_max_jitter_factor': 1,'worker_send_task_retry_backoff_jitter_max': 0,'worker_send_task_retry_backoff_max_jitter_max': 0,'worker_send_task_retry_backoff_jitter_min': 0,'worker_send_task_retry_backoff_max_jitter_min': 0,'worker_send_task_retry_backoff_jitter': False,'worker_send_task_retry_backoff_max_jitter': False,'worker_send_task_retry_backoff_jitter_factor': 1,'worker_send_task_retry_backoff_max_jitter_factor': 1,'worker_send_task_retry_backoff_jitter_max': 0,'worker_send_task_retry_backoff_max_jitter_max': 0,'worker_send_task_retry_backoff_jitter_min': 0,'worker_send_task_retry_backoff_max_jitter_min': 0,'worker_send_task_retry_backoff_jitter': False,