You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by "howardyoo (via GitHub)" <gi...@apache.org> on 2024/08/29 16:34:17 UTC

[PR] Adding DAG import error stack trace as span event in OTEL traces for Airflow [airflow]

howardyoo opened a new pull request, #41865:
URL: https://github.com/apache/airflow/pull/41865

   <!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at
   
      http://www.apache.org/licenses/LICENSE-2.0
   
    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
    -->
   
   closes: #41863 
   
   # Overview
   This PR implements the enhancement proposed by #41863 .
   
   Currently, in OTEL traces for Airflow, the Dag file process manger will produce a span that will tell you which DAG file has import error (import error count), but does not currently contain any details of why the import error happened (e.g. stack trace). When the file processor processes DAG file, it produces stack trace and store into database, which can later be accessed.
   
   # What's enhanced
   When the dag file process manager encounters import error, it will produce span event containing the relative stack trace so that user does not have to navigate into Airflow UI to see the import error separately. The user will be able to check which DAG file caused it, along with type, name, and exception stack trace.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Adding DAG import error stack trace as span event in OTEL traces for Airflow [airflow]

Posted by "howardyoo (via GitHub)" <gi...@apache.org>.
howardyoo commented on code in PR #41865:
URL: https://github.com/apache/airflow/pull/41865#discussion_r1736680343


##########
airflow/dag_processing/manager.py:
##########
@@ -1187,6 +1188,21 @@ def _collect_results_from_processor(self, processor) -> None:
             span.set_attribute("import_errors", count_import_errors)
             if count_import_errors > 0:
                 span.set_attribute("error", True)
+                import_errors = (
+                    session.query(ParseImportError)

Review Comment:
   > Let's use sqlalchemy 2 query here
   
   Hi @ephraimbuddy , how am I be able to use it? Any suggestion code snippet would be nice. The reason being is that I'm not very familiar with coding something in sqlalchemy 2



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Adding DAG import error stack trace as span event in OTEL traces for Airflow [airflow]

Posted by "potiuk (via GitHub)" <gi...@apache.org>.
potiuk merged PR #41865:
URL: https://github.com/apache/airflow/pull/41865


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Adding DAG import error stack trace as span event in OTEL traces for Airflow [airflow]

Posted by "ephraimbuddy (via GitHub)" <gi...@apache.org>.
ephraimbuddy commented on code in PR #41865:
URL: https://github.com/apache/airflow/pull/41865#discussion_r1738024835


##########
airflow/dag_processing/manager.py:
##########
@@ -1187,6 +1188,21 @@ def _collect_results_from_processor(self, processor) -> None:
             span.set_attribute("import_errors", count_import_errors)
             if count_import_errors > 0:
                 span.set_attribute("error", True)
+                import_errors = (
+                    session.query(ParseImportError)
+                    .filter(ParseImportError.filename == processor.file_path)
+                    .all()

Review Comment:
   ```suggestion
                       session.scalars(select(ParseImportError)
                       .where(ParseImportError.filename == processor.file_path))
                       .all()
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Adding DAG import error stack trace as span event in OTEL traces for Airflow [airflow]

Posted by "ephraimbuddy (via GitHub)" <gi...@apache.org>.
ephraimbuddy commented on code in PR #41865:
URL: https://github.com/apache/airflow/pull/41865#discussion_r1736674929


##########
airflow/dag_processing/manager.py:
##########
@@ -1187,6 +1188,21 @@ def _collect_results_from_processor(self, processor) -> None:
             span.set_attribute("import_errors", count_import_errors)
             if count_import_errors > 0:
                 span.set_attribute("error", True)
+                import_errors = (
+                    session.query(ParseImportError)

Review Comment:
   Let's use sqlalchemy 2 query here



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] Adding DAG import error stack trace as span event in OTEL traces for Airflow [airflow]

Posted by "howardyoo (via GitHub)" <gi...@apache.org>.
howardyoo commented on code in PR #41865:
URL: https://github.com/apache/airflow/pull/41865#discussion_r1736680343


##########
airflow/dag_processing/manager.py:
##########
@@ -1187,6 +1188,21 @@ def _collect_results_from_processor(self, processor) -> None:
             span.set_attribute("import_errors", count_import_errors)
             if count_import_errors > 0:
                 span.set_attribute("error", True)
+                import_errors = (
+                    session.query(ParseImportError)

Review Comment:
   > Let's use sqlalchemy 2 query here
   
   Hi @ephraimbuddy , how am I be able to use it? Any suggestion code snippet would be nice.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org