Skip to content

Commit b525c0f

Browse files
committed
Add customizer to auto instrumentation code.
1 parent ad2fe81 commit b525c0f

File tree

4 files changed

+21
-1
lines changed

4 files changed

+21
-1
lines changed

opentelemetry-distro/pyproject.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ otlp = [
4040
[project.entry-points.opentelemetry_configurator]
4141
configurator = "opentelemetry.distro:OpenTelemetryConfigurator"
4242

43+
[project.entry-points.opentelemetry_customizer]
44+
customizer = "opentelemetry.distro:OpenTelemetryCustomizer"
45+
4346
[project.entry-points.opentelemetry_distro]
4447
distro = "opentelemetry.distro:OpenTelemetryDistro"
4548

opentelemetry-distro/src/opentelemetry/distro/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
OTEL_METRICS_EXPORTER,
2020
OTEL_TRACES_EXPORTER,
2121
)
22+
from opentelemetry.sdk._config_customizer import _BaseConfiguratorCustomizer
2223
from opentelemetry.instrumentation.distro import BaseDistro
2324
from opentelemetry.sdk._configuration import _OTelSDKConfigurator
2425
from opentelemetry.sdk.environment_variables import OTEL_EXPORTER_OTLP_PROTOCOL
@@ -27,6 +28,8 @@
2728
class OpenTelemetryConfigurator(_OTelSDKConfigurator):
2829
pass
2930

31+
class OpenTelemetryCustomizer(_BaseConfiguratorCustomizer):
32+
pass
3033

3134
class OpenTelemetryDistro(BaseDistro):
3235
"""

opentelemetry-instrumentation/src/opentelemetry/instrumentation/auto_instrumentation/_load.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
from opentelemetry.instrumentation.environment_variables import (
2424
OTEL_PYTHON_CONFIGURATOR,
2525
OTEL_PYTHON_DISABLED_INSTRUMENTATIONS,
26+
OTEL_PYTHON_CUSTOMIZER,
2627
OTEL_PYTHON_DISTRO,
2728
)
2829
from opentelemetry.instrumentation.version import __version__
@@ -133,6 +134,14 @@ def _load_instrumentors(distro):
133134

134135

135136
def _load_configurators():
137+
customizer = None
138+
if environ.get(OTEL_PYTHON_CUSTOMIZER, None):
139+
for entry_point in entry_points(
140+
group="opentelemetry_customizer",
141+
name=environ.get(OTEL_PYTHON_CUSTOMIZER),
142+
):
143+
customizer = entry_point.load()()
144+
break
136145
configurator_name = environ.get(OTEL_PYTHON_CONFIGURATOR, None)
137146
configured = None
138147
for entry_point in entry_points(group="opentelemetry_configurator"):
@@ -149,7 +158,8 @@ def _load_configurators():
149158
or configurator_name == entry_point.name
150159
):
151160
entry_point.load()().configure(
152-
auto_instrumentation_version=__version__
161+
auto_instrumentation_version=__version__,
162+
customizer=customizer,
153163
) # type: ignore
154164
configured = entry_point.name
155165
else:

opentelemetry-instrumentation/src/opentelemetry/instrumentation/environment_variables.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,7 @@
2626
"""
2727
.. envvar:: OTEL_PYTHON_CONFIGURATOR
2828
"""
29+
OTEL_PYTHON_CUSTOMIZER = "OTEL_PYTHON_CUSTOMIZER"
30+
"""
31+
.. envvar:: OTEL_PYTHON_CUSTOMIZER
32+
"""

0 commit comments

Comments
 (0)