{% extends "base.html" %} {% block content %}
← All Pollers

{{ poller_name }}

Poller detail — runs, stats, and logs

{# ── Summary Stats ────────────────────────────────────── #}
Success Rate (7d)
{% if rate and rate.success_rate is not none %} {{ "%.1f" | format(rate.success_rate * 100) }}% {% else %} — {% endif %}
Avg Duration
{% if rate and rate.avg_duration_seconds is not none %} {{ "%.1f" | format(rate.avg_duration_seconds) }}s {% else %} — {% endif %}
Total Rows (7d)
{% if rate and rate.total_rows_written is not none %} {{ "{:,}".format(rate.total_rows_written) }} {% else %} — {% endif %}
{# ── Run History ──────────────────────────────────────── #}

Run History

{% if runs %}
{% for run in runs %} {% endfor %}
ID Started Finished Status Rows Duration Error
{{ run.id }} {{ run.started_at or '—' }} {{ run.finished_at or '—' }} {% if run.status == 'success' %} success {% elif run.status == 'failed' %} failed {% elif run.status == 'running' %} running {% else %} {{ run.status or '—' }} {% endif %} {{ "{:,}".format(run.rows_written) if run.rows_written is not none else '—' }} {% if run.started_at and run.finished_at %} {{ "%.1f".format(run.duration_seconds) if run.duration_seconds is defined else '—' }} {% else %} — {% endif %} {{ run.error or '—' }}
{% else %}

No run history available for this poller.

{% endif %}
{# ── Log Tail ────────────────────────────────────────── #}

Logs

{% if logs %} {% for log in logs %}
[{{ log.ts }}] {% if log.level == 'ERROR' %} [{{ log.level }}] {% elif log.level == 'WARNING' %} [{{ log.level }}] {% elif log.level == 'INFO' %} [{{ log.level }}] {% elif log.level == 'DEBUG' %} [{{ log.level }}] {% else %} [{{ log.level }}] {% endif %} {{ log.message }}
{% endfor %} {% else %}
No log entries found.
{% endif %}
{% endblock %}