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.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

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 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