@microsoft/agents-a365-observability 0.1.0-preview.30
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.
- package/README.md +33 -0
- package/dist/cjs/ObservabilityBuilder.d.ts +61 -0
- package/dist/cjs/ObservabilityBuilder.d.ts.map +1 -0
- package/dist/cjs/ObservabilityBuilder.js +141 -0
- package/dist/cjs/ObservabilityBuilder.js.map +1 -0
- package/dist/cjs/ObservabilityManager.d.ts +29 -0
- package/dist/cjs/ObservabilityManager.d.ts.map +1 -0
- package/dist/cjs/ObservabilityManager.js +61 -0
- package/dist/cjs/ObservabilityManager.js.map +1 -0
- package/dist/cjs/index.d.ts +10 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +33 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/tracing/constants.d.ts +83 -0
- package/dist/cjs/tracing/constants.d.ts.map +1 -0
- package/dist/cjs/tracing/constants.js +101 -0
- package/dist/cjs/tracing/constants.js.map +1 -0
- package/dist/cjs/tracing/contracts.d.ts +186 -0
- package/dist/cjs/tracing/contracts.d.ts.map +1 -0
- package/dist/cjs/tracing/contracts.js +44 -0
- package/dist/cjs/tracing/contracts.js.map +1 -0
- package/dist/cjs/tracing/exporter/Agent365Exporter.d.ts +53 -0
- package/dist/cjs/tracing/exporter/Agent365Exporter.d.ts.map +1 -0
- package/dist/cjs/tracing/exporter/Agent365Exporter.js +318 -0
- package/dist/cjs/tracing/exporter/Agent365Exporter.js.map +1 -0
- package/dist/cjs/tracing/exporter/utils.d.ts +38 -0
- package/dist/cjs/tracing/exporter/utils.d.ts.map +1 -0
- package/dist/cjs/tracing/exporter/utils.js +126 -0
- package/dist/cjs/tracing/exporter/utils.js.map +1 -0
- package/dist/cjs/tracing/middleware/BaggageBuilder.d.ts +182 -0
- package/dist/cjs/tracing/middleware/BaggageBuilder.d.ts.map +1 -0
- package/dist/cjs/tracing/middleware/BaggageBuilder.js +297 -0
- package/dist/cjs/tracing/middleware/BaggageBuilder.js.map +1 -0
- package/dist/cjs/tracing/processors/SpanProcessor.d.ts +30 -0
- package/dist/cjs/tracing/processors/SpanProcessor.d.ts.map +1 -0
- package/dist/cjs/tracing/processors/SpanProcessor.js +98 -0
- package/dist/cjs/tracing/processors/SpanProcessor.js.map +1 -0
- package/dist/cjs/tracing/processors/util.d.ts +9 -0
- package/dist/cjs/tracing/processors/util.d.ts.map +1 -0
- package/dist/cjs/tracing/processors/util.js +50 -0
- package/dist/cjs/tracing/processors/util.js.map +1 -0
- package/dist/cjs/tracing/scopes/ExecuteToolScope.d.ts +22 -0
- package/dist/cjs/tracing/scopes/ExecuteToolScope.d.ts.map +1 -0
- package/dist/cjs/tracing/scopes/ExecuteToolScope.js +51 -0
- package/dist/cjs/tracing/scopes/ExecuteToolScope.js.map +1 -0
- package/dist/cjs/tracing/scopes/InferenceScope.d.ts +47 -0
- package/dist/cjs/tracing/scopes/InferenceScope.d.ts.map +1 -0
- package/dist/cjs/tracing/scopes/InferenceScope.js +83 -0
- package/dist/cjs/tracing/scopes/InferenceScope.js.map +1 -0
- package/dist/cjs/tracing/scopes/InvokeAgentScope.d.ts +33 -0
- package/dist/cjs/tracing/scopes/InvokeAgentScope.d.ts.map +1 -0
- package/dist/cjs/tracing/scopes/InvokeAgentScope.js +94 -0
- package/dist/cjs/tracing/scopes/InvokeAgentScope.js.map +1 -0
- package/dist/cjs/tracing/scopes/OpenTelemetryScope.d.ts +57 -0
- package/dist/cjs/tracing/scopes/OpenTelemetryScope.d.ts.map +1 -0
- package/dist/cjs/tracing/scopes/OpenTelemetryScope.js +146 -0
- package/dist/cjs/tracing/scopes/OpenTelemetryScope.js.map +1 -0
- package/dist/cjs/tracing/util.d.ts +9 -0
- package/dist/cjs/tracing/util.d.ts.map +1 -0
- package/dist/cjs/tracing/util.js +28 -0
- package/dist/cjs/tracing/util.js.map +1 -0
- package/dist/cjs/utils/logging.d.ts +11 -0
- package/dist/cjs/utils/logging.d.ts.map +1 -0
- package/dist/cjs/utils/logging.js +84 -0
- package/dist/cjs/utils/logging.js.map +1 -0
- package/dist/esm/ObservabilityBuilder.d.ts +61 -0
- package/dist/esm/ObservabilityBuilder.d.ts.map +1 -0
- package/dist/esm/ObservabilityBuilder.js +137 -0
- package/dist/esm/ObservabilityBuilder.js.map +1 -0
- package/dist/esm/ObservabilityManager.d.ts +29 -0
- package/dist/esm/ObservabilityManager.d.ts.map +1 -0
- package/dist/esm/ObservabilityManager.js +57 -0
- package/dist/esm/ObservabilityManager.js.map +1 -0
- package/dist/esm/index.d.ts +10 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +18 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/tracing/constants.d.ts +83 -0
- package/dist/esm/tracing/constants.d.ts.map +1 -0
- package/dist/esm/tracing/constants.js +97 -0
- package/dist/esm/tracing/constants.js.map +1 -0
- package/dist/esm/tracing/contracts.d.ts +186 -0
- package/dist/esm/tracing/contracts.d.ts.map +1 -0
- package/dist/esm/tracing/contracts.js +41 -0
- package/dist/esm/tracing/contracts.js.map +1 -0
- package/dist/esm/tracing/exporter/Agent365Exporter.d.ts +53 -0
- package/dist/esm/tracing/exporter/Agent365Exporter.d.ts.map +1 -0
- package/dist/esm/tracing/exporter/Agent365Exporter.js +281 -0
- package/dist/esm/tracing/exporter/Agent365Exporter.js.map +1 -0
- package/dist/esm/tracing/exporter/utils.d.ts +38 -0
- package/dist/esm/tracing/exporter/utils.d.ts.map +1 -0
- package/dist/esm/tracing/exporter/utils.js +113 -0
- package/dist/esm/tracing/exporter/utils.js.map +1 -0
- package/dist/esm/tracing/middleware/BaggageBuilder.d.ts +182 -0
- package/dist/esm/tracing/middleware/BaggageBuilder.d.ts.map +1 -0
- package/dist/esm/tracing/middleware/BaggageBuilder.js +292 -0
- package/dist/esm/tracing/middleware/BaggageBuilder.js.map +1 -0
- package/dist/esm/tracing/processors/SpanProcessor.d.ts +30 -0
- package/dist/esm/tracing/processors/SpanProcessor.d.ts.map +1 -0
- package/dist/esm/tracing/processors/SpanProcessor.js +94 -0
- package/dist/esm/tracing/processors/SpanProcessor.js.map +1 -0
- package/dist/esm/tracing/processors/util.d.ts +9 -0
- package/dist/esm/tracing/processors/util.d.ts.map +1 -0
- package/dist/esm/tracing/processors/util.js +47 -0
- package/dist/esm/tracing/processors/util.js.map +1 -0
- package/dist/esm/tracing/scopes/ExecuteToolScope.d.ts +22 -0
- package/dist/esm/tracing/scopes/ExecuteToolScope.d.ts.map +1 -0
- package/dist/esm/tracing/scopes/ExecuteToolScope.js +47 -0
- package/dist/esm/tracing/scopes/ExecuteToolScope.js.map +1 -0
- package/dist/esm/tracing/scopes/InferenceScope.d.ts +47 -0
- package/dist/esm/tracing/scopes/InferenceScope.d.ts.map +1 -0
- package/dist/esm/tracing/scopes/InferenceScope.js +79 -0
- package/dist/esm/tracing/scopes/InferenceScope.js.map +1 -0
- package/dist/esm/tracing/scopes/InvokeAgentScope.d.ts +33 -0
- package/dist/esm/tracing/scopes/InvokeAgentScope.d.ts.map +1 -0
- package/dist/esm/tracing/scopes/InvokeAgentScope.js +90 -0
- package/dist/esm/tracing/scopes/InvokeAgentScope.js.map +1 -0
- package/dist/esm/tracing/scopes/OpenTelemetryScope.d.ts +57 -0
- package/dist/esm/tracing/scopes/OpenTelemetryScope.d.ts.map +1 -0
- package/dist/esm/tracing/scopes/OpenTelemetryScope.js +139 -0
- package/dist/esm/tracing/scopes/OpenTelemetryScope.js.map +1 -0
- package/dist/esm/tracing/util.d.ts +9 -0
- package/dist/esm/tracing/util.d.ts.map +1 -0
- package/dist/esm/tracing/util.js +23 -0
- package/dist/esm/tracing/util.js.map +1 -0
- package/dist/esm/utils/logging.d.ts +11 -0
- package/dist/esm/utils/logging.d.ts.map +1 -0
- package/dist/esm/utils/logging.js +81 -0
- package/dist/esm/utils/logging.js.map +1 -0
- package/package.json +69 -0
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
// ------------------------------------------------------------------------------
|
|
2
|
+
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
// ------------------------------------------------------------------------------
|
|
4
|
+
import { propagation, context as otelContext } from '@opentelemetry/api';
|
|
5
|
+
import { OpenTelemetryConstants } from '../constants';
|
|
6
|
+
/**
|
|
7
|
+
* Per request baggage builder for OpenTelemetry context propagation.
|
|
8
|
+
*
|
|
9
|
+
* This class provides a fluent API for setting baggage values that will be
|
|
10
|
+
* propagated in the OpenTelemetry context.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const scope = new BaggageBuilder()
|
|
15
|
+
* .tenantId("tenant-123")
|
|
16
|
+
* .agentId("agent-456")
|
|
17
|
+
* .correlationId("corr-789")
|
|
18
|
+
* .build();
|
|
19
|
+
*
|
|
20
|
+
* scope.enter();
|
|
21
|
+
* // Baggage is set in this context
|
|
22
|
+
* // ... do work ...
|
|
23
|
+
* scope.exit();
|
|
24
|
+
* // Baggage is restored after exiting the context
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export class BaggageBuilder {
|
|
28
|
+
constructor() {
|
|
29
|
+
this.pairs = new Map();
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Set the operation source baggage value.
|
|
33
|
+
* @param value The operation source value
|
|
34
|
+
* @returns Self for method chaining
|
|
35
|
+
*/
|
|
36
|
+
operationSource(value) {
|
|
37
|
+
this.set(OpenTelemetryConstants.OPERATION_SOURCE_KEY, value);
|
|
38
|
+
return this;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Set the tenant ID baggage value.
|
|
42
|
+
* @param value The tenant ID
|
|
43
|
+
* @returns Self for method chaining
|
|
44
|
+
*/
|
|
45
|
+
tenantId(value) {
|
|
46
|
+
this.set(OpenTelemetryConstants.TENANT_ID_KEY, value);
|
|
47
|
+
return this;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Set the agent ID baggage value.
|
|
51
|
+
* @param value The agent ID
|
|
52
|
+
* @returns Self for method chaining
|
|
53
|
+
*/
|
|
54
|
+
agentId(value) {
|
|
55
|
+
this.set(OpenTelemetryConstants.GEN_AI_AGENT_ID_KEY, value);
|
|
56
|
+
return this;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Set the agent AUID baggage value.
|
|
60
|
+
* @param value The agent AUID
|
|
61
|
+
* @returns Self for method chaining
|
|
62
|
+
*/
|
|
63
|
+
agentAuid(value) {
|
|
64
|
+
this.set(OpenTelemetryConstants.GEN_AI_AGENT_AUID_KEY, value);
|
|
65
|
+
return this;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Set the agent UPN baggage value.
|
|
69
|
+
* @param value The agent UPN
|
|
70
|
+
* @returns Self for method chaining
|
|
71
|
+
*/
|
|
72
|
+
agentUpn(value) {
|
|
73
|
+
this.set(OpenTelemetryConstants.GEN_AI_AGENT_UPN_KEY, value);
|
|
74
|
+
return this;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Set the agent blueprint ID baggage value.
|
|
78
|
+
* @param value The agent blueprint ID
|
|
79
|
+
* @returns Self for method chaining
|
|
80
|
+
*/
|
|
81
|
+
agentBlueprintId(value) {
|
|
82
|
+
this.set(OpenTelemetryConstants.GEN_AI_AGENT_BLUEPRINT_ID_KEY, value);
|
|
83
|
+
return this;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Set the correlation ID baggage value.
|
|
87
|
+
* @param value The correlation ID
|
|
88
|
+
* @returns Self for method chaining
|
|
89
|
+
*/
|
|
90
|
+
correlationId(value) {
|
|
91
|
+
this.set(OpenTelemetryConstants.CORRELATION_ID_KEY, value);
|
|
92
|
+
return this;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Set the caller ID baggage value.
|
|
96
|
+
* @param value The caller ID
|
|
97
|
+
* @returns Self for method chaining
|
|
98
|
+
*/
|
|
99
|
+
callerId(value) {
|
|
100
|
+
this.set(OpenTelemetryConstants.GEN_AI_CALLER_ID_KEY, value);
|
|
101
|
+
return this;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Set the hiring manager ID baggage value.
|
|
105
|
+
* @param value The hiring manager ID
|
|
106
|
+
* @returns Self for method chaining
|
|
107
|
+
*/
|
|
108
|
+
hiringManagerId(value) {
|
|
109
|
+
this.set(OpenTelemetryConstants.HIRING_MANAGER_ID_KEY, value);
|
|
110
|
+
return this;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Set the agent name baggage value.
|
|
114
|
+
* @param value The agent name
|
|
115
|
+
* @returns Self for method chaining
|
|
116
|
+
*/
|
|
117
|
+
agentName(value) {
|
|
118
|
+
this.set(OpenTelemetryConstants.GEN_AI_AGENT_NAME_KEY, value);
|
|
119
|
+
return this;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Set the agent description baggage value.
|
|
123
|
+
* @param value The agent description
|
|
124
|
+
* @returns Self for method chaining
|
|
125
|
+
*/
|
|
126
|
+
agentDescription(value) {
|
|
127
|
+
this.set(OpenTelemetryConstants.GEN_AI_AGENT_DESCRIPTION_KEY, value);
|
|
128
|
+
return this;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Set the caller name baggage value.
|
|
132
|
+
* @param value The caller name
|
|
133
|
+
* @returns Self for method chaining
|
|
134
|
+
*/
|
|
135
|
+
callerName(value) {
|
|
136
|
+
this.set(OpenTelemetryConstants.GEN_AI_CALLER_NAME_KEY, value);
|
|
137
|
+
return this;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Set the caller UPN baggage value.
|
|
141
|
+
* @param value The caller UPN
|
|
142
|
+
* @returns Self for method chaining
|
|
143
|
+
*/
|
|
144
|
+
callerUpn(value) {
|
|
145
|
+
this.set(OpenTelemetryConstants.GEN_AI_CALLER_UPN_KEY, value);
|
|
146
|
+
return this;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Set the conversation ID baggage value.
|
|
150
|
+
* @param value The conversation ID
|
|
151
|
+
* @returns Self for method chaining
|
|
152
|
+
*/
|
|
153
|
+
conversationId(value) {
|
|
154
|
+
this.set(OpenTelemetryConstants.GEN_AI_CONVERSATION_ID_KEY, value);
|
|
155
|
+
return this;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Set the conversation item link baggage value.
|
|
159
|
+
* @param value The conversation item link
|
|
160
|
+
* @returns Self for method chaining
|
|
161
|
+
*/
|
|
162
|
+
conversationItemLink(value) {
|
|
163
|
+
this.set(OpenTelemetryConstants.GEN_AI_CONVERSATION_ITEM_LINK_KEY, value);
|
|
164
|
+
return this;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Set the execution source metadata ID (e.g., channel ID).
|
|
168
|
+
* @param value The source metadata ID
|
|
169
|
+
* @returns Self for method chaining
|
|
170
|
+
*/
|
|
171
|
+
sourceMetadataId(value) {
|
|
172
|
+
this.set(OpenTelemetryConstants.GEN_AI_EXECUTION_SOURCE_ID_KEY, value);
|
|
173
|
+
return this;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Set the execution source metadata name (e.g., channel name).
|
|
177
|
+
* @param value The source metadata name
|
|
178
|
+
* @returns Self for method chaining
|
|
179
|
+
*/
|
|
180
|
+
sourceMetadataName(value) {
|
|
181
|
+
this.set(OpenTelemetryConstants.GEN_AI_EXECUTION_SOURCE_NAME_KEY, value);
|
|
182
|
+
return this;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Set the execution source metadata description (e.g., channel description).
|
|
186
|
+
* @param value The source metadata description
|
|
187
|
+
* @returns Self for method chaining
|
|
188
|
+
*/
|
|
189
|
+
sourceMetadataDescription(value) {
|
|
190
|
+
this.set(OpenTelemetryConstants.GEN_AI_EXECUTION_SOURCE_DESCRIPTION_KEY, value);
|
|
191
|
+
return this;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Set multiple baggage pairs from a dictionary or iterable.
|
|
195
|
+
* @param pairs Dictionary or iterable of key-value pairs
|
|
196
|
+
* @returns Self for method chaining
|
|
197
|
+
*/
|
|
198
|
+
setPairs(pairs) {
|
|
199
|
+
if (!pairs) {
|
|
200
|
+
return this;
|
|
201
|
+
}
|
|
202
|
+
let entries;
|
|
203
|
+
if (Symbol.iterator in Object(pairs)) {
|
|
204
|
+
entries = pairs;
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
entries = Object.entries(pairs);
|
|
208
|
+
}
|
|
209
|
+
for (const [key, value] of entries) {
|
|
210
|
+
if (value !== null && value !== undefined) {
|
|
211
|
+
this.set(key, String(value));
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
return this;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Apply the collected baggage to the current context.
|
|
218
|
+
* @returns A context manager that restores the previous baggage on exit
|
|
219
|
+
*/
|
|
220
|
+
build() {
|
|
221
|
+
return new BaggageScope(this.pairs);
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Add a baggage key/value if the value is not null or whitespace.
|
|
225
|
+
* @param key The baggage key
|
|
226
|
+
* @param value The baggage value
|
|
227
|
+
*/
|
|
228
|
+
set(key, value) {
|
|
229
|
+
if (value !== null && value !== undefined) {
|
|
230
|
+
const trimmed = value.trim();
|
|
231
|
+
if (trimmed) {
|
|
232
|
+
this.pairs.set(key, trimmed);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Convenience method to begin a request baggage scope with common fields.
|
|
238
|
+
* @param tenantId The tenant ID
|
|
239
|
+
* @param agentId The agent ID
|
|
240
|
+
* @param correlationId The correlation ID
|
|
241
|
+
* @returns A context manager that restores the previous baggage on exit
|
|
242
|
+
*/
|
|
243
|
+
static setRequestContext(tenantId, agentId, correlationId) {
|
|
244
|
+
return new BaggageBuilder()
|
|
245
|
+
.tenantId(tenantId)
|
|
246
|
+
.agentId(agentId)
|
|
247
|
+
.correlationId(correlationId)
|
|
248
|
+
.build();
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Context manager for baggage scope.
|
|
253
|
+
*
|
|
254
|
+
* This class manages the lifecycle of baggage values, setting them on enter
|
|
255
|
+
* and restoring the previous context on exit.
|
|
256
|
+
*/
|
|
257
|
+
export class BaggageScope {
|
|
258
|
+
constructor(pairs) {
|
|
259
|
+
// 1. Start from current active context
|
|
260
|
+
const currentCtx = otelContext.active();
|
|
261
|
+
// 2. Build merged baggage
|
|
262
|
+
let bag = propagation.getBaggage(currentCtx) ?? propagation.createBaggage({});
|
|
263
|
+
for (const [key, value] of pairs.entries()) {
|
|
264
|
+
if (value && value.trim()) {
|
|
265
|
+
bag = bag.setEntry(key, { value });
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
// 3. Create a new context that carries that baggage
|
|
269
|
+
this.contextWithBaggage = propagation.setBaggage(currentCtx, bag);
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Execute a synchronous function under this baggage scope.
|
|
273
|
+
* Automatically restores previous context afterward.
|
|
274
|
+
*/
|
|
275
|
+
run(fn) {
|
|
276
|
+
return otelContext.with(this.contextWithBaggage, fn);
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Dispose is a no-op because OpenTelemetry JS automatically restores
|
|
280
|
+
* the previous context after `context.with()` completes.
|
|
281
|
+
*/
|
|
282
|
+
[Symbol.dispose]() {
|
|
283
|
+
// Nothing to detach manually; context restoration happens automatically.
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Manual cleanup alternative if caller isn't using `using`.
|
|
287
|
+
*/
|
|
288
|
+
dispose() {
|
|
289
|
+
this[Symbol.dispose]();
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
//# sourceMappingURL=BaggageBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaggageBuilder.js","sourceRoot":"","sources":["../../../../src/tracing/middleware/BaggageBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Context, Span } from '@opentelemetry/api';
|
|
2
|
+
import { SpanProcessor as BaseSpanProcessor } from '@opentelemetry/sdk-trace-base';
|
|
3
|
+
import { ReadableSpan } from '@opentelemetry/sdk-trace-base';
|
|
4
|
+
/**
|
|
5
|
+
* Span processor that propagates baggage key/value pairs to span attributes.
|
|
6
|
+
*
|
|
7
|
+
* This processor copies baggage entries onto spans based on the operation type.
|
|
8
|
+
* For invoke_agent operations, it applies both generic and invoke-agent-specific attributes.
|
|
9
|
+
* For other operations, it applies only generic attributes.
|
|
10
|
+
*/
|
|
11
|
+
export declare class SpanProcessor implements BaseSpanProcessor {
|
|
12
|
+
/**
|
|
13
|
+
* Called when a span is started.
|
|
14
|
+
* Copies relevant baggage entries to span attributes.
|
|
15
|
+
*/
|
|
16
|
+
onStart(span: Span, parentContext?: Context): void;
|
|
17
|
+
/**
|
|
18
|
+
* Called when a span is ended.
|
|
19
|
+
*/
|
|
20
|
+
onEnd(_span: ReadableSpan): void;
|
|
21
|
+
/**
|
|
22
|
+
* Shutdown the processor.
|
|
23
|
+
*/
|
|
24
|
+
shutdown(): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Force flush the processor.
|
|
27
|
+
*/
|
|
28
|
+
forceFlush(): Promise<void>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=SpanProcessor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpanProcessor.d.ts","sourceRoot":"","sources":["../../../../src/tracing/processors/SpanProcessor.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAe,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAI7D;;;;;;GAMG;AACH,qBAAa,aAAc,YAAW,iBAAiB;IACrD;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,IAAI;IAkElD;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAIhC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAGlC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
// ------------------------------------------------------------------------------
|
|
2
|
+
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
// ------------------------------------------------------------------------------
|
|
4
|
+
import { propagation } from '@opentelemetry/api';
|
|
5
|
+
import { OpenTelemetryConstants } from '../constants';
|
|
6
|
+
import { GENERIC_ATTRIBUTES, INVOKE_AGENT_ATTRIBUTES } from './util';
|
|
7
|
+
/**
|
|
8
|
+
* Span processor that propagates baggage key/value pairs to span attributes.
|
|
9
|
+
*
|
|
10
|
+
* This processor copies baggage entries onto spans based on the operation type.
|
|
11
|
+
* For invoke_agent operations, it applies both generic and invoke-agent-specific attributes.
|
|
12
|
+
* For other operations, it applies only generic attributes.
|
|
13
|
+
*/
|
|
14
|
+
export class SpanProcessor {
|
|
15
|
+
/**
|
|
16
|
+
* Called when a span is started.
|
|
17
|
+
* Copies relevant baggage entries to span attributes.
|
|
18
|
+
*/
|
|
19
|
+
onStart(span, parentContext) {
|
|
20
|
+
const ctx = parentContext;
|
|
21
|
+
if (!ctx) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
// Get existing span attributes
|
|
25
|
+
const existingAttrs = new Set();
|
|
26
|
+
try {
|
|
27
|
+
const spanRecord = span;
|
|
28
|
+
if (spanRecord.attributes) {
|
|
29
|
+
Object.keys(spanRecord.attributes).forEach(key => existingAttrs.add(key));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
// Ignore errors accessing span attributes
|
|
34
|
+
}
|
|
35
|
+
// Get all baggage entries
|
|
36
|
+
const baggage = propagation.getBaggage(ctx);
|
|
37
|
+
if (!baggage) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const baggageMap = new Map();
|
|
41
|
+
baggage.getAllEntries().forEach(([key, entry]) => {
|
|
42
|
+
if (entry.value) {
|
|
43
|
+
baggageMap.set(key, entry.value);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
// Determine if this is an invoke_agent operation
|
|
47
|
+
const operationName = baggageMap.get(OpenTelemetryConstants.GEN_AI_OPERATION_NAME_KEY) ||
|
|
48
|
+
span.attributes?.[OpenTelemetryConstants.GEN_AI_OPERATION_NAME_KEY];
|
|
49
|
+
const spanName = span.name || '';
|
|
50
|
+
const isInvokeAgent = operationName === OpenTelemetryConstants.INVOKE_AGENT_OPERATION_NAME ||
|
|
51
|
+
spanName.startsWith(OpenTelemetryConstants.INVOKE_AGENT_OPERATION_NAME);
|
|
52
|
+
// Build target key set
|
|
53
|
+
const targetKeys = new Set(GENERIC_ATTRIBUTES);
|
|
54
|
+
if (isInvokeAgent) {
|
|
55
|
+
INVOKE_AGENT_ATTRIBUTES.forEach(key => targetKeys.add(key));
|
|
56
|
+
}
|
|
57
|
+
// Copy baggage to span attributes
|
|
58
|
+
for (const key of targetKeys) {
|
|
59
|
+
// Skip if attribute already exists
|
|
60
|
+
if (existingAttrs.has(key)) {
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
const value = baggageMap.get(key);
|
|
64
|
+
if (!value) {
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
try {
|
|
68
|
+
span.setAttribute(key, value);
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
// Ignore errors setting attributes
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Called when a span is ended.
|
|
77
|
+
*/
|
|
78
|
+
onEnd(_span) {
|
|
79
|
+
// No-op for this processor
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Shutdown the processor.
|
|
83
|
+
*/
|
|
84
|
+
async shutdown() {
|
|
85
|
+
// No-op for this processor
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Force flush the processor.
|
|
89
|
+
*/
|
|
90
|
+
async forceFlush() {
|
|
91
|
+
// No-op for this processor
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=SpanProcessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpanProcessor.js","sourceRoot":"","sources":["../../../../src/tracing/processors/SpanProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic / common tracing attributes applied to all spans
|
|
3
|
+
*/
|
|
4
|
+
export declare const GENERIC_ATTRIBUTES: readonly string[];
|
|
5
|
+
/**
|
|
6
|
+
* Invoke Agent-specific attributes
|
|
7
|
+
*/
|
|
8
|
+
export declare const INVOKE_AGENT_ATTRIBUTES: readonly string[];
|
|
9
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/tracing/processors/util.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAe/C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAmBpD,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// ------------------------------------------------------------------------------
|
|
2
|
+
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
// ------------------------------------------------------------------------------
|
|
4
|
+
import { OpenTelemetryConstants as consts } from '../constants';
|
|
5
|
+
/**
|
|
6
|
+
* Generic / common tracing attributes applied to all spans
|
|
7
|
+
*/
|
|
8
|
+
export const GENERIC_ATTRIBUTES = [
|
|
9
|
+
consts.TENANT_ID_KEY,
|
|
10
|
+
consts.CUSTOM_PARENT_SPAN_ID_KEY,
|
|
11
|
+
consts.CUSTOM_SPAN_NAME_KEY,
|
|
12
|
+
consts.CORRELATION_ID_KEY,
|
|
13
|
+
consts.GEN_AI_CONVERSATION_ID_KEY,
|
|
14
|
+
consts.GEN_AI_CONVERSATION_ITEM_LINK_KEY,
|
|
15
|
+
consts.GEN_AI_OPERATION_NAME_KEY,
|
|
16
|
+
consts.GEN_AI_AGENT_ID_KEY,
|
|
17
|
+
consts.GEN_AI_AGENT_NAME_KEY,
|
|
18
|
+
consts.GEN_AI_AGENT_DESCRIPTION_KEY,
|
|
19
|
+
consts.GEN_AI_AGENT_USER_ID_KEY,
|
|
20
|
+
consts.GEN_AI_AGENT_UPN_KEY,
|
|
21
|
+
consts.GEN_AI_AGENT_BLUEPRINT_ID_KEY,
|
|
22
|
+
consts.GEN_AI_AGENT_AUID_KEY,
|
|
23
|
+
];
|
|
24
|
+
/**
|
|
25
|
+
* Invoke Agent-specific attributes
|
|
26
|
+
*/
|
|
27
|
+
export const INVOKE_AGENT_ATTRIBUTES = [
|
|
28
|
+
// Caller / Invoker attributes
|
|
29
|
+
consts.GEN_AI_CALLER_ID_KEY,
|
|
30
|
+
consts.GEN_AI_CALLER_NAME_KEY,
|
|
31
|
+
consts.GEN_AI_CALLER_UPN_KEY,
|
|
32
|
+
consts.GEN_AI_CALLER_USER_ID_KEY,
|
|
33
|
+
consts.GEN_AI_CALLER_TENANT_ID_KEY,
|
|
34
|
+
// Caller Agent (A2A) attributes
|
|
35
|
+
consts.GEN_AI_CALLER_AGENT_ID_KEY,
|
|
36
|
+
consts.GEN_AI_CALLER_AGENT_NAME_KEY,
|
|
37
|
+
consts.GEN_AI_CALLER_AGENT_USER_ID_KEY,
|
|
38
|
+
consts.GEN_AI_CALLER_AGENT_UPN_KEY,
|
|
39
|
+
consts.GEN_AI_CALLER_AGENT_TENANT_ID_KEY,
|
|
40
|
+
consts.GEN_AI_CALLER_AGENT_APPLICATION_ID_KEY,
|
|
41
|
+
// Execution context
|
|
42
|
+
consts.GEN_AI_EXECUTION_TYPE_KEY,
|
|
43
|
+
consts.GEN_AI_EXECUTION_SOURCE_ID_KEY,
|
|
44
|
+
consts.GEN_AI_EXECUTION_SOURCE_NAME_KEY,
|
|
45
|
+
consts.GEN_AI_EXECUTION_SOURCE_DESCRIPTION_KEY,
|
|
46
|
+
];
|
|
47
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../../src/tracing/processors/util.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,4DAA4D;AAC5D,iFAAiF;AAEjF,OAAO,EAAE,sBAAsB,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AAEhE;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAsB;IACnD,MAAM,CAAC,aAAa;IACpB,MAAM,CAAC,yBAAyB;IAChC,MAAM,CAAC,oBAAoB;IAC3B,MAAM,CAAC,kBAAkB;IACzB,MAAM,CAAC,0BAA0B;IACjC,MAAM,CAAC,iCAAiC;IACxC,MAAM,CAAC,yBAAyB;IAChC,MAAM,CAAC,mBAAmB;IAC1B,MAAM,CAAC,qBAAqB;IAC5B,MAAM,CAAC,4BAA4B;IACnC,MAAM,CAAC,wBAAwB;IAC/B,MAAM,CAAC,oBAAoB;IAC3B,MAAM,CAAC,6BAA6B;IACpC,MAAM,CAAC,qBAAqB;CAC7B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAsB;IACxD,8BAA8B;IAC9B,MAAM,CAAC,oBAAoB;IAC3B,MAAM,CAAC,sBAAsB;IAC7B,MAAM,CAAC,qBAAqB;IAC5B,MAAM,CAAC,yBAAyB;IAChC,MAAM,CAAC,2BAA2B;IAClC,gCAAgC;IAChC,MAAM,CAAC,0BAA0B;IACjC,MAAM,CAAC,4BAA4B;IACnC,MAAM,CAAC,+BAA+B;IACtC,MAAM,CAAC,2BAA2B;IAClC,MAAM,CAAC,iCAAiC;IACxC,MAAM,CAAC,sCAAsC;IAC7C,oBAAoB;IACpB,MAAM,CAAC,yBAAyB;IAChC,MAAM,CAAC,8BAA8B;IACrC,MAAM,CAAC,gCAAgC;IACvC,MAAM,CAAC,uCAAuC;CAC/C,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { OpenTelemetryScope } from './OpenTelemetryScope';
|
|
2
|
+
import { ToolCallDetails, AgentDetails, TenantDetails } from '../contracts';
|
|
3
|
+
/**
|
|
4
|
+
* Provides OpenTelemetry tracing scope for AI tool execution operations.
|
|
5
|
+
*/
|
|
6
|
+
export declare class ExecuteToolScope extends OpenTelemetryScope {
|
|
7
|
+
/**
|
|
8
|
+
* Creates and starts a new scope for tool execution tracing.
|
|
9
|
+
* @param details The tool call details
|
|
10
|
+
* @param agentDetails The agent details
|
|
11
|
+
* @param tenantDetails The tenant details
|
|
12
|
+
* @returns A new ExecuteToolScope instance.
|
|
13
|
+
*/
|
|
14
|
+
static start(details: ToolCallDetails, agentDetails: AgentDetails, tenantDetails: TenantDetails): ExecuteToolScope;
|
|
15
|
+
private constructor();
|
|
16
|
+
/**
|
|
17
|
+
* Records response information for telemetry tracking.
|
|
18
|
+
* @param response The tool execution response
|
|
19
|
+
*/
|
|
20
|
+
recordResponse(response: string): void;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=ExecuteToolScope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExecuteToolScope.d.ts","sourceRoot":"","sources":["../../../../src/tracing/scopes/ExecuteToolScope.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG5E;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,kBAAkB;IACtD;;;;;;OAMG;WACW,KAAK,CAAC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,GAAG,gBAAgB;IAIzH,OAAO;IA6BP;;;OAGG;IACI,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;CAG9C"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// ------------------------------------------------------------------------------
|
|
2
|
+
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
3
|
+
// ------------------------------------------------------------------------------
|
|
4
|
+
import { SpanKind } from '@opentelemetry/api';
|
|
5
|
+
import { OpenTelemetryScope } from './OpenTelemetryScope';
|
|
6
|
+
import { OpenTelemetryConstants } from '../constants';
|
|
7
|
+
/**
|
|
8
|
+
* Provides OpenTelemetry tracing scope for AI tool execution operations.
|
|
9
|
+
*/
|
|
10
|
+
export class ExecuteToolScope extends OpenTelemetryScope {
|
|
11
|
+
/**
|
|
12
|
+
* Creates and starts a new scope for tool execution tracing.
|
|
13
|
+
* @param details The tool call details
|
|
14
|
+
* @param agentDetails The agent details
|
|
15
|
+
* @param tenantDetails The tenant details
|
|
16
|
+
* @returns A new ExecuteToolScope instance.
|
|
17
|
+
*/
|
|
18
|
+
static start(details, agentDetails, tenantDetails) {
|
|
19
|
+
return new ExecuteToolScope(details, agentDetails, tenantDetails);
|
|
20
|
+
}
|
|
21
|
+
constructor(details, agentDetails, tenantDetails) {
|
|
22
|
+
super(SpanKind.INTERNAL, OpenTelemetryConstants.EXECUTE_TOOL_OPERATION_NAME, `${OpenTelemetryConstants.EXECUTE_TOOL_OPERATION_NAME} ${details.toolName}`, agentDetails, tenantDetails);
|
|
23
|
+
// Destructure the details object to match C# pattern
|
|
24
|
+
const { toolName, arguments: args, toolCallId, description, toolType, endpoint } = details;
|
|
25
|
+
this.setTagMaybe(OpenTelemetryConstants.GEN_AI_TOOL_NAME_KEY, toolName);
|
|
26
|
+
this.setTagMaybe(OpenTelemetryConstants.GEN_AI_TOOL_ARGS_KEY, args);
|
|
27
|
+
this.setTagMaybe(OpenTelemetryConstants.GEN_AI_TOOL_TYPE_KEY, toolType);
|
|
28
|
+
this.setTagMaybe(OpenTelemetryConstants.GEN_AI_TOOL_CALL_ID_KEY, toolCallId);
|
|
29
|
+
this.setTagMaybe(OpenTelemetryConstants.GEN_AI_TOOL_DESCRIPTION_KEY, description);
|
|
30
|
+
// Set endpoint information if provided
|
|
31
|
+
if (endpoint) {
|
|
32
|
+
this.setTagMaybe(OpenTelemetryConstants.SERVER_ADDRESS_KEY, endpoint.host);
|
|
33
|
+
// Only record port if it is different from 443 (default HTTPS port)
|
|
34
|
+
if (endpoint.port && endpoint.port !== 443) {
|
|
35
|
+
this.setTagMaybe(OpenTelemetryConstants.SERVER_PORT_KEY, endpoint.port);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Records response information for telemetry tracking.
|
|
41
|
+
* @param response The tool execution response
|
|
42
|
+
*/
|
|
43
|
+
recordResponse(response) {
|
|
44
|
+
this.setTagMaybe(OpenTelemetryConstants.GEN_AI_EVENT_CONTENT, response);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=ExecuteToolScope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExecuteToolScope.js","sourceRoot":"","sources":["../../../../src/tracing/scopes/ExecuteToolScope.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,4DAA4D;AAC5D,iFAAiF;AAEjF,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,kBAAkB;IACtD;;;;;;OAMG;IACI,MAAM,CAAC,KAAK,CAAC,OAAwB,EAAE,YAA0B,EAAE,aAA4B;QACpG,OAAO,IAAI,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;IACpE,CAAC;IAED,YAAoB,OAAwB,EAAE,YAA0B,EAAE,aAA4B;QACpG,KAAK,CACH,QAAQ,CAAC,QAAQ,EACjB,sBAAsB,CAAC,2BAA2B,EAClD,GAAG,sBAAsB,CAAC,2BAA2B,IAAI,OAAO,CAAC,QAAQ,EAAE,EAC3E,YAAY,EACZ,aAAa,CACd,CAAC;QAEF,qDAAqD;QACrD,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAE3F,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;QACxE,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;QACxE,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,UAAU,CAAC,CAAC;QAC7E,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,2BAA2B,EAAE,WAAW,CAAC,CAAC;QAElF,uCAAuC;QACvC,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,kBAAkB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YAE3E,oEAAoE;YACpE,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBAC3C,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,eAAe,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,cAAc,CAAC,QAAgB;QACpC,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;IAC1E,CAAC;CACF"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { OpenTelemetryScope } from './OpenTelemetryScope';
|
|
2
|
+
import { InferenceDetails, AgentDetails, TenantDetails } from '../contracts';
|
|
3
|
+
/**
|
|
4
|
+
* Provides OpenTelemetry tracing scope for generative AI inference operations.
|
|
5
|
+
*/
|
|
6
|
+
export declare class InferenceScope extends OpenTelemetryScope {
|
|
7
|
+
/**
|
|
8
|
+
* Creates and starts a new scope for inference tracing.
|
|
9
|
+
* @param details The inference call details
|
|
10
|
+
* @param agentDetails The agent details
|
|
11
|
+
* @param tenantDetails The tenant details
|
|
12
|
+
* @returns A new InferenceScope instance
|
|
13
|
+
*/
|
|
14
|
+
static start(details: InferenceDetails, agentDetails: AgentDetails, tenantDetails: TenantDetails): InferenceScope;
|
|
15
|
+
private constructor();
|
|
16
|
+
/**
|
|
17
|
+
* Records the input messages for telemetry tracking.
|
|
18
|
+
* @param messages Array of input messages
|
|
19
|
+
*/
|
|
20
|
+
recordInputMessages(messages: string[]): void;
|
|
21
|
+
/**
|
|
22
|
+
* Records the output messages for telemetry tracking.
|
|
23
|
+
* @param messages Array of output messages
|
|
24
|
+
*/
|
|
25
|
+
recordOutputMessages(messages: string[]): void;
|
|
26
|
+
/**
|
|
27
|
+
* Records the number of input tokens for telemetry tracking.
|
|
28
|
+
* @param inputTokens Number of input tokens
|
|
29
|
+
*/
|
|
30
|
+
recordInputTokens(inputTokens: number): void;
|
|
31
|
+
/**
|
|
32
|
+
* Records the number of output tokens for telemetry tracking.
|
|
33
|
+
* @param outputTokens Number of output tokens
|
|
34
|
+
*/
|
|
35
|
+
recordOutputTokens(outputTokens: number): void;
|
|
36
|
+
/**
|
|
37
|
+
* Records the response id for telemetry tracking.
|
|
38
|
+
* @param responseId The response ID
|
|
39
|
+
*/
|
|
40
|
+
recordResponseId(responseId: string): void;
|
|
41
|
+
/**
|
|
42
|
+
* Records the finish reasons for telemetry tracking.
|
|
43
|
+
* @param finishReasons Array of finish reasons
|
|
44
|
+
*/
|
|
45
|
+
recordFinishReasons(finishReasons: string[]): void;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=InferenceScope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InferenceScope.d.ts","sourceRoot":"","sources":["../../../../src/tracing/scopes/InferenceScope.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACd,MAAM,cAAc,CAAC;AAEtB;;GAEG;AACH,qBAAa,cAAe,SAAQ,kBAAkB;IACpD;;;;;;OAMG;WACW,KAAK,CAAC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,GAAG,cAAc;IAIxH,OAAO;IAmBP;;;OAGG;IACI,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAIpD;;;OAGG;IACI,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAIrD;;;OAGG;IACI,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAInD;;;OAGG;IACI,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAIrD;;;OAGG;IACI,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAMjD;;;OAGG;IACI,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI;CAM1D"}
|