Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions lite_bootstrap/instruments/opentelemetry_instrument.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
7 changes: 3 additions & 4 deletions lite_bootstrap/instruments/pyroscope_instrument.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,20 @@
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:
import pyroscope


@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)
Expand Down
Loading