Oxana Dashboard

{% include "_tabs.html" %} {% include "_stats_cards.html" %}

Queue Lengths

Queues ({{ stats.queues.len() }})

{% if stats.queues.is_empty() %}
No queues
{% else %}
{% for queue in &stats.queues %} {% for dq in &queue.queues %} {% let dq_key = self.dynamic_queue_key(&queue.key, &dq.suffix) %} {% endfor %} {% endfor %}
Queue{{ self.sort_arrow("key") }} Concurrency{{ self.sort_arrow("concurrency") }} State{{ self.sort_arrow("state") }} Enqueued{{ self.sort_arrow("enqueued") }} Rate{{ self.sort_arrow("rate") }} ETA{{ self.sort_arrow("eta") }} Processed{{ self.sort_arrow("processed") }} Succeeded{{ self.sort_arrow("succeeded") }} Failed{{ self.sort_arrow("failed") }} Panicked{{ self.sort_arrow("panicked") }} Latency{{ self.sort_arrow("latency") }}
{% if queue.queues.is_empty() %}{{ queue.key }}{% else %}{{ queue.key }}{% endif %} {{ self.concurrency_for(&queue.key) }}{% if self.has_concurrency_override_for(&queue.key) %} ({{ self.default_concurrency_for(&queue.key) }}){% endif %} {{ self.state_for(&queue.key) }} {{ queue.enqueued }} {{ queue.rate.processed_per_minute|format_rate_per_minute }} {{ queue.rate.eta_s|format_eta_s }} {{ queue.processed }} {{ queue.succeeded }} {{ queue.failed }} {{ queue.panicked }} {{ queue.latency_s|format_latency }}
{{ dq.suffix }} {{ self.concurrency_for(&dq_key) }}{% if self.has_concurrency_override_for(&dq_key) %} ({{ self.default_concurrency_for(&dq_key) }}){% endif %} {{ self.state_for(&dq_key) }} {{ dq.enqueued }} {{ dq.rate.processed_per_minute|format_rate_per_minute }} {{ dq.rate.eta_s|format_eta_s }} {{ dq.processed }} {{ dq.succeeded }} {{ dq.failed }} {{ dq.panicked }} {{ dq.latency_s|format_latency }}
{% endif %}