You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "tirkarthi (via GitHub)" <gi...@apache.org> on 2024/03/21 14:04:03 UTC
[I] Task and dagrun duration y-axis is incorrect if the last task has a different duration unit [airflow]
tirkarthi opened a new issue, #38371:
URL: https://github.com/apache/airflow/issues/38371
### Apache Airflow version
main (development)
### If "Other Airflow 2 version" selected, which one?
_No response_
### What happened?
During our internal testing it was found that the duration implementation we found that if the last taskinstance or if one of the taskinstance in the middle has a higher duration that leads to a different unit then the same unit applied to the previous durations and they are not scaled back. Below is an example where all taskinstances complete in seconds except for the last taskinstance which is more than a minute but all the durations are mentioned in minutes making it confusing. The same logic is present in dagrun duration as well. One solution would be to have everything as seconds and during chart construction we can scale them based on the max value. We have a fix for this tested internally and I will open a PR.

```python
from datetime import datetime, timedelta
from airflow import DAG
from airflow.decorators import task
from airflow.operators.empty import EmptyOperator
from datetime import timedelta
with DAG(
dag_id="task_duration_average",
start_date=datetime(2024, 1, 1),
end_date=datetime(2024, 1, 15),
catchup=True,
schedule_interval="@daily",
) as dag:
@task
def sleeper(ds=None):
import random, time, pendulum
last_day = pendulum.datetime(2024, 1, 15)
execution_date = pendulum.parse(ds)
if execution_date == last_day:
duration = 130
else:
duration = random.randint(1, 5)
time.sleep(duration)
sleeper()
```
### What you think should happen instead?
_No response_
### How to reproduce
1. Have a dag which takes few seconds and make last task instance take few minutes
2. Look at the task duration and dagrun duration chart and the grid bars.
### Operating System
Ubuntu
### Versions of Apache Airflow Providers
_No response_
### Deployment
Other
### Deployment details
_No response_
### Anything else?
_No response_
### Are you willing to submit PR?
- [X] Yes I am willing to submit a PR!
### Code of Conduct
- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Task and dagrun duration y-axis is incorrect if the last task has a different duration unit [airflow]
Posted by "bbovenzi (via GitHub)" <gi...@apache.org>.
bbovenzi closed issue #38371: Task and dagrun duration y-axis is incorrect if the last task has a different duration unit
URL: https://github.com/apache/airflow/issues/38371
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org