{% extends "base.html" %} {% block title %}Agent {{ agent.agent_id }} - MySQL to Sheets Sync{% endblock %} {% block page_title %}Agent Details{% endblock %} {% block page_subtitle %}

{{ agent.agent_id }}

{% endblock %} {% block breadcrumbs %} {% endblock %} {% block content %}

Agent Information

{% if agent.status == 'online' %} Online {% elif agent.status == 'busy' %} Busy {% else %} Offline {% endif %}
Agent ID {{ agent.agent_id }}
Hostname {{ agent.hostname }}
Version {{ agent.version }}
Capabilities {% for cap in agent.capabilities %} {{ cap }} {% else %} None {% endfor %}
Current Job {% if agent.current_job_id %} #{{ agent.current_job_id }} {% else %} None {% endif %}
Last Seen {% if agent.last_seen_at %} {{ agent.last_seen_at.strftime('%Y-%m-%d %H:%M:%S UTC') }} {% else %} Never {% endif %}
Registered {% if agent.created_at %} {{ agent.created_at.strftime('%Y-%m-%d %H:%M:%S UTC') }} {% else %} Unknown {% endif %}
{{ agent.jobs_completed }}
Jobs Completed
{{ agent.jobs_failed }}
Jobs Failed
{% if agent.jobs_completed + agent.jobs_failed > 0 %} {{ ((agent.jobs_completed / (agent.jobs_completed + agent.jobs_failed)) * 100)|round(1) }}% {% else %} 0% {% endif %}
Success Rate

Job History

{% if job_history %} {% for job in job_history %} {% endfor %}
Job ID Type Status Started Completed Error
#{{ job.id }} {{ job.job_type }} {% if job.status == 'completed' %} Completed {% elif job.status == 'failed' %} Failed {% elif job.status == 'running' %} Running {% else %} {{ job.status }} {% endif %} {{ job.started_at or '-' }} {{ job.completed_at or '-' }} {{ job.error|truncate(50) if job.error else '-' }}
{% else %}

No job history available.

{% endif %}
{% if crash_reports %}

Crash Reports

{{ crash_reports|length }}
{% for report in crash_reports %} {% endfor %}
Time Exception Message Job ID
{{ report.created_at }} {{ report.exception_type }} {{ report.exception_message|truncate(60) }} {{ report.job_id or '-' }}
{% endif %}
{% endblock %}