{% extends "base.html" %} {% block content %}
Jobs / {{ job.id[:8] }}

{{ job.name or job.replication_group_id }} {% if job.status.value == 'pending' %} Pending {% elif job.status.value == 'running' %} Running {% elif job.status.value == 'completed' %} Completed {% elif job.status.value == 'failed' %} Failed {% elif job.status.value == 'cancelled' %} Cancelled {% elif job.status.value == 'timed_out' %} Timed Out {% endif %}

{{ job.replication_group_id }} {{ job.region }} {{ job.created_at.strftime('%Y-%m-%d %H:%M') }}
{% if job.status.value == 'completed' and job.total_commands > 0 %} Timeline Shards Analyze SQL {% endif %} + New Job
Commands captured
{% if job.error_message %}

Error

{{ job.error_message }}

{% endif %} {% if job.status.value == 'completed' %}
{{ job.total_commands|format_number }}
Total Commands
{{ shards|length }}
Shards
{{ job.duration_seconds|format_duration }}
Duration
{% set total_qps = (job.total_commands / job.duration_seconds) if job.duration_seconds > 0 else 0 %}
{{ "%.0f"|format(total_qps) }}
Avg QPS
{{ job.endpoint_type|title }}
Endpoint Type
{% if job.total_commands > 0 %}

Shard Traffic Distribution

Loading chart...
🔥 Hottest Shard
% deviation
⚠️Top Signature
% of traffic
🔒Lock Operations
ops
🔍Full Scans
expensive ops

🔥 Shard Load Distribution

⚠️ Top Client + Signature Combinations

Client IPSignatureCount%

🔒 Lock Operation Patterns

🔍 Expensive Full Scan Patterns

{% endif %}

Shards ({{ shards|length }})

{% if shards %} {% set max_commands = shards|map(attribute='command_count')|max %} {% set sorted_shards = shards|sort(attribute='command_count', reverse=true) %}
{% for item in sorted_shards %} {% set heat_pct = (item.command_count / max_commands * 100) if max_commands > 0 else 0 %}
{% if item.command_count > 0 and heat_pct > 50 %}
{% elif item.command_count > 0 %}
{% endif %}

{{ item.shard.shard_name }} {% if item.shard.redis_version %} v{{ item.shard.redis_version }} {% endif %} {% if heat_pct > 80 %} 🔥 Hot {% endif %}

{{ item.shard.host }}:{{ item.shard.port }}

{% if item.shard.status.value == 'completed' %} OK {% elif item.shard.status.value == 'failed' %} Failed {% else %} {{ item.shard.status.value }} {% endif %}
{% if item.shard.error_message %}
{{ item.shard.error_message[:200] }}{% if item.shard.error_message|length > 200 %}...{% endif %}
{% endif %} {% if item.shard.memory_used_bytes and item.shard.status.value == 'completed' %} {% set mem_used_gb = item.shard.memory_used_bytes / 1024 / 1024 / 1024 %} {% set mem_max_gb = (item.shard.memory_max_bytes / 1024 / 1024 / 1024) if item.shard.memory_max_bytes else 0 %} {% set mem_pct = (item.shard.memory_used_bytes / item.shard.memory_max_bytes * 100) if item.shard.memory_max_bytes and item.shard.memory_max_bytes > 0 else 0 %}
Memory {{ "%.2f"|format(mem_used_gb) }} GB {% if mem_max_gb > 0 %} / {{ "%.1f"|format(mem_max_gb) }} GB {% endif %}
{% endif %}
{{ item.command_count|format_number }}
Commands
{{ "%.1f"|format(item.qps) }}
QPS
{% if item.shard.cpu_sys_delta is not none and item.shard.cpu_user_delta is not none %} {% set cpu_total = item.shard.cpu_sys_delta + item.shard.cpu_user_delta %} {% set cpu_pct = (cpu_total / job.duration_seconds * 100) if job.duration_seconds > 0 else 0 %} {% set cpu_cores = cpu_total / job.duration_seconds if job.duration_seconds > 0 else 0 %}
{% if cpu_cores >= 1 %}{{ "%.1f"|format(cpu_cores) }}x{% else %}{{ "%.0f"|format(cpu_pct) }}%{% endif %}
{% if cpu_cores >= 1 %}CPU Cores{% else %}CPU{% endif %}
{% else %}
CPU
{% endif %}
{% if item.shard.status.value == 'completed' and item.command_count > 0 %} View Details {% endif %}
{% endfor %}
{% else %}

No shards monitored

{% endif %}
{% if job.total_commands > 0 %}
{% else %}
⚠️

No Commands Captured

The monitoring completed but no Redis/Valkey commands were captured. This could mean:

  • The cache had no traffic during the monitoring period
  • You're monitoring replicas but traffic goes to primary only
  • Check server logs for connection/permission issues
{% endif %} {% else %} {% endif %} {% if job.status.value == 'completed' and shards %} {% endif %}
{% endblock %}