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.

@@ -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
- if 'events' in output_processor and 'events' not in skip_processors:
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
- if(get_auto_close_span(to_wrap, kwargs)):
63
- with tracer.start_as_current_span(name) as span:
64
- pre_process_span(name, tracer, handler, add_workflow_span, to_wrap, wrapped, instance, args, kwargs, span, source_path)
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
- def post_process_span_internal(ret_val):
87
- nonlocal handler, to_wrap, wrapped, instance, args, kwargs, span
88
- post_process_span(handler, to_wrap, wrapped, instance, args, kwargs, ret_val, span)
89
- span.end()
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
- span_status = span.status
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
- if(get_auto_close_span(to_wrap, kwargs)):
133
- with tracer.start_as_current_span(name) as span:
134
- pre_process_span(name, tracer, handler, add_workflow_span, to_wrap, wrapped, instance, args, kwargs, span, source_path)
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
- def post_process_span_internal(ret_val):
157
- nonlocal handler, to_wrap, wrapped, instance, args, kwargs, span
158
- post_process_span(handler, to_wrap, wrapped, instance, args, kwargs, ret_val, span)
159
- span.end()
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(response):
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.is_framework_span_in_progess() and self.get_workflow_name_in_progress() == "workflow.teams_ai":
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["result"]
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.0b2
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.35.19; extra == 'aws'
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.49.0; extra == 'dev'
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.34.131; extra == 'dev'
27
- Requires-Dist: chromadb==0.4.22; extra == 'dev'
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-aws==0.1.10; extra == 'dev'
34
- Requires-Dist: langchain-chroma==0.1.1; extra == 'dev'
35
- Requires-Dist: langchain-community==0.2.5; extra == 'dev'
36
- Requires-Dist: langchain-mistralai==0.1.13; extra == 'dev'
37
- Requires-Dist: langchain-openai==0.1.8; extra == 'dev'
38
- Requires-Dist: langchain==0.2.5; extra == 'dev'
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.2.0; extra == 'dev'
42
- Requires-Dist: llama-index-llms-azure-openai==0.1.9; extra == 'dev'
43
- Requires-Dist: llama-index-llms-mistralai==0.1.20; extra == 'dev'
44
- Requires-Dist: llama-index-vector-stores-chroma==0.1.9; extra == 'dev'
45
- Requires-Dist: llama-index-vector-stores-opensearch==0.1.10; extra == 'dev'
46
- Requires-Dist: llama-index==0.10.30; extra == 'dev'
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==8.0.0; extra == 'dev'
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=ajW1hkb_gUefJ5dMOVyXY1GcdHxpFkYajNJrmjq9iVg,12965
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=wAN3J6H5wxQZgOrK31oWyq1mzxLogkG-Du31GoPcPIo,13519
20
- monocle_apptrace/instrumentation/common/wrapper.py,sha256=YF2f7j9Z1RPmY69OwdUIhyR8hCLSEk-xRGWbZlowl3c,12079
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=Z0mBGDXP_-DccbCmcyYrXJe4m5JZ1Al-Kfg6582bCa4,3082
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=8kQhU-QuqQR_SPJs9KKE-32jBJyk2kB91VNtirYX1yI,4878
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=JV6favZumCWBx5GCgirQ-txACeOGzb8N_-SZdSY0nOE,7910
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.0b2.dist-info/METADATA,sha256=Zjevvr0oyO-NM8uz0h5JTcTUNXtHnPV0LrLtiOtZk0E,6413
84
- monocle_apptrace-0.4.0b2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
85
- monocle_apptrace-0.4.0b2.dist-info/licenses/LICENSE,sha256=ay9trLiP5I7ZsFXo6AqtkLYdRqe5S9r-DrPOvsNlZrg,9136
86
- monocle_apptrace-0.4.0b2.dist-info/licenses/NOTICE,sha256=9jn4xtwM_uUetJMx5WqGnhrR7MIhpoRlpokjSTlyt8c,112
87
- monocle_apptrace-0.4.0b2.dist-info/RECORD,,
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,,