Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

pypi

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

Usage

import falcon
from opentelemetry.instrumentation.falcon import FalconInstrumentor

FalconInstrumentor().instrument()

app = falcon.App()

class HelloWorldResource(object):
    def on_get(self, req, resp):
        resp.text = 'Hello World'

app.add_route('/hello', HelloWorldResource())

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:

from opentelemetry.instrumentation.falcon import FalconInstrumentor

def request_hook(span, req):
    pass

def response_hook(span, req, resp):
    pass

FalconInstrumentor().instrument(request_hook=request_hook, response_hook=response_hook)

References

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

opentelemetry_instrumentation_falcon-0.65b0.tar.gz (16.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file opentelemetry_instrumentation_falcon-0.65b0.tar.gz.

File metadata

File hashes

Hashes for opentelemetry_instrumentation_falcon-0.65b0.tar.gz
Algorithm Hash digest
SHA256 494e45cff0cd6e64a35200644715de09e970c66ff8709133e17f87112935a2c9
MD5 2333cdf8cd4721dfc2e3e4547c8e7987
BLAKE2b-256 e83c8f603bc9574c78dace9e4f3bc0016223e1be64a69c670cdfa2a15c12ed07

See more details on using hashes here.

File details

Details for the file opentelemetry_instrumentation_falcon-0.65b0-py3-none-any.whl.

File metadata

File hashes

Hashes for opentelemetry_instrumentation_falcon-0.65b0-py3-none-any.whl
Algorithm Hash digest
SHA256 e4b1a0da28580f66b0d3bcf338c8ab315414d925c57a08abc3efd92571cada70
MD5 640d7bebc8a8b22163e3b6b1c2309013
BLAKE2b-256 760f12f02ea958c7ec482f3e589ed8f9916228edd611cd4f6da9aca195f5ab22

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page