Qian Yu created AIRFLOW-5444:
--------------------------------

             Summary: action_logging missing important fields such as Dag Id 
and Task Id for POST actions
                 Key: AIRFLOW-5444
                 URL: https://issues.apache.org/jira/browse/AIRFLOW-5444
             Project: Apache Airflow
          Issue Type: Bug
          Components: logging
    Affects Versions: 1.10.5
            Reporter: Qian Yu
            Assignee: Qian Yu


For example, when user admin cleared a task example_bash_operator, the log 
looks like this:
{code:python}
Id      Dttm    Dag Id  Task Id Event   Execution Date  Owner   Extra
78      09-09T02:04:56.663074+00:00     example_bash_operator   graph   admin   
[('dag_id', 'example_bash_operator'), ('root', '')]
77      09-09T02:04:56.606590+00:00     None    clear   admin   []
76      09-09T02:04:55.155144+00:00     None    clear   admin   []
75      09-09T02:04:48.419288+00:00     example_bash_operator   task_instances  
09-08T00:00:00+00:00    admin   [('dag_id', 'example_bash_operator'), 
('execution_date', '2019-09-08T00:00:00+00:00')]
{code}
Some important fields for the event "clear" are not populated: Dag Id, Task Id. 
These fields would have been very helpful for troubleshooting or audit purposes.

The same problem happens for event "failed". It probably happens to many other 
actions too.
{code:python}
Id      Dttm    Dag Id  Task Id Event   Execution Date  Owner   Extra
78      09-09T02:04:56.663074+00:00     example_bash_operator   graph   admin   
[('dag_id', 'example_bash_operator'), ('root', '')]
77      09-09T02:04:56.606590+00:00     None    clear   admin   []
76      09-09T02:04:55.155144+00:00     None    clear   admin   []
75      09-09T02:04:48.419288+00:00     example_bash_operator   task_instances  
09-08T00:00:00+00:00    admin   [('dag_id', 'example_bash_operator'), 
('execution_date', '2019-09-08T00:00:00+00:00')]
{code}
 

For POST actions, the request object looks like this. request.args is empty. 
request.form is what we need to find those fields. So the action_logging 
decorator needs to be fixed to look for request.form when the action is POST.
{code:python}
request.args: 
 ImmutableMultiDict([])
 request.form: 
 ImmutableMultiDict([('task_id', 'run_this_last'), ('execution_date', 
'2019-09-08T00:00:00+00:00'), ('dag_id', 'example_bash_operator'), 
('confirmed', 'true'), ('recursive', 'true'),... ('downstream', 'true'), 
('origin', 'http://localhost:8080/graph?dag_id=example_bash_operator')])
{code}



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to