{% extends "base.html" %} {% block content %}

Atomic Service Timeline

Execution history of atomic service across runners
Back to Runners
Service Configuration
Service Interval {{ service_interval_minutes }} minutes
Executions Recorded {{ timeline_data|length }}
Execution Timeline
{% if timeline_data %}
{% set earliest_start = timeline_data[0].start %} {% set latest_end = timeline_data|map(attribute='end')|max %} {% set total_time_span = (latest_end - earliest_start).total_seconds() %} {% for execution in timeline_data %} {% endfor %}
Runner ID Execution Period Duration
{{ execution.runner_id }}
{% if total_time_span > 0 %} {% set start_offset = (execution.start - earliest_start).total_seconds() / total_time_span * 100 %} {% set bar_width = execution.duration / total_time_span * 100 %} {% else %} {% set start_offset = 0 %} {% set bar_width = 100 %} {% endif %}
{{ execution.start.strftime('%H:%M:%S.%f')[:-3] }}
{{ execution.duration|round(3) }}s
{% else %}

No atomic service executions recorded yet

{% endif %}
{% if timeline_data %}
Total Executions

{{ timeline_data|length }}

Avg Duration
{% set avg_duration = (timeline_data | map(attribute='duration') | sum) / timeline_data|length %}

{{ avg_duration|round(2) }}s

Max Duration
{% set max_duration = timeline_data | map(attribute='duration') | max %}

{{ max_duration|round(2) }}s

{% endif %}
{% endblock %}