monocle-apptrace 0.4.0b2__py3-none-any.whl → 0.4.0b3__py3-none-any.whl
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.
Potentially problematic release.
This version of monocle-apptrace might be problematic. Click here for more details.
- monocle_apptrace/instrumentation/common/span_handler.py +7 -5
- monocle_apptrace/instrumentation/common/utils.py +13 -0
- monocle_apptrace/instrumentation/common/wrapper.py +59 -79
- monocle_apptrace/instrumentation/metamodel/flask/_helper.py +1 -1
- monocle_apptrace/instrumentation/metamodel/openai/_helper.py +18 -5
- monocle_apptrace/instrumentation/metamodel/openai/entities/inference.py +11 -1
- {monocle_apptrace-0.4.0b2.dist-info → monocle_apptrace-0.4.0b3.dist-info}/METADATA +21 -18
- {monocle_apptrace-0.4.0b2.dist-info → monocle_apptrace-0.4.0b3.dist-info}/RECORD +11 -11
- {monocle_apptrace-0.4.0b2.dist-info → monocle_apptrace-0.4.0b3.dist-info}/WHEEL +0 -0
- {monocle_apptrace-0.4.0b2.dist-info → monocle_apptrace-0.4.0b3.dist-info}/licenses/LICENSE +0 -0
- {monocle_apptrace-0.4.0b2.dist-info → monocle_apptrace-0.4.0b3.dist-info}/licenses/NOTICE +0 -0
|
@@ -83,10 +83,10 @@ class SpanHandler:
|
|
|
83
83
|
def post_task_processing(self, to_wrap, wrapped, instance, args, kwargs, result, span:Span):
|
|
84
84
|
pass
|
|
85
85
|
|
|
86
|
-
def hydrate_span(self, to_wrap, wrapped, instance, args, kwargs, result, span, ex:Exception = None) -> bool:
|
|
86
|
+
def hydrate_span(self, to_wrap, wrapped, instance, args, kwargs, result, span, parent_span = None, ex:Exception = None) -> bool:
|
|
87
87
|
try:
|
|
88
88
|
detected_error_in_attribute = self.hydrate_attributes(to_wrap, wrapped, instance, args, kwargs, result, span)
|
|
89
|
-
detected_error_in_event = self.hydrate_events(to_wrap, wrapped, instance, args, kwargs, result, span, ex)
|
|
89
|
+
detected_error_in_event = self.hydrate_events(to_wrap, wrapped, instance, args, kwargs, result, span, parent_span, ex)
|
|
90
90
|
if detected_error_in_attribute or detected_error_in_event:
|
|
91
91
|
span.set_attribute(MONOCLE_DETECTED_SPAN_ERROR, True)
|
|
92
92
|
finally:
|
|
@@ -134,18 +134,20 @@ class SpanHandler:
|
|
|
134
134
|
span.set_attribute("entity.count", span_index)
|
|
135
135
|
return detected_error
|
|
136
136
|
|
|
137
|
-
def hydrate_events(self, to_wrap, wrapped, instance, args, kwargs, ret_result, span, ex:Exception=None) -> bool:
|
|
137
|
+
def hydrate_events(self, to_wrap, wrapped, instance, args, kwargs, ret_result, span, parent_span=None, ex:Exception=None) -> bool:
|
|
138
138
|
detected_error:bool = False
|
|
139
139
|
if 'output_processor' in to_wrap and to_wrap["output_processor"] is not None:
|
|
140
140
|
output_processor=to_wrap['output_processor']
|
|
141
141
|
skip_processors:list[str] = self.skip_processor(to_wrap, wrapped, instance, span, args, kwargs) or []
|
|
142
142
|
|
|
143
143
|
arguments = {"instance": instance, "args": args, "kwargs": kwargs, "result": ret_result, "exception":ex}
|
|
144
|
-
|
|
144
|
+
# Process events if they are defined in the output_processor.
|
|
145
|
+
# In case of inference.modelapi skip the event processing unless the span has an exception
|
|
146
|
+
if 'events' in output_processor and ('events' not in skip_processors or ex is not None):
|
|
145
147
|
events = output_processor['events']
|
|
146
148
|
for event in events:
|
|
147
149
|
event_name = event.get("name")
|
|
148
|
-
if 'events.'+event_name in skip_processors:
|
|
150
|
+
if 'events.'+event_name in skip_processors and ex is None:
|
|
149
151
|
continue
|
|
150
152
|
event_attributes = {}
|
|
151
153
|
attributes = event.get("attributes", [])
|
|
@@ -236,6 +236,13 @@ def set_scopes_from_baggage(baggage_context:Context):
|
|
|
236
236
|
scope_name = scope_key[len(MONOCLE_SCOPE_NAME_PREFIX):]
|
|
237
237
|
set_scope(scope_name, scope_value)
|
|
238
238
|
|
|
239
|
+
def get_parent_span() -> Span:
|
|
240
|
+
parent_span: Span = None
|
|
241
|
+
_parent_span_context = get_current()
|
|
242
|
+
if _parent_span_context is not None and _parent_span_context.get(_SPAN_KEY, None):
|
|
243
|
+
parent_span = _parent_span_context.get(_SPAN_KEY, None)
|
|
244
|
+
return parent_span
|
|
245
|
+
|
|
239
246
|
def extract_http_headers(headers) -> object:
|
|
240
247
|
global http_scopes
|
|
241
248
|
trace_context:Context = extract(headers, context=get_current())
|
|
@@ -362,6 +369,12 @@ def get_llm_type(instance):
|
|
|
362
369
|
except:
|
|
363
370
|
pass
|
|
364
371
|
|
|
372
|
+
def get_status(arguments):
|
|
373
|
+
if arguments['exception'] is not None:
|
|
374
|
+
return 'error'
|
|
375
|
+
else:
|
|
376
|
+
return 'success'
|
|
377
|
+
|
|
365
378
|
def get_exception_status_code(arguments):
|
|
366
379
|
if arguments['exception'] is not None and hasattr(arguments['exception'], 'code'):
|
|
367
380
|
return arguments['exception'].code
|
|
@@ -9,7 +9,8 @@ from monocle_apptrace.instrumentation.common.utils import (
|
|
|
9
9
|
set_scopes,
|
|
10
10
|
with_tracer_wrapper,
|
|
11
11
|
set_scope,
|
|
12
|
-
remove_scope
|
|
12
|
+
remove_scope,
|
|
13
|
+
get_parent_span
|
|
13
14
|
)
|
|
14
15
|
from monocle_apptrace.instrumentation.common.constants import WORKFLOW_TYPE_KEY, ADD_NEW_WORKFLOW
|
|
15
16
|
logger = logging.getLogger(__name__)
|
|
@@ -35,10 +36,10 @@ def pre_process_span(name, tracer, handler, add_workflow_span, to_wrap, wrapped,
|
|
|
35
36
|
except Exception as e:
|
|
36
37
|
logger.info(f"Warning: Error occurred in pre_task_processing: {e}")
|
|
37
38
|
|
|
38
|
-
def post_process_span(handler, to_wrap, wrapped, instance, args, kwargs, return_value, span, ex = None):
|
|
39
|
+
def post_process_span(handler, to_wrap, wrapped, instance, args, kwargs, return_value, span, parent_span=None, ex = None):
|
|
39
40
|
if not (SpanHandler.is_root_span(span) or get_value(ADD_NEW_WORKFLOW) == True):
|
|
40
41
|
try:
|
|
41
|
-
handler.hydrate_span(to_wrap, wrapped, instance, args, kwargs, return_value, span, ex)
|
|
42
|
+
handler.hydrate_span(to_wrap, wrapped, instance, args, kwargs, return_value, span, parent_span, ex)
|
|
42
43
|
except Exception as e:
|
|
43
44
|
logger.info(f"Warning: Error occurred in hydrate_span: {e}")
|
|
44
45
|
|
|
@@ -59,45 +60,35 @@ def monocle_wrapper_span_processor(tracer: Tracer, handler: SpanHandler, to_wrap
|
|
|
59
60
|
name = get_span_name(to_wrap, instance)
|
|
60
61
|
return_value = None
|
|
61
62
|
span_status = None
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if SpanHandler.is_root_span(span) or add_workflow_span:
|
|
67
|
-
# Recursive call for the actual span
|
|
68
|
-
return_value, span_status = monocle_wrapper_span_processor(tracer, handler, to_wrap, wrapped, instance, source_path, False, args, kwargs)
|
|
69
|
-
span.set_status(span_status)
|
|
70
|
-
else:
|
|
71
|
-
ex:Exception = None
|
|
72
|
-
try:
|
|
73
|
-
with SpanHandler.workflow_type(to_wrap, span):
|
|
74
|
-
return_value = wrapped(*args, **kwargs)
|
|
75
|
-
except Exception as e:
|
|
76
|
-
ex = e
|
|
77
|
-
raise
|
|
78
|
-
finally:
|
|
79
|
-
post_process_span(handler, to_wrap, wrapped, instance, args, kwargs, return_value, span, ex)
|
|
80
|
-
span_status = span.status
|
|
81
|
-
else:
|
|
82
|
-
span = tracer.start_span(name)
|
|
83
|
-
|
|
63
|
+
auto_close_span = get_auto_close_span(to_wrap, kwargs)
|
|
64
|
+
parent_span = get_parent_span()
|
|
65
|
+
with tracer.start_as_current_span(name, end_on_exit=auto_close_span) as span:
|
|
84
66
|
pre_process_span(name, tracer, handler, add_workflow_span, to_wrap, wrapped, instance, args, kwargs, span, source_path)
|
|
85
67
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
span.
|
|
90
|
-
|
|
91
|
-
try:
|
|
92
|
-
with SpanHandler.workflow_type(to_wrap, span):
|
|
93
|
-
return_value = wrapped(*args, **kwargs)
|
|
94
|
-
finally:
|
|
95
|
-
if to_wrap.get("output_processor") and to_wrap.get("output_processor").get("response_processor"):
|
|
96
|
-
# Process the stream
|
|
97
|
-
to_wrap.get("output_processor").get("response_processor")(to_wrap, return_value, post_process_span_internal)
|
|
98
|
-
else:
|
|
68
|
+
if SpanHandler.is_root_span(span) or add_workflow_span:
|
|
69
|
+
# Recursive call for the actual span
|
|
70
|
+
return_value, span_status = monocle_wrapper_span_processor(tracer, handler, to_wrap, wrapped, instance, source_path, False, args, kwargs)
|
|
71
|
+
span.set_status(span_status)
|
|
72
|
+
if not auto_close_span:
|
|
99
73
|
span.end()
|
|
100
|
-
|
|
74
|
+
else:
|
|
75
|
+
ex:Exception = None
|
|
76
|
+
try:
|
|
77
|
+
with SpanHandler.workflow_type(to_wrap, span):
|
|
78
|
+
return_value = wrapped(*args, **kwargs)
|
|
79
|
+
except Exception as e:
|
|
80
|
+
ex = e
|
|
81
|
+
raise
|
|
82
|
+
finally:
|
|
83
|
+
def post_process_span_internal(ret_val):
|
|
84
|
+
post_process_span(handler, to_wrap, wrapped, instance, args, kwargs, ret_val, span, parent_span ,ex)
|
|
85
|
+
if not auto_close_span:
|
|
86
|
+
span.end()
|
|
87
|
+
if ex is None and not auto_close_span and to_wrap.get("output_processor") and to_wrap.get("output_processor").get("response_processor"):
|
|
88
|
+
to_wrap.get("output_processor").get("response_processor")(to_wrap, return_value, post_process_span_internal)
|
|
89
|
+
else:
|
|
90
|
+
post_process_span_internal(return_value)
|
|
91
|
+
span_status = span.status
|
|
101
92
|
return return_value, span_status
|
|
102
93
|
|
|
103
94
|
def monocle_wrapper(tracer: Tracer, handler: SpanHandler, to_wrap, wrapped, instance, source_path, args, kwargs):
|
|
@@ -129,44 +120,34 @@ async def amonocle_wrapper_span_processor(tracer: Tracer, handler: SpanHandler,
|
|
|
129
120
|
name = get_span_name(to_wrap, instance)
|
|
130
121
|
return_value = None
|
|
131
122
|
span_status = None
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
if SpanHandler.is_root_span(span) or add_workflow_span:
|
|
137
|
-
# Recursive call for the actual span
|
|
138
|
-
return_value, span_status = await amonocle_wrapper_span_processor(tracer, handler, to_wrap, wrapped, instance, source_path, False, args, kwargs)
|
|
139
|
-
span.set_status(span_status)
|
|
140
|
-
else:
|
|
141
|
-
ex:Exception = None
|
|
142
|
-
try:
|
|
143
|
-
with SpanHandler.workflow_type(to_wrap, span):
|
|
144
|
-
return_value = await wrapped(*args, **kwargs)
|
|
145
|
-
except Exception as e:
|
|
146
|
-
ex = e
|
|
147
|
-
raise
|
|
148
|
-
finally:
|
|
149
|
-
post_process_span(handler, to_wrap, wrapped, instance, args, kwargs, return_value, span, ex)
|
|
150
|
-
span_status = span.status
|
|
151
|
-
else:
|
|
152
|
-
span = tracer.start_span(name)
|
|
153
|
-
|
|
123
|
+
auto_close_span = get_auto_close_span(to_wrap, kwargs)
|
|
124
|
+
parent_span = get_parent_span()
|
|
125
|
+
with tracer.start_as_current_span(name, end_on_exit=auto_close_span) as span:
|
|
154
126
|
pre_process_span(name, tracer, handler, add_workflow_span, to_wrap, wrapped, instance, args, kwargs, span, source_path)
|
|
155
127
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
span.
|
|
160
|
-
|
|
161
|
-
try:
|
|
162
|
-
with SpanHandler.workflow_type(to_wrap, span):
|
|
163
|
-
return_value = await wrapped(*args, **kwargs)
|
|
164
|
-
finally:
|
|
165
|
-
if to_wrap.get("output_processor") and to_wrap.get("output_processor").get("response_processor"):
|
|
166
|
-
# Process the stream
|
|
167
|
-
to_wrap.get("output_processor").get("response_processor")(to_wrap, return_value, post_process_span_internal)
|
|
168
|
-
else:
|
|
128
|
+
if SpanHandler.is_root_span(span) or add_workflow_span:
|
|
129
|
+
# Recursive call for the actual span
|
|
130
|
+
return_value, span_status = await amonocle_wrapper_span_processor(tracer, handler, to_wrap, wrapped, instance, source_path, False, args, kwargs)
|
|
131
|
+
span.set_status(span_status)
|
|
132
|
+
if not auto_close_span:
|
|
169
133
|
span.end()
|
|
134
|
+
else:
|
|
135
|
+
ex:Exception = None
|
|
136
|
+
try:
|
|
137
|
+
with SpanHandler.workflow_type(to_wrap, span):
|
|
138
|
+
return_value = await wrapped(*args, **kwargs)
|
|
139
|
+
except Exception as e:
|
|
140
|
+
ex = e
|
|
141
|
+
raise
|
|
142
|
+
finally:
|
|
143
|
+
def post_process_span_internal(ret_val):
|
|
144
|
+
post_process_span(handler, to_wrap, wrapped, instance, args, kwargs, ret_val, span, parent_span,ex)
|
|
145
|
+
if not auto_close_span:
|
|
146
|
+
span.end()
|
|
147
|
+
if ex is None and not auto_close_span and to_wrap.get("output_processor") and to_wrap.get("output_processor").get("response_processor"):
|
|
148
|
+
to_wrap.get("output_processor").get("response_processor")(to_wrap, return_value, post_process_span_internal)
|
|
149
|
+
else:
|
|
150
|
+
post_process_span_internal(return_value)
|
|
170
151
|
span_status = span.status
|
|
171
152
|
return return_value, span.status
|
|
172
153
|
|
|
@@ -229,7 +210,7 @@ async def ascope_wrapper(tracer: Tracer, handler: SpanHandler, to_wrap, wrapped,
|
|
|
229
210
|
@with_tracer_wrapper
|
|
230
211
|
def scopes_wrapper(tracer: Tracer, handler: SpanHandler, to_wrap, wrapped, instance, source_path, args, kwargs):
|
|
231
212
|
scope_values = to_wrap.get('scope_values', None)
|
|
232
|
-
scope_values = evaluate_scope_values(args, kwargs, scope_values)
|
|
213
|
+
scope_values = evaluate_scope_values(args, kwargs, to_wrap, scope_values)
|
|
233
214
|
token = None
|
|
234
215
|
try:
|
|
235
216
|
if scope_values:
|
|
@@ -243,7 +224,7 @@ def scopes_wrapper(tracer: Tracer, handler: SpanHandler, to_wrap, wrapped, insta
|
|
|
243
224
|
@with_tracer_wrapper
|
|
244
225
|
async def ascopes_wrapper(tracer: Tracer, handler: SpanHandler, to_wrap, wrapped, instance, source_path, args, kwargs):
|
|
245
226
|
scope_values = to_wrap.get('scope_values', None)
|
|
246
|
-
scope_values = evaluate_scope_values(args, kwargs, scope_values)
|
|
227
|
+
scope_values = evaluate_scope_values(args, kwargs, to_wrap, scope_values)
|
|
247
228
|
token = None
|
|
248
229
|
try:
|
|
249
230
|
if scope_values:
|
|
@@ -254,7 +235,7 @@ async def ascopes_wrapper(tracer: Tracer, handler: SpanHandler, to_wrap, wrapped
|
|
|
254
235
|
if token:
|
|
255
236
|
remove_scope(token)
|
|
256
237
|
|
|
257
|
-
def evaluate_scope_values(args, kwargs, scope_values):
|
|
238
|
+
def evaluate_scope_values(args, kwargs, to_wrap, scope_values):
|
|
258
239
|
if callable(scope_values):
|
|
259
240
|
try:
|
|
260
241
|
scope_values = scope_values(args, kwargs)
|
|
@@ -263,5 +244,4 @@ def evaluate_scope_values(args, kwargs, scope_values):
|
|
|
263
244
|
scope_values = None
|
|
264
245
|
if isinstance(scope_values, dict):
|
|
265
246
|
return scope_values
|
|
266
|
-
return None
|
|
267
|
-
|
|
247
|
+
return None
|
|
@@ -70,7 +70,7 @@ class FlaskResponseSpanHandler(SpanHandler):
|
|
|
70
70
|
if _parent_span_context is not None:
|
|
71
71
|
parent_span: Span = _parent_span_context.get(_SPAN_KEY, None)
|
|
72
72
|
if parent_span is not None:
|
|
73
|
-
self.hydrate_events(to_wrap, wrapped, instance, args, kwargs, return_value, parent_span)
|
|
73
|
+
self.hydrate_events(to_wrap, wrapped, instance, args, kwargs, return_value, parent_span=parent_span)
|
|
74
74
|
except Exception as e:
|
|
75
75
|
logger.info(f"Failed to propogate flask response: {e}")
|
|
76
76
|
super().post_tracing(to_wrap, wrapped, instance, args, kwargs, return_value)
|
|
@@ -6,11 +6,11 @@ and assistant messages from various input formats.
|
|
|
6
6
|
import logging
|
|
7
7
|
from monocle_apptrace.instrumentation.common.utils import (
|
|
8
8
|
Option,
|
|
9
|
-
get_keys_as_tuple,
|
|
10
|
-
get_nested_value,
|
|
11
9
|
try_option,
|
|
10
|
+
get_exception_message,
|
|
11
|
+
get_parent_span
|
|
12
12
|
)
|
|
13
|
-
from monocle_apptrace.instrumentation.common.span_handler import NonFrameworkSpanHandler
|
|
13
|
+
from monocle_apptrace.instrumentation.common.span_handler import NonFrameworkSpanHandler, WORKFLOW_TYPE_MAP
|
|
14
14
|
|
|
15
15
|
logger = logging.getLogger(__name__)
|
|
16
16
|
|
|
@@ -34,8 +34,11 @@ def extract_messages(kwargs):
|
|
|
34
34
|
return []
|
|
35
35
|
|
|
36
36
|
|
|
37
|
-
def extract_assistant_message(
|
|
37
|
+
def extract_assistant_message(arguments):
|
|
38
38
|
try:
|
|
39
|
+
if arguments["exception"] is not None:
|
|
40
|
+
return get_exception_message(arguments)
|
|
41
|
+
response = arguments["result"]
|
|
39
42
|
if hasattr(response,"output_text") and len(response.output_text):
|
|
40
43
|
return response.output_text
|
|
41
44
|
if response is not None and hasattr(response,"choices") and len(response.choices) >0:
|
|
@@ -117,9 +120,19 @@ def get_inference_type(instance):
|
|
|
117
120
|
return 'openai'
|
|
118
121
|
|
|
119
122
|
class OpenAISpanHandler(NonFrameworkSpanHandler):
|
|
123
|
+
def is_teams_span_in_progress(self) -> bool:
|
|
124
|
+
return self.is_framework_span_in_progess() and self.get_workflow_name_in_progress() == WORKFLOW_TYPE_MAP["teams.ai"]
|
|
125
|
+
|
|
120
126
|
# If openAI is being called by Teams AI SDK, then retain the metadata part of the span events
|
|
121
127
|
def skip_processor(self, to_wrap, wrapped, instance, span, args, kwargs) -> list[str]:
|
|
122
|
-
if self.
|
|
128
|
+
if self.is_teams_span_in_progress():
|
|
123
129
|
return ["attributes", "events.data.input", "events.data.output"]
|
|
124
130
|
else:
|
|
125
131
|
return super().skip_processor(to_wrap, wrapped, instance, span, args, kwargs)
|
|
132
|
+
|
|
133
|
+
def hydrate_events(self, to_wrap, wrapped, instance, args, kwargs, ret_result, span, parent_span=None, ex:Exception=None) -> bool:
|
|
134
|
+
# If openAI is being called by Teams AI SDK, then copy parent
|
|
135
|
+
if self.is_teams_span_in_progress() and ex is None:
|
|
136
|
+
return super().hydrate_events(to_wrap, wrapped, instance, args, kwargs, ret_result, span=parent_span, parent_span=None, ex=ex)
|
|
137
|
+
|
|
138
|
+
return super().hydrate_events(to_wrap, wrapped, instance, args, kwargs, ret_result, span, parent_span=parent_span, ex=ex)
|
|
@@ -8,6 +8,8 @@ from monocle_apptrace.instrumentation.metamodel.openai import (
|
|
|
8
8
|
from monocle_apptrace.instrumentation.common.utils import (
|
|
9
9
|
patch_instance_method,
|
|
10
10
|
resolve_from_alias,
|
|
11
|
+
get_status,
|
|
12
|
+
get_exception_status_code
|
|
11
13
|
)
|
|
12
14
|
|
|
13
15
|
logger = logging.getLogger(__name__)
|
|
@@ -199,8 +201,16 @@ INFERENCE = {
|
|
|
199
201
|
"_comment": "this is result from LLM",
|
|
200
202
|
"attribute": "response",
|
|
201
203
|
"accessor": lambda arguments: _helper.extract_assistant_message(
|
|
202
|
-
arguments
|
|
204
|
+
arguments,
|
|
203
205
|
),
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"attribute": "status",
|
|
209
|
+
"accessor": lambda arguments: get_status(arguments)
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"attribute": "status_code",
|
|
213
|
+
"accessor": lambda arguments: get_exception_status_code(arguments)
|
|
204
214
|
}
|
|
205
215
|
],
|
|
206
216
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: monocle_apptrace
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.0b3
|
|
4
4
|
Summary: package with monocle genAI tracing
|
|
5
5
|
Project-URL: Homepage, https://github.com/monocle2ai/monocle
|
|
6
6
|
Project-URL: Issues, https://github.com/monocle2ai/monocle/issues
|
|
@@ -16,41 +16,44 @@ Requires-Dist: opentelemetry-sdk>=1.21.0
|
|
|
16
16
|
Requires-Dist: requests
|
|
17
17
|
Requires-Dist: wrapt>=1.14.0
|
|
18
18
|
Provides-Extra: aws
|
|
19
|
-
Requires-Dist: boto3==1.
|
|
19
|
+
Requires-Dist: boto3==1.37.24; extra == 'aws'
|
|
20
20
|
Provides-Extra: azure
|
|
21
21
|
Requires-Dist: azure-storage-blob==12.22.0; extra == 'azure'
|
|
22
22
|
Provides-Extra: dev
|
|
23
23
|
Requires-Dist: anthropic-haystack; extra == 'dev'
|
|
24
|
-
Requires-Dist: anthropic==0.
|
|
24
|
+
Requires-Dist: anthropic==0.52.0; extra == 'dev'
|
|
25
25
|
Requires-Dist: azure-storage-blob==12.22.0; extra == 'dev'
|
|
26
|
-
Requires-Dist: boto3==1.
|
|
27
|
-
Requires-Dist: chromadb==0.
|
|
26
|
+
Requires-Dist: boto3==1.37.24; extra == 'dev'
|
|
27
|
+
Requires-Dist: chromadb==1.0.10; extra == 'dev'
|
|
28
28
|
Requires-Dist: datasets==2.20.0; extra == 'dev'
|
|
29
29
|
Requires-Dist: faiss-cpu==1.8.0; extra == 'dev'
|
|
30
30
|
Requires-Dist: flask; extra == 'dev'
|
|
31
31
|
Requires-Dist: haystack-ai==2.3.0; extra == 'dev'
|
|
32
32
|
Requires-Dist: instructorembedding==1.0.1; extra == 'dev'
|
|
33
|
-
Requires-Dist: langchain-
|
|
34
|
-
Requires-Dist: langchain-
|
|
35
|
-
Requires-Dist: langchain-
|
|
36
|
-
Requires-Dist: langchain-
|
|
37
|
-
Requires-Dist: langchain-
|
|
38
|
-
Requires-Dist: langchain==0.
|
|
33
|
+
Requires-Dist: langchain-anthropic==0.3.13; extra == 'dev'
|
|
34
|
+
Requires-Dist: langchain-aws==0.2.23; extra == 'dev'
|
|
35
|
+
Requires-Dist: langchain-chroma==0.2.4; extra == 'dev'
|
|
36
|
+
Requires-Dist: langchain-community==0.3.24; extra == 'dev'
|
|
37
|
+
Requires-Dist: langchain-mistralai==0.2.10; extra == 'dev'
|
|
38
|
+
Requires-Dist: langchain-openai==0.3.18; extra == 'dev'
|
|
39
|
+
Requires-Dist: langchain==0.3.25; extra == 'dev'
|
|
39
40
|
Requires-Dist: langchainhub==0.1.21; extra == 'dev'
|
|
40
41
|
Requires-Dist: langgraph==0.2.68; extra == 'dev'
|
|
41
|
-
Requires-Dist: llama-index-embeddings-huggingface==0.
|
|
42
|
-
Requires-Dist: llama-index-llms-
|
|
43
|
-
Requires-Dist: llama-index-llms-
|
|
44
|
-
Requires-Dist: llama-index-
|
|
45
|
-
Requires-Dist: llama-index-vector-stores-
|
|
46
|
-
Requires-Dist: llama-index==0.
|
|
42
|
+
Requires-Dist: llama-index-embeddings-huggingface==0.5.4; extra == 'dev'
|
|
43
|
+
Requires-Dist: llama-index-llms-anthropic==0.6.19; extra == 'dev'
|
|
44
|
+
Requires-Dist: llama-index-llms-azure-openai==0.3.2; extra == 'dev'
|
|
45
|
+
Requires-Dist: llama-index-llms-mistralai==0.4.0; extra == 'dev'
|
|
46
|
+
Requires-Dist: llama-index-vector-stores-chroma==0.4.1; extra == 'dev'
|
|
47
|
+
Requires-Dist: llama-index-vector-stores-opensearch==0.5.4; extra == 'dev'
|
|
48
|
+
Requires-Dist: llama-index==0.12.37; extra == 'dev'
|
|
47
49
|
Requires-Dist: mistral-haystack==0.0.2; extra == 'dev'
|
|
48
50
|
Requires-Dist: numpy==1.26.4; extra == 'dev'
|
|
49
51
|
Requires-Dist: opendal==0.45.14; extra == 'dev'
|
|
50
52
|
Requires-Dist: opensearch-haystack==1.2.0; extra == 'dev'
|
|
51
53
|
Requires-Dist: opentelemetry-instrumentation-flask; extra == 'dev'
|
|
52
54
|
Requires-Dist: parameterized==0.9.0; extra == 'dev'
|
|
53
|
-
Requires-Dist: pytest==
|
|
55
|
+
Requires-Dist: pytest-asyncio==0.26.0; extra == 'dev'
|
|
56
|
+
Requires-Dist: pytest==8.3.5; extra == 'dev'
|
|
54
57
|
Requires-Dist: requests-aws4auth==1.2.3; extra == 'dev'
|
|
55
58
|
Requires-Dist: sentence-transformers==2.6.1; extra == 'dev'
|
|
56
59
|
Requires-Dist: types-requests==2.31.0.20240106; extra == 'dev'
|
|
@@ -14,10 +14,10 @@ monocle_apptrace/instrumentation/__init__.py,sha256=oa412OuokRm9Vf3XlCJLqpZjz9Zc
|
|
|
14
14
|
monocle_apptrace/instrumentation/common/__init__.py,sha256=oNEcgw4N36_XzPeN1gc7wxhPjVg-Vhh8EjvUIQZ7pDM,224
|
|
15
15
|
monocle_apptrace/instrumentation/common/constants.py,sha256=XxxPUg0tQGQLM12Z3yzLa-shgU8ZZwlAGsFg9MT7mao,3208
|
|
16
16
|
monocle_apptrace/instrumentation/common/instrumentor.py,sha256=CwQT1oiPyzv_xe8HhdOH7Ucmd18r2Wk3ortOTx6bhpQ,16324
|
|
17
|
-
monocle_apptrace/instrumentation/common/span_handler.py,sha256=
|
|
17
|
+
monocle_apptrace/instrumentation/common/span_handler.py,sha256=Js6RBb6pT-GtlAYSlsVIQC2YBar7IKj6SPNF9cqOQ3U,13228
|
|
18
18
|
monocle_apptrace/instrumentation/common/tracing.md,sha256=6Lr8QGxEFHKhj-mMvLV3xjFnplKSs6HEdwl0McPK47M,7577
|
|
19
|
-
monocle_apptrace/instrumentation/common/utils.py,sha256=
|
|
20
|
-
monocle_apptrace/instrumentation/common/wrapper.py,sha256=
|
|
19
|
+
monocle_apptrace/instrumentation/common/utils.py,sha256=oPyUdfBwRCWuxapjtxTd-L4h1Mr6mCDvhSs3do8p0z8,13928
|
|
20
|
+
monocle_apptrace/instrumentation/common/wrapper.py,sha256=NZC0xymn2q6_bFK0d91F0Z-W-YoCmIjOZEm1t1XKSY4,11409
|
|
21
21
|
monocle_apptrace/instrumentation/common/wrapper_method.py,sha256=ig98if45QDU-N76uNAxcb1O7xL8YpwtxJLcb5Dh71bc,4013
|
|
22
22
|
monocle_apptrace/instrumentation/metamodel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
23
23
|
monocle_apptrace/instrumentation/metamodel/aiohttp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -36,7 +36,7 @@ monocle_apptrace/instrumentation/metamodel/botocore/entities/__init__.py,sha256=
|
|
|
36
36
|
monocle_apptrace/instrumentation/metamodel/botocore/entities/inference.py,sha256=rAsvhRIR9XYGd8NHTFDJQuiQSTzFoZ4oKeA6kEhK0QQ,2363
|
|
37
37
|
monocle_apptrace/instrumentation/metamodel/botocore/handlers/botocore_span_handler.py,sha256=8FSdoQSS6DuowF7KHhCRj5kpxYF-bBNR47W1tB-gVh0,1433
|
|
38
38
|
monocle_apptrace/instrumentation/metamodel/flask/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
39
|
-
monocle_apptrace/instrumentation/metamodel/flask/_helper.py,sha256=
|
|
39
|
+
monocle_apptrace/instrumentation/metamodel/flask/_helper.py,sha256=seLVsL5gE3GbjY3Yetgg1WnswhDzb0zEQR05fHf5xTM,3094
|
|
40
40
|
monocle_apptrace/instrumentation/metamodel/flask/methods.py,sha256=dWCMEDk-HWHiD0vlMoAVYbIFclstmVkUpRrCtqDWyFE,739
|
|
41
41
|
monocle_apptrace/instrumentation/metamodel/flask/entities/http.py,sha256=wIudpNk6-DY72k0p90XtvjKt8BilvOd-87Q2iqJnWa8,1525
|
|
42
42
|
monocle_apptrace/instrumentation/metamodel/haystack/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -64,10 +64,10 @@ monocle_apptrace/instrumentation/metamodel/llamaindex/entities/agent.py,sha256=g
|
|
|
64
64
|
monocle_apptrace/instrumentation/metamodel/llamaindex/entities/inference.py,sha256=XJI6CbGdsogQLQC41KEJqkRe1THEN_vu8pA_H5RGNww,2737
|
|
65
65
|
monocle_apptrace/instrumentation/metamodel/llamaindex/entities/retrieval.py,sha256=QBF1nrqog5KHh925jiY2V-kejL6iVLKUowZmqUDoiJ4,1870
|
|
66
66
|
monocle_apptrace/instrumentation/metamodel/openai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
67
|
-
monocle_apptrace/instrumentation/metamodel/openai/_helper.py,sha256=
|
|
67
|
+
monocle_apptrace/instrumentation/metamodel/openai/_helper.py,sha256=KmW1Xbrfw1aWsXrRGtF6bAd2TjblU5i2-X0KVMYHS5M,5682
|
|
68
68
|
monocle_apptrace/instrumentation/metamodel/openai/methods.py,sha256=jpqZyfiJbzMz1r3W3fwMCGiQsbiDSkhqgADJextGxFQ,1796
|
|
69
69
|
monocle_apptrace/instrumentation/metamodel/openai/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
70
|
-
monocle_apptrace/instrumentation/metamodel/openai/entities/inference.py,sha256=
|
|
70
|
+
monocle_apptrace/instrumentation/metamodel/openai/entities/inference.py,sha256=8UdUnKnQsWFPsrKnhNYVRM5ZAMFQl_PZlh67QC_wQ0k,8271
|
|
71
71
|
monocle_apptrace/instrumentation/metamodel/openai/entities/retrieval.py,sha256=LU7aec302ZqPrs9MzFWU-JTnhK8OpYfgQKMmktlD6-8,1457
|
|
72
72
|
monocle_apptrace/instrumentation/metamodel/requests/__init__.py,sha256=mg04UgoPzzcH-cPOahYUqN9T-TolZyOZipnBwDg5TP8,250
|
|
73
73
|
monocle_apptrace/instrumentation/metamodel/requests/_helper.py,sha256=GS03VbT9LiGwt4Mz2DPHtxuWd3xhQL4liS9-dfpy9SE,1985
|
|
@@ -80,8 +80,8 @@ monocle_apptrace/instrumentation/metamodel/teamsai/entities/__init__.py,sha256=4
|
|
|
80
80
|
monocle_apptrace/instrumentation/metamodel/teamsai/entities/inference/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
81
81
|
monocle_apptrace/instrumentation/metamodel/teamsai/entities/inference/actionplanner_output_processor.py,sha256=6rb75bFKh_hvgD8dJzcIeXeJjLjhm9nXuxHI3F-icqo,2405
|
|
82
82
|
monocle_apptrace/instrumentation/metamodel/teamsai/entities/inference/teamsai_output_processor.py,sha256=M5uPEbP5c57txrd7BDRXhK5rvRJfyNyvqavtkXuPjXU,2738
|
|
83
|
-
monocle_apptrace-0.4.
|
|
84
|
-
monocle_apptrace-0.4.
|
|
85
|
-
monocle_apptrace-0.4.
|
|
86
|
-
monocle_apptrace-0.4.
|
|
87
|
-
monocle_apptrace-0.4.
|
|
83
|
+
monocle_apptrace-0.4.0b3.dist-info/METADATA,sha256=pJPcqamcOsIMTK6Zhv0JCm57OQu0cJ6gxfZ8HxLjhJs,6592
|
|
84
|
+
monocle_apptrace-0.4.0b3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
85
|
+
monocle_apptrace-0.4.0b3.dist-info/licenses/LICENSE,sha256=ay9trLiP5I7ZsFXo6AqtkLYdRqe5S9r-DrPOvsNlZrg,9136
|
|
86
|
+
monocle_apptrace-0.4.0b3.dist-info/licenses/NOTICE,sha256=9jn4xtwM_uUetJMx5WqGnhrR7MIhpoRlpokjSTlyt8c,112
|
|
87
|
+
monocle_apptrace-0.4.0b3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|