This is an automated email from the ASF dual-hosted git repository. ephraimanierobi pushed a commit to branch v2-4-test in repository https://gitbox.apache.org/repos/asf/airflow.git
commit ecd943915fdd41febdfde760fb28f7c3e29f994d Author: Daniel Standish <[email protected]> AuthorDate: Tue Sep 27 15:54:59 2022 -0700 Fix task duration cumulative chart (#26717) Previously the chart could go down, which should not happen for a cumulative chart. We fix that here. Also, we add task fail durations to the non-cumulative chart for consistency. (cherry picked from commit afa8e10df16a3806077c471818053b38076e37fb) --- airflow/www/views.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/airflow/www/views.py b/airflow/www/views.py index ea05b1e0c7..ce322d7a62 100644 --- a/airflow/www/views.py +++ b/airflow/www/views.py @@ -2933,10 +2933,11 @@ class Airflow(AirflowBaseView): if task_instance.duration: date_time = wwwutils.epoch(task_instance.execution_date) x_points[task_instance.task_id].append(date_time) - y_points[task_instance.task_id].append(float(task_instance.duration)) fails_dict_key = (task_instance.dag_id, task_instance.task_id, task_instance.run_id) fails_total = fails_totals[fails_dict_key] - cumulative_y[task_instance.task_id].append(float(task_instance.duration + fails_total)) + y_points[task_instance.task_id].append(float(task_instance.duration + fails_total)) + + cumulative_y = {k: list(itertools.accumulate(v)) for k, v in y_points.items()} # determine the most relevant time unit for the set of task instance # durations for the DAG
