
Research
/Security News
Shai Hulud Strikes Again (v2)
Another wave of Shai-Hulud campaign has hit npm with more than 500 packages and 700+ versions affected.
opentelemetry-instrumentation-falcon
Advanced tools
|pypi|
.. |pypi| image:: https://badge.fury.io/py/opentelemetry-instrumentation-falcon.svg :target: https://pypi.org/project/opentelemetry-instrumentation-falcon/
This library builds on the OpenTelemetry WSGI middleware to track web requests in Falcon applications.
::
pip install opentelemetry-instrumentation-falcon
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
.. code-block:: python
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:
.. code-block:: python
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)
OpenTelemetry Falcon Instrumentation <https://opentelemetry-python-contrib.readthedocs.io/en/latest/instrumentation/falcon/falcon.html>_OpenTelemetry Project <https://opentelemetry.io/>_OpenTelemetry Python Examples <https://github.com/open-telemetry/opentelemetry-python/tree/main/docs/examples>_FAQs
Falcon instrumentation for OpenTelemetry
We found that opentelemetry-instrumentation-falcon demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
Another wave of Shai-Hulud campaign has hit npm with more than 500 packages and 700+ versions affected.

Product
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.

Security News
ENISA has become a CVE Program Root, giving the EU a central authority for coordinating vulnerability reporting, disclosure, and cross-border response.