Skip to content

Commit 48ec419

Browse files
authored
fix: use log level info for rust-core fallback (#75)
1 parent e0f8fdc commit 48ec419

File tree

1 file changed

+35
-8
lines changed

1 file changed

+35
-8
lines changed

drift/core/drift_sdk.py

Lines changed: 35 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import json
66
import logging
77
import os
8+
import platform
89
import random
910
import stat
1011
import time
@@ -17,10 +18,11 @@
1718
from opentelemetry.trace import SpanKind as OTelSpanKind
1819

1920
from ..instrumentation.registry import install_hooks
21+
from ..version import SDK_VERSION
2022
from .communication.communicator import CommunicatorConfig, ProtobufCommunicator
2123
from .communication.types import MockRequestInput, MockResponseOutput
2224
from .config import TuskConfig, TuskFileConfig, load_tusk_config
23-
from .logger import LogLevel, configure_logger
25+
from .logger import LogLevel, configure_logger, get_log_level
2426
from .sampling import should_sample, validate_sampling_rate
2527
from .trace_blocking_manager import TraceBlockingManager, should_block_span
2628
from .tracing import TdSpanAttributes, TdSpanExporter, TdSpanExporterConfig
@@ -99,13 +101,40 @@ def _log_rust_core_startup_status() -> None:
99101
logger.info("Rust core path enabled at startup (env=%s, reason=%s).", env_display, status["reason"])
100102
return
101103

102-
logger.warning(
103-
"Rust core path requested but binding unavailable; falling back to Python path (env=%s, reason=%s, error=%s).",
104+
logger.info(
105+
"Rust core path unavailable at startup; using Python path instead (env=%s, reason=%s, error=%s).",
104106
env_display,
105107
status["reason"],
106108
status["binding_error"],
107109
)
108110

111+
def _log_startup_summary(self, env: str, use_remote_export: bool) -> None:
112+
service_name = (
113+
self.file_config.service.name
114+
if self.file_config and self.file_config.service and self.file_config.service.name
115+
else "unknown"
116+
)
117+
service_id = (
118+
self.file_config.service.id
119+
if self.file_config and self.file_config.service and self.file_config.service.id
120+
else "<unset>"
121+
)
122+
123+
logger.info(
124+
"SDK initialized successfully (version=%s, mode=%s, env=%s, service=%s, serviceId=%s, exportSpans=%s, samplingRate=%s, logLevel=%s, runtime=python %s, platform=%s/%s).",
125+
SDK_VERSION,
126+
self.mode,
127+
env,
128+
service_name,
129+
service_id,
130+
use_remote_export,
131+
self._sampling_rate,
132+
get_log_level(),
133+
platform.python_version(),
134+
platform.system().lower(),
135+
platform.machine().lower(),
136+
)
137+
109138
@classmethod
110139
def initialize(
111140
cls,
@@ -216,8 +245,6 @@ def initialize(
216245
export_spans_enabled and effective_api_key is not None and effective_observable_service_id is not None
217246
)
218247

219-
from ..version import SDK_VERSION as sdk_version
220-
221248
exporter_config = TdSpanExporterConfig(
222249
base_directory=base_dir,
223250
mode=instance.mode,
@@ -226,7 +253,7 @@ def initialize(
226253
api_key=effective_api_key,
227254
tusk_backend_base_url=effective_backend_url,
228255
environment=env,
229-
sdk_version=sdk_version,
256+
sdk_version=SDK_VERSION,
230257
sdk_instance_id=instance._sdk_instance_id,
231258
)
232259
instance.span_exporter = TdSpanExporter(exporter_config)
@@ -236,7 +263,7 @@ def initialize(
236263
resource = Resource.create(
237264
{
238265
"service.name": service_name,
239-
"service.version": sdk_version,
266+
"service.version": SDK_VERSION,
240267
"deployment.environment": env,
241268
}
242269
)
@@ -281,7 +308,7 @@ def initialize(
281308
atexit.register(instance.shutdown)
282309

283310
cls._initialized = True
284-
logger.info("SDK initialized in %s mode", instance.mode)
311+
instance._log_startup_summary(env=env, use_remote_export=use_remote_export)
285312

286313
return instance
287314

0 commit comments

Comments
 (0)