You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by js...@apache.org on 2024/11/11 08:30:26 UTC
(airflow) branch main updated: [Edge]Worker UI link beautification (#43869)
This is an automated email from the ASF dual-hosted git repository.
jscheffl pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 12c7dd429c4 [Edge]Worker UI link beautification (#43869)
12c7dd429c4 is described below
commit 12c7dd429c467dbf0c0549fe1ddfc4af3d1d9e1e
Author: majorosdonat <mj...@bosch.com>
AuthorDate: Mon Nov 11 09:30:17 2024 +0100
[Edge]Worker UI link beautification (#43869)
* links are easier to find for running and queued tasks on for edge worker
* Check for unknown state before checking last heartbeat
---------
Co-authored-by: Majoros Donat (XC-DX/EET2-Bp) <do...@hu.bosch.com>
---
providers/src/airflow/providers/edge/CHANGELOG.rst | 8 ++++++++
providers/src/airflow/providers/edge/__init__.py | 2 +-
.../edge/plugins/templates/edge_worker_hosts.html | 12 ++++++++----
.../providers/edge/plugins/templates/edge_worker_jobs.html | 14 ++++++++++----
providers/src/airflow/providers/edge/provider.yaml | 2 +-
5 files changed, 28 insertions(+), 10 deletions(-)
diff --git a/providers/src/airflow/providers/edge/CHANGELOG.rst b/providers/src/airflow/providers/edge/CHANGELOG.rst
index dcf7c9f1643..ae77d32b7ee 100644
--- a/providers/src/airflow/providers/edge/CHANGELOG.rst
+++ b/providers/src/airflow/providers/edge/CHANGELOG.rst
@@ -27,6 +27,14 @@
Changelog
---------
+0.5.3pre0
+.........
+
+Misc
+~~~~
+
+* ``Adding some links to host and job overview pages.``
+
0.5.2pre0
.........
diff --git a/providers/src/airflow/providers/edge/__init__.py b/providers/src/airflow/providers/edge/__init__.py
index 9b8dfc957ca..2998b9d6a90 100644
--- a/providers/src/airflow/providers/edge/__init__.py
+++ b/providers/src/airflow/providers/edge/__init__.py
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
__all__ = ["__version__"]
-__version__ = "0.5.2pre0"
+__version__ = "0.5.3pre0"
if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
"2.10.0"
diff --git a/providers/src/airflow/providers/edge/plugins/templates/edge_worker_hosts.html b/providers/src/airflow/providers/edge/plugins/templates/edge_worker_hosts.html
index 8feb9a526f7..4d9c0c3fc68 100644
--- a/providers/src/airflow/providers/edge/plugins/templates/edge_worker_hosts.html
+++ b/providers/src/airflow/providers/edge/plugins/templates/edge_worker_hosts.html
@@ -50,6 +50,8 @@
<td>
{%- if host.state == "offline" -%}
<span class="label" style="color:white; background-color:black;" title="Current State: {{ host.state }}">{{ host.state }}</span>
+ {%- elif host.state == "unknown" -%}
+ <span class="label" style="color:white; background-color:red;" title="Current State: {{ host.state }}">{{ host.state }}</span>
{%- elif host.last_update.timestamp() <= five_min_ago.timestamp() -%}
Reported <span class="label" style="color:white; background-color:red;" title="Current State: {{ host.state }}">{{ host.state }}</span>
but no heartbeat
@@ -61,8 +63,6 @@
<span class="label" style="color:black; background-color:gray;" title="Current State: {{ host.state }}">{{ host.state }}</span>
{%- elif host.state == "terminating" -%}
<span class="label" style="color:black; background-color:violet;" title="Current State: {{ host.state }}">{{ host.state }}</span>
- {%- elif host.state == "unknown" -%}
- <span class="label" style="color:white; background-color:red;" title="Current State: {{ host.state }}">{{ host.state }}</span>
{%- else -%}
<span class="label" style="color:white; background-color:hotpink;" title="Current State: {{ host.state }}">{{ host.state }}</span>
{%- endif -%}
@@ -71,7 +71,9 @@
{% if host.queues %}
<ul>
{% for item in host.queues %}
- <li>{{ item }}</li>
+ <li>
+ <a href="../taskinstance/list/?_flt_7_state=success&_flt_7_state=failed&_flt_3_queue={{ item }}#"">{{ item }}</a>
+ </li>
{% endfor %}
</ul>
{% else %}
@@ -80,7 +82,9 @@
</td>
<td><time datetime="{{ host.first_online }}">{{ host.first_online }}</time></td>
<td>{% if host.last_update %}<time datetime="{{ host.last_update }}">{{ host.last_update }}</time>{% endif %}</td>
- <td>{{ host.jobs_active }}</td>
+ <td>
+ <a href="../taskinstance/list/?_flt_3_hostname={{ host.worker_name }}&_flt_7_state=success&_flt_7_state=failed#">{{ host.jobs_active }}</a>
+ </td>
<!-- Stats are not collected (yet) leave the columns out until available
<td>{{ host.jobs_taken }}</td>
<td>{{ host.jobs_success }}</td>
diff --git a/providers/src/airflow/providers/edge/plugins/templates/edge_worker_jobs.html b/providers/src/airflow/providers/edge/plugins/templates/edge_worker_jobs.html
index a73e0f1d485..86c2eb01391 100644
--- a/providers/src/airflow/providers/edge/plugins/templates/edge_worker_jobs.html
+++ b/providers/src/airflow/providers/edge/plugins/templates/edge_worker_jobs.html
@@ -32,8 +32,8 @@
<table class="table table-striped table-bordered">
<tr>
<th>DAG ID</th>
- <th>Task ID</th>
<th>Run ID</th>
+ <th>Task ID</th>
<th>Map Index</th>
<th>Try Number</th>
<th>State</th>
@@ -46,14 +46,20 @@
{% for job in jobs %}
<tr title="{{ job.command }}">
<td><a href="/dags/{{ job.dag_id }}/grid">{{ job.dag_id }}</a></td>
- <td><a href="/dags/{{ job.dag_id }}/grid?dag_run_id={{ job.run_id | urlencode }}&task_id={{ job.task_id }}">{{ job.task_id }}</a></td>
<td><a href="/dags/{{ job.dag_id }}/grid?dag_run_id={{ job.run_id | urlencode }}">{{ job.run_id }}</a></td>
+ <td><a href="/dags/{{ job.dag_id }}/grid?dag_run_id={{ job.run_id | urlencode }}&task_id={{ job.task_id }}&tab=logs">{{ job.task_id }}</a></td>
<td>{% if job.map_index >= 0 %}{{ job.map_index }}{% else %}-{% endif %}</td>
<td>{{ job.try_number }}</td>
<td>{{ html_states[job.state] }}</td>
- <td>{{ job.queue }}</td>
+ <td>
+ <a href="../taskinstance/list/?_flt_7_state=success&_flt_7_state=failed&_flt_3_queue={{ job.queue }}#"">{{ job.queue }}</a>
+ </td>
<td><time datetime="{{ job.queued_dttm }}">{{ job.queued_dttm }}</time></td>
- <td>{% if job.edge_worker %}{{ job.edge_worker }}{% endif %}</td>
+ <td>
+ {% if job.edge_worker %}
+ <a href="../taskinstance/list/?_flt_3_hostname={{ job.edge_worker }}&_flt_7_state=success&_flt_7_state=failed#">{{ job.edge_worker }}</a>
+ {% endif %}
+ </td>
<td>{% if job.last_update %}<time datetime="{{ job.last_update }}">{{ job.last_update | string | truncate(20, False, "") }}</time>{% endif %}</td>
</tr>
{% endfor %}
diff --git a/providers/src/airflow/providers/edge/provider.yaml b/providers/src/airflow/providers/edge/provider.yaml
index e6b2d789007..34e787c528d 100644
--- a/providers/src/airflow/providers/edge/provider.yaml
+++ b/providers/src/airflow/providers/edge/provider.yaml
@@ -27,7 +27,7 @@ source-date-epoch: 1729683247
# note that those versions are maintained by release manager - do not update them manually
versions:
- - 0.5.2pre0
+ - 0.5.3pre0
dependencies:
- apache-airflow>=2.10.0