diff --git a/lite_bootstrap/instruments/opentelemetry_instrument.py b/lite_bootstrap/instruments/opentelemetry_instrument.py index bf80150..88d0333 100644 --- a/lite_bootstrap/instruments/opentelemetry_instrument.py +++ b/lite_bootstrap/instruments/opentelemetry_instrument.py @@ -33,13 +33,17 @@ class InstrumentorWithParams: @dataclasses.dataclass(kw_only=True, frozen=True) -class OpentelemetryConfig(BaseConfig): +class OpenTelemetryServiceFieldsConfig(BaseConfig): opentelemetry_service_name: str | None = None + opentelemetry_namespace: str | None = None + + +@dataclasses.dataclass(kw_only=True, frozen=True) +class OpentelemetryConfig(OpenTelemetryServiceFieldsConfig): opentelemetry_container_name: str | None = dataclasses.field( default_factory=lambda: os.environ.get("HOSTNAME") or None ) opentelemetry_endpoint: str | None = None - opentelemetry_namespace: str | None = None opentelemetry_insecure: bool = True opentelemetry_instrumentors: list[typing.Union[InstrumentorWithParams, "BaseInstrumentor"]] = dataclasses.field( default_factory=list diff --git a/lite_bootstrap/instruments/pyroscope_instrument.py b/lite_bootstrap/instruments/pyroscope_instrument.py index a5f293a..4670390 100644 --- a/lite_bootstrap/instruments/pyroscope_instrument.py +++ b/lite_bootstrap/instruments/pyroscope_instrument.py @@ -2,7 +2,8 @@ import typing from lite_bootstrap import import_checker -from lite_bootstrap.instruments.base import BaseConfig, BaseInstrument +from lite_bootstrap.instruments.base import BaseInstrument +from lite_bootstrap.instruments.opentelemetry_instrument import OpenTelemetryServiceFieldsConfig if import_checker.is_pyroscope_installed: @@ -10,13 +11,11 @@ @dataclasses.dataclass(kw_only=True, frozen=True) -class PyroscopeConfig(BaseConfig): +class PyroscopeConfig(OpenTelemetryServiceFieldsConfig): pyroscope_endpoint: str | None = None pyroscope_sample_rate: int = 100 pyroscope_tags: dict[str, str] = dataclasses.field(default_factory=dict) pyroscope_additional_params: dict[str, typing.Any] = dataclasses.field(default_factory=dict) - opentelemetry_service_name: str | None = None - opentelemetry_namespace: str | None = None @dataclasses.dataclass(kw_only=True, slots=True, frozen=True)