Skip to content

Commit 62e408e

Browse files
authored
Merge pull request #94 from modern-python/fix/des-2-otel-fields-mixin
refactor: extract OpenTelemetryServiceFieldsConfig mixin
2 parents 85b5535 + 2f28bb6 commit 62e408e

2 files changed

Lines changed: 9 additions & 6 deletions

File tree

‎lite_bootstrap/instruments/opentelemetry_instrument.py‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,17 @@ class InstrumentorWithParams:
3333

3434

3535
@dataclasses.dataclass(kw_only=True, frozen=True)
36-
class OpentelemetryConfig(BaseConfig):
36+
class OpenTelemetryServiceFieldsConfig(BaseConfig):
3737
opentelemetry_service_name: str | None = None
38+
opentelemetry_namespace: str | None = None
39+
40+
41+
@dataclasses.dataclass(kw_only=True, frozen=True)
42+
class OpentelemetryConfig(OpenTelemetryServiceFieldsConfig):
3843
opentelemetry_container_name: str | None = dataclasses.field(
3944
default_factory=lambda: os.environ.get("HOSTNAME") or None
4045
)
4146
opentelemetry_endpoint: str | None = None
42-
opentelemetry_namespace: str | None = None
4347
opentelemetry_insecure: bool = True
4448
opentelemetry_instrumentors: list[typing.Union[InstrumentorWithParams, "BaseInstrumentor"]] = dataclasses.field(
4549
default_factory=list

‎lite_bootstrap/instruments/pyroscope_instrument.py‎

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,20 @@
22
import typing
33

44
from lite_bootstrap import import_checker
5-
from lite_bootstrap.instruments.base import BaseConfig, BaseInstrument
5+
from lite_bootstrap.instruments.base import BaseInstrument
6+
from lite_bootstrap.instruments.opentelemetry_instrument import OpenTelemetryServiceFieldsConfig
67

78

89
if import_checker.is_pyroscope_installed:
910
import pyroscope
1011

1112

1213
@dataclasses.dataclass(kw_only=True, frozen=True)
13-
class PyroscopeConfig(BaseConfig):
14+
class PyroscopeConfig(OpenTelemetryServiceFieldsConfig):
1415
pyroscope_endpoint: str | None = None
1516
pyroscope_sample_rate: int = 100
1617
pyroscope_tags: dict[str, str] = dataclasses.field(default_factory=dict)
1718
pyroscope_additional_params: dict[str, typing.Any] = dataclasses.field(default_factory=dict)
18-
opentelemetry_service_name: str | None = None
19-
opentelemetry_namespace: str | None = None
2019

2120

2221
@dataclasses.dataclass(kw_only=True, slots=True, frozen=True)

0 commit comments

Comments
 (0)