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.29b0.tar.gz.

File metadata

  • Download URL: opentelemetry-instrumentation-flask-0.29b0.tar.gz
  • Upload date:
  • Size: 13.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/33.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.7.12

File hashes

Hashes for opentelemetry-instrumentation-flask-0.29b0.tar.gz
Algorithm Hash digest
SHA256 acd922c2c445d537ace10b14ee51a5034ab8498d120aaba4fabe23a2877a90bb
MD5 e28b7a496ed71771dbff8eb6ec12d811
BLAKE2b-256 705ac5c642a75d9dd742ae02d69319aa79e1b142d2f1235d9a9b72f72488286a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: opentelemetry_instrumentation_flask-0.29b0-py3-none-any.whl
  • Upload date:
  • Size: 12.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/33.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.7.12

File hashes

Hashes for opentelemetry_instrumentation_flask-0.29b0-py3-none-any.whl
Algorithm Hash digest
SHA256 f534a21c2bd24cecbd809427d7a7b09190f0a38e4fd18d5fa27b3539de628961
MD5 5d4d1cac93f9b6cdf63e9d3c96d00e9a
BLAKE2b-256 35264dd2b7268e58a434b26fca9f34064c9be998ba17fd6cd63c70069a470a3f

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