Skip to main content

Flask instrumentation for OpenTelemetry

Project description

pypi

This library builds on the OpenTelemetry WSGI middleware to track web requests in Flask applications.

Installation

pip install opentelemetry-instrumentation-flask

Configuration

Exclude lists

To exclude certain URLs from being tracked, set the environment variable OTEL_PYTHON_FLASK_EXCLUDED_URLS (or OTEL_PYTHON_EXCLUDED_URLS as fallback) with comma delimited regexes representing which URLs to exclude.

For example,

export OTEL_PYTHON_FLASK_EXCLUDED_URLS="client/.*/info,healthcheck"

will exclude requests such as https://site/client/123/info and https://site/xyz/healthcheck.

You can also pass the comma delimited regexes to the instrument_app method directly:

FlaskInstrumentor().instrument_app(app, excluded_urls="client/.*/info,healthcheck")

Request/Response hooks

Utilize request/reponse hooks to execute custom logic to be performed before/after performing a request. Environ is an instance of WSGIEnvironment (flask.request.environ). Response_headers is a list of key-value (tuples) representing the response headers returned from the response.

def request_hook(span: Span, environ: WSGIEnvironment):
    if span and span.is_recording():
        span.set_attribute("custom_user_attribute_from_request_hook", "some-value")

def response_hook(span: Span, status: str, response_headers: List):
    if span and span.is_recording():
        span.set_attribute("custom_user_attribute_from_response_hook", "some-value")

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

Flask Request object reference: https://flask.palletsprojects.com/en/2.0.x/api/#flask.Request

References

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

Built Distribution

File details

Details for the file opentelemetry-instrumentation-flask-0.30b0.tar.gz.

File metadata

File hashes

Hashes for opentelemetry-instrumentation-flask-0.30b0.tar.gz
Algorithm Hash digest
SHA256 ab964393bcd9ea6c03c3857856ff66b44649f12f11a2330d1d7b515b9e28afe7
MD5 b372a733e326ae207a71a4fb7f5a3cea
BLAKE2b-256 8cb4d21d7308224cb21a4c022b78bfbd0e37beb9858802a81b28da56a826f8ef

See more details on using hashes here.

File details

Details for the file opentelemetry_instrumentation_flask-0.30b0-py3-none-any.whl.

File metadata

File hashes

Hashes for opentelemetry_instrumentation_flask-0.30b0-py3-none-any.whl
Algorithm Hash digest
SHA256 136aaa2816e026baae77db480d93d5f6593aed4ed4618cb8364a6a391b0fd9ff
MD5 486b89758a4b92c7dc0db7a61709c42c
BLAKE2b-256 2ad67c540a47615f4a4299958a23e16cc99e1acd20968c54b856f3aa63c8a34c

See more details on using hashes here.

Supported by

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