{% from "components/metadata_tables.html" import collapsible_li, resource_cost_table, kv_table %} {% from "utils.html" import success_check, fail_cross, progress_spinner, job_state_indicator, auto_refresh %} {% extends "layout.html" %} {% block title %}Batch {{ batch_id }} Job {{ job_id }}{% endblock %} {% macro code_block(code) %}
{{ code }}
{% endmacro %} {% macro error_and_logs_panel(step) %} {% if container_statuses[step]['short_error'] is not none %}
Errored with: {{ container_statuses[step]['short_error']|capitalize }}
{% endif %} {% if step in step_errors and step_errors[step] is not none %}

Error

{{ code_block(step_errors[step]) }} {% endif %} {% if step in job_log %}

Logs

download
{{ code_block(job_log[step]) }} {% endif %} {% endmacro %} {% macro step_state_indicator(state) %} {% if state == 'running' %} {{ progress_spinner('text-sky-600') }} {% elif state == 'succeeded' %} {{ success_check() }} {% elif state == 'failed' %} {{ fail_cross() }} {% endif %} {% endmacro %} {% macro step_runtime(step_name) %} {% set step = container_statuses[step_name] %} {% if step and step['timing']['running'] and step['timing']['running']['duration'] %}
Command runtime: {{ step['timing']['running']['duration'] / 1000.0 }}s
{% endif %} {% endmacro %} {% block content %}
Batch {{ batch_id }}
{% if has_jvm_profile %} JVM Profile {% endif %} {% if plot_job_durations is not none %}
{% endif %}

Attempts

{% for attempt in attempts or [] %} {% endfor %}
Attempt ID Worker Duration Status
{{ attempt['attempt_id'] }} {{ attempt['instance_name'] }} {{ attempt.get('duration') or '' }} {{ attempt.get('reason') or '' }}
{% if plot_resource_usage is not none %}
{% endif %} {% if job_log or step_errors %}
{% for step in ['input', 'main', 'output'] %} {% if step in job_log or step in step_errors %}
{{ step|capitalize }}
{{ step_state_indicator(container_statuses[step]['state']) }}
{% endif %} {% endfor %}
Raw Status
{{ step_runtime('input') }} {{ error_and_logs_panel('input') }}
{{ step_runtime('main') }} {% if job_specification %} {% if job_specification['image'] != '[jvm]' %}

Image

{{ job_specification['image'] }}
{% endif %} {% if 'user_code' in job_specification %}

User Code

{{ code_block(job_specification['user_code'])}}
{% endif %}

Command

{{ code_block(job_specification['command'] | join("' '"))}}
{% endif %}
{{ error_and_logs_panel('main') }}
{{ step_runtime('output') }} {{ error_and_logs_panel('output') }}
{{ code_block(job_status_str) }}
{% endif %}
{% if plot_job_durations is not none or plot_resource_usage is not none %} {% endif %} {% endblock %}