This release is a pre-release and may not be stable for production use.
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
Release files for opentelemetry-instrumentation-falcon 0.65b0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| opentelemetry_instrumentation_falcon-0.65b0.tar.gz | 16.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| opentelemetry_instrumentation_falcon-0.65b0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.1 kB
Release files / opentelemetry_instrumentation_falcon-0.65b0.tar.gz
| Download URL | opentelemetry_instrumentation_falcon-0.65b0.tar.gz |
|---|---|
| Size | 16.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
494e45cff0cd6e64a35200644715de09e970c66ff8709133e17f87112935a2c9
|
|
BLAKE2b-256 checksum How to use checksums |
e83c8f603bc9574c78dace9e4f3bc0016223e1be64a69c670cdfa2a15c12ed07
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.20
|
Release files / opentelemetry_instrumentation_falcon-0.65b0-py3-none-any.whl
| Download URL | opentelemetry_instrumentation_falcon-0.65b0-py3-none-any.whl |
|---|---|
| Size | 13.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e4b1a0da28580f66b0d3bcf338c8ab315414d925c57a08abc3efd92571cada70
|
|
BLAKE2b-256 checksum How to use checksums |
760f12f02ea958c7ec482f3e589ed8f9916228edd611cd4f6da9aca195f5ab22
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.20
|