|
17 | 17 | import logging |
18 | 18 | import os |
19 | 19 |
|
20 | | -from opentelemetry._logs import set_logger_provider |
21 | | -from opentelemetry._events import set_event_logger_provider |
22 | 20 | from opentelemetry.environment_variables import ( |
23 | 21 | OTEL_LOGS_EXPORTER, |
24 | 22 | OTEL_METRICS_EXPORTER, |
|
30 | 28 | _DEFAULT_CONFIG as SYSTEM_METRICS_DEFAULT_CONFIG, |
31 | 29 | SystemMetricsInstrumentor, |
32 | 30 | ) |
33 | | -from opentelemetry.semconv.resource import ResourceAttributes |
34 | | -from opentelemetry.sdk._configuration import ( |
35 | | - _OTelSDKConfigurator, |
36 | | - _import_exporters, |
37 | | - _get_exporter_names, |
38 | | - _get_sampler, |
39 | | - _import_sampler, |
40 | | - _get_id_generator, |
41 | | - _import_id_generator, |
42 | | - _init_tracing, |
43 | | - _init_metrics, |
44 | | -) |
45 | | -from opentelemetry.sdk._events import EventLoggerProvider |
46 | | -from opentelemetry.sdk._logs import LoggerProvider, LoggingHandler |
47 | | -from opentelemetry.sdk._logs.export import BatchLogRecordProcessor |
| 31 | +from opentelemetry.sdk._configuration import _OTelSDKConfigurator |
48 | 32 | from opentelemetry.sdk.environment_variables import ( |
49 | 33 | OTEL_METRICS_EXEMPLAR_FILTER, |
50 | 34 | OTEL_EXPERIMENTAL_RESOURCE_DETECTORS, |
51 | 35 | OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE, |
52 | 36 | OTEL_EXPORTER_OTLP_PROTOCOL, |
53 | | - _OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED, |
54 | 37 | ) |
55 | | -from opentelemetry.sdk.resources import Resource |
56 | 38 | from opentelemetry.util._importlib_metadata import EntryPoint |
57 | 39 |
|
58 | 40 | from elasticotel.distro.environment_variables import ELASTIC_OTEL_SYSTEM_METRICS_ENABLED |
|
63 | 45 |
|
64 | 46 |
|
65 | 47 | class ElasticOpenTelemetryConfigurator(_OTelSDKConfigurator): |
66 | | - def _configure(self, **kwargs): |
67 | | - """This is overriden to enable the log machinery (and thus log events) without |
68 | | - attaching the OTel handler to the Python logging module. |
69 | | -
|
70 | | - This code is a simplified version of _initialize_components plus the changes |
71 | | - required to have log events enabled out of the box""" |
72 | | - span_exporters, metric_exporters, log_exporters = _import_exporters( |
73 | | - _get_exporter_names("traces"), |
74 | | - _get_exporter_names("metrics"), |
75 | | - _get_exporter_names("logs"), |
76 | | - ) |
77 | | - sampler_name = _get_sampler() |
78 | | - sampler = _import_sampler(sampler_name) |
79 | | - id_generator_name = _get_id_generator() |
80 | | - id_generator = _import_id_generator(id_generator_name) |
81 | | - |
82 | | - resource_attributes = {} |
83 | | - # populate version if using auto-instrumentation |
84 | | - auto_instrumentation_version = kwargs.get("auto_instrumentation_version") |
85 | | - if auto_instrumentation_version: |
86 | | - resource_attributes[ResourceAttributes.TELEMETRY_AUTO_VERSION] = auto_instrumentation_version |
87 | | - # if env var OTEL_RESOURCE_ATTRIBUTES is given, it will read the service_name |
88 | | - # from the env variable else defaults to "unknown_service" |
89 | | - resource = Resource.create(resource_attributes) |
90 | | - |
91 | | - _init_tracing( |
92 | | - exporters=span_exporters, |
93 | | - id_generator=id_generator, |
94 | | - sampler=sampler, |
95 | | - resource=resource, |
96 | | - ) |
97 | | - _init_metrics(metric_exporters, resource) |
98 | | - |
99 | | - # from here we change the semantics of _OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED from |
100 | | - # controlling all the logging support to just the logging handler. So we can use log events without |
101 | | - # exporting all the logs to OTLP |
102 | | - logger_provider = LoggerProvider(resource=resource) |
103 | | - set_logger_provider(logger_provider) |
104 | | - |
105 | | - for _, exporter_class in log_exporters.items(): |
106 | | - exporter_args = {} |
107 | | - logger_provider.add_log_record_processor(BatchLogRecordProcessor(exporter_class(**exporter_args))) |
108 | | - |
109 | | - setup_logging_handler = ( |
110 | | - os.getenv(_OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED, "false").strip().lower() == "true" |
111 | | - ) |
112 | | - if setup_logging_handler: |
113 | | - handler = LoggingHandler(level=logging.NOTSET, logger_provider=logger_provider) |
114 | | - logging.getLogger().addHandler(handler) |
115 | | - |
116 | | - # now setup the event logger |
117 | | - event_logger_provider = EventLoggerProvider(logger_provider=logger_provider) |
118 | | - set_event_logger_provider(event_logger_provider) |
| 48 | + pass |
119 | 49 |
|
120 | 50 |
|
121 | 51 | class ElasticOpenTelemetryDistro(BaseDistro): |
|
0 commit comments