{% extends layout %}{% import 'ui/kit.html' as kit %}{% import 'ui/broker/_icons.html' as icons %}{% import 'ui/broker/_fmt.html' as fmt %} {% block title %}amebo - overview{% endblock %} {% block content %}{% include 'ui/broker/_css.html' %}

Engine health

Throughput, delivery outcomes, latency, wire I/O and spell activity over the last hour. Live.

{{ kit.stat('kpi-published', k.published, 'published') }} {{ kit.stat('kpi-delivered', k.delivered, 'delivered', 'ok') }} {{ kit.stat('kpi-pending', k.pending, 'pending') }} {{ kit.stat('kpi-retrying', k.retrying, 'retrying') }} {{ kit.stat('kpi-failed', k.failed, 'failed', 'bad') }} {{ kit.stat('kpi-rate', fmt.rate(k.attempts_ok, k.attempts), 'success rate') }} {{ kit.stat('kpi-p95', (k.p95 ~ ' ms') if k.attempts else '-', 'p95 latency') }} {{ kit.stat('kpi-due', k.due, 'due now') }}
{{ kit.chart_panel('Event flow', 'published vs delivered / min', 'ch-flow') }} {{ kit.chart_panel('Delivery outcomes', 'webhook attempts / min', 'ch-outcomes') }} {{ kit.chart_panel('Delivery latency', 'attempt round-trip, ms', 'ch-latency') }}
{{ kit.chart_panel('Webhook responses', 'all attempts by response class', 'ch-status') }} {{ kit.chart_panel('Top actions', 'events by action, delivered overlaid', 'ch-actions') }} {{ kit.chart_panel('Wire I/O', 'webhook bytes out / in per min', 'ch-io') }}
{{ kit.chart_panel('Spell runs', 'wand executions / min', 'ch-spells') }}

Needs attention

{%- if not attention %}

No failed deliveries - all healthy

{%- else %} {% for g in attention %} {% endfor %}
gistactionsubscriberlast responseattempts
{{ g.id }}{{ g.action }}{{ g.subscriber }}{{ g.code|code_pill }} {{ g.snippet }}{{ g.attempts }}
{%- endif %}

Subscriber health

{%- if not subs %}
No delivery attempts yet.
{%- else %} {% for s in subs %} {% endfor %}
subscriberattemptsdeliveredfailedsuccessavg latencylast statuslast attempt
{{ s.subscriber }}{{ s.attempts }}{{ s.okn }}{{ s.failedn }}{{ fmt.rate(s.okn, s.attempts) }}{{ s.avgms }} ms{{ s.last_status|code_pill }}{{ s.last_ts|ago }}
{%- endif %}
{% endblock %}