Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
otel-extensions-pytest
Advanced tools
otel-extensions-pytest
is a pytest plugin that will automatically instrument a pytest-based test session,
wrapping the test session in a span and wrapping each test in a child span.
You can install through pip using:
pip install otel-extensions-pytest
(you may need to run pip
with root permission: sudo pip install otel-extensions-pytest
)
Install via Setuptools.
python setup.py install --user
(or sudo python setup.py install
to install the package for all users)
Enable the plugin by adding
pytest_plugins = ("otel_extensions_pytest",)
to your conftest.py
, or by adding the option -p otel_extensions_pytest
to the pytest command line.
For tracing to be enabled, you need to specify a trace receiver endpoint using the command-line option
--otel-endpoint
or by setting the environment variable OTEL_EXPORTER_OTLP_ENDPOINT
.
e.g. --otel-endpoint http://localhost:4317/
The full set of options are shown here:
Command-line Option | Environment Variable | Description |
---|---|---|
--otel_service_name | OTEL_SERVICE_NAME | Name of resource/service for traces |
--otel_session_name | OTEL_SESSION_NAME | Name of parent session span |
--otel_endpoint | OTEL_EXPORTER_OTLP_ENDPOINT | OTLP Receiver Endpoint |
--otel_protocol | OTEL_EXPORTER_OTLP_PROTOCOL | protocol for OTLP receiver (supported: gprc , http/protobuf , custom ) |
--otel_processor_type | OTEL_PROCESSOR_TYPE | Span Processor type (batch: use BatchSpanProcessor , simple: use SimpleSpanProcessor |
--otel_traceparent | TRACEPARENT | Parent span id. Will be injected into current context (useful when running automated tests using the OpenTelemetry Jenkins plugin) |
n/a | OTEL_EXPORTER_OTLP_CERTIFICATE | path to CA bundle for verifying TLS cert of receiver endpoint |
n/a | OTEL_EXPORTER_CUSTOM_SPAN_EXPORTER_TYPE | Custom span exporter class (needed if protocol set to custom ) |
@instrumented_fixture
decoratorYou can decorate fixtures by using the @instrumented_fixture
decorator. If the fixture is a generator (i.e. has a yield
statement), separate spans will be created for the setup and teardown phases.
from otel_extensions_pytest import instrumented_fixture
# note: all options of pytest.fixture() are supported (autouse, etc)
@instrumented_fixture(scope="function")
def my_fixture():
""" Span is automatically created using `my_fixture` as span name """
return "foo"
@instrumented_fixture(scope="function")
def my_generator_fixture():
# A span named `my_generator_fixture (setup)` is automatically created for this section
time.sleep(5)
yield "foo"
# A span named `my_generator_fixture (teardown)` is automatically created for this section
time.sleep(5)
FAQs
pytest extensions for OpenTelemetry
We found that otel-extensions-pytest 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.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.