Skip to content

Commit 952bdea

Browse files
bbovenzikaxil
authored andcommitted
Update time duration format (#49914)
* Update time duration format * Simplift datetimeUtils and remove extra s * Fix tests (cherry picked from commit e97ae32)
1 parent de981cc commit 952bdea

File tree

14 files changed

+90
-22
lines changed

14 files changed

+90
-22
lines changed

airflow-core/src/airflow/ui/src/components/DagRunInfo.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@
1717
* under the License.
1818
*/
1919
import { VStack, Text, Box } from "@chakra-ui/react";
20-
import dayjs from "dayjs";
2120

2221
import type { DAGRunResponse } from "openapi/requests/types.gen";
2322
import { StateBadge } from "src/components/StateBadge";
2423
import Time from "src/components/Time";
2524
import { Tooltip } from "src/components/ui";
25+
import { getDuration } from "src/utils";
2626

2727
type Props = {
2828
readonly endDate?: string | null;
@@ -52,9 +52,7 @@ const DagRunInfo = ({ endDate, logicalDate, runAfter, startDate, state }: Props)
5252
End Date: <Time datetime={endDate} />
5353
</Text>
5454
) : undefined}
55-
{Boolean(startDate) ? (
56-
<Text>Duration: {dayjs.duration(dayjs(endDate).diff(startDate)).asSeconds()}s</Text>
57-
) : undefined}
55+
{Boolean(startDate) ? <Text>Duration: {getDuration(startDate, endDate)}</Text> : undefined}
5856
</VStack>
5957
}
6058
>

airflow-core/src/airflow/ui/src/components/DurationChart.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,7 @@ import { Bar } from "react-chartjs-2";
3434

3535
import type { TaskInstanceResponse, DAGRunResponse } from "openapi/requests/types.gen";
3636
import { system } from "src/theme";
37-
import { pluralize } from "src/utils";
38-
import { getDuration } from "src/utils/datetime_utils";
37+
import { pluralize, getDuration } from "src/utils";
3938

4039
ChartJS.register(
4140
CategoryScale,

airflow-core/src/airflow/ui/src/components/TaskInstanceTooltip.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import type {
2525
} from "openapi/requests/types.gen";
2626
import Time from "src/components/Time";
2727
import { Tooltip, type TooltipProps } from "src/components/ui";
28+
import { getDuration } from "src/utils";
2829

2930
type Props = {
3031
readonly taskInstance?: GridTaskInstanceSummary | TaskInstanceHistoryResponse | TaskInstanceResponse;
@@ -47,8 +48,8 @@ const TaskInstanceTooltip = ({ children, positioning, taskInstance, ...rest }: P
4748
End Date: <Time datetime={taskInstance.end_date} />
4849
</Text>
4950
{taskInstance.try_number > 1 && <Text>Try Number: {taskInstance.try_number}</Text>}
50-
{"duration" in taskInstance ? (
51-
<Text>Duration: {taskInstance.duration?.toFixed(2) ?? 0}s</Text>
51+
{"start_date" in taskInstance ? (
52+
<Text>Duration: {getDuration(taskInstance.start_date, taskInstance.end_date)}</Text>
5253
) : undefined}
5354
</Box>
5455
}

airflow-core/src/airflow/ui/src/pages/Dag/Backfills/Backfills.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ const columns: Array<ColumnDef<BackfillResponse>> = [
8989
<Text>
9090
{row.original.completed_at === null
9191
? ""
92-
: `${getDuration(row.original.created_at, row.original.completed_at)}s`}
92+
: getDuration(row.original.created_at, row.original.completed_at)}
9393
</Text>
9494
),
9595
enableSorting: false,

airflow-core/src/airflow/ui/src/pages/DagsList/RecentRuns.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import { Link } from "react-router-dom";
2424
import type { DAGWithLatestDagRunsResponse } from "openapi/requests/types.gen";
2525
import Time from "src/components/Time";
2626
import { Tooltip } from "src/components/ui";
27+
import { getDuration } from "src/utils";
2728

2829
dayjs.extend(duration);
2930

@@ -68,7 +69,7 @@ export const RecentRuns = ({
6869
End Date: <Time datetime={run.end_date} />
6970
</Text>
7071
)}
71-
<Text>Duration: {run.duration.toFixed(2)}s</Text>
72+
<Text>Duration: {getDuration(run.start_date, run.end_date)}</Text>
7273
</Box>
7374
}
7475
key={run.dag_run_id}

airflow-core/src/airflow/ui/src/pages/MappedTaskInstance/Header.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ export const Header = ({
4646
{ label: "Start", value: <Time datetime={taskInstance.start_date} /> },
4747
{ label: "End", value: <Time datetime={taskInstance.end_date} /> },
4848
...(Boolean(taskInstance.start_date)
49-
? [{ label: "Duration", value: `${getDuration(taskInstance.start_date, taskInstance.end_date)}s` }]
49+
? [{ label: "Duration", value: getDuration(taskInstance.start_date, taskInstance.end_date) }]
5050
: []),
5151
];
5252

airflow-core/src/airflow/ui/src/pages/Run/Details.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ export const Details = () => {
9090
</Table.Row>
9191
<Table.Row>
9292
<Table.Cell>Run Duration</Table.Cell>
93-
<Table.Cell>{getDuration(dagRun.start_date, dagRun.end_date)}s</Table.Cell>
93+
<Table.Cell>{getDuration(dagRun.start_date, dagRun.end_date)}</Table.Cell>
9494
</Table.Row>
9595
<Table.Row>
9696
<Table.Cell>Last Scheduling Decision</Table.Cell>

airflow-core/src/airflow/ui/src/pages/Run/Header.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ export const Header = ({
104104
},
105105
{ label: "Start", value: <Time datetime={dagRun.start_date} /> },
106106
{ label: "End", value: <Time datetime={dagRun.end_date} /> },
107-
{ label: "Duration", value: `${getDuration(dagRun.start_date, dagRun.end_date)}s` },
107+
{ label: "Duration", value: getDuration(dagRun.start_date, dagRun.end_date) },
108108
{
109109
label: "Dag Version(s)",
110110
value: (

airflow-core/src/airflow/ui/src/pages/TaskInstance/Details.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ export const Details = () => {
160160
<Table.Cell>Duration</Table.Cell>
161161
<Table.Cell>
162162
{Boolean(tryInstance?.start_date) // eslint-disable-next-line unicorn/no-null
163-
? `${getDuration(tryInstance?.start_date ?? null, tryInstance?.end_date ?? null)}s`
163+
? getDuration(tryInstance?.start_date ?? null, tryInstance?.end_date ?? null)
164164
: ""}
165165
</Table.Cell>
166166
</Table.Row>

airflow-core/src/airflow/ui/src/pages/TaskInstance/Header.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ export const Header = ({
4848
{ label: "Start", value: <Time datetime={taskInstance.start_date} /> },
4949
{ label: "End", value: <Time datetime={taskInstance.end_date} /> },
5050
...(Boolean(taskInstance.start_date)
51-
? [{ label: "Duration", value: `${getDuration(taskInstance.start_date, taskInstance.end_date)}s` }]
51+
? [{ label: "Duration", value: getDuration(taskInstance.start_date, taskInstance.end_date) }]
5252
: []),
5353
{
5454
label: "DAG Version",

0 commit comments

Comments
 (0)