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

opentelemetry-instrumentation-flask-0.28b1.tar.gz (12.7 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-flask-0.28b1.tar.gz.

File metadata

  • Download URL: opentelemetry-instrumentation-flask-0.28b1.tar.gz
  • Upload date:
  • Size: 12.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.12

File hashes

Hashes for opentelemetry-instrumentation-flask-0.28b1.tar.gz
Algorithm Hash digest
SHA256 641a1ce02922d03463972db070a952c2497b12a7e600529cead54c8285d14578
MD5 5dc4be1fbc2a39ddf18155942adf27e6
BLAKE2b-256 68bd0a192325a53b36277bad9197505275ea54382919d36d17ce3ba95e2f467b

See more details on using hashes here.

File details

Details for the file opentelemetry_instrumentation_flask-0.28b1-py3-none-any.whl.

File metadata

  • Download URL: opentelemetry_instrumentation_flask-0.28b1-py3-none-any.whl
  • Upload date:
  • Size: 12.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.12

File hashes

Hashes for opentelemetry_instrumentation_flask-0.28b1-py3-none-any.whl
Algorithm Hash digest
SHA256 612188d595aad9f73858107be4020e381eb3fef931b0dbb4751e5448bec3f64b
MD5 6d2c44ee80763c2ee519c41c182e51f6
BLAKE2b-256 be9504669540a3db108e74c2526cd05949b2fecfffd8fbadb53f65aa893c08d8

See more details on using hashes here.

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