@microsoft/opentelemetry 0.1.0-alpha.2 → 0.1.0-alpha.3
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/dist/commonjs/a365/configuration/A365Configuration.d.ts +42 -0
- package/dist/commonjs/a365/configuration/A365Configuration.d.ts.map +1 -0
- package/dist/commonjs/a365/configuration/A365Configuration.js +162 -0
- package/dist/commonjs/a365/configuration/A365Configuration.js.map +1 -0
- package/dist/commonjs/a365/configuration/A365ConfigurationOptions.d.ts +53 -0
- package/dist/commonjs/a365/configuration/A365ConfigurationOptions.d.ts.map +1 -0
- package/dist/commonjs/a365/configuration/A365ConfigurationOptions.js +5 -0
- package/dist/commonjs/a365/configuration/A365ConfigurationOptions.js.map +1 -0
- package/dist/commonjs/a365/configuration/index.d.ts +3 -0
- package/dist/commonjs/a365/configuration/index.d.ts.map +1 -0
- package/dist/commonjs/a365/configuration/index.js +9 -0
- package/dist/commonjs/a365/configuration/index.js.map +1 -0
- package/dist/commonjs/a365/constants.d.ts +76 -0
- package/dist/commonjs/a365/constants.d.ts.map +1 -0
- package/dist/commonjs/a365/constants.js +99 -0
- package/dist/commonjs/a365/constants.js.map +1 -0
- package/dist/commonjs/a365/context/tokenContext.d.ts +25 -0
- package/dist/commonjs/a365/context/tokenContext.d.ts.map +1 -0
- package/dist/commonjs/a365/context/tokenContext.js +67 -0
- package/dist/commonjs/a365/context/tokenContext.js.map +1 -0
- package/dist/commonjs/a365/context.d.ts +31 -0
- package/dist/commonjs/a365/context.d.ts.map +1 -0
- package/dist/commonjs/a365/context.js +109 -0
- package/dist/commonjs/a365/context.js.map +1 -0
- package/dist/commonjs/a365/contracts.d.ts +250 -0
- package/dist/commonjs/a365/contracts.d.ts.map +1 -0
- package/dist/commonjs/a365/contracts.js +52 -0
- package/dist/commonjs/a365/contracts.js.map +1 -0
- package/dist/commonjs/a365/exporter/Agent365Exporter.d.ts +25 -0
- package/dist/commonjs/a365/exporter/Agent365Exporter.d.ts.map +1 -0
- package/dist/commonjs/a365/exporter/Agent365Exporter.js +220 -0
- package/dist/commonjs/a365/exporter/Agent365Exporter.js.map +1 -0
- package/dist/commonjs/a365/exporter/Agent365ExporterOptions.d.ts +43 -0
- package/dist/commonjs/a365/exporter/Agent365ExporterOptions.d.ts.map +1 -0
- package/dist/commonjs/a365/exporter/Agent365ExporterOptions.js +30 -0
- package/dist/commonjs/a365/exporter/Agent365ExporterOptions.js.map +1 -0
- package/dist/commonjs/a365/exporter/ExporterEventNames.d.ts +9 -0
- package/dist/commonjs/a365/exporter/ExporterEventNames.d.ts.map +1 -0
- package/dist/commonjs/a365/exporter/ExporterEventNames.js +15 -0
- package/dist/commonjs/a365/exporter/ExporterEventNames.js.map +1 -0
- package/dist/commonjs/a365/exporter/index.d.ts +6 -0
- package/dist/commonjs/a365/exporter/index.d.ts.map +1 -0
- package/dist/commonjs/a365/exporter/index.js +15 -0
- package/dist/commonjs/a365/exporter/index.js.map +1 -0
- package/dist/commonjs/a365/exporter/utils.d.ts +41 -0
- package/dist/commonjs/a365/exporter/utils.d.ts.map +1 -0
- package/dist/commonjs/a365/exporter/utils.js +410 -0
- package/dist/commonjs/a365/exporter/utils.js.map +1 -0
- package/dist/commonjs/a365/index.d.ts +16 -0
- package/dist/commonjs/a365/index.d.ts.map +1 -0
- package/dist/commonjs/a365/index.js +54 -0
- package/dist/commonjs/a365/index.js.map +1 -0
- package/dist/commonjs/a365/message-utils.d.ts +42 -0
- package/dist/commonjs/a365/message-utils.d.ts.map +1 -0
- package/dist/commonjs/a365/message-utils.js +116 -0
- package/dist/commonjs/a365/message-utils.js.map +1 -0
- package/dist/commonjs/a365/middleware/BaggageBuilder.d.ts +112 -0
- package/dist/commonjs/a365/middleware/BaggageBuilder.d.ts.map +1 -0
- package/dist/commonjs/a365/middleware/BaggageBuilder.js +249 -0
- package/dist/commonjs/a365/middleware/BaggageBuilder.js.map +1 -0
- package/dist/commonjs/a365/middleware/index.d.ts +2 -0
- package/dist/commonjs/a365/middleware/index.d.ts.map +1 -0
- package/dist/commonjs/a365/middleware/index.js +9 -0
- package/dist/commonjs/a365/middleware/index.js.map +1 -0
- package/dist/commonjs/a365/processors/A365SpanProcessor.d.ts +32 -0
- package/dist/commonjs/a365/processors/A365SpanProcessor.d.ts.map +1 -0
- package/dist/commonjs/a365/processors/A365SpanProcessor.js +104 -0
- package/dist/commonjs/a365/processors/A365SpanProcessor.js.map +1 -0
- package/dist/commonjs/a365/processors/PerRequestSpanProcessor.d.ts +44 -0
- package/dist/commonjs/a365/processors/PerRequestSpanProcessor.d.ts.map +1 -0
- package/dist/commonjs/a365/processors/PerRequestSpanProcessor.js +260 -0
- package/dist/commonjs/a365/processors/PerRequestSpanProcessor.js.map +1 -0
- package/dist/commonjs/a365/processors/index.d.ts +5 -0
- package/dist/commonjs/a365/processors/index.d.ts.map +1 -0
- package/dist/commonjs/a365/processors/index.js +13 -0
- package/dist/commonjs/a365/processors/index.js.map +1 -0
- package/dist/commonjs/a365/processors/util.d.ts +10 -0
- package/dist/commonjs/a365/processors/util.d.ts.map +1 -0
- package/dist/commonjs/a365/processors/util.js +56 -0
- package/dist/commonjs/a365/processors/util.js.map +1 -0
- package/dist/commonjs/a365/scopes/ExecuteToolScope.d.ts +24 -0
- package/dist/commonjs/a365/scopes/ExecuteToolScope.d.ts.map +1 -0
- package/dist/commonjs/a365/scopes/ExecuteToolScope.js +60 -0
- package/dist/commonjs/a365/scopes/ExecuteToolScope.js.map +1 -0
- package/dist/commonjs/a365/scopes/InferenceScope.d.ts +29 -0
- package/dist/commonjs/a365/scopes/InferenceScope.d.ts.map +1 -0
- package/dist/commonjs/a365/scopes/InferenceScope.js +75 -0
- package/dist/commonjs/a365/scopes/InferenceScope.js.map +1 -0
- package/dist/commonjs/a365/scopes/InvokeAgentScope.d.ts +25 -0
- package/dist/commonjs/a365/scopes/InvokeAgentScope.d.ts.map +1 -0
- package/dist/commonjs/a365/scopes/InvokeAgentScope.js +84 -0
- package/dist/commonjs/a365/scopes/InvokeAgentScope.js.map +1 -0
- package/dist/commonjs/a365/scopes/OpenTelemetryScope.d.ts +59 -0
- package/dist/commonjs/a365/scopes/OpenTelemetryScope.d.ts.map +1 -0
- package/dist/commonjs/a365/scopes/OpenTelemetryScope.js +199 -0
- package/dist/commonjs/a365/scopes/OpenTelemetryScope.js.map +1 -0
- package/dist/commonjs/a365/scopes/OutputScope.d.ts +26 -0
- package/dist/commonjs/a365/scopes/OutputScope.d.ts.map +1 -0
- package/dist/commonjs/a365/scopes/OutputScope.js +73 -0
- package/dist/commonjs/a365/scopes/OutputScope.js.map +1 -0
- package/dist/commonjs/a365/scopes/index.d.ts +6 -0
- package/dist/commonjs/a365/scopes/index.d.ts.map +1 -0
- package/dist/commonjs/a365/scopes/index.js +16 -0
- package/dist/commonjs/a365/scopes/index.js.map +1 -0
- package/dist/commonjs/a365/utils/utils.d.ts +6 -0
- package/dist/commonjs/a365/utils/utils.d.ts.map +1 -0
- package/dist/commonjs/a365/utils/utils.js +14 -0
- package/dist/commonjs/a365/utils/utils.js.map +1 -0
- package/dist/commonjs/azureMonitor/metrics/quickpulse/types.d.ts +1 -1
- package/dist/commonjs/azureMonitor/traces/handler.d.ts.map +1 -1
- package/dist/commonjs/azureMonitor/traces/handler.js +8 -2
- package/dist/commonjs/azureMonitor/traces/handler.js.map +1 -1
- package/dist/commonjs/distro/distro.d.ts +1 -1
- package/dist/commonjs/distro/distro.d.ts.map +1 -1
- package/dist/commonjs/distro/distro.js +44 -92
- package/dist/commonjs/distro/distro.js.map +1 -1
- package/dist/commonjs/distro/types.d.ts +2 -1
- package/dist/commonjs/distro/types.d.ts.map +1 -1
- package/dist/commonjs/index.d.ts +5 -0
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +33 -1
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/package.json +1 -0
- package/dist/commonjs/shared/jsonConfig.d.ts +2 -1
- package/dist/commonjs/shared/jsonConfig.d.ts.map +1 -1
- package/dist/commonjs/shared/module.js +15 -11
- package/dist/commonjs/shared/module.js.map +1 -1
- package/dist/commonjs/types.d.ts +4 -30
- package/dist/commonjs/types.d.ts.map +1 -1
- package/dist/commonjs/types.js +1 -1
- package/dist/commonjs/types.js.map +1 -1
- package/dist/esm/a365/configuration/A365Configuration.d.ts +42 -0
- package/dist/esm/a365/configuration/A365Configuration.d.ts.map +1 -0
- package/dist/esm/a365/configuration/A365Configuration.js +158 -0
- package/dist/esm/a365/configuration/A365Configuration.js.map +1 -0
- package/dist/esm/a365/configuration/A365ConfigurationOptions.d.ts +53 -0
- package/dist/esm/a365/configuration/A365ConfigurationOptions.d.ts.map +1 -0
- package/dist/esm/a365/configuration/A365ConfigurationOptions.js +4 -0
- package/dist/esm/a365/configuration/A365ConfigurationOptions.js.map +1 -0
- package/dist/esm/a365/configuration/index.d.ts +3 -0
- package/dist/esm/a365/configuration/index.d.ts.map +1 -0
- package/dist/esm/a365/configuration/index.js +4 -0
- package/dist/esm/a365/configuration/index.js.map +1 -0
- package/dist/esm/a365/constants.d.ts +76 -0
- package/dist/esm/a365/constants.d.ts.map +1 -0
- package/dist/esm/a365/constants.js +95 -0
- package/dist/esm/a365/constants.js.map +1 -0
- package/dist/esm/a365/context/tokenContext.d.ts +25 -0
- package/dist/esm/a365/context/tokenContext.d.ts.map +1 -0
- package/dist/esm/a365/context/tokenContext.js +62 -0
- package/dist/esm/a365/context/tokenContext.js.map +1 -0
- package/dist/esm/a365/context.d.ts +31 -0
- package/dist/esm/a365/context.d.ts.map +1 -0
- package/dist/esm/a365/context.js +101 -0
- package/dist/esm/a365/context.js.map +1 -0
- package/dist/esm/a365/contracts.d.ts +250 -0
- package/dist/esm/a365/contracts.d.ts.map +1 -0
- package/dist/esm/a365/contracts.js +49 -0
- package/dist/esm/a365/contracts.js.map +1 -0
- package/dist/esm/a365/exporter/Agent365Exporter.d.ts +25 -0
- package/dist/esm/a365/exporter/Agent365Exporter.d.ts.map +1 -0
- package/dist/esm/a365/exporter/Agent365Exporter.js +216 -0
- package/dist/esm/a365/exporter/Agent365Exporter.js.map +1 -0
- package/dist/esm/a365/exporter/Agent365ExporterOptions.d.ts +43 -0
- package/dist/esm/a365/exporter/Agent365ExporterOptions.d.ts.map +1 -0
- package/dist/esm/a365/exporter/Agent365ExporterOptions.js +26 -0
- package/dist/esm/a365/exporter/Agent365ExporterOptions.js.map +1 -0
- package/dist/esm/a365/exporter/ExporterEventNames.d.ts +9 -0
- package/dist/esm/a365/exporter/ExporterEventNames.d.ts.map +1 -0
- package/dist/esm/a365/exporter/ExporterEventNames.js +12 -0
- package/dist/esm/a365/exporter/ExporterEventNames.js.map +1 -0
- package/dist/esm/a365/exporter/index.d.ts +6 -0
- package/dist/esm/a365/exporter/index.d.ts.map +1 -0
- package/dist/esm/a365/exporter/index.js +7 -0
- package/dist/esm/a365/exporter/index.js.map +1 -0
- package/dist/esm/a365/exporter/utils.d.ts +41 -0
- package/dist/esm/a365/exporter/utils.d.ts.map +1 -0
- package/dist/esm/a365/exporter/utils.js +398 -0
- package/dist/esm/a365/exporter/utils.js.map +1 -0
- package/dist/esm/a365/index.d.ts +16 -0
- package/dist/esm/a365/index.d.ts.map +1 -0
- package/dist/esm/a365/index.js +20 -0
- package/dist/esm/a365/index.js.map +1 -0
- package/dist/esm/a365/message-utils.d.ts +42 -0
- package/dist/esm/a365/message-utils.d.ts.map +1 -0
- package/dist/esm/a365/message-utils.js +107 -0
- package/dist/esm/a365/message-utils.js.map +1 -0
- package/dist/esm/a365/middleware/BaggageBuilder.d.ts +112 -0
- package/dist/esm/a365/middleware/BaggageBuilder.d.ts.map +1 -0
- package/dist/esm/a365/middleware/BaggageBuilder.js +244 -0
- package/dist/esm/a365/middleware/BaggageBuilder.js.map +1 -0
- package/dist/esm/a365/middleware/index.d.ts +2 -0
- package/dist/esm/a365/middleware/index.d.ts.map +1 -0
- package/dist/esm/a365/middleware/index.js +4 -0
- package/dist/esm/a365/middleware/index.js.map +1 -0
- package/dist/esm/a365/processors/A365SpanProcessor.d.ts +32 -0
- package/dist/esm/a365/processors/A365SpanProcessor.d.ts.map +1 -0
- package/dist/esm/a365/processors/A365SpanProcessor.js +100 -0
- package/dist/esm/a365/processors/A365SpanProcessor.js.map +1 -0
- package/dist/esm/a365/processors/PerRequestSpanProcessor.d.ts +44 -0
- package/dist/esm/a365/processors/PerRequestSpanProcessor.d.ts.map +1 -0
- package/dist/esm/a365/processors/PerRequestSpanProcessor.js +256 -0
- package/dist/esm/a365/processors/PerRequestSpanProcessor.js.map +1 -0
- package/dist/esm/a365/processors/index.d.ts +5 -0
- package/dist/esm/a365/processors/index.d.ts.map +1 -0
- package/dist/esm/a365/processors/index.js +6 -0
- package/dist/esm/a365/processors/index.js.map +1 -0
- package/dist/esm/a365/processors/util.d.ts +10 -0
- package/dist/esm/a365/processors/util.d.ts.map +1 -0
- package/dist/esm/a365/processors/util.js +53 -0
- package/dist/esm/a365/processors/util.js.map +1 -0
- package/dist/esm/a365/scopes/ExecuteToolScope.d.ts +24 -0
- package/dist/esm/a365/scopes/ExecuteToolScope.d.ts.map +1 -0
- package/dist/esm/a365/scopes/ExecuteToolScope.js +56 -0
- package/dist/esm/a365/scopes/ExecuteToolScope.js.map +1 -0
- package/dist/esm/a365/scopes/InferenceScope.d.ts +29 -0
- package/dist/esm/a365/scopes/InferenceScope.d.ts.map +1 -0
- package/dist/esm/a365/scopes/InferenceScope.js +71 -0
- package/dist/esm/a365/scopes/InferenceScope.js.map +1 -0
- package/dist/esm/a365/scopes/InvokeAgentScope.d.ts +25 -0
- package/dist/esm/a365/scopes/InvokeAgentScope.d.ts.map +1 -0
- package/dist/esm/a365/scopes/InvokeAgentScope.js +80 -0
- package/dist/esm/a365/scopes/InvokeAgentScope.js.map +1 -0
- package/dist/esm/a365/scopes/OpenTelemetryScope.d.ts +59 -0
- package/dist/esm/a365/scopes/OpenTelemetryScope.d.ts.map +1 -0
- package/dist/esm/a365/scopes/OpenTelemetryScope.js +195 -0
- package/dist/esm/a365/scopes/OpenTelemetryScope.js.map +1 -0
- package/dist/esm/a365/scopes/OutputScope.d.ts +26 -0
- package/dist/esm/a365/scopes/OutputScope.d.ts.map +1 -0
- package/dist/esm/a365/scopes/OutputScope.js +69 -0
- package/dist/esm/a365/scopes/OutputScope.js.map +1 -0
- package/dist/esm/a365/scopes/index.d.ts +6 -0
- package/dist/esm/a365/scopes/index.d.ts.map +1 -0
- package/dist/esm/a365/scopes/index.js +8 -0
- package/dist/esm/a365/scopes/index.js.map +1 -0
- package/dist/esm/a365/utils/utils.d.ts +6 -0
- package/dist/esm/a365/utils/utils.d.ts.map +1 -0
- package/dist/esm/a365/utils/utils.js +11 -0
- package/dist/esm/a365/utils/utils.js.map +1 -0
- package/dist/esm/azureMonitor/metrics/quickpulse/types.d.ts +1 -1
- package/dist/esm/azureMonitor/traces/handler.d.ts.map +1 -1
- package/dist/esm/azureMonitor/traces/handler.js +5 -1
- package/dist/esm/azureMonitor/traces/handler.js.map +1 -1
- package/dist/esm/distro/distro.d.ts +1 -1
- package/dist/esm/distro/distro.d.ts.map +1 -1
- package/dist/esm/distro/distro.js +44 -92
- package/dist/esm/distro/distro.js.map +1 -1
- package/dist/esm/distro/types.d.ts +2 -1
- package/dist/esm/distro/types.d.ts.map +1 -1
- package/dist/esm/index.d.ts +5 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/shared/jsonConfig.d.ts +2 -1
- package/dist/esm/shared/jsonConfig.d.ts.map +1 -1
- package/dist/esm/types.d.ts +4 -30
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +1 -1
- package/dist/esm/types.js.map +1 -1
- package/package.json +3 -4
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import type { Context } from "@opentelemetry/api";
|
|
2
|
+
/**
|
|
3
|
+
* Fluent builder for setting OpenTelemetry baggage values.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* const scope = new BaggageBuilder()
|
|
8
|
+
* .tenantId("tenant-123")
|
|
9
|
+
* .agentId("agent-456")
|
|
10
|
+
* .build();
|
|
11
|
+
*
|
|
12
|
+
* scope.run(() => {
|
|
13
|
+
* // Baggage is active in this context
|
|
14
|
+
* });
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare class BaggageBuilder {
|
|
18
|
+
private pairs;
|
|
19
|
+
/** Set the operation source baggage value (e.g., ATG, ACF). */
|
|
20
|
+
operationSource(value: string | null | undefined): BaggageBuilder;
|
|
21
|
+
/** Set the tenant ID baggage value. */
|
|
22
|
+
tenantId(value: string | null | undefined): BaggageBuilder;
|
|
23
|
+
/** Set the agent ID baggage value. */
|
|
24
|
+
agentId(value: string | null | undefined): BaggageBuilder;
|
|
25
|
+
/** Set the agent AUID baggage value. */
|
|
26
|
+
agentAuid(value: string | null | undefined): BaggageBuilder;
|
|
27
|
+
/** Set the agent email baggage value. */
|
|
28
|
+
agentEmail(value: string | null | undefined): BaggageBuilder;
|
|
29
|
+
/** Set the agent blueprint ID baggage value. */
|
|
30
|
+
agentBlueprintId(value: string | null | undefined): BaggageBuilder;
|
|
31
|
+
/** Set the session ID baggage value. */
|
|
32
|
+
sessionId(value: string): BaggageBuilder;
|
|
33
|
+
/** Set the user ID baggage value. */
|
|
34
|
+
userId(value: string | null | undefined): BaggageBuilder;
|
|
35
|
+
/** Set the agent name baggage value. */
|
|
36
|
+
agentName(value: string | null | undefined): BaggageBuilder;
|
|
37
|
+
/** Set the agent description baggage value. */
|
|
38
|
+
agentDescription(value: string | null | undefined): BaggageBuilder;
|
|
39
|
+
/** Set the agent platform ID baggage value. */
|
|
40
|
+
agentPlatformId(value: string | null | undefined): BaggageBuilder;
|
|
41
|
+
/** Set the agent version baggage value. */
|
|
42
|
+
agentVersion(value: string | null | undefined): BaggageBuilder;
|
|
43
|
+
/** Set the session description baggage value. */
|
|
44
|
+
sessionDescription(value: string | null | undefined): BaggageBuilder;
|
|
45
|
+
/** Set the user name baggage value. */
|
|
46
|
+
userName(value: string | null | undefined): BaggageBuilder;
|
|
47
|
+
/** Set the user email baggage value. */
|
|
48
|
+
userEmail(value: string | null | undefined): BaggageBuilder;
|
|
49
|
+
/** Set the caller client IP baggage value. */
|
|
50
|
+
callerClientIp(value: string | null | undefined): BaggageBuilder;
|
|
51
|
+
/** Set the caller agent platform ID baggage value. */
|
|
52
|
+
callerAgentPlatformId(value: string | null | undefined): BaggageBuilder;
|
|
53
|
+
/** Set the conversation ID baggage value. */
|
|
54
|
+
conversationId(value: string | null | undefined): BaggageBuilder;
|
|
55
|
+
/** Set the conversation item link baggage value. */
|
|
56
|
+
conversationItemLink(value: string | null | undefined): BaggageBuilder;
|
|
57
|
+
/** Set the channel name (e.g., Teams, Slack). */
|
|
58
|
+
channelName(value: string | null | undefined): BaggageBuilder;
|
|
59
|
+
/** Set the channel link/URL. */
|
|
60
|
+
channelLink(value: string | null | undefined): BaggageBuilder;
|
|
61
|
+
/**
|
|
62
|
+
* Sets the invoke agent server address and port baggage values.
|
|
63
|
+
* @param address The server address (hostname) of the target agent service.
|
|
64
|
+
* @param port Optional server port. Only recorded when different from 443.
|
|
65
|
+
*/
|
|
66
|
+
invokeAgentServer(address: string | null | undefined, port?: number): BaggageBuilder;
|
|
67
|
+
/**
|
|
68
|
+
* Set multiple baggage pairs from a dictionary or iterable.
|
|
69
|
+
* @param pairs Dictionary or iterable of key-value pairs
|
|
70
|
+
*/
|
|
71
|
+
setPairs(pairs: Record<string, any> | Iterable<[string, any]> | null | undefined): BaggageBuilder;
|
|
72
|
+
/**
|
|
73
|
+
* Apply the collected baggage to the current context.
|
|
74
|
+
* @returns A BaggageScope that can run callbacks under the baggage context
|
|
75
|
+
*/
|
|
76
|
+
build(): BaggageScope;
|
|
77
|
+
/**
|
|
78
|
+
* Add a baggage key/value if the value is not null or whitespace.
|
|
79
|
+
*/
|
|
80
|
+
private set;
|
|
81
|
+
/**
|
|
82
|
+
* Convenience method to begin a request baggage scope with common fields.
|
|
83
|
+
* @param tenantId The tenant ID
|
|
84
|
+
* @param agentId The agent ID
|
|
85
|
+
* @returns A BaggageScope with tenant and agent ID set
|
|
86
|
+
*/
|
|
87
|
+
static setRequestContext(tenantId?: string | null, agentId?: string | null): BaggageScope;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Context manager for baggage scope.
|
|
91
|
+
*
|
|
92
|
+
* Manages the lifecycle of baggage values, setting them in the OTel context
|
|
93
|
+
* and restoring the previous context when the scope ends.
|
|
94
|
+
*/
|
|
95
|
+
export declare class BaggageScope {
|
|
96
|
+
/** @internal Exposed for testing. */
|
|
97
|
+
readonly contextWithBaggage: Context;
|
|
98
|
+
constructor(pairs: Map<string, string>);
|
|
99
|
+
/**
|
|
100
|
+
* Execute a synchronous function under this baggage scope.
|
|
101
|
+
* Automatically restores previous context afterward.
|
|
102
|
+
*/
|
|
103
|
+
run<T>(fn: () => T): T;
|
|
104
|
+
/**
|
|
105
|
+
* Dispose is a no-op because OpenTelemetry JS automatically restores
|
|
106
|
+
* the previous context after `context.with()` completes.
|
|
107
|
+
*/
|
|
108
|
+
[Symbol.dispose](): void;
|
|
109
|
+
/** Manual cleanup alternative if caller isn't using `using`. */
|
|
110
|
+
dispose(): void;
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=BaggageBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaggageBuilder.d.ts","sourceRoot":"","sources":["../../../../src/a365/middleware/BaggageBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
/**
|
|
4
|
+
* Per-request baggage builder for OpenTelemetry context propagation.
|
|
5
|
+
*
|
|
6
|
+
* Provides a fluent API for setting baggage values that will be propagated
|
|
7
|
+
* in the OpenTelemetry context and stamped onto spans by the SpanProcessor.
|
|
8
|
+
*
|
|
9
|
+
* Adapted from microsoft/Agent365-nodejs agents-a365-observability/src/tracing/middleware/BaggageBuilder.ts
|
|
10
|
+
*/
|
|
11
|
+
import { propagation, context as otelContext } from "@opentelemetry/api";
|
|
12
|
+
import { OpenTelemetryConstants } from "../constants.js";
|
|
13
|
+
/**
|
|
14
|
+
* Fluent builder for setting OpenTelemetry baggage values.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const scope = new BaggageBuilder()
|
|
19
|
+
* .tenantId("tenant-123")
|
|
20
|
+
* .agentId("agent-456")
|
|
21
|
+
* .build();
|
|
22
|
+
*
|
|
23
|
+
* scope.run(() => {
|
|
24
|
+
* // Baggage is active in this context
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export class BaggageBuilder {
|
|
29
|
+
pairs = new Map();
|
|
30
|
+
/** Set the operation source baggage value (e.g., ATG, ACF). */
|
|
31
|
+
operationSource(value) {
|
|
32
|
+
this.set(OpenTelemetryConstants.SERVICE_NAME_KEY, value);
|
|
33
|
+
return this;
|
|
34
|
+
}
|
|
35
|
+
/** Set the tenant ID baggage value. */
|
|
36
|
+
tenantId(value) {
|
|
37
|
+
this.set(OpenTelemetryConstants.TENANT_ID_KEY, value);
|
|
38
|
+
return this;
|
|
39
|
+
}
|
|
40
|
+
/** Set the agent ID baggage value. */
|
|
41
|
+
agentId(value) {
|
|
42
|
+
this.set(OpenTelemetryConstants.GEN_AI_AGENT_ID_KEY, value);
|
|
43
|
+
return this;
|
|
44
|
+
}
|
|
45
|
+
/** Set the agent AUID baggage value. */
|
|
46
|
+
agentAuid(value) {
|
|
47
|
+
this.set(OpenTelemetryConstants.GEN_AI_AGENT_AUID_KEY, value);
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
/** Set the agent email baggage value. */
|
|
51
|
+
agentEmail(value) {
|
|
52
|
+
this.set(OpenTelemetryConstants.GEN_AI_AGENT_EMAIL_KEY, value);
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
55
|
+
/** Set the agent blueprint ID baggage value. */
|
|
56
|
+
agentBlueprintId(value) {
|
|
57
|
+
this.set(OpenTelemetryConstants.GEN_AI_AGENT_BLUEPRINT_ID_KEY, value);
|
|
58
|
+
return this;
|
|
59
|
+
}
|
|
60
|
+
/** Set the session ID baggage value. */
|
|
61
|
+
sessionId(value) {
|
|
62
|
+
this.set(OpenTelemetryConstants.SESSION_ID_KEY, value);
|
|
63
|
+
return this;
|
|
64
|
+
}
|
|
65
|
+
/** Set the user ID baggage value. */
|
|
66
|
+
userId(value) {
|
|
67
|
+
this.set(OpenTelemetryConstants.USER_ID_KEY, value);
|
|
68
|
+
return this;
|
|
69
|
+
}
|
|
70
|
+
/** Set the agent name baggage value. */
|
|
71
|
+
agentName(value) {
|
|
72
|
+
this.set(OpenTelemetryConstants.GEN_AI_AGENT_NAME_KEY, value);
|
|
73
|
+
return this;
|
|
74
|
+
}
|
|
75
|
+
/** Set the agent description baggage value. */
|
|
76
|
+
agentDescription(value) {
|
|
77
|
+
this.set(OpenTelemetryConstants.GEN_AI_AGENT_DESCRIPTION_KEY, value);
|
|
78
|
+
return this;
|
|
79
|
+
}
|
|
80
|
+
/** Set the agent platform ID baggage value. */
|
|
81
|
+
agentPlatformId(value) {
|
|
82
|
+
this.set(OpenTelemetryConstants.GEN_AI_AGENT_PLATFORM_ID_KEY, value);
|
|
83
|
+
return this;
|
|
84
|
+
}
|
|
85
|
+
/** Set the agent version baggage value. */
|
|
86
|
+
agentVersion(value) {
|
|
87
|
+
this.set(OpenTelemetryConstants.GEN_AI_AGENT_VERSION_KEY, value);
|
|
88
|
+
return this;
|
|
89
|
+
}
|
|
90
|
+
/** Set the session description baggage value. */
|
|
91
|
+
sessionDescription(value) {
|
|
92
|
+
this.set(OpenTelemetryConstants.SESSION_DESCRIPTION_KEY, value);
|
|
93
|
+
return this;
|
|
94
|
+
}
|
|
95
|
+
/** Set the user name baggage value. */
|
|
96
|
+
userName(value) {
|
|
97
|
+
this.set(OpenTelemetryConstants.USER_NAME_KEY, value);
|
|
98
|
+
return this;
|
|
99
|
+
}
|
|
100
|
+
/** Set the user email baggage value. */
|
|
101
|
+
userEmail(value) {
|
|
102
|
+
this.set(OpenTelemetryConstants.USER_EMAIL_KEY, value);
|
|
103
|
+
return this;
|
|
104
|
+
}
|
|
105
|
+
/** Set the caller client IP baggage value. */
|
|
106
|
+
callerClientIp(value) {
|
|
107
|
+
this.set(OpenTelemetryConstants.GEN_AI_CALLER_CLIENT_IP_KEY, value);
|
|
108
|
+
return this;
|
|
109
|
+
}
|
|
110
|
+
/** Set the caller agent platform ID baggage value. */
|
|
111
|
+
callerAgentPlatformId(value) {
|
|
112
|
+
this.set(OpenTelemetryConstants.GEN_AI_CALLER_AGENT_PLATFORM_ID_KEY, value);
|
|
113
|
+
return this;
|
|
114
|
+
}
|
|
115
|
+
/** Set the conversation ID baggage value. */
|
|
116
|
+
conversationId(value) {
|
|
117
|
+
this.set(OpenTelemetryConstants.GEN_AI_CONVERSATION_ID_KEY, value);
|
|
118
|
+
return this;
|
|
119
|
+
}
|
|
120
|
+
/** Set the conversation item link baggage value. */
|
|
121
|
+
conversationItemLink(value) {
|
|
122
|
+
this.set(OpenTelemetryConstants.GEN_AI_CONVERSATION_ITEM_LINK_KEY, value);
|
|
123
|
+
return this;
|
|
124
|
+
}
|
|
125
|
+
/** Set the channel name (e.g., Teams, Slack). */
|
|
126
|
+
channelName(value) {
|
|
127
|
+
this.set(OpenTelemetryConstants.CHANNEL_NAME_KEY, value);
|
|
128
|
+
return this;
|
|
129
|
+
}
|
|
130
|
+
/** Set the channel link/URL. */
|
|
131
|
+
channelLink(value) {
|
|
132
|
+
this.set(OpenTelemetryConstants.CHANNEL_LINK_KEY, value);
|
|
133
|
+
return this;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Sets the invoke agent server address and port baggage values.
|
|
137
|
+
* @param address The server address (hostname) of the target agent service.
|
|
138
|
+
* @param port Optional server port. Only recorded when different from 443.
|
|
139
|
+
*/
|
|
140
|
+
invokeAgentServer(address, port) {
|
|
141
|
+
this.set(OpenTelemetryConstants.SERVER_ADDRESS_KEY, address);
|
|
142
|
+
if (port !== undefined && port !== 443) {
|
|
143
|
+
this.set(OpenTelemetryConstants.SERVER_PORT_KEY, port.toString());
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
this.pairs.delete(OpenTelemetryConstants.SERVER_PORT_KEY);
|
|
147
|
+
}
|
|
148
|
+
return this;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Set multiple baggage pairs from a dictionary or iterable.
|
|
152
|
+
* @param pairs Dictionary or iterable of key-value pairs
|
|
153
|
+
*/
|
|
154
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
155
|
+
setPairs(pairs) {
|
|
156
|
+
if (!pairs) {
|
|
157
|
+
return this;
|
|
158
|
+
}
|
|
159
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
160
|
+
let entries;
|
|
161
|
+
if (Symbol.iterator in Object(pairs)) {
|
|
162
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
163
|
+
entries = pairs;
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
entries = Object.entries(pairs);
|
|
167
|
+
}
|
|
168
|
+
for (const [key, value] of entries) {
|
|
169
|
+
if (value !== null && value !== undefined) {
|
|
170
|
+
this.set(key, String(value));
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return this;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Apply the collected baggage to the current context.
|
|
177
|
+
* @returns A BaggageScope that can run callbacks under the baggage context
|
|
178
|
+
*/
|
|
179
|
+
build() {
|
|
180
|
+
return new BaggageScope(this.pairs);
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Add a baggage key/value if the value is not null or whitespace.
|
|
184
|
+
*/
|
|
185
|
+
set(key, value) {
|
|
186
|
+
if (value !== null && value !== undefined) {
|
|
187
|
+
const trimmed = value.trim();
|
|
188
|
+
if (trimmed) {
|
|
189
|
+
this.pairs.set(key, trimmed);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Convenience method to begin a request baggage scope with common fields.
|
|
195
|
+
* @param tenantId The tenant ID
|
|
196
|
+
* @param agentId The agent ID
|
|
197
|
+
* @returns A BaggageScope with tenant and agent ID set
|
|
198
|
+
*/
|
|
199
|
+
static setRequestContext(tenantId, agentId) {
|
|
200
|
+
return new BaggageBuilder().tenantId(tenantId).agentId(agentId).build();
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Context manager for baggage scope.
|
|
205
|
+
*
|
|
206
|
+
* Manages the lifecycle of baggage values, setting them in the OTel context
|
|
207
|
+
* and restoring the previous context when the scope ends.
|
|
208
|
+
*/
|
|
209
|
+
export class BaggageScope {
|
|
210
|
+
/** @internal Exposed for testing. */
|
|
211
|
+
contextWithBaggage;
|
|
212
|
+
constructor(pairs) {
|
|
213
|
+
// 1. Start from current active context
|
|
214
|
+
const currentCtx = otelContext.active();
|
|
215
|
+
// 2. Build merged baggage
|
|
216
|
+
let bag = propagation.getBaggage(currentCtx) ?? propagation.createBaggage({});
|
|
217
|
+
for (const [key, value] of pairs.entries()) {
|
|
218
|
+
if (value && value.trim()) {
|
|
219
|
+
bag = bag.setEntry(key, { value });
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
// 3. Create a new context that carries that baggage
|
|
223
|
+
this.contextWithBaggage = propagation.setBaggage(currentCtx, bag);
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Execute a synchronous function under this baggage scope.
|
|
227
|
+
* Automatically restores previous context afterward.
|
|
228
|
+
*/
|
|
229
|
+
run(fn) {
|
|
230
|
+
return otelContext.with(this.contextWithBaggage, fn);
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Dispose is a no-op because OpenTelemetry JS automatically restores
|
|
234
|
+
* the previous context after `context.with()` completes.
|
|
235
|
+
*/
|
|
236
|
+
[Symbol.dispose]() {
|
|
237
|
+
// Nothing to detach manually; context restoration happens automatically.
|
|
238
|
+
}
|
|
239
|
+
/** Manual cleanup alternative if caller isn't using `using`. */
|
|
240
|
+
dispose() {
|
|
241
|
+
this[Symbol.dispose]();
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
//# sourceMappingURL=BaggageBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaggageBuilder.js","sourceRoot":"","sources":["../../../../src/a365/middleware/BaggageBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/a365/middleware/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/a365/middleware/index.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Span processor that propagates baggage key/value pairs to span attributes.
|
|
3
|
+
*
|
|
4
|
+
* This processor copies baggage entries onto spans based on the operation type.
|
|
5
|
+
* For `invoke_agent` operations, it applies both generic and invoke-agent-specific attributes.
|
|
6
|
+
* For other operations, it applies only generic attributes.
|
|
7
|
+
*
|
|
8
|
+
* Adapted from microsoft/Agent365-nodejs agents-a365-observability/src/tracing/processors/SpanProcessor.ts
|
|
9
|
+
*/
|
|
10
|
+
import type { Context, Span } from "@opentelemetry/api";
|
|
11
|
+
import type { SpanProcessor as BaseSpanProcessor, ReadableSpan } from "@opentelemetry/sdk-trace-base";
|
|
12
|
+
/**
|
|
13
|
+
* Copies relevant baggage entries to span attributes on span start.
|
|
14
|
+
*
|
|
15
|
+
* This is the "automatic" counterpart to the manual scope API — it ensures
|
|
16
|
+
* every span in the pipeline gets agent identity attributes from baggage
|
|
17
|
+
* without explicitly creating scopes.
|
|
18
|
+
*/
|
|
19
|
+
export declare class A365SpanProcessor implements BaseSpanProcessor {
|
|
20
|
+
/**
|
|
21
|
+
* Called when a span is started.
|
|
22
|
+
* Copies relevant baggage entries to span attributes.
|
|
23
|
+
*/
|
|
24
|
+
onStart(span: Span, parentContext?: Context): void;
|
|
25
|
+
/** Called when a span is ended. */
|
|
26
|
+
onEnd(_span: ReadableSpan): void;
|
|
27
|
+
/** Shutdown the processor. */
|
|
28
|
+
shutdown(): Promise<void>;
|
|
29
|
+
/** Force flush the processor. */
|
|
30
|
+
forceFlush(): Promise<void>;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=A365SpanProcessor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"A365SpanProcessor.d.ts","sourceRoot":"","sources":["../../../../src/a365/processors/A365SpanProcessor.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,KAAK,EACV,aAAa,IAAI,iBAAiB,EAClC,YAAY,EACb,MAAM,+BAA+B,CAAC;AAIvC;;;;;;GAMG;AACH,qBAAa,iBAAkB,YAAW,iBAAiB;IACzD;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,IAAI;IAyFlD,mCAAmC;IACnC,KAAK,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAIhC,8BAA8B;IACxB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,iCAAiC;IAC3B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAGlC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// Copyright (c) Microsoft Corporation.
|
|
2
|
+
// Licensed under the MIT License.
|
|
3
|
+
import { propagation } from "@opentelemetry/api";
|
|
4
|
+
import { OpenTelemetryConstants } from "../constants.js";
|
|
5
|
+
import { GENERIC_ATTRIBUTES, INVOKE_AGENT_ATTRIBUTES } from "./util.js";
|
|
6
|
+
/**
|
|
7
|
+
* Copies relevant baggage entries to span attributes on span start.
|
|
8
|
+
*
|
|
9
|
+
* This is the "automatic" counterpart to the manual scope API — it ensures
|
|
10
|
+
* every span in the pipeline gets agent identity attributes from baggage
|
|
11
|
+
* without explicitly creating scopes.
|
|
12
|
+
*/
|
|
13
|
+
export class A365SpanProcessor {
|
|
14
|
+
/**
|
|
15
|
+
* Called when a span is started.
|
|
16
|
+
* Copies relevant baggage entries to span attributes.
|
|
17
|
+
*/
|
|
18
|
+
onStart(span, parentContext) {
|
|
19
|
+
const ctx = parentContext;
|
|
20
|
+
if (!ctx) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
// Get existing span attributes
|
|
24
|
+
const existingAttrs = new Set();
|
|
25
|
+
try {
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
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
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
49
|
+
span.attributes?.[OpenTelemetryConstants.GEN_AI_OPERATION_NAME_KEY];
|
|
50
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
51
|
+
const spanName = span.name || "";
|
|
52
|
+
const isInvokeAgent = operationName === OpenTelemetryConstants.INVOKE_AGENT_OPERATION_NAME ||
|
|
53
|
+
spanName.startsWith(OpenTelemetryConstants.INVOKE_AGENT_OPERATION_NAME);
|
|
54
|
+
// Build target key set
|
|
55
|
+
const targetKeys = new Set(GENERIC_ATTRIBUTES);
|
|
56
|
+
if (isInvokeAgent) {
|
|
57
|
+
INVOKE_AGENT_ATTRIBUTES.forEach((key) => targetKeys.add(key));
|
|
58
|
+
}
|
|
59
|
+
// Set telemetry SDK attributes
|
|
60
|
+
if (!existingAttrs.has(OpenTelemetryConstants.TELEMETRY_SDK_NAME_KEY)) {
|
|
61
|
+
span.setAttribute(OpenTelemetryConstants.TELEMETRY_SDK_NAME_KEY, OpenTelemetryConstants.TELEMETRY_SDK_NAME_VALUE);
|
|
62
|
+
}
|
|
63
|
+
if (!existingAttrs.has(OpenTelemetryConstants.TELEMETRY_SDK_LANGUAGE_KEY)) {
|
|
64
|
+
span.setAttribute(OpenTelemetryConstants.TELEMETRY_SDK_LANGUAGE_KEY, OpenTelemetryConstants.TELEMETRY_SDK_LANGUAGE_VALUE);
|
|
65
|
+
}
|
|
66
|
+
if (!existingAttrs.has(OpenTelemetryConstants.TELEMETRY_SDK_VERSION_KEY)) {
|
|
67
|
+
span.setAttribute(OpenTelemetryConstants.TELEMETRY_SDK_VERSION_KEY, OpenTelemetryConstants.TELEMETRY_SDK_VERSION_VALUE);
|
|
68
|
+
}
|
|
69
|
+
// Copy baggage to span attributes
|
|
70
|
+
for (const key of targetKeys) {
|
|
71
|
+
// Skip if attribute already exists
|
|
72
|
+
if (existingAttrs.has(key)) {
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
const value = baggageMap.get(key);
|
|
76
|
+
if (!value) {
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
try {
|
|
80
|
+
span.setAttribute(key, value);
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
// Ignore errors setting attributes
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/** Called when a span is ended. */
|
|
88
|
+
onEnd(_span) {
|
|
89
|
+
// No-op for this processor
|
|
90
|
+
}
|
|
91
|
+
/** Shutdown the processor. */
|
|
92
|
+
async shutdown() {
|
|
93
|
+
// No-op for this processor
|
|
94
|
+
}
|
|
95
|
+
/** Force flush the processor. */
|
|
96
|
+
async forceFlush() {
|
|
97
|
+
// No-op for this processor
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=A365SpanProcessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"A365SpanProcessor.js","sourceRoot":"","sources":["../../../../src/a365/processors/A365SpanProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Context, Span } from "@opentelemetry/api";
|
|
2
|
+
import type { ReadableSpan, SpanProcessor, SpanExporter } from "@opentelemetry/sdk-trace-base";
|
|
3
|
+
/**
|
|
4
|
+
* Configuration options for the PerRequestSpanProcessor.
|
|
5
|
+
*/
|
|
6
|
+
export interface PerRequestSpanProcessorOptions {
|
|
7
|
+
maxBufferedTraces?: number;
|
|
8
|
+
maxSpansPerTrace?: number;
|
|
9
|
+
maxConcurrentExports?: number;
|
|
10
|
+
flushGraceMs?: number;
|
|
11
|
+
maxTraceAgeMs?: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Buffers spans per trace and exports them together once the trace completes.
|
|
15
|
+
*
|
|
16
|
+
* This processor supports per-request token resolution by exporting under
|
|
17
|
+
* the original request Context so that getExportToken() can read the token
|
|
18
|
+
* from the active OpenTelemetry Context at export time.
|
|
19
|
+
*/
|
|
20
|
+
export declare class PerRequestSpanProcessor implements SpanProcessor {
|
|
21
|
+
private readonly exporter;
|
|
22
|
+
private traces;
|
|
23
|
+
private sweepTimer?;
|
|
24
|
+
private isSweeping;
|
|
25
|
+
private readonly maxBufferedTraces;
|
|
26
|
+
private readonly maxSpansPerTrace;
|
|
27
|
+
private readonly maxConcurrentExports;
|
|
28
|
+
private readonly flushGraceMs;
|
|
29
|
+
private readonly maxTraceAgeMs;
|
|
30
|
+
private inFlightExports;
|
|
31
|
+
private exportWaiters;
|
|
32
|
+
constructor(exporter: SpanExporter, options?: PerRequestSpanProcessorOptions);
|
|
33
|
+
onStart(span: Span, ctx: Context): void;
|
|
34
|
+
onEnd(span: ReadableSpan): void;
|
|
35
|
+
forceFlush(): Promise<void>;
|
|
36
|
+
shutdown(): Promise<void>;
|
|
37
|
+
private ensureSweepTimer;
|
|
38
|
+
private stopSweepTimerIfIdle;
|
|
39
|
+
private sweep;
|
|
40
|
+
private flushTrace;
|
|
41
|
+
private acquireExportSlot;
|
|
42
|
+
private releaseExportSlot;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=PerRequestSpanProcessor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PerRequestSpanProcessor.d.ts","sourceRoot":"","sources":["../../../../src/a365/processors/PerRequestSpanProcessor.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AA+B/F;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAeD;;;;;;GAMG;AACH,qBAAa,uBAAwB,YAAW,aAAa;IAezD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAd3B,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,UAAU,CAAC,CAAiC;IACpD,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAEvC,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,aAAa,CAAyB;gBAG3B,QAAQ,EAAE,YAAY,EACvC,OAAO,CAAC,EAAE,8BAA8B;IAwB1C,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI;IA0CvC,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAwCzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAM/B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,oBAAoB;YAOd,KAAK;YAkCL,UAAU;YA8DV,iBAAiB;IAe/B,OAAO,CAAC,iBAAiB;CAM1B"}
|