mirror of
https://github.com/open-telemetry/opentelemetry-python-contrib.git
synced 2025-07-30 21:56:07 +08:00
OpenTelemetry Falcon Tracing ============================ |pypi| .. |pypi| image:: https://badge.fury.io/py/opentelemetry-instrumentation-falcon.svg :target: https://pypi.org/project/opentelemetry-instrumentation-falcon/ This library builds on the OpenTelemetry WSGI middleware to track web requests in Falcon applications. Installation ------------ :: pip install opentelemetry-instrumentation-falcon Configuration ------------- Exclude lists ************* To exclude certain URLs from being tracked, set the environment variable ``OTEL_PYTHON_FALCON_EXCLUDED_URLS`` (or ``OTEL_PYTHON_EXCLUDED_URLS`` as fallback) with comma delimited regexes representing which URLs to exclude. For example, :: export OTEL_PYTHON_FALCON_EXCLUDED_URLS="client/.*/info,healthcheck" will exclude requests such as ``https://site/client/123/info`` and ``https://site/xyz/healthcheck``. Request attributes ******************** To extract certain attributes from Falcon's request object and use them as span attributes, set the environment variable ``OTEL_PYTHON_FALCON_TRACED_REQUEST_ATTRS`` to a comma delimited list of request attribute names. For example, :: export OTEL_PYTHON_FALCON_TRACED_REQUEST_ATTRS='query_string,uri_template' will extract path_info and content_type attributes from every traced request and add them as span attritbues. Falcon Request object reference: https://falcon.readthedocs.io/en/stable/api/request_and_response.html#id1 Request/Response hooks ********************** The instrumentation supports specifying request and response hooks. These are functions that get called back by the instrumentation right after a Span is created for a request and right before the span is finished while processing a response. The hooks can be configured as follows: :: def request_hook(span, req): pass def response_hook(span, req, resp): pass FalconInstrumentation().instrument(request_hook=request_hook, response_hook=response_hook) References ---------- * `OpenTelemetry Falcon Instrumentation <https://opentelemetry-python-contrib.readthedocs.io/en/latest/instrumentation/falcon/falcon.html>`_ * `OpenTelemetry Project <https://opentelemetry.io/>`_ * `OpenTelemetry Python Examples <https://github.com/open-telemetry/opentelemetry-python/tree/main/docs/examples>`_