trodo-python 2.10.7__tar.gz → 2.10.8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {trodo_python-2.10.7 → trodo_python-2.10.8}/PKG-INFO +1 -1
- {trodo_python-2.10.7 → trodo_python-2.10.8}/pyproject.toml +1 -1
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/__init__.py +8 -1
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/client.py +3 -1
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/otel/register.py +1 -1
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo_python.egg-info/PKG-INFO +1 -1
- {trodo_python-2.10.7 → trodo_python-2.10.8}/README.md +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/setup.cfg +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/tests/test_anon_distinct_id 2.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/tests/test_anon_distinct_id.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/tests/test_auto_instrument_fixes.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/tests/test_cross_process_session.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/tests/test_end_run.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/tests/test_error_enrichment.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/tests/test_llm_usage_cost.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/tests/test_processor_methods.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/tests/test_register_otel.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/tests/test_start_run.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/tests/test_wrap_agent_unchanged.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/api/__init__.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/api/async_client.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/api/endpoints.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/api/http_client.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/auto/__init__.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/auto/auto_event_manager.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/managers/__init__.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/managers/group_manager.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/managers/people_manager.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/otel/__init__.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/otel/auto_instrument.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/otel/context.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/otel/helpers.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/otel/processor.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/otel/transport.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/otel/wrap_agent.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/queue/__init__.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/queue/batch_flusher.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/queue/event_queue.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/session/__init__.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/session/server_session.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/session/session_manager.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/types.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo/user_context.py +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo_python.egg-info/SOURCES.txt +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo_python.egg-info/dependency_links.txt +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo_python.egg-info/requires.txt +0 -0
- {trodo_python-2.10.7 → trodo_python-2.10.8}/trodo_python.egg-info/top_level.txt +0 -0
|
@@ -40,7 +40,7 @@ Downstream microservice (join the caller's run instead of making a new one):
|
|
|
40
40
|
|
|
41
41
|
from __future__ import annotations
|
|
42
42
|
|
|
43
|
-
__version__ = "2.10.
|
|
43
|
+
__version__ = "2.10.8"
|
|
44
44
|
|
|
45
45
|
from typing import Any, Callable, Dict, List, Optional, Union
|
|
46
46
|
|
|
@@ -132,6 +132,7 @@ def init(
|
|
|
132
132
|
on_error: Optional[Any] = None,
|
|
133
133
|
debug: bool = False,
|
|
134
134
|
auto_instrument: bool = True,
|
|
135
|
+
disable_instrumentations: Optional[List[str]] = None,
|
|
135
136
|
otel_mode: str = "trodo",
|
|
136
137
|
) -> TrodoClient:
|
|
137
138
|
"""Initialise the singleton SDK instance.
|
|
@@ -140,6 +141,11 @@ def init(
|
|
|
140
141
|
Anthropic, OpenAI, LangChain, LlamaIndex, Google Generative AI and
|
|
141
142
|
any other installed opentelemetry-instrumentation-* package, so
|
|
142
143
|
LLM calls emit token/cost spans with no further code.
|
|
144
|
+
|
|
145
|
+
``disable_instrumentations`` turns OFF specific instrumentors by id
|
|
146
|
+
(e.g. ``['openai']`` when LangChain is your primary framework, to avoid
|
|
147
|
+
double-counting the same model call). Mirrors Node's
|
|
148
|
+
``disableInstrumentations``.
|
|
143
149
|
"""
|
|
144
150
|
global _client
|
|
145
151
|
_client = TrodoClient(
|
|
@@ -154,6 +160,7 @@ def init(
|
|
|
154
160
|
on_error=on_error,
|
|
155
161
|
debug=debug,
|
|
156
162
|
auto_instrument=auto_instrument,
|
|
163
|
+
disable_instrumentations=disable_instrumentations,
|
|
157
164
|
otel_mode=otel_mode,
|
|
158
165
|
)
|
|
159
166
|
return _client
|
|
@@ -57,6 +57,7 @@ class TrodoClient:
|
|
|
57
57
|
on_error: Optional[Any] = None,
|
|
58
58
|
debug: bool = False,
|
|
59
59
|
auto_instrument: bool = True,
|
|
60
|
+
disable_instrumentations: Optional[List[str]] = None,
|
|
60
61
|
otel_mode: str = "trodo",
|
|
61
62
|
) -> None:
|
|
62
63
|
if not site_id:
|
|
@@ -100,13 +101,14 @@ class TrodoClient:
|
|
|
100
101
|
import os
|
|
101
102
|
if os.environ.get("TRODO_LEGACY_INIT") == "1":
|
|
102
103
|
# Pre-2.4 escape hatch for one minor version.
|
|
103
|
-
enable_auto_instrument(self._span_processor)
|
|
104
|
+
enable_auto_instrument(self._span_processor, disable=disable_instrumentations)
|
|
104
105
|
else:
|
|
105
106
|
_register_otel(
|
|
106
107
|
site_id=site_id,
|
|
107
108
|
processor=self._span_processor,
|
|
108
109
|
mode=otel_mode,
|
|
109
110
|
endpoint=api_base,
|
|
111
|
+
disable_instrumentations=disable_instrumentations,
|
|
110
112
|
)
|
|
111
113
|
|
|
112
114
|
def _get_span_processor(self) -> TrodoSpanProcessor:
|
|
@@ -93,7 +93,7 @@ def register_otel(
|
|
|
93
93
|
endpoint = (endpoint or "https://sdkapi.trodo.ai").rstrip("/")
|
|
94
94
|
|
|
95
95
|
if mode == "trodo":
|
|
96
|
-
active = enable_auto_instrument(processor)
|
|
96
|
+
active = enable_auto_instrument(processor, disable=disable_instrumentations)
|
|
97
97
|
elif mode == "otlp":
|
|
98
98
|
active = _setup_otlp_mode(
|
|
99
99
|
site_id=site_id,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|