diff --git a/README.md b/README.md index b931df6..8be588d 100644 --- a/README.md +++ b/README.md @@ -429,6 +429,7 @@ Parameters description: - `opentelemetry_instrumentors` - a list of extra instrumentors. - `opentelemetry_exclude_urls` - list of ignored urls. - `opentelemetry_log_traces` - traces will be logged to stdout. +- `opentelemetry_generate_health_check_spans` - generate spans for health check handlers if `True` These settings are subsequently passed to [opentelemetry](https://opentelemetry.io/), finalizing your Opentelemetry integration. diff --git a/microbootstrap/instruments/opentelemetry_instrument.py b/microbootstrap/instruments/opentelemetry_instrument.py index ca93f3c..962d1bd 100644 --- a/microbootstrap/instruments/opentelemetry_instrument.py +++ b/microbootstrap/instruments/opentelemetry_instrument.py @@ -66,6 +66,7 @@ class OpentelemetryConfig(BaseInstrumentConfig): ], ) opentelemetry_log_traces: bool = False + opentelemetry_generate_health_check_spans: bool = True @typing.runtime_checkable @@ -169,7 +170,11 @@ def bootstrap(self) -> None: class OpentelemetryInstrument(BaseOpentelemetryInstrument[OpentelemetryConfig]): def define_exclude_urls(self) -> list[str]: exclude_urls = [*self.instrument_config.opentelemetry_exclude_urls] - if self.instrument_config.health_checks_path and self.instrument_config.health_checks_path not in exclude_urls: + if ( + not self.instrument_config.opentelemetry_generate_health_check_spans + and self.instrument_config.health_checks_path + and self.instrument_config.health_checks_path not in exclude_urls + ): exclude_urls.append(self.instrument_config.health_checks_path) return exclude_urls diff --git a/tests/conftest.py b/tests/conftest.py index 630fd56..79aeb97 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -102,6 +102,7 @@ def minimal_opentelemetry_config() -> OpentelemetryConfig: opentelemetry_endpoint="/my-engdpoint", opentelemetry_namespace="namespace", opentelemetry_container_name="container-name", + opentelemetry_generate_health_check_spans=False, )