This is an automated email from the ASF dual-hosted git repository.
bbovenzi 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 9e2531fa4d Calculate duration in UI (#23259)
9e2531fa4d is described below
commit 9e2531fa4d9890f002d184121e018e3face5586b
Author: Brent Bovenzi <[email protected]>
AuthorDate: Tue Apr 26 11:42:28 2022 -0400
Calculate duration in UI (#23259)
* Calculate duration in UI
* calculate mapped instance duration too
---
airflow/www/static/js/tree/InstanceTooltip.jsx | 4 ++--
airflow/www/static/js/tree/details/content/dagRun/index.jsx | 5 ++---
airflow/www/static/js/tree/details/content/taskInstance/Details.jsx | 3 +--
.../static/js/tree/details/content/taskInstance/MappedInstances.jsx | 4 ++--
airflow/www/utils.py | 1 -
5 files changed, 7 insertions(+), 10 deletions(-)
diff --git a/airflow/www/static/js/tree/InstanceTooltip.jsx
b/airflow/www/static/js/tree/InstanceTooltip.jsx
index 453a8dc138..49d24124db 100644
--- a/airflow/www/static/js/tree/InstanceTooltip.jsx
+++ b/airflow/www/static/js/tree/InstanceTooltip.jsx
@@ -27,7 +27,7 @@ import Time from './Time';
const InstanceTooltip = ({
group,
instance: {
- startDate, endDate, duration, state, runId, mappedStates,
+ startDate, endDate, state, runId, mappedStates,
},
}) => {
const isGroup = !!group.children;
@@ -91,7 +91,7 @@ const InstanceTooltip = ({
<Text>
Duration:
{' '}
- {formatDuration(duration || getDuration(startDate, endDate))}
+ {formatDuration(getDuration(startDate, endDate))}
</Text>
</Box>
);
diff --git a/airflow/www/static/js/tree/details/content/dagRun/index.jsx
b/airflow/www/static/js/tree/details/content/dagRun/index.jsx
index 98e3cdcca6..363bdeddfd 100644
--- a/airflow/www/static/js/tree/details/content/dagRun/index.jsx
+++ b/airflow/www/static/js/tree/details/content/dagRun/index.jsx
@@ -29,7 +29,7 @@ import { MdPlayArrow, MdOutlineAccountTree } from
'react-icons/md';
import { SimpleStatus } from '../../../StatusBox';
import { ClipboardText } from '../../../Clipboard';
-import { formatDuration } from '../../../../datetime_utils';
+import { formatDuration, getDuration } from '../../../../datetime_utils';
import Time from '../../../Time';
import MarkFailedRun from './MarkFailedRun';
import MarkSuccessRun from './MarkSuccessRun';
@@ -50,7 +50,6 @@ const DagRun = ({ runId }) => {
executionDate,
state,
runType,
- duration,
lastSchedulingDecision,
dataIntervalStart,
dataIntervalEnd,
@@ -103,7 +102,7 @@ const DagRun = ({ runId }) => {
<Text>
Duration:
{' '}
- {formatDuration(duration)}
+ {formatDuration(getDuration(startDate, endDate))}
</Text>
{lastSchedulingDecision && (
<Text>
diff --git
a/airflow/www/static/js/tree/details/content/taskInstance/Details.jsx
b/airflow/www/static/js/tree/details/content/taskInstance/Details.jsx
index 6d341e4c3c..317e22c250 100644
--- a/airflow/www/static/js/tree/details/content/taskInstance/Details.jsx
+++ b/airflow/www/static/js/tree/details/content/taskInstance/Details.jsx
@@ -37,7 +37,6 @@ const Details = ({ instance, group, operator }) => {
const {
taskId,
runId,
- duration,
startDate,
endDate,
state,
@@ -134,7 +133,7 @@ const Details = ({ instance, group, operator }) => {
{isOverall}
Duration:
{' '}
- {formatDuration(duration || getDuration(startDate, endDate))}
+ {formatDuration(getDuration(startDate, endDate))}
</Text>
{startDate && (
<Text>
diff --git
a/airflow/www/static/js/tree/details/content/taskInstance/MappedInstances.jsx
b/airflow/www/static/js/tree/details/content/taskInstance/MappedInstances.jsx
index 77c0713ab3..c2cef5d008 100644
---
a/airflow/www/static/js/tree/details/content/taskInstance/MappedInstances.jsx
+++
b/airflow/www/static/js/tree/details/content/taskInstance/MappedInstances.jsx
@@ -31,7 +31,7 @@ import {
} from 'react-icons/md';
import { getMetaValue } from '../../../../utils';
-import { formatDateTime, formatDuration } from '../../../../datetime_utils';
+import { formatDateTime, formatDuration, getDuration } from
'../../../../datetime_utils';
import { useMappedInstances } from '../../../api';
import { SimpleStatus } from '../../../StatusBox';
import Table from '../../../Table';
@@ -83,7 +83,7 @@ const MappedInstances = ({
{mi.state || 'no status'}
</Flex>
),
- duration: mi.duration && formatDuration(mi.duration),
+ duration: mi.duration && formatDuration(getDuration(mi.startDate,
mi.endDate)),
startDate: mi.startDate && formatDateTime(mi.startDate),
endDate: mi.endDate && formatDateTime(mi.endDate),
links: (
diff --git a/airflow/www/utils.py b/airflow/www/utils.py
index 0c452dea38..05ad2a8ab1 100644
--- a/airflow/www/utils.py
+++ b/airflow/www/utils.py
@@ -146,7 +146,6 @@ def encode_ti(
'run_id': task_instance.run_id,
'map_index': task_instance.map_index,
'state': task_instance.state,
- 'duration': task_instance.duration,
'start_date': datetime_to_string(task_instance.start_date),
'end_date': datetime_to_string(task_instance.end_date),
'try_number': try_count,