in aws_advanced_python_wrapper/utils/telemetry/default_telemetry_factory.py [0:0]
def __init__(self, properties: Properties):
self._enable_telemetry = WrapperProperties.ENABLE_TELEMETRY.get(properties)
self._telemetry_submit_toplevel = WrapperProperties.TELEMETRY_SUBMIT_TOPLEVEL.get(properties)
self._telemetry_traces_backend = WrapperProperties.TELEMETRY_TRACES_BACKEND.get(properties)
self._telemetry_metrics_backend = WrapperProperties.TELEMETRY_METRICS_BACKEND.get(properties)
self._traces_telemetry_factory: TelemetryFactory
self._metrics_telemetry_factory: TelemetryFactory
if self._enable_telemetry:
if self._telemetry_traces_backend is not None:
traces_backend = self._telemetry_traces_backend.upper()
if traces_backend == "OTLP":
self._traces_telemetry_factory = OpenTelemetryFactory()
elif traces_backend == "XRAY":
self._traces_telemetry_factory = XRayTelemetryFactory()
elif traces_backend == "NONE":
self._traces_telemetry_factory = NullTelemetryFactory()
else:
raise RuntimeError(Messages.get_formatted(
"DefaultTelemetryFactory.InvalidTracingBackend", self._telemetry_traces_backend))
else:
raise RuntimeError(Messages.get_formatted("DefaultTelemetryFactory.NoTracingBackendProvided"))
if self._telemetry_metrics_backend is not None:
metrics_backend = self._telemetry_metrics_backend.upper()
if metrics_backend == "OTLP":
self._metrics_telemetry_factory = OpenTelemetryFactory()
elif metrics_backend == "NONE":
self._metrics_telemetry_factory = NullTelemetryFactory()
else:
raise RuntimeError(Messages.get_formatted(
"DefaultTelemetryFactory.InvalidMetricsBackend", self._telemetry_metrics_backend))
else:
raise RuntimeError(Messages.get_formatted("DefaultTelemetryFactory.NoMetricsBackendProvided"))
else:
self._traces_telemetry_factory = NullTelemetryFactory()
self._metrics_telemetry_factory = NullTelemetryFactory()