Oxanus Dashboard

{% include "_tabs.html" %}

Active Processes ({{ stats.processes.len() }})

{% if stats.processes.is_empty() %}
No active processes
{% else %}
{% for process in &stats.processes %} {% endfor %}
Hostname PID Busy Started Last Heartbeat
{{ process.hostname }} {{ process.pid }} {{ self.busy_for_process(process) }} {{ process.started_at|relative_time }} {{ process.heartbeat_at|relative_time }}
{% endif %}

Active Queues

{% if stats.queues.is_empty() %}
No active queues
{% else %}
{% for queue in &stats.queues %} {% let busy = self.busy_for(&queue.key) %} {% if queue.enqueued > 0 || busy > 0 %} {% for dq in &queue.queues %} {% if dq.enqueued > 0 %} {% endif %} {% endfor %} {% endif %} {% endfor %}
Queue Concurrency Busy Enqueued Latency
{% if queue.queues.is_empty() %}{{ queue.key }}{% else %}{{ queue.key }}{% endif %} {{ self.concurrency_for(&queue.key) }} {{ busy }} {{ queue.enqueued }} {{ queue.latency_s|format_latency }}
{{ dq.suffix }} {{ self.concurrency_for(&queue.key) }} {{ dq.enqueued }} {{ dq.latency_s|format_latency }}
{% endif %}

Currently Processing ({{ stats.processing.len() }})

{% if stats.processing.is_empty() %}
No jobs currently being processed
{% else %}
{% for item in &stats.processing %}
{{ item.job_envelope.job.name }}
{{ item.process_id }}
Started: {{ item.job_envelope.meta.started_at|relative_time_micros_opt }}
Scheduled: {{ item.job_envelope.meta.scheduled_at|relative_time_micros }}
Retries: {{ item.job_envelope.meta.retries }}
{% if item.job_envelope.job.args|has_args %}
Arguments
{{ item.job_envelope.job.args|pretty_json }}
{% endif %} {% match item.job_envelope.meta.state %} {% when Some with (state) %} {% if state|has_args %}
State
{{ state|pretty_json }}
{% endif %} {% when None %} {% endmatch %}
{% endfor %}
{% endif %}