airflow icon indicating copy to clipboard operation
airflow copied to clipboard

Rendering custom map index before task is run.

Open tomrutter opened this issue 1 year ago • 5 comments

Description

The map_index_template field on a task is used to render a custom name for each individual sub task in a mapped task. It is generated by rendering the task context on the jinja template provided. This rendering happens after the task is completed so it does not appear during or before the task run. The new feature would be to attempt to render and display this field before the task is run (using the context available at the time), with a suitable failback if this is not possible with the context values available.

Use case/motivation

It would be useful to see the custom map index during task runs, when the context information to do so is available. The mapped task index can be used to provide human readable information to distinguish the mapped tasks from one another and would make it easier to track task progress during a dag run.

Related issues

Various issues and PRs have dealt with displaying the custom map index when the task fails.

#39065, #39092, #38902, #39087

Are you willing to submit a PR?

  • [X] Yes I am willing to submit a PR!

Code of Conduct

tomrutter avatar Apr 18 '24 15:04 tomrutter

This is a follow on from #39065 with a narrower scope (just rendering while the task is running) as the other items in that issue have been or will be resolved by the other issues/PRs referenced.

tomrutter avatar Apr 18 '24 15:04 tomrutter

related : https://github.com/apache/airflow/issues/39092

raphaelauv avatar Apr 19 '24 14:04 raphaelauv

@tomrutter Would you like to be assigned?

Given the current design (using a task's context object means we have to wait for the task to start running), I think this might be trickier than meets the eye.

RNHTTR avatar Apr 26 '24 17:04 RNHTTR

since we can define at operator definition the field map_index_template="{{ task.op_kwargs['date'] }}",, it can be render by the webserver

raphaelauv avatar Apr 26 '24 17:04 raphaelauv

Happy to be assigned, but if someone has a clear idea, happy for that to go ahead too.

I’m guessing the big issue with rendering on the webserver is picking up the context added by the task. I’d start with that for now though with failover to rendered value from the task if that exists.

tomrutter avatar Apr 27 '24 09:04 tomrutter

Hi @tomrutter are you working on ?

raphaelauv avatar Jun 22 '24 08:06 raphaelauv