You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by GitBox <gi...@apache.org> on 2022/02/04 12:12:42 UTC

[GitHub] [airflow] aa3pankaj commented on issue #12771: Instrument Airflow with Opentracing/Opentelemetry

aa3pankaj commented on issue #12771:
URL: https://github.com/apache/airflow/issues/12771#issuecomment-1029932364


   @dm03514 thanks, i tried your test code, it is exporting spans successfully.
   But exporting spans directly from tasks would be much useful in terms of tracing different operations like hook execution, api calls etc.
   
   @mjpieters I tried exporting span from a airflow task:
   
   packages:
   apache-airflow==2.1.3
   opentelemetry-api==1.9.1
   opentelemetry-sdk==1.9.1
   opentelemetry-exporter-otlp==1.9.1
   opentelemetry-instrumentation==0.28b1
   
   env variables related to opentelemetry:
   OTEL_TRACES_EXPORTER=otlp
   OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:55680" OTEL_RESOURCE_ATTRIBUTES="service.name=test_airflow_worker"
   OTEL_TRACES_SAMPLER="always_on" 
   
   
   Airflow task:
   
   ```
   from airflow.models import BaseOperator
   from opentelemetry import trace
   from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
   from opentelemetry.sdk.resources import Resource
   from opentelemetry.sdk.trace import TracerProvider
   from opentelemetry.sdk.trace.export import BatchSpanProcessor
   
   
   class TracingTestOperator(BaseOperator): 
   
       def execute(self, context):
   
           resource = Resource(attributes={
               "service.name": "test_airflow_worker"
           })
   
           trace.set_tracer_provider(TracerProvider(resource=resource))
           tracer = trace.get_tracer(__name__)
   
           otlp_exporter = OTLPSpanExporter(endpoint="http://localhost:55680", insecure=True)
   
           span_processor = BatchSpanProcessor(otlp_exporter)
   
           trace.get_tracer_provider().add_span_processor(span_processor)
   
           with tracer.start_as_current_span("test_task_span"):
               print("Hello Airflow!")
   ```
   
   Above code is not exporting spans to the collector, even though collector (otlp) is up.
   Strangely, same code is exporting span successfully when I run it as standalone python (directly invoking execute method).
   
   
   
   
   
   


-- 
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