Uploaded image for project: 'Apache Airflow'
  1. Apache Airflow
  2. AIRFLOW-5444

action_logging missing important fields such as Dag Id and Task Id for POST actions

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: 1.10.5
    • Fix Version/s: 1.10.6
    • Component/s: logging
    • Labels:
      None

      Description

      For example, when user admin cleared a task example_bash_operator, the log looks like this:

      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')]
      

      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.

      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')]
      

       

      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.

      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')])
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                yuqian90 Qian Yu
                Reporter:
                yuqian90 Qian Yu
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: