{% extends layout %}{% import 'ui/kit.html' as kit %}{% import 'ui/broker/_fmt.html' as fmt %} {% block title %}amebo - event{% endblock %} {% block content %}{% include 'ui/broker/_css.html' %} {%- if o is none %}
Events/{{ event_id }}

Event not found

No event exists under that id (it may have been purged).

{%- else %} {%- set undelivered = o.inflight + o.failed %} {%- set publisher = o.publisher or 'api' %} {%- set self_url = fmt.js('/events/' ~ (o.event|urlencode)) %}
Events/{{ o.event }}

{{ o.event }} {{ o.status }}

{{ o.action }} · published {{ o.ts|ago }} by {{ publisher }}

{%- if undelivered > 0 %}{% endif %}
{{ fmt.flash(message, tone) }}
{{ o.fanout }}
fan-out
{{ o.delivered }}
delivered
{{ o.inflight }}
in flight
{{ o.failed }}
failed
{{ o.attempts }}
attempts
{{ (o.avg_ms ~ ' ms') if o.attempts > 0 else '-' }}
avg latency
{% if o.e2e == 0 %}under 1 s{% elif o.e2e > 0 %}{{ o.e2e }} s{% else %}-{% endif %}
end to end
{{ o.size|nbytes }}
payload

Payload as persisted (after redactions)

{{ o.payload|pretty_json }}

Provenance

{{ kit.kv([('Event', o.event), ('Action', o.action), ('Deduper', o.deduper), ('Publisher', publisher), ('Published', o.ts|when), ('Payload size', o.size|nbytes), ('Metadata', o.metadata or '{}'), ('Wizard', ('processed (' ~ o.spells ~ ' runs)') if o.spelled else 'queued')]) }}

Lifecycle timeline reception, spells, every delivery attempt

{%- if not timeline %}
No lifecycle activity recorded.
{%- else %} {% for t in timeline %} {%- if t.kind == 'publish' %} {%- elif t.kind == 'spell' %} {%- else %} {%- endif %} {% endfor %}
whenstagedetail
{{ t.ts|ago }}publishedby {{ t.who }} · {{ t.n|nbytes }} payload accepted, validated and fanned out
{{ t.ts|ago }}spell {{ t.st }}{{ t.who }} {{ t.detail }}
{{ t.ts|ago }}{{ t.code|code_pill }}attempt {{ t.n }} to {{ t.who }} · {{ t.ms }} ms · {{ t.detail }}
{%- endif %}
{%- if not traces %}

Consuming trace not linked yet

No trace is linked to this event. amebo links them from either end:

{%- else %}

Consuming trace the work this event caused

{%- for tr in traces %} {%- set open_trace = fmt.js('/traces/' ~ (tr.trace_id|urlencode)) %} {%- if not tr.found %}
{{ tr.trace_id }} {{ tr.source }}
not retained (sampled out)
{%- else %}
{{ tr.root_name }}
{{ tr.trace_id }} · {{ tr.root_service }} · linked by the {{ tr.source }}
{{ tr.duration_ms|ms }}
duration
{{ tr.span_count }}
spans
{{ tr.errors }}
errors
{%- for s in tr.spans %}
{{ s.service }} {{ s.name }} {{ (s.duration / 1000)|ms }}
{%- endfor %}
Open the full trace
{%- endif %} {%- endfor %}
{%- endif %}

Deliveries by subscriber

{% with message='' %}{% include 'ui/broker/_ev_subs.html' %}{% endwith %}
{%- endif %} {% endblock %}