monocle-apptrace 0.3.1__py3-none-any.whl → 0.4.0b1__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.

Files changed (33) hide show
  1. monocle_apptrace/exporters/aws/s3_exporter.py +3 -1
  2. monocle_apptrace/exporters/azure/blob_exporter.py +2 -2
  3. monocle_apptrace/exporters/base_exporter.py +10 -4
  4. monocle_apptrace/exporters/file_exporter.py +19 -4
  5. monocle_apptrace/exporters/monocle_exporters.py +3 -3
  6. monocle_apptrace/exporters/okahu/okahu_exporter.py +5 -2
  7. monocle_apptrace/instrumentation/common/constants.py +5 -1
  8. monocle_apptrace/instrumentation/common/instrumentor.py +24 -13
  9. monocle_apptrace/instrumentation/common/span_handler.py +33 -18
  10. monocle_apptrace/instrumentation/common/utils.py +62 -54
  11. monocle_apptrace/instrumentation/common/wrapper.py +177 -40
  12. monocle_apptrace/instrumentation/common/wrapper_method.py +10 -5
  13. monocle_apptrace/instrumentation/metamodel/aiohttp/__init__.py +0 -0
  14. monocle_apptrace/instrumentation/metamodel/aiohttp/_helper.py +66 -0
  15. monocle_apptrace/instrumentation/metamodel/aiohttp/entities/http.py +51 -0
  16. monocle_apptrace/instrumentation/metamodel/aiohttp/methods.py +13 -0
  17. monocle_apptrace/instrumentation/metamodel/flask/_helper.py +7 -2
  18. monocle_apptrace/instrumentation/metamodel/flask/entities/http.py +0 -1
  19. monocle_apptrace/instrumentation/metamodel/haystack/_helper.py +17 -4
  20. monocle_apptrace/instrumentation/metamodel/haystack/methods.py +8 -1
  21. monocle_apptrace/instrumentation/metamodel/llamaindex/_helper.py +13 -9
  22. monocle_apptrace/instrumentation/metamodel/llamaindex/methods.py +14 -0
  23. monocle_apptrace/instrumentation/metamodel/openai/entities/inference.py +174 -26
  24. monocle_apptrace/instrumentation/metamodel/requests/_helper.py +1 -1
  25. monocle_apptrace/instrumentation/metamodel/teamsai/_helper.py +19 -1
  26. monocle_apptrace/instrumentation/metamodel/teamsai/entities/inference/actionplanner_output_processor.py +1 -1
  27. monocle_apptrace/instrumentation/metamodel/teamsai/entities/inference/teamsai_output_processor.py +24 -18
  28. monocle_apptrace/instrumentation/metamodel/teamsai/methods.py +42 -8
  29. {monocle_apptrace-0.3.1.dist-info → monocle_apptrace-0.4.0b1.dist-info}/METADATA +1 -1
  30. {monocle_apptrace-0.3.1.dist-info → monocle_apptrace-0.4.0b1.dist-info}/RECORD +33 -29
  31. {monocle_apptrace-0.3.1.dist-info → monocle_apptrace-0.4.0b1.dist-info}/WHEEL +0 -0
  32. {monocle_apptrace-0.3.1.dist-info → monocle_apptrace-0.4.0b1.dist-info}/licenses/LICENSE +0 -0
  33. {monocle_apptrace-0.3.1.dist-info → monocle_apptrace-0.4.0b1.dist-info}/licenses/NOTICE +0 -0
@@ -1,71 +1,219 @@
1
+ import logging
2
+ import random
3
+ import time
4
+ from types import SimpleNamespace
1
5
  from monocle_apptrace.instrumentation.metamodel.openai import (
2
6
  _helper,
3
7
  )
4
- from monocle_apptrace.instrumentation.common.utils import resolve_from_alias
8
+ from monocle_apptrace.instrumentation.common.utils import (
9
+ patch_instance_method,
10
+ resolve_from_alias,
11
+ )
12
+
13
+ logger = logging.getLogger(__name__)
14
+
15
+
16
+ def process_stream(to_wrap, response, span_processor):
17
+ waiting_for_first_token = True
18
+ stream_start_time = time.time_ns()
19
+ first_token_time = stream_start_time
20
+ stream_closed_time = None
21
+ accumulated_response = ""
22
+ token_usage = None
23
+ accumulated_temp_list = []
24
+
25
+ if to_wrap and hasattr(response, "__iter__"):
26
+ original_iter = response.__iter__
27
+
28
+ def new_iter(self):
29
+ nonlocal waiting_for_first_token, first_token_time, stream_closed_time, accumulated_response, token_usage
30
+
31
+ for item in original_iter():
32
+ try:
33
+ if (
34
+ item.choices
35
+ and item.choices[0].delta
36
+ and item.choices[0].delta.content
37
+ ):
38
+ if waiting_for_first_token:
39
+ waiting_for_first_token = False
40
+ first_token_time = time.time_ns()
41
+
42
+ accumulated_response += item.choices[0].delta.content
43
+ # token_usage = item.usage
44
+ elif item.object == "chat.completion.chunk" and item.usage:
45
+ # Handle the case where the response is a chunk
46
+ token_usage = item.usage
47
+ stream_closed_time = time.time_ns()
48
+
49
+ except Exception as e:
50
+ logger.warning(
51
+ "Warning: Error occurred while processing item in new_iter: %s",
52
+ str(e),
53
+ )
54
+ finally:
55
+ accumulated_temp_list.append(item)
56
+ yield item
57
+
58
+ if span_processor:
59
+ ret_val = SimpleNamespace(
60
+ type="stream",
61
+ timestamps={
62
+ "data.input": int(stream_start_time),
63
+ "data.output": int(first_token_time),
64
+ "metadata": int(stream_closed_time or time.time_ns()),
65
+ },
66
+ output_text=accumulated_response,
67
+ usage=token_usage,
68
+ )
69
+ span_processor(ret_val)
70
+
71
+ patch_instance_method(response, "__iter__", new_iter)
72
+
73
+ if to_wrap and hasattr(response, "__aiter__"):
74
+ original_iter = response.__aiter__
75
+
76
+ async def new_aiter(self):
77
+ nonlocal waiting_for_first_token, first_token_time, stream_closed_time, accumulated_response, token_usage
78
+
79
+ async for item in original_iter():
80
+ try:
81
+ if (
82
+ item.choices
83
+ and item.choices[0].delta
84
+ and item.choices[0].delta.content
85
+ ):
86
+ if waiting_for_first_token:
87
+ waiting_for_first_token = False
88
+ first_token_time = time.time_ns()
89
+
90
+ accumulated_response += item.choices[0].delta.content
91
+ # token_usage = item.usage
92
+ elif item.object == "chat.completion.chunk" and item.usage:
93
+ # Handle the case where the response is a chunk
94
+ token_usage = item.usage
95
+ stream_closed_time = time.time_ns()
96
+
97
+ except Exception as e:
98
+ logger.warning(
99
+ "Warning: Error occurred while processing item in new_aiter: %s",
100
+ str(e),
101
+ )
102
+ finally:
103
+ accumulated_temp_list.append(item)
104
+ yield item
105
+
106
+ if span_processor:
107
+ ret_val = SimpleNamespace(
108
+ type="stream",
109
+ timestamps={
110
+ "data.input": int(stream_start_time),
111
+ "data.output": int(first_token_time),
112
+ "metadata": int(stream_closed_time or time.time_ns()),
113
+ },
114
+ output_text=accumulated_response,
115
+ usage=token_usage,
116
+ )
117
+ span_processor(ret_val)
118
+
119
+ patch_instance_method(response, "__aiter__", new_aiter)
120
+
5
121
 
6
122
  INFERENCE = {
7
123
  "type": "inference",
124
+ "is_auto_close": lambda kwargs: kwargs.get("stream", False) is False,
125
+ "response_processor": process_stream,
8
126
  "attributes": [
9
127
  [
10
128
  {
11
129
  "_comment": "provider type ,name , deployment , inference_endpoint",
12
130
  "attribute": "type",
13
- "accessor": lambda arguments: 'inference.' + (_helper.get_inference_type(arguments['instance'])) or 'openai'
131
+ "accessor": lambda arguments: "inference."
132
+ + (_helper.get_inference_type(arguments["instance"]))
133
+ or "openai",
14
134
  },
15
135
  {
16
136
  "attribute": "provider_name",
17
- "accessor": lambda arguments: _helper.extract_provider_name(arguments['instance'])
137
+ "accessor": lambda arguments: _helper.extract_provider_name(
138
+ arguments["instance"]
139
+ ),
18
140
  },
19
141
  {
20
142
  "attribute": "deployment",
21
- "accessor": lambda arguments: resolve_from_alias(arguments['instance'].__dict__, ['engine', 'azure_deployment', 'deployment_name', 'deployment_id', 'deployment'])
143
+ "accessor": lambda arguments: resolve_from_alias(
144
+ arguments["instance"].__dict__,
145
+ [
146
+ "engine",
147
+ "azure_deployment",
148
+ "deployment_name",
149
+ "deployment_id",
150
+ "deployment",
151
+ ],
152
+ ),
22
153
  },
23
154
  {
24
155
  "attribute": "inference_endpoint",
25
- "accessor": lambda arguments: resolve_from_alias(arguments['instance'].__dict__, ['azure_endpoint', 'api_base', 'endpoint']) or _helper.extract_inference_endpoint(arguments['instance'])
26
- }
156
+ "accessor": lambda arguments: resolve_from_alias(
157
+ arguments["instance"].__dict__,
158
+ ["azure_endpoint", "api_base", "endpoint"],
159
+ )
160
+ or _helper.extract_inference_endpoint(arguments["instance"]),
161
+ },
27
162
  ],
28
163
  [
29
164
  {
30
165
  "_comment": "LLM Model",
31
166
  "attribute": "name",
32
- "accessor": lambda arguments: resolve_from_alias(arguments['kwargs'], ['model', 'model_name', 'endpoint_name', 'deployment_name'])
167
+ "accessor": lambda arguments: resolve_from_alias(
168
+ arguments["kwargs"],
169
+ ["model", "model_name", "endpoint_name", "deployment_name"],
170
+ ),
33
171
  },
34
172
  {
35
173
  "attribute": "type",
36
- "accessor": lambda arguments: 'model.llm.' + resolve_from_alias(arguments['kwargs'], ['model', 'model_name', 'endpoint_name', 'deployment_name'])
37
- }
38
- ]
174
+ "accessor": lambda arguments: "model.llm."
175
+ + resolve_from_alias(
176
+ arguments["kwargs"],
177
+ ["model", "model_name", "endpoint_name", "deployment_name"],
178
+ ),
179
+ },
180
+ ],
39
181
  ],
40
182
  "events": [
41
- {"name": "data.input",
42
- "attributes": [
43
-
44
- {
45
- "_comment": "this is instruction and user query to LLM",
46
- "attribute": "input",
47
- "accessor": lambda arguments: _helper.extract_messages(arguments['kwargs'])
48
- }
49
- ]
50
- },
183
+ {
184
+ "name": "data.input",
185
+ "attributes": [
186
+ {
187
+ "_comment": "this is instruction and user query to LLM",
188
+ "attribute": "input",
189
+ "accessor": lambda arguments: _helper.extract_messages(
190
+ arguments["kwargs"]
191
+ ),
192
+ }
193
+ ],
194
+ },
51
195
  {
52
196
  "name": "data.output",
53
197
  "attributes": [
54
198
  {
55
199
  "_comment": "this is result from LLM",
56
200
  "attribute": "response",
57
- "accessor": lambda arguments: _helper.extract_assistant_message(arguments['result'])
201
+ "accessor": lambda arguments: _helper.extract_assistant_message(
202
+ arguments["result"]
203
+ ),
58
204
  }
59
- ]
205
+ ],
60
206
  },
61
207
  {
62
208
  "name": "metadata",
63
209
  "attributes": [
64
210
  {
65
211
  "_comment": "this is metadata usage from LLM",
66
- "accessor": lambda arguments: _helper.update_span_from_llm_response(arguments['result'])
212
+ "accessor": lambda arguments: _helper.update_span_from_llm_response(
213
+ arguments["result"]
214
+ ),
67
215
  }
68
- ]
69
- }
70
- ]
216
+ ],
217
+ },
218
+ ],
71
219
  }
@@ -30,7 +30,7 @@ def extract_response(result) -> str:
30
30
  return result.text if hasattr(result, 'text') else str(result)
31
31
 
32
32
  def extract_status(result) -> str:
33
- return f"{result.status_code} {result.reason}"
33
+ return f"{result.status_code}"
34
34
 
35
35
 
36
36
  def request_pre_task_processor(kwargs):
@@ -1,4 +1,10 @@
1
1
  from monocle_apptrace.instrumentation.common.utils import MonocleSpanException
2
+ from monocle_apptrace.instrumentation.common.utils import (
3
+ Option,
4
+ get_keys_as_tuple,
5
+ get_nested_value,
6
+ try_option,
7
+ )
2
8
  def capture_input(arguments):
3
9
  """
4
10
  Captures the input from Teams AI state.
@@ -55,4 +61,16 @@ def status_check(arguments):
55
61
  if hasattr(arguments["result"], "error") and arguments["result"].error is not None:
56
62
  error_msg:str = arguments["result"].error
57
63
  error_code:str = arguments["result"].status if hasattr(arguments["result"], "status") else "unknown"
58
- raise MonocleSpanException(f"Error: {error_code} - {error_msg}")
64
+ raise MonocleSpanException(f"Error: {error_code} - {error_msg}")
65
+
66
+ def extract_provider_name(instance):
67
+ provider_url: Option[str] = try_option(getattr, instance._client.base_url, 'host')
68
+ return provider_url.unwrap_or(None)
69
+
70
+
71
+ def extract_inference_endpoint(instance):
72
+ inference_endpoint: Option[str] = try_option(getattr, instance._client, 'base_url').map(str)
73
+ if inference_endpoint.is_none() and "meta" in instance.client.__dict__:
74
+ inference_endpoint = try_option(getattr, instance.client.meta, 'endpoint_url').map(str)
75
+
76
+ return inference_endpoint.unwrap_or(extract_provider_name(instance))
@@ -2,7 +2,7 @@ from monocle_apptrace.instrumentation.metamodel.teamsai import (
2
2
  _helper,
3
3
  )
4
4
  ACTIONPLANNER_OUTPUT_PROCESSOR = {
5
- "type": "inference",
5
+ "type": "generic",
6
6
  "attributes": [
7
7
  [
8
8
  {
@@ -1,6 +1,7 @@
1
1
  from monocle_apptrace.instrumentation.metamodel.teamsai import (
2
2
  _helper,
3
3
  )
4
+ from monocle_apptrace.instrumentation.common.utils import get_llm_type
4
5
  TEAMAI_OUTPUT_PROCESSOR = {
5
6
  "type": "inference",
6
7
  "attributes": [
@@ -8,15 +9,15 @@ TEAMAI_OUTPUT_PROCESSOR = {
8
9
  {
9
10
  "_comment": "provider type, name, deployment",
10
11
  "attribute": "type",
11
- "accessor": lambda arguments: "teams.openai"
12
+ "accessor": lambda arguments: 'inference.' + (get_llm_type(arguments['instance']._client) or 'generic')
12
13
  },
13
14
  {
14
15
  "attribute": "provider_name",
15
- "accessor": lambda arguments: "Microsoft Teams AI"
16
+ "accessor": lambda arguments: _helper.extract_provider_name(arguments['instance'])
16
17
  },
17
18
  {
18
- "attribute": "deployment",
19
- "accessor": lambda arguments: arguments["instance"]._options.default_model if hasattr(arguments["instance"], "_options") else "unknown"
19
+ "attribute": "inference_endpoint",
20
+ "accessor": lambda arguments: _helper.extract_inference_endpoint(arguments['instance'])
20
21
  }
21
22
  ],
22
23
  [
@@ -25,6 +26,11 @@ TEAMAI_OUTPUT_PROCESSOR = {
25
26
  "attribute": "name",
26
27
  "accessor": lambda arguments: arguments["instance"]._options.default_model if hasattr(arguments["instance"], "_options") else "unknown"
27
28
  },
29
+ {
30
+ "_comment": "LLM Model",
31
+ "attribute": "type",
32
+ "accessor": lambda arguments: 'model.llm.'+ arguments["instance"]._options.default_model if hasattr(arguments["instance"], "_options") else "unknown"
33
+ },
28
34
  {
29
35
  "attribute": "is_streaming",
30
36
  "accessor": lambda arguments: arguments["instance"]._options.stream if hasattr(arguments["instance"], "_options") else False
@@ -52,19 +58,19 @@ TEAMAI_OUTPUT_PROCESSOR = {
52
58
  }
53
59
  ]
54
60
  },
55
- {
56
- "name": "metadata",
57
- "attributes": [
58
- {
59
- "_comment": "metadata from Teams AI response",
60
- "accessor": lambda arguments: {
61
- "prompt_tokens": arguments["result"].get("usage", {}).get("prompt_tokens", 0),
62
- "completion_tokens": arguments["result"].get("usage", {}).get("completion_tokens", 0),
63
- "total_tokens": arguments["result"].get("usage", {}).get("total_tokens", 0),
64
- "latency_ms": arguments.get("latency_ms")
65
- }
66
- }
67
- ]
68
- }
61
+ # {
62
+ # "name": "metadata",
63
+ # "attributes": [
64
+ # {
65
+ # "_comment": "metadata from Teams AI response",
66
+ # "accessor": lambda arguments: {
67
+ # "prompt_tokens": arguments["result"].get("usage", {}).get("prompt_tokens", 0),
68
+ # "completion_tokens": arguments["result"].get("usage", {}).get("completion_tokens", 0),
69
+ # "total_tokens": arguments["result"].get("usage", {}).get("total_tokens", 0),
70
+ # "latency_ms": arguments.get("latency_ms")
71
+ # }
72
+ # }
73
+ # ]
74
+ # }
69
75
  ]
70
76
  }
@@ -1,4 +1,9 @@
1
- from monocle_apptrace.instrumentation.common.wrapper import atask_wrapper, task_wrapper
1
+ from monocle_apptrace.instrumentation.common.wrapper import (
2
+ ascopes_wrapper,
3
+ atask_wrapper,
4
+ task_wrapper,
5
+ ascope_wrapper,
6
+ )
2
7
  from monocle_apptrace.instrumentation.metamodel.teamsai.entities.inference.teamsai_output_processor import (
3
8
  TEAMAI_OUTPUT_PROCESSOR,
4
9
  )
@@ -6,21 +11,50 @@ from monocle_apptrace.instrumentation.metamodel.teamsai.entities.inference.actio
6
11
  ACTIONPLANNER_OUTPUT_PROCESSOR,
7
12
  )
8
13
 
9
- TEAMAI_METHODS =[
14
+
15
+ def get_id(args, kwargs):
16
+ """
17
+ Extracts the ID from the context.
18
+ """
19
+ scopes: dict[str, dict[str:str]] = {}
20
+ context = kwargs.get("context")
21
+ if context and context.activity and context.activity.conversation.id:
22
+ conversation_id = context.activity.conversation.id or ""
23
+ user_aad_object_id = context.activity.from_property.aad_object_id or ""
24
+ user_teams_id = context.activity.from_property.id or ""
25
+ channel_id = context.activity.channel_id or ""
26
+ recipient_id = context.activity.recipient.id or ""
27
+ recipient_aad_object_id = context.activity.recipient.aad_object_id or ""
28
+ scopes[f"teams.conversation.conversation.id"] = conversation_id
29
+ scopes[f"teams.user.from_property.aad_object_id"] = user_aad_object_id
30
+ scopes[f"teams.user.from_property.id"] = user_teams_id
31
+ scopes[f"teams.channel.channel_id"] = channel_id
32
+ scopes[f"teams.channel.recipient.id"] = recipient_id
33
+ scopes[f"teams.channel.recipient.aad_object_id"] = recipient_aad_object_id
34
+
35
+ return scopes
36
+
37
+
38
+ TEAMAI_METHODS = [
10
39
  {
11
40
  "package": "teams.ai.models.openai_model",
12
41
  "object": "OpenAIModel",
13
42
  "method": "complete_prompt",
14
- "span_name": "teamsai.workflow",
15
43
  "wrapper_method": atask_wrapper,
16
- "output_processor": TEAMAI_OUTPUT_PROCESSOR
44
+ "output_processor": TEAMAI_OUTPUT_PROCESSOR,
17
45
  },
18
46
  {
19
47
  "package": "teams.ai.planners.action_planner",
20
48
  "object": "ActionPlanner",
21
49
  "method": "complete_prompt",
22
- "span_name": "teamsai.workflow",
23
50
  "wrapper_method": atask_wrapper,
24
- "output_processor": ACTIONPLANNER_OUTPUT_PROCESSOR
25
- }
26
- ]
51
+ "output_processor": ACTIONPLANNER_OUTPUT_PROCESSOR,
52
+ },
53
+ {
54
+ "package": "teams.ai.planners.action_planner",
55
+ "object": "ActionPlanner",
56
+ "method": "complete_prompt",
57
+ "scope_values": get_id,
58
+ "wrapper_method": ascopes_wrapper,
59
+ },
60
+ ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: monocle_apptrace
3
- Version: 0.3.1
3
+ Version: 0.4.0b1
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
@@ -1,25 +1,29 @@
1
1
  monocle_apptrace/README.md,sha256=T5NFC01bF8VR0oVnAX_n0bhsEtttwqfTxDNAe5Y_ivE,3765
2
2
  monocle_apptrace/__init__.py,sha256=XtoX7gHUSZgkY1nry8IFny8RslPhutZQUuEkqIrBzFQ,30
3
3
  monocle_apptrace/__main__.py,sha256=wBwV0fpwIuj9XSorPRP1MpkHHkZPM9Tg-lIFj1nokkU,609
4
- monocle_apptrace/exporters/base_exporter.py,sha256=Gov_QKp5fonVZ-YdNM2ynoPot7GCaSNmKbCHIP3bDlE,1680
4
+ monocle_apptrace/exporters/base_exporter.py,sha256=xm2MkDjuVZc-vmSXBMMsNMyIoy4z0O4g6wOAyuEnHwo,2062
5
5
  monocle_apptrace/exporters/exporter_processor.py,sha256=-spCIJ_UfJ0fax_jE-ii3ODQBwtnHZgYIGVNd91Q718,6298
6
- monocle_apptrace/exporters/file_exporter.py,sha256=BSEYUb9Z_dascR9i_FL_HxnxnxjyxtR_5teoSjIpZQc,3198
7
- monocle_apptrace/exporters/monocle_exporters.py,sha256=wp4jCjYd_ZgpWZN2rFkPLVvG9Q7nqjaoz2ySStMDEis,2870
8
- monocle_apptrace/exporters/aws/s3_exporter.py,sha256=fvUUuukFM6hIliGqP61WXlVMFbxlIQtMgT3iwjUYDTA,8187
6
+ monocle_apptrace/exporters/file_exporter.py,sha256=KnKXKnrhLv7mXMZlArcz7YTWYBT6YMBYPp5S0aGM1Dg,3723
7
+ monocle_apptrace/exporters/monocle_exporters.py,sha256=qo6S53dp2ko6EzMP-ICL2buqgmw8HZboy19j7iHp1Qk,2882
8
+ monocle_apptrace/exporters/aws/s3_exporter.py,sha256=9GA2tiWOUBLtDdGIdLLyYJEdQ1jRC5SdxxVH3qqR8Qk,8260
9
9
  monocle_apptrace/exporters/aws/s3_exporter_opendal.py,sha256=0aEUxdMgJaDUwqjw0DqlCMr8kjl01KgwUt3_RRCVFds,5917
10
- monocle_apptrace/exporters/azure/blob_exporter.py,sha256=75G8rcISQ0sZCECN2G67-DGFkJGGu2clNyrcoxEm9H8,7371
10
+ monocle_apptrace/exporters/azure/blob_exporter.py,sha256=YqEouaqZQtO8bLF_OIYEAN6XQIwK_XrgtrU-itRQsdM,7285
11
11
  monocle_apptrace/exporters/azure/blob_exporter_opendal.py,sha256=wQUtciyFMD28tpWTiP0-kBjUuxy4LuQSo04aMuHwtb4,7140
12
- monocle_apptrace/exporters/okahu/okahu_exporter.py,sha256=qj7paDHbWbYudH18xanUuxmhOHHlYEVj1kpzK7f2OTY,4601
12
+ monocle_apptrace/exporters/okahu/okahu_exporter.py,sha256=wFkHd87nOXzFMRejrUiO6N0mNIWkxAyRzob6o82lr_c,4765
13
13
  monocle_apptrace/instrumentation/__init__.py,sha256=oa412OuokRm9Vf3XlCJLqpZjz9ZcuxAKxnEBvOK7u2M,21
14
14
  monocle_apptrace/instrumentation/common/__init__.py,sha256=oNEcgw4N36_XzPeN1gc7wxhPjVg-Vhh8EjvUIQZ7pDM,224
15
- monocle_apptrace/instrumentation/common/constants.py,sha256=n_xEv5id2qxmPe0PHgH2TqQ6b-JvYzpN4Y8Vaed-dSo,3001
16
- monocle_apptrace/instrumentation/common/instrumentor.py,sha256=bEyiSaQdpa8JE3Ks06gernG8OhZGzR8ExPMMHEq-0S4,15800
17
- monocle_apptrace/instrumentation/common/span_handler.py,sha256=IENNq8NDaW1mD4j2FxP3rkOz3kGjFxL3jYeEcZr6IBk,10547
15
+ monocle_apptrace/instrumentation/common/constants.py,sha256=14-y6MpJ48NEjUickDlbeHPBXcBdxs2gBVei1aGuGUk,3206
16
+ monocle_apptrace/instrumentation/common/instrumentor.py,sha256=CwQT1oiPyzv_xe8HhdOH7Ucmd18r2Wk3ortOTx6bhpQ,16324
17
+ monocle_apptrace/instrumentation/common/span_handler.py,sha256=9GOV8Q0xiG25qEOhA60K0kLESp8_jnRk8lsjnGKBlgg,11737
18
18
  monocle_apptrace/instrumentation/common/tracing.md,sha256=6Lr8QGxEFHKhj-mMvLV3xjFnplKSs6HEdwl0McPK47M,7577
19
- monocle_apptrace/instrumentation/common/utils.py,sha256=vzRiYfZswdyuCq7I010s-zGJp3_6-eETmJGdk45pZvA,12655
20
- monocle_apptrace/instrumentation/common/wrapper.py,sha256=KjCNssEW_EV_Mv7SYODekh-ovteN53t6O5CdqW8VJMo,4598
21
- monocle_apptrace/instrumentation/common/wrapper_method.py,sha256=jf5l7plLhbEz_GHYn833HABE-fEqXlSzXtxgRUnKqH8,3494
19
+ monocle_apptrace/instrumentation/common/utils.py,sha256=SVOQTnucdYiGbpSxeoY8Y6DXXmY58vEeL21OPVRjhPo,13032
20
+ monocle_apptrace/instrumentation/common/wrapper.py,sha256=IK_Y3qOhAAGH_D1jWZClbvhb0x7SK1zlKTvO1ewahNU,10684
21
+ monocle_apptrace/instrumentation/common/wrapper_method.py,sha256=tty1JdGGF8VnzWeo2rcwvh-ppUgNdNs-CbGOJn7sjN8,3881
22
22
  monocle_apptrace/instrumentation/metamodel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
+ monocle_apptrace/instrumentation/metamodel/aiohttp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
+ monocle_apptrace/instrumentation/metamodel/aiohttp/_helper.py,sha256=h-zrif2vgPL9JbCf1eKHbKBYHAxMdHxOdY-soIDGti8,2361
25
+ monocle_apptrace/instrumentation/metamodel/aiohttp/methods.py,sha256=rcfGoRMLJeu-X2O9fGv6nhhjUrBJALKOJ-axiedavMI,435
26
+ monocle_apptrace/instrumentation/metamodel/aiohttp/entities/http.py,sha256=9mRr8nwUB4DSnFzpU9kwJkShlZbqwIPYztDfDp3_l0s,1701
23
27
  monocle_apptrace/instrumentation/metamodel/anthropic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
28
  monocle_apptrace/instrumentation/metamodel/anthropic/_helper.py,sha256=gnKlf3AlG-yEwX7w3TcWDoRcqKPTa1tiJpWSWu-eirU,2543
25
29
  monocle_apptrace/instrumentation/metamodel/anthropic/methods.py,sha256=WVXoN_i5h9hXjrJV5xF9wIQIpmP_gCN3P8HEPfAsfik,703
@@ -32,12 +36,12 @@ monocle_apptrace/instrumentation/metamodel/botocore/entities/__init__.py,sha256=
32
36
  monocle_apptrace/instrumentation/metamodel/botocore/entities/inference.py,sha256=rAsvhRIR9XYGd8NHTFDJQuiQSTzFoZ4oKeA6kEhK0QQ,2363
33
37
  monocle_apptrace/instrumentation/metamodel/botocore/handlers/botocore_span_handler.py,sha256=8FSdoQSS6DuowF7KHhCRj5kpxYF-bBNR47W1tB-gVh0,1433
34
38
  monocle_apptrace/instrumentation/metamodel/flask/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
- monocle_apptrace/instrumentation/metamodel/flask/_helper.py,sha256=9OlGFeDuhT3g7FGWngM_DAWaDQ_qPHUDCJvXkgCiKZk,2745
39
+ monocle_apptrace/instrumentation/metamodel/flask/_helper.py,sha256=Z0mBGDXP_-DccbCmcyYrXJe4m5JZ1Al-Kfg6582bCa4,3082
36
40
  monocle_apptrace/instrumentation/metamodel/flask/methods.py,sha256=dWCMEDk-HWHiD0vlMoAVYbIFclstmVkUpRrCtqDWyFE,739
37
- monocle_apptrace/instrumentation/metamodel/flask/entities/http.py,sha256=D5XXYBo6_BVgpYTX6ubf53olp5ZHkCE2qeG7rsRLyNg,1553
41
+ monocle_apptrace/instrumentation/metamodel/flask/entities/http.py,sha256=wIudpNk6-DY72k0p90XtvjKt8BilvOd-87Q2iqJnWa8,1525
38
42
  monocle_apptrace/instrumentation/metamodel/haystack/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
- monocle_apptrace/instrumentation/metamodel/haystack/_helper.py,sha256=VgTrKn7rZMcv4OVdVEBI76G-5B0Rux4guiI6Nsso14s,4833
40
- monocle_apptrace/instrumentation/metamodel/haystack/methods.py,sha256=lhkuBPPNliIYGS4AWt3tPXpzFaRVA9IGhtS3rp_iQ8Q,1348
43
+ monocle_apptrace/instrumentation/metamodel/haystack/_helper.py,sha256=47dGZqz1HCe7jj15a-p4UAcRmq1JnzQ7Ijc_RNWMt6g,5396
44
+ monocle_apptrace/instrumentation/metamodel/haystack/methods.py,sha256=Zd70ycMQ5qWsjPXnQL6qoThNKrQA80P6t11sFyEbQR4,1585
41
45
  monocle_apptrace/instrumentation/metamodel/haystack/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
46
  monocle_apptrace/instrumentation/metamodel/haystack/entities/inference.py,sha256=p8zemjFl4kNoDGlOj3PImHQ7imOOjqvYPkVRcQlIU5c,3207
43
47
  monocle_apptrace/instrumentation/metamodel/haystack/entities/retrieval.py,sha256=nq3lsk2qFxXqwrAHsBt8zrh4ZVGAJABkPtylrjUCCqc,2357
@@ -53,8 +57,8 @@ monocle_apptrace/instrumentation/metamodel/langgraph/methods.py,sha256=gnrKhcEPo
53
57
  monocle_apptrace/instrumentation/metamodel/langgraph/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
58
  monocle_apptrace/instrumentation/metamodel/langgraph/entities/inference.py,sha256=OaPeQ8pkyEP5j6ad537MTPp0BdDI7nabxf60u66Dzbk,1659
55
59
  monocle_apptrace/instrumentation/metamodel/llamaindex/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
- monocle_apptrace/instrumentation/metamodel/llamaindex/_helper.py,sha256=5nqG-bSW3-ZEADZcwlHXIhhGZoTZu2a5Sc3Lo_AByeo,6199
57
- monocle_apptrace/instrumentation/metamodel/llamaindex/methods.py,sha256=Ey7Rr_QO4L7TBwFF4o8TgcY7zBRtWPj7sxWJl7cwWzo,2605
60
+ monocle_apptrace/instrumentation/metamodel/llamaindex/_helper.py,sha256=1Rq2sfoLT2L_4w7lMy5tWtGzIgcp9Nbn45nHEKGahMU,6645
61
+ monocle_apptrace/instrumentation/metamodel/llamaindex/methods.py,sha256=p2mDYF_Izgz9M919n3Do5tlc5XRAZt_rnkFRqqIO5yo,3001
58
62
  monocle_apptrace/instrumentation/metamodel/llamaindex/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
63
  monocle_apptrace/instrumentation/metamodel/llamaindex/entities/agent.py,sha256=g7IEwFMLjYvxljX7iHoYSPJW6k-wC7Z3i_y2qlNEZcs,1338
60
64
  monocle_apptrace/instrumentation/metamodel/llamaindex/entities/inference.py,sha256=Hich1AoEHnCUvh0MIISNOjbH9t71eex_IsY_4j3JN5U,2727
@@ -63,21 +67,21 @@ monocle_apptrace/instrumentation/metamodel/openai/__init__.py,sha256=47DEQpj8HBS
63
67
  monocle_apptrace/instrumentation/metamodel/openai/_helper.py,sha256=G_2-FafJGjTY0lU5OXQFNGCP2Z7OmgUMbTgNa37AVec,4256
64
68
  monocle_apptrace/instrumentation/metamodel/openai/methods.py,sha256=gH8ZFN_x1nRM45F4FUVqoj9dao52247MSgOCxtzCpmA,1838
65
69
  monocle_apptrace/instrumentation/metamodel/openai/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
- monocle_apptrace/instrumentation/metamodel/openai/entities/inference.py,sha256=Egpx7ROZvwH6E3hqDWXa1gCXiNijnH3LD0HqQWhfspg,2716
70
+ monocle_apptrace/instrumentation/metamodel/openai/entities/inference.py,sha256=JV6favZumCWBx5GCgirQ-txACeOGzb8N_-SZdSY0nOE,7910
67
71
  monocle_apptrace/instrumentation/metamodel/openai/entities/retrieval.py,sha256=LU7aec302ZqPrs9MzFWU-JTnhK8OpYfgQKMmktlD6-8,1457
68
72
  monocle_apptrace/instrumentation/metamodel/requests/__init__.py,sha256=mg04UgoPzzcH-cPOahYUqN9T-TolZyOZipnBwDg5TP8,250
69
- monocle_apptrace/instrumentation/metamodel/requests/_helper.py,sha256=I1vx9pSlSct05AjPVxlEtX77Dc_CVt3QtJIA1B36-Gc,2001
73
+ monocle_apptrace/instrumentation/metamodel/requests/_helper.py,sha256=GS03VbT9LiGwt4Mz2DPHtxuWd3xhQL4liS9-dfpy9SE,1985
70
74
  monocle_apptrace/instrumentation/metamodel/requests/methods.py,sha256=O7lkglRvV97zqnCu6r2JwvW8WQqi4uvlpmNkAPpXigE,440
71
75
  monocle_apptrace/instrumentation/metamodel/requests/entities/http.py,sha256=TlY4NZtPleewbF5W0qV61L2ByDOf44EOZhKQgwzRIKc,1669
72
76
  monocle_apptrace/instrumentation/metamodel/teamsai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
- monocle_apptrace/instrumentation/metamodel/teamsai/_helper.py,sha256=ZkYLD4TqdhALq_0mYAmTR-cYuvHfKdXQz8_h2FK22ZI,2283
74
- monocle_apptrace/instrumentation/metamodel/teamsai/methods.py,sha256=PUi7bLwP1_WztTCGGGgxbJLjNjviqD3JLWRB2_-MQP8,949
77
+ monocle_apptrace/instrumentation/metamodel/teamsai/_helper.py,sha256=cfay3DXm_JuUgHTfXpJYnY-9xIMH6CURTiQLl9FfMzc,2970
78
+ monocle_apptrace/instrumentation/metamodel/teamsai/methods.py,sha256=i0Rz6Gn_Skey9uuCtJftNfMjGBbMMhuMMQcx7TPYQXU,2214
75
79
  monocle_apptrace/instrumentation/metamodel/teamsai/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
80
  monocle_apptrace/instrumentation/metamodel/teamsai/entities/inference/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
- monocle_apptrace/instrumentation/metamodel/teamsai/entities/inference/actionplanner_output_processor.py,sha256=Y_aFDLgPVu9DA8J2z4DBpo4YpR5q-9FRHUtQOgunYM8,3168
78
- monocle_apptrace/instrumentation/metamodel/teamsai/entities/inference/teamsai_output_processor.py,sha256=G7qdMuHRVv1AQVhE5yceonwcYAlfAc_4iOKmzD3IZt4,2564
79
- monocle_apptrace-0.3.1.dist-info/METADATA,sha256=kmaWh-zKlFT8BG5W6l6PnB-b2vVr9zonkd6vPRbtXcU,6361
80
- monocle_apptrace-0.3.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
81
- monocle_apptrace-0.3.1.dist-info/licenses/LICENSE,sha256=ay9trLiP5I7ZsFXo6AqtkLYdRqe5S9r-DrPOvsNlZrg,9136
82
- monocle_apptrace-0.3.1.dist-info/licenses/NOTICE,sha256=9jn4xtwM_uUetJMx5WqGnhrR7MIhpoRlpokjSTlyt8c,112
83
- monocle_apptrace-0.3.1.dist-info/RECORD,,
81
+ monocle_apptrace/instrumentation/metamodel/teamsai/entities/inference/actionplanner_output_processor.py,sha256=Xh7rRKllIMCvP6sMBZBXP-CP9ERm_Wg4KD2bVRif6vA,3166
82
+ monocle_apptrace/instrumentation/metamodel/teamsai/entities/inference/teamsai_output_processor.py,sha256=nCCqR1H57wL5vuYA2IQQembQjXVGTiBOiom7MEp06dU,2987
83
+ monocle_apptrace-0.4.0b1.dist-info/METADATA,sha256=s6ad8nexvx3FSZ55HSdPsJpnYBXamEvjMozxUYM2CfU,6363
84
+ monocle_apptrace-0.4.0b1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
85
+ monocle_apptrace-0.4.0b1.dist-info/licenses/LICENSE,sha256=ay9trLiP5I7ZsFXo6AqtkLYdRqe5S9r-DrPOvsNlZrg,9136
86
+ monocle_apptrace-0.4.0b1.dist-info/licenses/NOTICE,sha256=9jn4xtwM_uUetJMx5WqGnhrR7MIhpoRlpokjSTlyt8c,112
87
+ monocle_apptrace-0.4.0b1.dist-info/RECORD,,