Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,10 +72,11 @@ jobs:
py311: "3.11"
py312: "3.12"
py313: "3.13"
py314: "3.14"
strategy:
fail-fast: false
matrix:
python-version: [py39, py310, py311, py312, py313]
python-version: [py39, py310, py311, py312, py313, py314]
steps:
- uses: actions/checkout@v6
- name: Set up Python ${{ env[matrix.python-version] }}
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ With EDOT Python you have access to all the features of the OpenTelemetry Python

## Configuration

The distribution supports all the configuration variables from OpenTelemetry Python project version 1.40.0.
The distribution supports all the configuration variables from OpenTelemetry Python project version 1.41.1.

See [Configuration](https://www.elastic.co/docs/reference/opentelemetry/edot-sdks/python/configuration.html) for more details.

Expand Down
40 changes: 20 additions & 20 deletions dev-requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,25 @@
#
# pip-compile --extra=dev --output-file=dev-requirements.txt --strip-extras pyproject.toml
#
build==1.4.2
build==1.4.4
# via pip-tools
certifi==2026.2.25
certifi==2026.4.22
# via requests
charset-normalizer==3.4.7
# via requests
click==8.1.8
# via pip-tools
exceptiongroup==1.3.1
# via pytest
googleapis-common-protos==1.73.1
googleapis-common-protos==1.75.0
# via
# opentelemetry-exporter-otlp-proto-grpc
# opentelemetry-exporter-otlp-proto-http
grpcio==1.80.0
# via
# opentelemetry-exporter-otlp-proto-grpc
# oteltest
idna==3.11
idna==3.15
# via requests
importlib-metadata==8.7.1
# via
Expand All @@ -32,7 +32,7 @@ iniconfig==2.1.0
# via pytest
leb128==1.0.9
# via elastic-opentelemetry (pyproject.toml)
opentelemetry-api==1.40.0
opentelemetry-api==1.41.1
# via
# elastic-opentelemetry (pyproject.toml)
# opentelemetry-exporter-otlp-proto-grpc
Expand All @@ -44,37 +44,37 @@ opentelemetry-api==1.40.0
# opentelemetry-sdk
# opentelemetry-semantic-conventions
# oteltest
opentelemetry-exporter-otlp==1.40.0
opentelemetry-exporter-otlp==1.41.1
# via elastic-opentelemetry (pyproject.toml)
opentelemetry-exporter-otlp-proto-common==1.40.0
opentelemetry-exporter-otlp-proto-common==1.41.1
# via
# opentelemetry-exporter-otlp-proto-grpc
# opentelemetry-exporter-otlp-proto-http
opentelemetry-exporter-otlp-proto-grpc==1.40.0
opentelemetry-exporter-otlp-proto-grpc==1.41.1
# via opentelemetry-exporter-otlp
opentelemetry-exporter-otlp-proto-http==1.40.0
opentelemetry-exporter-otlp-proto-http==1.41.1
# via opentelemetry-exporter-otlp
opentelemetry-instrumentation==0.61b0
opentelemetry-instrumentation==0.62b1
# via
# elastic-opentelemetry (pyproject.toml)
# opentelemetry-instrumentation-system-metrics
opentelemetry-instrumentation-system-metrics==0.61b0
opentelemetry-instrumentation-system-metrics==0.62b1
# via elastic-opentelemetry (pyproject.toml)
opentelemetry-opamp-client==0.2b0
# via elastic-opentelemetry (pyproject.toml)
opentelemetry-proto==1.40.0
opentelemetry-proto==1.41.1
# via
# opentelemetry-exporter-otlp-proto-common
# opentelemetry-exporter-otlp-proto-grpc
# opentelemetry-exporter-otlp-proto-http
# oteltest
opentelemetry-resource-detector-azure==0.1.5
# via elastic-opentelemetry (pyproject.toml)
opentelemetry-resource-detector-containerid==0.61b0
opentelemetry-resource-detector-containerid==0.62b1
# via elastic-opentelemetry (pyproject.toml)
opentelemetry-resourcedetector-gcp==1.8.0a0
# via elastic-opentelemetry (pyproject.toml)
opentelemetry-sdk==1.40.0
opentelemetry-sdk==1.41.1
# via
# elastic-opentelemetry (pyproject.toml)
# opentelemetry-exporter-otlp-proto-grpc
Expand All @@ -85,14 +85,14 @@ opentelemetry-sdk==1.40.0
# opentelemetry-sdk-extension-aws
opentelemetry-sdk-extension-aws==2.1.0
# via elastic-opentelemetry (pyproject.toml)
opentelemetry-semantic-conventions==0.61b0
opentelemetry-semantic-conventions==0.62b1
# via
# elastic-opentelemetry (pyproject.toml)
# opentelemetry-instrumentation
# opentelemetry-sdk
oteltest==0.24.0
# via elastic-opentelemetry (pyproject.toml)
packaging==26.0
packaging==26.2
# via
# build
# elastic-opentelemetry (pyproject.toml)
Expand Down Expand Up @@ -140,15 +140,15 @@ typing-extensions==4.15.0
# opentelemetry-semantic-conventions
urllib3==2.6.3
# via requests
uuid-utils==0.14.1
uuid-utils==0.15.0
# via
# elastic-opentelemetry (pyproject.toml)
# opentelemetry-opamp-client
wheel==0.46.3
wheel==0.47.0
# via pip-tools
wrapt==1.17.3
wrapt==2.1.2
# via opentelemetry-instrumentation
zipp==3.23.0
zipp==3.23.1
# via importlib-metadata

# The following packages are considered to be unsafe in a requirements file:
Expand Down
1 change: 0 additions & 1 deletion docs/reference/edot-python/supported-technologies.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@ Instrumentations are not installed by default. Use the [edot-bootstrap](/referen
| [opentelemetry-instrumentation-asyncio](https://github.com/open-telemetry/opentelemetry-python-contrib/tree/main/instrumentation/opentelemetry-instrumentation-asyncio) | `asyncio` | development | `opentelemetry.instrumentation.asyncio` |
| [opentelemetry-instrumentation-asyncpg](https://github.com/open-telemetry/opentelemetry-python-contrib/tree/main/instrumentation/opentelemetry-instrumentation-asyncpg) | `asyncpg >= 0.12.0` | development | `opentelemetry.instrumentation.asyncpg` |
| [opentelemetry-instrumentation-aws-lambda](https://github.com/open-telemetry/opentelemetry-python-contrib/tree/main/instrumentation/opentelemetry-instrumentation-aws-lambda) | | development | `opentelemetry.instrumentation.aws_lambda` |
| [opentelemetry-instrumentation-boto](https://github.com/open-telemetry/opentelemetry-python-contrib/tree/main/instrumentation/opentelemetry-instrumentation-boto) | `boto~=2.0` | development | `opentelemetry.instrumentation.boto` |
| [opentelemetry-instrumentation-boto3sqs](https://github.com/open-telemetry/opentelemetry-python-contrib/tree/main/instrumentation/opentelemetry-instrumentation-boto3sqs) | `boto3 ~= 1.0` | development | `opentelemetry.instrumentation.boto3sqs` |
| [opentelemetry-instrumentation-botocore](https://github.com/open-telemetry/opentelemetry-python-contrib/tree/main/instrumentation/opentelemetry-instrumentation-botocore) | `botocore ~= 1.0` | development | `opentelemetry.instrumentation.botocore`, `opentelemetry.instrumentation.botocore.bedrock-runtime`, `opentelemetry.instrumentation.botocore.dynamodb`, `opentelemetry.instrumentation.botocore.lambda`, `opentelemetry.instrumentation.botocore.secreatsmanager`, `opentelemetry.instrumentation.botocore.stepfunctions`, `opentelemetry.instrumentation.botocore.sns`, `opentelemetry.instrumentation.botocore.sqs` |
| [opentelemetry-instrumentation-cassandra](https://github.com/open-telemetry/opentelemetry-python-contrib/tree/main/instrumentation/opentelemetry-instrumentation-cassandra) | `cassandra-driver ~= 3.25`,`scylla-driver ~= 3.25` | development | `opentelemetry.instrumentation.cassandra` |
Expand Down
107 changes: 53 additions & 54 deletions operator/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,59 +1,58 @@
opentelemetry-exporter-prometheus==0.61b0
opentelemetry-exporter-prometheus==0.62b1

opentelemetry-propagator-aws-xray==1.0.2
opentelemetry-propagator-b3==1.40.0
opentelemetry-propagator-jaeger==1.40.0
opentelemetry-propagator-ot-trace==0.61b0
opentelemetry-propagator-b3==1.41.1
opentelemetry-propagator-jaeger==1.41.1
opentelemetry-propagator-ot-trace==0.62b1

opentelemetry-instrumentation-aio-pika==0.61b0
opentelemetry-instrumentation-aiohttp-client==0.61b0
opentelemetry-instrumentation-aiohttp-server==0.61b0
opentelemetry-instrumentation-aiokafka==0.61b0
opentelemetry-instrumentation-aiopg==0.61b0
opentelemetry-instrumentation-asgi==0.61b0
opentelemetry-instrumentation-asyncclick==0.61b0
opentelemetry-instrumentation-asyncio==0.61b0
opentelemetry-instrumentation-asyncpg==0.61b0
opentelemetry-instrumentation-boto==0.61b0
opentelemetry-instrumentation-boto3sqs==0.61b0
opentelemetry-instrumentation-botocore==0.61b0
opentelemetry-instrumentation-cassandra==0.61b0
opentelemetry-instrumentation-celery==0.61b0
opentelemetry-instrumentation-click==0.61b0
opentelemetry-instrumentation-confluent-kafka==0.61b0
opentelemetry-instrumentation-dbapi==0.61b0
opentelemetry-instrumentation-django==0.61b0
opentelemetry-instrumentation-elasticsearch==0.61b0
opentelemetry-instrumentation-falcon==0.61b0
opentelemetry-instrumentation-fastapi==0.61b0
opentelemetry-instrumentation-flask==0.61b0
opentelemetry-instrumentation-grpc==0.61b0
opentelemetry-instrumentation-httpx==0.61b0
opentelemetry-instrumentation-jinja2==0.61b0
opentelemetry-instrumentation-kafka-python==0.61b0
opentelemetry-instrumentation-logging==0.61b0
opentelemetry-instrumentation-mysql==0.61b0
opentelemetry-instrumentation-mysqlclient==0.61b0
opentelemetry-instrumentation-pika==0.61b0
opentelemetry-instrumentation-psycopg==0.61b0
opentelemetry-instrumentation-psycopg2==0.61b0
opentelemetry-instrumentation-pymemcache==0.61b0
opentelemetry-instrumentation-pymongo==0.61b0
opentelemetry-instrumentation-pymssql==0.61b0
opentelemetry-instrumentation-pymysql==0.61b0
opentelemetry-instrumentation-pyramid==0.61b0
opentelemetry-instrumentation-redis==0.61b0
opentelemetry-instrumentation-remoulade==0.61b0
opentelemetry-instrumentation-requests==0.61b0
opentelemetry-instrumentation-sqlalchemy==0.61b0
opentelemetry-instrumentation-sqlite3==0.61b0
opentelemetry-instrumentation-starlette==0.61b0
opentelemetry-instrumentation-system-metrics==0.61b0
opentelemetry-instrumentation-threading==0.61b0
opentelemetry-instrumentation-tornado==0.61b0
opentelemetry-instrumentation-tortoiseorm==0.61b0
opentelemetry-instrumentation-urllib==0.61b0
opentelemetry-instrumentation-urllib3==0.61b0
opentelemetry-instrumentation-wsgi==0.61b0
opentelemetry-instrumentation-aio-pika==0.62b1
opentelemetry-instrumentation-aiohttp-client==0.62b1
opentelemetry-instrumentation-aiohttp-server==0.62b1
opentelemetry-instrumentation-aiokafka==0.62b1
opentelemetry-instrumentation-aiopg==0.62b1
opentelemetry-instrumentation-asgi==0.62b1
opentelemetry-instrumentation-asyncclick==0.62b1
opentelemetry-instrumentation-asyncio==0.62b1
opentelemetry-instrumentation-asyncpg==0.62b1
opentelemetry-instrumentation-boto3sqs==0.62b1
opentelemetry-instrumentation-botocore==0.62b1
opentelemetry-instrumentation-cassandra==0.62b1
opentelemetry-instrumentation-celery==0.62b1
opentelemetry-instrumentation-click==0.62b1
opentelemetry-instrumentation-confluent-kafka==0.62b1
opentelemetry-instrumentation-dbapi==0.62b1
opentelemetry-instrumentation-django==0.62b1
opentelemetry-instrumentation-elasticsearch==0.62b1
opentelemetry-instrumentation-falcon==0.62b1
opentelemetry-instrumentation-fastapi==0.62b1
opentelemetry-instrumentation-flask==0.62b1
opentelemetry-instrumentation-grpc==0.62b1
opentelemetry-instrumentation-httpx==0.62b1
opentelemetry-instrumentation-jinja2==0.62b1
opentelemetry-instrumentation-kafka-python==0.62b1
opentelemetry-instrumentation-logging==0.62b1
opentelemetry-instrumentation-mysql==0.62b1
opentelemetry-instrumentation-mysqlclient==0.62b1
opentelemetry-instrumentation-pika==0.62b1
opentelemetry-instrumentation-psycopg==0.62b1
opentelemetry-instrumentation-psycopg2==0.62b1
opentelemetry-instrumentation-pymemcache==0.62b1
opentelemetry-instrumentation-pymongo==0.62b1
opentelemetry-instrumentation-pymssql==0.62b1
opentelemetry-instrumentation-pymysql==0.62b1
opentelemetry-instrumentation-pyramid==0.62b1
opentelemetry-instrumentation-redis==0.62b1
opentelemetry-instrumentation-remoulade==0.62b1
opentelemetry-instrumentation-requests==0.62b1
opentelemetry-instrumentation-sqlalchemy==0.62b1
opentelemetry-instrumentation-sqlite3==0.62b1
opentelemetry-instrumentation-starlette==0.62b1
opentelemetry-instrumentation-system-metrics==0.62b1
opentelemetry-instrumentation-threading==0.62b1
opentelemetry-instrumentation-tornado==0.62b1
opentelemetry-instrumentation-tortoiseorm==0.62b1
opentelemetry-instrumentation-urllib==0.62b1
opentelemetry-instrumentation-urllib3==0.62b1
opentelemetry-instrumentation-wsgi==0.62b1

elastic-opentelemetry-instrumentation-openai==1.2.0
14 changes: 7 additions & 7 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,16 @@ classifiers = [
]

dependencies = [
"opentelemetry-api == 1.40.0",
"opentelemetry-exporter-otlp == 1.40.0",
"opentelemetry-instrumentation == 0.61b0",
"opentelemetry-instrumentation-system-metrics == 0.61b0",
"opentelemetry-api == 1.41.1",
"opentelemetry-exporter-otlp == 1.41.1",
"opentelemetry-instrumentation == 0.62b1",
"opentelemetry-instrumentation-system-metrics == 0.62b1",
"opentelemetry-resourcedetector-gcp ~= 1.8.0a0",
"opentelemetry-resource-detector-azure ~= 0.1.5",
"opentelemetry-resource-detector-containerid == 0.61b0",
"opentelemetry-sdk == 1.40.0",
"opentelemetry-resource-detector-containerid == 0.62b1",
"opentelemetry-sdk == 1.41.1",
"opentelemetry-sdk-extension-aws ~= 2.1.0",
"opentelemetry-semantic-conventions == 0.61b0",
"opentelemetry-semantic-conventions == 0.62b1",
"opentelemetry-opamp-client == 0.2b0",
"packaging",
"uuid-utils",
Expand Down
16 changes: 10 additions & 6 deletions src/elasticotel/distro/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,9 @@
from opentelemetry._opamp.proto import opamp_pb2 as opamp_pb2
from opentelemetry.sdk._logs import LoggingHandler
from opentelemetry.sdk.environment_variables import OTEL_LOG_LEVEL, OTEL_TRACES_SAMPLER_ARG
from opentelemetry.sdk.trace import _TracerConfig, _TracerConfiguratorRulesT, _scope_name_matches_glob
from opentelemetry.sdk.trace import _TracerConfig
from opentelemetry.sdk.util._configurator import ConfiguratorRulesT
from opentelemetry.sdk.util.instrumentation import _scope_name_matches_glob


logger = logging.getLogger(__name__)
Expand Down Expand Up @@ -205,7 +207,7 @@ def _handle_sampling_rate(remote_config) -> ConfigUpdate:
return ConfigUpdate()


def _rules_from_deactivate_instrumentations(csv: str) -> _TracerConfiguratorRulesT:
def _rules_from_deactivate_instrumentations(csv: str) -> ConfiguratorRulesT:
patterns = [pattern.strip() for pattern in csv.split(",") if pattern.strip()]
if not patterns:
return []
Expand All @@ -226,12 +228,14 @@ def _handle_deactivate_instrumentations(remote_config) -> ConfigUpdate:

rules = _rules_from_deactivate_instrumentations(config_deactivate_instrumentations)
current_tracer_configurator = tracer_configurator._get_tracer_configurator()
rules_updated = current_tracer_configurator.update_rules(rules)
try:
rules_changed = current_tracer_configurator.rules_changed(rules)
except AttributeError:
rules_changed = True
current_tracer_configurator.update_rules(rules)
# if the rules did not change we are fine
if not rules_updated:
if not rules_changed:
return ConfigUpdate()
# when rules are updated we need to clear the cache of the tracer_configurator function
tracer_configurator._updatable_tracer_configurator.cache_clear()

set_tracer_configurator(tracer_configurator=tracer_configurator._updatable_tracer_configurator)
logger.debug('Updated deactivate instrumentations to "%s".', config_deactivate_instrumentations)
Expand Down
Loading
Loading