Celery v0.9.0 (unstable) documentation

This Page

Statistics and Monitoring - celery.monitoring

Publishing Statistics and Monitoring Celery.

class celery.monitoring.Statistics(**kwargs)

Base class for classes publishing celery statistics.

type
REQUIRED The type of statistics this class handles.

Required handlers

  • on_start()
  • on_stop()
on_start(*args, **kwargs)
What to do when the run() method is called.
on_stop(*args, **kwargs)
What to do when the stop() method is called.
publish(**data)

Publish statistics to be collected later by StatsCollector.

Parameter:data – An arbitrary Python object containing the statistics to be published.
run(*args, **kwargs)
Start producing statistics.
classmethod start(*args, **kwargs)
Convenience method instantiating and running run() in one swoop.
stop(*args, **kwargs)
Stop producing and publish statistics.
class celery.monitoring.StatsCollector

Collect and report Celery statistics.

NOTE: Please run only one collector at any time, or your stats
will be skewed.
total_tasks_processed
The number of tasks executed in total since the first time collect() was executed on this class instance.
total_tasks_processed_by_type
A dictionary of task names and how many times they have been executed in total since the first time collect() was executed on this class instance.
total_task_time_running
The total time, in seconds, it took to process all the tasks executed since the first time collect() was executed on this class instance.
total_task_time_running_by_type
A dictionary of task names and their total running time in seconds, counting all the tasks that has been run since the first time collect() was executed on this class instance.
NOTE: You have to run collect() for these attributes
to be filled.
collect()
Collect any new statistics available since the last time collect() was executed.
dump_to_cache(cache_key_prefix='celery-statistics')
Store collected statistics in the cache.
report()

Dump a nice statistics report from the data collected since the first time collect() was executed on this instance.

It outputs the following information:

  • Total processing time by task type and how many times each

    task has been excuted.

  • Total task processing time.

  • Total number of tasks executed

task_time_running(task_id, task_name, args, kwargs, nsecs)

Process statistics regarding how long a task has been running (the :class:TaskTimerStats` class is responsible for sending these).

Parameters:
  • task_id – The UUID of the task.
  • task_name – The name of task.
  • args – The tasks positional arguments.
  • kwargs – The tasks keyword arguments.
  • nsecs – The number of seconds (in time.time() format) it took to execute the task.
class celery.monitoring.TaskTimerStats(**kwargs)
Time a running celery.task.Task.
class celery.monitoring.TimerStats(**kwargs)

A generic timer producing celery statistics.

time_start
The time when this class was instantiated (in time.time() format.)
on_finish()

What to do when the timers stop() method is called.

Returns:the time in seconds it took between calling start() on this class and stop().
on_start(task_id, task_name, args, kwargs)
What to do when the timers run() method is called.