@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.
Files changed (130) hide show
  1. package/README.md +33 -0
  2. package/dist/cjs/ObservabilityBuilder.d.ts +61 -0
  3. package/dist/cjs/ObservabilityBuilder.d.ts.map +1 -0
  4. package/dist/cjs/ObservabilityBuilder.js +141 -0
  5. package/dist/cjs/ObservabilityBuilder.js.map +1 -0
  6. package/dist/cjs/ObservabilityManager.d.ts +29 -0
  7. package/dist/cjs/ObservabilityManager.d.ts.map +1 -0
  8. package/dist/cjs/ObservabilityManager.js +61 -0
  9. package/dist/cjs/ObservabilityManager.js.map +1 -0
  10. package/dist/cjs/index.d.ts +10 -0
  11. package/dist/cjs/index.d.ts.map +1 -0
  12. package/dist/cjs/index.js +33 -0
  13. package/dist/cjs/index.js.map +1 -0
  14. package/dist/cjs/tracing/constants.d.ts +83 -0
  15. package/dist/cjs/tracing/constants.d.ts.map +1 -0
  16. package/dist/cjs/tracing/constants.js +101 -0
  17. package/dist/cjs/tracing/constants.js.map +1 -0
  18. package/dist/cjs/tracing/contracts.d.ts +186 -0
  19. package/dist/cjs/tracing/contracts.d.ts.map +1 -0
  20. package/dist/cjs/tracing/contracts.js +44 -0
  21. package/dist/cjs/tracing/contracts.js.map +1 -0
  22. package/dist/cjs/tracing/exporter/Agent365Exporter.d.ts +53 -0
  23. package/dist/cjs/tracing/exporter/Agent365Exporter.d.ts.map +1 -0
  24. package/dist/cjs/tracing/exporter/Agent365Exporter.js +318 -0
  25. package/dist/cjs/tracing/exporter/Agent365Exporter.js.map +1 -0
  26. package/dist/cjs/tracing/exporter/utils.d.ts +38 -0
  27. package/dist/cjs/tracing/exporter/utils.d.ts.map +1 -0
  28. package/dist/cjs/tracing/exporter/utils.js +126 -0
  29. package/dist/cjs/tracing/exporter/utils.js.map +1 -0
  30. package/dist/cjs/tracing/middleware/BaggageBuilder.d.ts +182 -0
  31. package/dist/cjs/tracing/middleware/BaggageBuilder.d.ts.map +1 -0
  32. package/dist/cjs/tracing/middleware/BaggageBuilder.js +297 -0
  33. package/dist/cjs/tracing/middleware/BaggageBuilder.js.map +1 -0
  34. package/dist/cjs/tracing/processors/SpanProcessor.d.ts +30 -0
  35. package/dist/cjs/tracing/processors/SpanProcessor.d.ts.map +1 -0
  36. package/dist/cjs/tracing/processors/SpanProcessor.js +98 -0
  37. package/dist/cjs/tracing/processors/SpanProcessor.js.map +1 -0
  38. package/dist/cjs/tracing/processors/util.d.ts +9 -0
  39. package/dist/cjs/tracing/processors/util.d.ts.map +1 -0
  40. package/dist/cjs/tracing/processors/util.js +50 -0
  41. package/dist/cjs/tracing/processors/util.js.map +1 -0
  42. package/dist/cjs/tracing/scopes/ExecuteToolScope.d.ts +22 -0
  43. package/dist/cjs/tracing/scopes/ExecuteToolScope.d.ts.map +1 -0
  44. package/dist/cjs/tracing/scopes/ExecuteToolScope.js +51 -0
  45. package/dist/cjs/tracing/scopes/ExecuteToolScope.js.map +1 -0
  46. package/dist/cjs/tracing/scopes/InferenceScope.d.ts +47 -0
  47. package/dist/cjs/tracing/scopes/InferenceScope.d.ts.map +1 -0
  48. package/dist/cjs/tracing/scopes/InferenceScope.js +83 -0
  49. package/dist/cjs/tracing/scopes/InferenceScope.js.map +1 -0
  50. package/dist/cjs/tracing/scopes/InvokeAgentScope.d.ts +33 -0
  51. package/dist/cjs/tracing/scopes/InvokeAgentScope.d.ts.map +1 -0
  52. package/dist/cjs/tracing/scopes/InvokeAgentScope.js +94 -0
  53. package/dist/cjs/tracing/scopes/InvokeAgentScope.js.map +1 -0
  54. package/dist/cjs/tracing/scopes/OpenTelemetryScope.d.ts +57 -0
  55. package/dist/cjs/tracing/scopes/OpenTelemetryScope.d.ts.map +1 -0
  56. package/dist/cjs/tracing/scopes/OpenTelemetryScope.js +146 -0
  57. package/dist/cjs/tracing/scopes/OpenTelemetryScope.js.map +1 -0
  58. package/dist/cjs/tracing/util.d.ts +9 -0
  59. package/dist/cjs/tracing/util.d.ts.map +1 -0
  60. package/dist/cjs/tracing/util.js +28 -0
  61. package/dist/cjs/tracing/util.js.map +1 -0
  62. package/dist/cjs/utils/logging.d.ts +11 -0
  63. package/dist/cjs/utils/logging.d.ts.map +1 -0
  64. package/dist/cjs/utils/logging.js +84 -0
  65. package/dist/cjs/utils/logging.js.map +1 -0
  66. package/dist/esm/ObservabilityBuilder.d.ts +61 -0
  67. package/dist/esm/ObservabilityBuilder.d.ts.map +1 -0
  68. package/dist/esm/ObservabilityBuilder.js +137 -0
  69. package/dist/esm/ObservabilityBuilder.js.map +1 -0
  70. package/dist/esm/ObservabilityManager.d.ts +29 -0
  71. package/dist/esm/ObservabilityManager.d.ts.map +1 -0
  72. package/dist/esm/ObservabilityManager.js +57 -0
  73. package/dist/esm/ObservabilityManager.js.map +1 -0
  74. package/dist/esm/index.d.ts +10 -0
  75. package/dist/esm/index.d.ts.map +1 -0
  76. package/dist/esm/index.js +18 -0
  77. package/dist/esm/index.js.map +1 -0
  78. package/dist/esm/tracing/constants.d.ts +83 -0
  79. package/dist/esm/tracing/constants.d.ts.map +1 -0
  80. package/dist/esm/tracing/constants.js +97 -0
  81. package/dist/esm/tracing/constants.js.map +1 -0
  82. package/dist/esm/tracing/contracts.d.ts +186 -0
  83. package/dist/esm/tracing/contracts.d.ts.map +1 -0
  84. package/dist/esm/tracing/contracts.js +41 -0
  85. package/dist/esm/tracing/contracts.js.map +1 -0
  86. package/dist/esm/tracing/exporter/Agent365Exporter.d.ts +53 -0
  87. package/dist/esm/tracing/exporter/Agent365Exporter.d.ts.map +1 -0
  88. package/dist/esm/tracing/exporter/Agent365Exporter.js +281 -0
  89. package/dist/esm/tracing/exporter/Agent365Exporter.js.map +1 -0
  90. package/dist/esm/tracing/exporter/utils.d.ts +38 -0
  91. package/dist/esm/tracing/exporter/utils.d.ts.map +1 -0
  92. package/dist/esm/tracing/exporter/utils.js +113 -0
  93. package/dist/esm/tracing/exporter/utils.js.map +1 -0
  94. package/dist/esm/tracing/middleware/BaggageBuilder.d.ts +182 -0
  95. package/dist/esm/tracing/middleware/BaggageBuilder.d.ts.map +1 -0
  96. package/dist/esm/tracing/middleware/BaggageBuilder.js +292 -0
  97. package/dist/esm/tracing/middleware/BaggageBuilder.js.map +1 -0
  98. package/dist/esm/tracing/processors/SpanProcessor.d.ts +30 -0
  99. package/dist/esm/tracing/processors/SpanProcessor.d.ts.map +1 -0
  100. package/dist/esm/tracing/processors/SpanProcessor.js +94 -0
  101. package/dist/esm/tracing/processors/SpanProcessor.js.map +1 -0
  102. package/dist/esm/tracing/processors/util.d.ts +9 -0
  103. package/dist/esm/tracing/processors/util.d.ts.map +1 -0
  104. package/dist/esm/tracing/processors/util.js +47 -0
  105. package/dist/esm/tracing/processors/util.js.map +1 -0
  106. package/dist/esm/tracing/scopes/ExecuteToolScope.d.ts +22 -0
  107. package/dist/esm/tracing/scopes/ExecuteToolScope.d.ts.map +1 -0
  108. package/dist/esm/tracing/scopes/ExecuteToolScope.js +47 -0
  109. package/dist/esm/tracing/scopes/ExecuteToolScope.js.map +1 -0
  110. package/dist/esm/tracing/scopes/InferenceScope.d.ts +47 -0
  111. package/dist/esm/tracing/scopes/InferenceScope.d.ts.map +1 -0
  112. package/dist/esm/tracing/scopes/InferenceScope.js +79 -0
  113. package/dist/esm/tracing/scopes/InferenceScope.js.map +1 -0
  114. package/dist/esm/tracing/scopes/InvokeAgentScope.d.ts +33 -0
  115. package/dist/esm/tracing/scopes/InvokeAgentScope.d.ts.map +1 -0
  116. package/dist/esm/tracing/scopes/InvokeAgentScope.js +90 -0
  117. package/dist/esm/tracing/scopes/InvokeAgentScope.js.map +1 -0
  118. package/dist/esm/tracing/scopes/OpenTelemetryScope.d.ts +57 -0
  119. package/dist/esm/tracing/scopes/OpenTelemetryScope.d.ts.map +1 -0
  120. package/dist/esm/tracing/scopes/OpenTelemetryScope.js +139 -0
  121. package/dist/esm/tracing/scopes/OpenTelemetryScope.js.map +1 -0
  122. package/dist/esm/tracing/util.d.ts +9 -0
  123. package/dist/esm/tracing/util.d.ts.map +1 -0
  124. package/dist/esm/tracing/util.js +23 -0
  125. package/dist/esm/tracing/util.js.map +1 -0
  126. package/dist/esm/utils/logging.d.ts +11 -0
  127. package/dist/esm/utils/logging.d.ts.map +1 -0
  128. package/dist/esm/utils/logging.js +81 -0
  129. package/dist/esm/utils/logging.js.map +1 -0
  130. package/package.json +69 -0
package/README.md ADDED
@@ -0,0 +1,33 @@
1
+ # @microsoft/agents-a365-observability
2
+
3
+ [![npm](https://img.shields.io/npm/v/@microsoft/agents-a365-observability?label=npm&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-observability)
4
+ [![npm Downloads](https://img.shields.io/npm/dm/@microsoft/agents-a365-observability?label=Downloads&logo=npm)](https://www.npmjs.com/package/@microsoft/agents-a365-observability)
5
+
6
+ OpenTelemetry-based observability and tracing for Microsoft Agents A365 applications. This package provides comprehensive monitoring capabilities for agent invocations, tool executions, and AI model inference calls with seamless Azure Monitor integration.
7
+
8
+ ## Installation
9
+
10
+ ```bash
11
+ npm install @microsoft/agents-a365-observability
12
+ ```
13
+
14
+ ## Usage
15
+
16
+ For detailed usage examples and implementation guidance, see the [Microsoft Agent 365 Observability Documentation](https://learn.microsoft.com/microsoft-agent-365/developer/observability?tabs=nodejs).
17
+
18
+ ## Support
19
+
20
+ For issues, questions, or feedback:
21
+
22
+ - File issues in the [GitHub Issues](https://github.com/microsoft/Agent365-nodejs/issues) section
23
+ - See the [main documentation](../../README.md) for more information
24
+
25
+ ## Trademarks
26
+
27
+ *Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. Microsoft's general trademark guidelines can be found at http://go.microsoft.com/fwlink/?LinkID=254653.*
28
+
29
+ ## License
30
+
31
+ Copyright (c) Microsoft Corporation. All rights reserved.
32
+
33
+ Licensed under the MIT License - see the [LICENSE](../../LICENSE.md) file for details
@@ -0,0 +1,61 @@
1
+ import { TokenResolver } from './tracing/exporter/Agent365Exporter';
2
+ import { ClusterCategory } from '@microsoft/agents-a365-runtime';
3
+ /**
4
+ * Configuration options for Agent 365 Observability Builder
5
+ */
6
+ export interface BuilderOptions {
7
+ /** Custom service name for telemetry */
8
+ serviceName?: string;
9
+ /** Custom service version for telemetry */
10
+ serviceVersion?: string;
11
+ tokenResolver?: TokenResolver;
12
+ /** Environment / cluster category (e.g., "preprod", "prod"). */
13
+ clusterCategory?: ClusterCategory;
14
+ }
15
+ /**
16
+ * Builder for configuring Agent 365 with OpenTelemetry tracing
17
+ */
18
+ export declare class ObservabilityBuilder {
19
+ private options;
20
+ private isBuilt;
21
+ private sdk?;
22
+ /**
23
+ * Configures the service name and version for telemetry
24
+ * @param serviceName The service name
25
+ * @param serviceVersion The service version
26
+ * @returns The builder instance for method chaining
27
+ */
28
+ withService(serviceName: string, serviceVersion?: string): ObservabilityBuilder;
29
+ /**
30
+ * Configures the token resolver for Agent 365 exporter
31
+ * @param tokenResolver Function to resolve authentication tokens
32
+ * @returns The builder instance for method chaining
33
+ */
34
+ withTokenResolver(tokenResolver: TokenResolver): ObservabilityBuilder;
35
+ /**
36
+ * Configures the cluster category for Agent 365 exporter
37
+ * @param clusterCategory The cluster category (e.g., "preprod", "prod")
38
+ * @returns The builder instance for method chaining
39
+ */
40
+ withClusterCategory(clusterCategory: ClusterCategory): ObservabilityBuilder;
41
+ private getTraceExporter;
42
+ private createResource;
43
+ /**
44
+ * Builds and initializes the Agent 365 configuration
45
+ * @returns The configured NodeSDK instance
46
+ */
47
+ build(): boolean;
48
+ /**
49
+ * Starts the OpenTelemetry SDK
50
+ */
51
+ start(): void;
52
+ /**
53
+ * Shuts down the OpenTelemetry SDK
54
+ */
55
+ shutdown(): Promise<void>;
56
+ /**
57
+ * Helper to avoid double-registering same processor type.
58
+ */
59
+ private attachProcessorIfMissing;
60
+ }
61
+ //# sourceMappingURL=ObservabilityBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObservabilityBuilder.d.ts","sourceRoot":"","sources":["../../src/ObservabilityBuilder.ts"],"names":[],"mappings":"AAQA,OAAO,EAAoB,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAItF,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,gEAAgE;IAChE,eAAe,CAAC,EAAE,eAAe,CAAC;CAEnC;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,GAAG,CAAC,CAAU;IAEtB;;;;;OAKG;IACI,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,oBAAoB;IAMtF;;;;OAIG;IACI,iBAAiB,CAAC,aAAa,EAAE,aAAa,GAAG,oBAAoB;IAK5E;;;;OAIG;IACI,mBAAmB,CAAC,eAAe,EAAE,eAAe,GAAG,oBAAoB;IAKlF,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,cAAc;IAUtB;;;OAGG;IACI,KAAK,IAAI,OAAO;IA6CvB;;OAEG;IACI,KAAK,IAAI,IAAI;IASpB;;OAEG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtC;;OAEG;IACH,OAAO,CAAC,wBAAwB;CASjC"}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ // ------------------------------------------------------------------------------
3
+ // Copyright (c) Microsoft Corporation. All rights reserved.
4
+ // ------------------------------------------------------------------------------
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ObservabilityBuilder = void 0;
7
+ const sdk_node_1 = require("@opentelemetry/sdk-node");
8
+ const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base");
9
+ const SpanProcessor_1 = require("./tracing/processors/SpanProcessor");
10
+ const util_1 = require("./tracing/util");
11
+ const Agent365Exporter_1 = require("./tracing/exporter/Agent365Exporter");
12
+ const resources_1 = require("@opentelemetry/resources");
13
+ const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
14
+ const api_1 = require("@opentelemetry/api");
15
+ /**
16
+ * Builder for configuring Agent 365 with OpenTelemetry tracing
17
+ */
18
+ class ObservabilityBuilder {
19
+ constructor() {
20
+ this.options = {};
21
+ this.isBuilt = false;
22
+ }
23
+ /**
24
+ * Configures the service name and version for telemetry
25
+ * @param serviceName The service name
26
+ * @param serviceVersion The service version
27
+ * @returns The builder instance for method chaining
28
+ */
29
+ withService(serviceName, serviceVersion) {
30
+ this.options.serviceName = serviceName;
31
+ this.options.serviceVersion = serviceVersion;
32
+ return this;
33
+ }
34
+ /**
35
+ * Configures the token resolver for Agent 365 exporter
36
+ * @param tokenResolver Function to resolve authentication tokens
37
+ * @returns The builder instance for method chaining
38
+ */
39
+ withTokenResolver(tokenResolver) {
40
+ this.options.tokenResolver = tokenResolver;
41
+ return this;
42
+ }
43
+ /**
44
+ * Configures the cluster category for Agent 365 exporter
45
+ * @param clusterCategory The cluster category (e.g., "preprod", "prod")
46
+ * @returns The builder instance for method chaining
47
+ */
48
+ withClusterCategory(clusterCategory) {
49
+ this.options.clusterCategory = clusterCategory;
50
+ return this;
51
+ }
52
+ getTraceExporter() {
53
+ if ((0, util_1.isAgent365ExporterEnabled)()) {
54
+ if (!this.options.tokenResolver) {
55
+ throw new Error('tokenResolver must be provided when Agent 365 exporter is enabled');
56
+ }
57
+ return new Agent365Exporter_1.Agent365Exporter(this.options.tokenResolver, this.options.clusterCategory || 'prod');
58
+ }
59
+ else {
60
+ return new sdk_trace_base_1.ConsoleSpanExporter();
61
+ }
62
+ }
63
+ createResource() {
64
+ const serviceName = this.options.serviceVersion
65
+ ? `${this.options.serviceName}-${this.options.serviceVersion}`
66
+ : this.options.serviceName ?? 'Agent365-TypeScript';
67
+ return (0, resources_1.resourceFromAttributes)({
68
+ [semantic_conventions_1.ATTR_SERVICE_NAME]: serviceName,
69
+ });
70
+ }
71
+ /**
72
+ * Builds and initializes the Agent 365 configuration
73
+ * @returns The configured NodeSDK instance
74
+ */
75
+ build() {
76
+ if (this.isBuilt) {
77
+ return this.isBuilt;
78
+ }
79
+ // Create processors in the desired order:
80
+ // 1. baggage enricher (copies baggage -> span attributes)
81
+ const spanProcessor = new SpanProcessor_1.SpanProcessor();
82
+ // 2. batch processor that actually ships spans out
83
+ const batchProcessor = new sdk_trace_base_1.BatchSpanProcessor(this.getTraceExporter());
84
+ const globalProvider = api_1.trace.getTracerProvider();
85
+ const canAddProcessors = typeof globalProvider?.addSpanProcessor === 'function' &&
86
+ typeof globalProvider?.resource !== 'undefined';
87
+ if (canAddProcessors) {
88
+ // Someone else already created a provider (maybe their own NodeSDK).
89
+ // We DO NOT create a new NodeSDK.
90
+ // We just add our baggage enricher + batch exporter to their provider,
91
+ // but only if they aren't already there.
92
+ this.attachProcessorIfMissing(globalProvider, spanProcessor);
93
+ this.attachProcessorIfMissing(globalProvider, batchProcessor);
94
+ this.isBuilt = true;
95
+ this.sdk = undefined; // we didn't create/own one
96
+ return this.isBuilt;
97
+ }
98
+ // Create & configure the NodeSDK manually so we can inject processors + resource.
99
+ this.sdk = new sdk_node_1.NodeSDK({
100
+ resource: this.createResource(),
101
+ spanProcessors: [
102
+ spanProcessor,
103
+ batchProcessor,
104
+ ],
105
+ });
106
+ this.isBuilt = true;
107
+ return this.isBuilt;
108
+ }
109
+ /**
110
+ * Starts the OpenTelemetry SDK
111
+ */
112
+ start() {
113
+ if (!this.isBuilt) {
114
+ this.build();
115
+ }
116
+ if (this.sdk) {
117
+ this.sdk.start();
118
+ }
119
+ }
120
+ /**
121
+ * Shuts down the OpenTelemetry SDK
122
+ */
123
+ async shutdown() {
124
+ if (this.sdk) {
125
+ await this.sdk.shutdown();
126
+ }
127
+ }
128
+ /**
129
+ * Helper to avoid double-registering same processor type.
130
+ */
131
+ attachProcessorIfMissing(provider, processor) {
132
+ const active = provider._activeSpanProcessor?._spanProcessors;
133
+ const alreadyAdded = Array.isArray(active) &&
134
+ active.some((p) => p?.constructor?.name === processor.constructor.name);
135
+ if (!alreadyAdded) {
136
+ provider.addSpanProcessor(processor);
137
+ }
138
+ }
139
+ }
140
+ exports.ObservabilityBuilder = ObservabilityBuilder;
141
+ //# sourceMappingURL=ObservabilityBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObservabilityBuilder.js","sourceRoot":"","sources":["../../src/ObservabilityBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { ObservabilityBuilder, BuilderOptions } from './ObservabilityBuilder';
2
+ /**
3
+ * Main entry point for Agent 365 providing OpenTelemetry tracing for AI agents and tools
4
+ */
5
+ export declare class ObservabilityManager {
6
+ private static instance?;
7
+ /**
8
+ * Configures Agent 365 with OpenTelemetry tracing for AI agents and tools
9
+ * @param configure Optional configuration callback for the Builder
10
+ * @returns The configured Builder instance
11
+ */
12
+ static configure(configure?: (builder: ObservabilityBuilder) => void): ObservabilityBuilder;
13
+ /**
14
+ * Configures and starts Agent 365 with simplified options
15
+ * @param options Configuration options
16
+ * @returns The configured and started Builder instance
17
+ */
18
+ static start(options?: BuilderOptions): ObservabilityBuilder;
19
+ /**
20
+ * Gets the current Agent 365 instance
21
+ * @returns The current instance or null if not configured
22
+ */
23
+ static getInstance(): ObservabilityBuilder | null;
24
+ /**
25
+ * Shuts down Agent 365
26
+ */
27
+ static shutdown(): Promise<void>;
28
+ }
29
+ //# sourceMappingURL=ObservabilityManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObservabilityManager.d.ts","sourceRoot":"","sources":["../../src/ObservabilityManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE9E;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAuB;IAG/C;;;;OAIG;WACW,SAAS,CACrB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,GAClD,oBAAoB;IASvB;;;;OAIG;WACW,KAAK,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,oBAAoB;IAqBnE;;;OAGG;WACW,WAAW,IAAI,oBAAoB,GAAG,IAAI;IAIxD;;OAEG;WACiB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAM9C"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ // ------------------------------------------------------------------------------
3
+ // Copyright (c) Microsoft Corporation. All rights reserved.
4
+ // ------------------------------------------------------------------------------
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ObservabilityManager = void 0;
7
+ const ObservabilityBuilder_1 = require("./ObservabilityBuilder");
8
+ /**
9
+ * Main entry point for Agent 365 providing OpenTelemetry tracing for AI agents and tools
10
+ */
11
+ class ObservabilityManager {
12
+ /**
13
+ * Configures Agent 365 with OpenTelemetry tracing for AI agents and tools
14
+ * @param configure Optional configuration callback for the Builder
15
+ * @returns The configured Builder instance
16
+ */
17
+ static configure(configure) {
18
+ const builder = new ObservabilityBuilder_1.ObservabilityBuilder();
19
+ configure?.(builder);
20
+ ObservabilityManager.instance = builder;
21
+ return builder;
22
+ }
23
+ /**
24
+ * Configures and starts Agent 365 with simplified options
25
+ * @param options Configuration options
26
+ * @returns The configured and started Builder instance
27
+ */
28
+ static start(options) {
29
+ const builder = new ObservabilityBuilder_1.ObservabilityBuilder();
30
+ if (options?.serviceName) {
31
+ builder.withService(options.serviceName, options.serviceVersion);
32
+ }
33
+ if (options?.tokenResolver) {
34
+ builder.withTokenResolver(options.tokenResolver);
35
+ }
36
+ if (options?.clusterCategory) {
37
+ builder.withClusterCategory(options.clusterCategory);
38
+ }
39
+ builder.start();
40
+ ObservabilityManager.instance = builder;
41
+ return builder;
42
+ }
43
+ /**
44
+ * Gets the current Agent 365 instance
45
+ * @returns The current instance or null if not configured
46
+ */
47
+ static getInstance() {
48
+ return ObservabilityManager.instance || null;
49
+ }
50
+ /**
51
+ * Shuts down Agent 365
52
+ */
53
+ static async shutdown() {
54
+ if (ObservabilityManager.instance) {
55
+ await ObservabilityManager.instance.shutdown();
56
+ ObservabilityManager.instance = undefined;
57
+ }
58
+ }
59
+ }
60
+ exports.ObservabilityManager = ObservabilityManager;
61
+ //# sourceMappingURL=ObservabilityManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObservabilityManager.js","sourceRoot":"","sources":["../../src/ObservabilityManager.ts"],"names":[],"mappings":";AAAA,iFAAiF;AACjF,4DAA4D;AAC5D,iFAAiF;;;AAEjF,iEAA8E;AAE9E;;GAEG;AACH,MAAa,oBAAoB;IAI/B;;;;OAIG;IACI,MAAM,CAAC,SAAS,CACrB,SAAmD;QAEnD,MAAM,OAAO,GAAG,IAAI,2CAAoB,EAAE,CAAC;QAE3C,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;QAErB,oBAAoB,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,KAAK,CAAC,OAAwB;QAC1C,MAAM,OAAO,GAAG,IAAI,2CAAoB,EAAE,CAAC;QAE3C,IAAI,OAAO,EAAE,WAAW,EAAE,CAAC;YACzB,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;YAC3B,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,OAAO,EAAE,eAAe,EAAE,CAAC;YAC7B,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,CAAC,KAAK,EAAE,CAAC;QAEhB,oBAAoB,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,WAAW;QACvB,OAAO,oBAAoB,CAAC,QAAQ,IAAI,IAAI,CAAC;IAC/C,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,QAAQ;QAC1B,IAAI,oBAAoB,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC/C,oBAAoB,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC5C,CAAC;IACH,CAAC;CACF;AA/DD,oDA+DC"}
@@ -0,0 +1,10 @@
1
+ export { ObservabilityManager } from './ObservabilityManager';
2
+ export { ObservabilityBuilder as Builder, BuilderOptions } from './ObservabilityBuilder';
3
+ export { OpenTelemetryConstants } from './tracing/constants';
4
+ export { BaggageBuilder, BaggageScope } from './tracing/middleware/BaggageBuilder';
5
+ export { ExecutionType, InvocationRole, SourceMetadata, AgentRequest, AgentDetails, TenantDetails, ToolCallDetails, InvokeAgentDetails, CallerDetails, EnhancedAgentDetails, ServiceEndpoint, InferenceDetails, InferenceOperationType, InferenceResponse } from './tracing/contracts';
6
+ export { OpenTelemetryScope } from './tracing/scopes/OpenTelemetryScope';
7
+ export { ExecuteToolScope } from './tracing/scopes/ExecuteToolScope';
8
+ export { InvokeAgentScope } from './tracing/scopes/InvokeAgentScope';
9
+ export { InferenceScope } from './tracing/scopes/InferenceScope';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,IAAI,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAGnF,OAAO,EACL,aAAa,EACb,cAAc,EACd,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAC,MAAM,iCAAiC,CAAC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ // ------------------------------------------------------------------------------
3
+ // Copyright (c) Microsoft Corporation. All rights reserved.
4
+ // ------------------------------------------------------------------------------
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.InferenceScope = exports.InvokeAgentScope = exports.ExecuteToolScope = exports.OpenTelemetryScope = exports.InferenceOperationType = exports.InvocationRole = exports.ExecutionType = exports.BaggageScope = exports.BaggageBuilder = exports.OpenTelemetryConstants = exports.Builder = exports.ObservabilityManager = void 0;
7
+ // Main SDK classes
8
+ var ObservabilityManager_1 = require("./ObservabilityManager");
9
+ Object.defineProperty(exports, "ObservabilityManager", { enumerable: true, get: function () { return ObservabilityManager_1.ObservabilityManager; } });
10
+ var ObservabilityBuilder_1 = require("./ObservabilityBuilder");
11
+ Object.defineProperty(exports, "Builder", { enumerable: true, get: function () { return ObservabilityBuilder_1.ObservabilityBuilder; } });
12
+ // Tracing constants
13
+ var constants_1 = require("./tracing/constants");
14
+ Object.defineProperty(exports, "OpenTelemetryConstants", { enumerable: true, get: function () { return constants_1.OpenTelemetryConstants; } });
15
+ // Baggage builder
16
+ var BaggageBuilder_1 = require("./tracing/middleware/BaggageBuilder");
17
+ Object.defineProperty(exports, "BaggageBuilder", { enumerable: true, get: function () { return BaggageBuilder_1.BaggageBuilder; } });
18
+ Object.defineProperty(exports, "BaggageScope", { enumerable: true, get: function () { return BaggageBuilder_1.BaggageScope; } });
19
+ // Contracts and interfaces
20
+ var contracts_1 = require("./tracing/contracts");
21
+ Object.defineProperty(exports, "ExecutionType", { enumerable: true, get: function () { return contracts_1.ExecutionType; } });
22
+ Object.defineProperty(exports, "InvocationRole", { enumerable: true, get: function () { return contracts_1.InvocationRole; } });
23
+ Object.defineProperty(exports, "InferenceOperationType", { enumerable: true, get: function () { return contracts_1.InferenceOperationType; } });
24
+ // Scopes
25
+ var OpenTelemetryScope_1 = require("./tracing/scopes/OpenTelemetryScope");
26
+ Object.defineProperty(exports, "OpenTelemetryScope", { enumerable: true, get: function () { return OpenTelemetryScope_1.OpenTelemetryScope; } });
27
+ var ExecuteToolScope_1 = require("./tracing/scopes/ExecuteToolScope");
28
+ Object.defineProperty(exports, "ExecuteToolScope", { enumerable: true, get: function () { return ExecuteToolScope_1.ExecuteToolScope; } });
29
+ var InvokeAgentScope_1 = require("./tracing/scopes/InvokeAgentScope");
30
+ Object.defineProperty(exports, "InvokeAgentScope", { enumerable: true, get: function () { return InvokeAgentScope_1.InvokeAgentScope; } });
31
+ var InferenceScope_1 = require("./tracing/scopes/InferenceScope");
32
+ Object.defineProperty(exports, "InferenceScope", { enumerable: true, get: function () { return InferenceScope_1.InferenceScope; } });
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,iFAAiF;AACjF,4DAA4D;AAC5D,iFAAiF;;;AAEjF,mBAAmB;AACnB,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,+DAAyF;AAAhF,+GAAA,oBAAoB,OAAW;AAExC,oBAAoB;AACpB,iDAA6D;AAApD,mHAAA,sBAAsB,OAAA;AAE/B,kBAAkB;AAClB,sEAAmF;AAA1E,gHAAA,cAAc,OAAA;AAAE,8GAAA,YAAY,OAAA;AAErC,2BAA2B;AAC3B,iDAe6B;AAd3B,0GAAA,aAAa,OAAA;AACb,2GAAA,cAAc,OAAA;AAWd,mHAAA,sBAAsB,OAAA;AAIxB,SAAS;AACT,0EAAyE;AAAhE,wHAAA,kBAAkB,OAAA;AAC3B,sEAAqE;AAA5D,oHAAA,gBAAgB,OAAA;AACzB,sEAAqE;AAA5D,oHAAA,gBAAgB,OAAA;AACzB,kEAAgE;AAAvD,gHAAA,cAAc,OAAA"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * OpenTelemetry constants for Agent 365
3
+ */
4
+ export declare class OpenTelemetryConstants {
5
+ static readonly INVOKE_AGENT_OPERATION_NAME = "invoke_agent";
6
+ static readonly EXECUTE_TOOL_OPERATION_NAME = "execute_tool";
7
+ static readonly ERROR_TYPE_KEY = "error.type";
8
+ static readonly ERROR_MESSAGE_KEY = "error.message";
9
+ static readonly AZ_NAMESPACE_KEY = "az.namespace";
10
+ static readonly SERVER_ADDRESS_KEY = "server.address";
11
+ static readonly SERVER_PORT_KEY = "server.port";
12
+ static readonly AZURE_RP_NAMESPACE_VALUE = "Microsoft.CognitiveServices";
13
+ static readonly SOURCE_NAME = "Agent365Sdk";
14
+ static readonly ENABLE_OPENTELEMETRY_SWITCH = "Azure.Experimental.EnableActivitySource";
15
+ static readonly TRACE_CONTENTS_SWITCH = "Azure.Experimental.TraceGenAIMessageContent";
16
+ static readonly TRACE_CONTENTS_ENVIRONMENT_VARIABLE = "AZURE_TRACING_GEN_AI_CONTENT_RECORDING_ENABLED";
17
+ static readonly ENABLE_OBSERVABILITY = "ENABLE_OBSERVABILITY";
18
+ static readonly ENABLE_A365_OBSERVABILITY_EXPORTER = "ENABLE_A365_OBSERVABILITY_EXPORTER";
19
+ static readonly ENABLE_A365_OBSERVABILITY = "ENABLE_A365_OBSERVABILITY";
20
+ static readonly GEN_AI_CLIENT_OPERATION_DURATION_METRIC_NAME = "gen_ai.client.operation.duration";
21
+ static readonly GEN_AI_CLIENT_TOKEN_USAGE_METRIC_NAME = "gen_ai.client.token.usage";
22
+ static readonly GEN_AI_OPERATION_NAME_KEY = "gen_ai.operation.name";
23
+ static readonly GEN_AI_REQUEST_MAX_TOKENS_KEY = "gen_ai.request.max_tokens";
24
+ static readonly GEN_AI_REQUEST_MODEL_KEY = "gen_ai.request.model";
25
+ static readonly GEN_AI_REQUEST_TEMPERATURE_KEY = "gen_ai.request.temperature";
26
+ static readonly GEN_AI_REQUEST_TOP_P_KEY = "gen_ai.request.top_p";
27
+ static readonly GEN_AI_RESPONSE_ID_KEY = "gen_ai.response.id";
28
+ static readonly GEN_AI_RESPONSE_FINISH_REASONS_KEY = "gen_ai.response.finish_reasons";
29
+ static readonly GEN_AI_RESPONSE_MODEL_KEY = "gen_ai.response.model";
30
+ static readonly GEN_AI_SYSTEM_KEY = "gen_ai.system";
31
+ static readonly GEN_AI_SYSTEM_VALUE = "az.ai.agent365";
32
+ static readonly GEN_AI_AGENT_ID_KEY = "gen_ai.agent.id";
33
+ static readonly GEN_AI_AGENT_NAME_KEY = "gen_ai.agent.name";
34
+ static readonly GEN_AI_AGENT_DESCRIPTION_KEY = "gen_ai.agent.description";
35
+ static readonly GEN_AI_CONVERSATION_ID_KEY = "gen_ai.conversation.id";
36
+ static readonly GEN_AI_CONVERSATION_ITEM_LINK_KEY = "gen_ai.conversation.item.link";
37
+ static readonly GEN_AI_TOKEN_TYPE_KEY = "gen_ai.token.type";
38
+ static readonly GEN_AI_USAGE_INPUT_TOKENS_KEY = "gen_ai.usage.input_tokens";
39
+ static readonly GEN_AI_USAGE_OUTPUT_TOKENS_KEY = "gen_ai.usage.output_tokens";
40
+ static readonly GEN_AI_CHOICE = "gen_ai.choice";
41
+ static readonly GEN_AI_PROVIDER_NAME_KEY = "gen_ai.provider.name";
42
+ static readonly GEN_AI_SYSTEM_INSTRUCTIONS_KEY = "gen_ai.system_instructions";
43
+ static readonly GEN_AI_INPUT_MESSAGES_KEY = "gen_ai.input.messages";
44
+ static readonly GEN_AI_OUTPUT_MESSAGES_KEY = "gen_ai.output.messages";
45
+ static readonly GEN_AI_EVENT_CONTENT = "gen_ai.event.content";
46
+ static readonly GEN_AI_TOOL_CALL_ID_KEY = "gen_ai.tool.call.id";
47
+ static readonly GEN_AI_TOOL_NAME_KEY = "gen_ai.tool.name";
48
+ static readonly GEN_AI_TOOL_DESCRIPTION_KEY = "gen_ai.tool.description";
49
+ static readonly GEN_AI_TOOL_ARGS_KEY = "gen_ai.tool.call.arguments";
50
+ static readonly GEN_AI_TOOL_CALL_RESULT_KEY = "gen_ai.event.content";
51
+ static readonly GEN_AI_TOOL_TYPE_KEY = "gen_ai.tool.type";
52
+ static readonly GEN_AI_AGENT_USER_ID_KEY = "gen_ai.agent.userid";
53
+ static readonly GEN_AI_CALLER_USER_ID_KEY = "gen_ai.caller.userid";
54
+ static readonly GEN_AI_CALLER_TENANT_ID_KEY = "gen_ai.caller.tenantid";
55
+ static readonly GEN_AI_CALLER_ID_KEY = "gen_ai.caller.id";
56
+ static readonly GEN_AI_CALLER_NAME_KEY = "gen_ai.caller.name";
57
+ static readonly GEN_AI_CALLER_UPN_KEY = "gen_ai.caller.upn";
58
+ static readonly GEN_AI_CALLER_AGENT_USER_ID_KEY = "gen_ai.caller.agent.userid";
59
+ static readonly GEN_AI_CALLER_AGENT_UPN_KEY = "gen_ai.caller.agent.upn";
60
+ static readonly GEN_AI_CALLER_AGENT_TENANT_ID_KEY = "gen_ai.caller.agent.tenantid";
61
+ static readonly GEN_AI_CALLER_AGENT_NAME_KEY = "gen_ai.caller.agent.name";
62
+ static readonly GEN_AI_CALLER_AGENT_ID_KEY = "gen_ai.caller.agent.id";
63
+ static readonly GEN_AI_CALLER_AGENT_APPLICATION_ID_KEY = "gen_ai.caller.agent.applicationid";
64
+ static readonly AGENT_ID_KEY = "gen_ai.agent.id";
65
+ static readonly GEN_AI_TASK_ID_KEY = "gen_ai.task.id";
66
+ static readonly SESSION_ID_KEY = "session.id";
67
+ static readonly GEN_AI_ICON_URI_KEY = "gen_ai.agent365.icon_uri";
68
+ static readonly TENANT_ID_KEY = "tenant.id";
69
+ static readonly OPERATION_SOURCE_KEY = "operation.source";
70
+ static readonly GEN_AI_AGENT_AUID_KEY = "gen_ai.agent.user.id";
71
+ static readonly GEN_AI_AGENT_UPN_KEY = "gen_ai.agent.upn";
72
+ static readonly GEN_AI_AGENT_BLUEPRINT_ID_KEY = "gen_ai.agent.applicationid";
73
+ static readonly CORRELATION_ID_KEY = "correlation.id";
74
+ static readonly HIRING_MANAGER_ID_KEY = "hiring.manager.id";
75
+ static readonly GEN_AI_EXECUTION_TYPE_KEY = "gen_ai.execution.type";
76
+ static readonly GEN_AI_EXECUTION_PAYLOAD_KEY = "gen_ai.execution.payload";
77
+ static readonly GEN_AI_EXECUTION_SOURCE_ID_KEY = "gen_ai.execution.sourceMetadata.id";
78
+ static readonly GEN_AI_EXECUTION_SOURCE_NAME_KEY = "gen_ai.channel.name";
79
+ static readonly GEN_AI_EXECUTION_SOURCE_DESCRIPTION_KEY = "gen_ai.channel.link";
80
+ static readonly CUSTOM_PARENT_SPAN_ID_KEY = "custom.parent.span.id";
81
+ static readonly CUSTOM_SPAN_NAME_KEY = "custom.span.name";
82
+ }
83
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/tracing/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ // ------------------------------------------------------------------------------
3
+ // Copyright (c) Microsoft Corporation. All rights reserved.
4
+ // ------------------------------------------------------------------------------
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.OpenTelemetryConstants = void 0;
7
+ /**
8
+ * OpenTelemetry constants for Agent 365
9
+ */
10
+ class OpenTelemetryConstants {
11
+ }
12
+ exports.OpenTelemetryConstants = OpenTelemetryConstants;
13
+ // Span operation names
14
+ OpenTelemetryConstants.INVOKE_AGENT_OPERATION_NAME = 'invoke_agent';
15
+ OpenTelemetryConstants.EXECUTE_TOOL_OPERATION_NAME = 'execute_tool';
16
+ // OpenTelemetry semantic conventions
17
+ OpenTelemetryConstants.ERROR_TYPE_KEY = 'error.type';
18
+ OpenTelemetryConstants.ERROR_MESSAGE_KEY = 'error.message';
19
+ OpenTelemetryConstants.AZ_NAMESPACE_KEY = 'az.namespace';
20
+ OpenTelemetryConstants.SERVER_ADDRESS_KEY = 'server.address';
21
+ OpenTelemetryConstants.SERVER_PORT_KEY = 'server.port';
22
+ OpenTelemetryConstants.AZURE_RP_NAMESPACE_VALUE = 'Microsoft.CognitiveServices';
23
+ OpenTelemetryConstants.SOURCE_NAME = 'Agent365Sdk';
24
+ OpenTelemetryConstants.ENABLE_OPENTELEMETRY_SWITCH = 'Azure.Experimental.EnableActivitySource';
25
+ OpenTelemetryConstants.TRACE_CONTENTS_SWITCH = 'Azure.Experimental.TraceGenAIMessageContent';
26
+ OpenTelemetryConstants.TRACE_CONTENTS_ENVIRONMENT_VARIABLE = 'AZURE_TRACING_GEN_AI_CONTENT_RECORDING_ENABLED';
27
+ OpenTelemetryConstants.ENABLE_OBSERVABILITY = 'ENABLE_OBSERVABILITY';
28
+ OpenTelemetryConstants.ENABLE_A365_OBSERVABILITY_EXPORTER = 'ENABLE_A365_OBSERVABILITY_EXPORTER';
29
+ OpenTelemetryConstants.ENABLE_A365_OBSERVABILITY = 'ENABLE_A365_OBSERVABILITY';
30
+ // GenAI semantic conventions
31
+ OpenTelemetryConstants.GEN_AI_CLIENT_OPERATION_DURATION_METRIC_NAME = 'gen_ai.client.operation.duration';
32
+ OpenTelemetryConstants.GEN_AI_CLIENT_TOKEN_USAGE_METRIC_NAME = 'gen_ai.client.token.usage';
33
+ OpenTelemetryConstants.GEN_AI_OPERATION_NAME_KEY = 'gen_ai.operation.name';
34
+ OpenTelemetryConstants.GEN_AI_REQUEST_MAX_TOKENS_KEY = 'gen_ai.request.max_tokens';
35
+ OpenTelemetryConstants.GEN_AI_REQUEST_MODEL_KEY = 'gen_ai.request.model';
36
+ OpenTelemetryConstants.GEN_AI_REQUEST_TEMPERATURE_KEY = 'gen_ai.request.temperature';
37
+ OpenTelemetryConstants.GEN_AI_REQUEST_TOP_P_KEY = 'gen_ai.request.top_p';
38
+ OpenTelemetryConstants.GEN_AI_RESPONSE_ID_KEY = 'gen_ai.response.id';
39
+ OpenTelemetryConstants.GEN_AI_RESPONSE_FINISH_REASONS_KEY = 'gen_ai.response.finish_reasons';
40
+ OpenTelemetryConstants.GEN_AI_RESPONSE_MODEL_KEY = 'gen_ai.response.model';
41
+ OpenTelemetryConstants.GEN_AI_SYSTEM_KEY = 'gen_ai.system';
42
+ OpenTelemetryConstants.GEN_AI_SYSTEM_VALUE = 'az.ai.agent365';
43
+ OpenTelemetryConstants.GEN_AI_AGENT_ID_KEY = 'gen_ai.agent.id';
44
+ OpenTelemetryConstants.GEN_AI_AGENT_NAME_KEY = 'gen_ai.agent.name';
45
+ OpenTelemetryConstants.GEN_AI_AGENT_DESCRIPTION_KEY = 'gen_ai.agent.description';
46
+ OpenTelemetryConstants.GEN_AI_CONVERSATION_ID_KEY = 'gen_ai.conversation.id';
47
+ OpenTelemetryConstants.GEN_AI_CONVERSATION_ITEM_LINK_KEY = 'gen_ai.conversation.item.link';
48
+ OpenTelemetryConstants.GEN_AI_TOKEN_TYPE_KEY = 'gen_ai.token.type';
49
+ OpenTelemetryConstants.GEN_AI_USAGE_INPUT_TOKENS_KEY = 'gen_ai.usage.input_tokens';
50
+ OpenTelemetryConstants.GEN_AI_USAGE_OUTPUT_TOKENS_KEY = 'gen_ai.usage.output_tokens';
51
+ OpenTelemetryConstants.GEN_AI_CHOICE = 'gen_ai.choice';
52
+ OpenTelemetryConstants.GEN_AI_PROVIDER_NAME_KEY = 'gen_ai.provider.name';
53
+ OpenTelemetryConstants.GEN_AI_SYSTEM_INSTRUCTIONS_KEY = 'gen_ai.system_instructions';
54
+ OpenTelemetryConstants.GEN_AI_INPUT_MESSAGES_KEY = 'gen_ai.input.messages';
55
+ OpenTelemetryConstants.GEN_AI_OUTPUT_MESSAGES_KEY = 'gen_ai.output.messages';
56
+ OpenTelemetryConstants.GEN_AI_EVENT_CONTENT = 'gen_ai.event.content';
57
+ // Tool execution constants
58
+ OpenTelemetryConstants.GEN_AI_TOOL_CALL_ID_KEY = 'gen_ai.tool.call.id';
59
+ OpenTelemetryConstants.GEN_AI_TOOL_NAME_KEY = 'gen_ai.tool.name';
60
+ OpenTelemetryConstants.GEN_AI_TOOL_DESCRIPTION_KEY = 'gen_ai.tool.description';
61
+ OpenTelemetryConstants.GEN_AI_TOOL_ARGS_KEY = 'gen_ai.tool.call.arguments';
62
+ OpenTelemetryConstants.GEN_AI_TOOL_CALL_RESULT_KEY = 'gen_ai.event.content'; // GEN_AI_EVENT_CONTENT
63
+ OpenTelemetryConstants.GEN_AI_TOOL_TYPE_KEY = 'gen_ai.tool.type';
64
+ // Agent user (user tied to agent instance during creation) or caller dimensions
65
+ OpenTelemetryConstants.GEN_AI_AGENT_USER_ID_KEY = 'gen_ai.agent.userid';
66
+ OpenTelemetryConstants.GEN_AI_CALLER_USER_ID_KEY = 'gen_ai.caller.userid';
67
+ OpenTelemetryConstants.GEN_AI_CALLER_TENANT_ID_KEY = 'gen_ai.caller.tenantid';
68
+ OpenTelemetryConstants.GEN_AI_CALLER_ID_KEY = 'gen_ai.caller.id';
69
+ OpenTelemetryConstants.GEN_AI_CALLER_NAME_KEY = 'gen_ai.caller.name';
70
+ OpenTelemetryConstants.GEN_AI_CALLER_UPN_KEY = 'gen_ai.caller.upn';
71
+ // Agent to Agent caller agent dimensions
72
+ OpenTelemetryConstants.GEN_AI_CALLER_AGENT_USER_ID_KEY = 'gen_ai.caller.agent.userid';
73
+ OpenTelemetryConstants.GEN_AI_CALLER_AGENT_UPN_KEY = 'gen_ai.caller.agent.upn';
74
+ OpenTelemetryConstants.GEN_AI_CALLER_AGENT_TENANT_ID_KEY = 'gen_ai.caller.agent.tenantid';
75
+ OpenTelemetryConstants.GEN_AI_CALLER_AGENT_NAME_KEY = 'gen_ai.caller.agent.name';
76
+ OpenTelemetryConstants.GEN_AI_CALLER_AGENT_ID_KEY = 'gen_ai.caller.agent.id';
77
+ OpenTelemetryConstants.GEN_AI_CALLER_AGENT_APPLICATION_ID_KEY = 'gen_ai.caller.agent.applicationid';
78
+ // Agent-specific dimensions
79
+ OpenTelemetryConstants.AGENT_ID_KEY = 'gen_ai.agent.id';
80
+ OpenTelemetryConstants.GEN_AI_TASK_ID_KEY = 'gen_ai.task.id';
81
+ OpenTelemetryConstants.SESSION_ID_KEY = 'session.id';
82
+ OpenTelemetryConstants.GEN_AI_ICON_URI_KEY = 'gen_ai.agent365.icon_uri';
83
+ OpenTelemetryConstants.TENANT_ID_KEY = 'tenant.id';
84
+ // Baggage keys
85
+ OpenTelemetryConstants.OPERATION_SOURCE_KEY = 'operation.source';
86
+ OpenTelemetryConstants.GEN_AI_AGENT_AUID_KEY = 'gen_ai.agent.user.id';
87
+ OpenTelemetryConstants.GEN_AI_AGENT_UPN_KEY = 'gen_ai.agent.upn';
88
+ OpenTelemetryConstants.GEN_AI_AGENT_BLUEPRINT_ID_KEY = 'gen_ai.agent.applicationid';
89
+ OpenTelemetryConstants.CORRELATION_ID_KEY = 'correlation.id';
90
+ OpenTelemetryConstants.HIRING_MANAGER_ID_KEY = 'hiring.manager.id';
91
+ // Execution context dimensions
92
+ OpenTelemetryConstants.GEN_AI_EXECUTION_TYPE_KEY = 'gen_ai.execution.type';
93
+ OpenTelemetryConstants.GEN_AI_EXECUTION_PAYLOAD_KEY = 'gen_ai.execution.payload';
94
+ // Source metadata dimensions
95
+ OpenTelemetryConstants.GEN_AI_EXECUTION_SOURCE_ID_KEY = 'gen_ai.execution.sourceMetadata.id';
96
+ OpenTelemetryConstants.GEN_AI_EXECUTION_SOURCE_NAME_KEY = 'gen_ai.channel.name';
97
+ OpenTelemetryConstants.GEN_AI_EXECUTION_SOURCE_DESCRIPTION_KEY = 'gen_ai.channel.link';
98
+ // Custom parent id and parent name key
99
+ OpenTelemetryConstants.CUSTOM_PARENT_SPAN_ID_KEY = 'custom.parent.span.id';
100
+ OpenTelemetryConstants.CUSTOM_SPAN_NAME_KEY = 'custom.span.name';
101
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/tracing/constants.ts"],"names":[],"mappings":";AAAA,iFAAiF;AACjF,4DAA4D;AAC5D,iFAAiF;;;AAEjF;;GAEG;AACH,MAAa,sBAAsB;;AAAnC,wDAqGC;AApGC,uBAAuB;AACA,kDAA2B,GAAG,cAAc,CAAC;AAC7C,kDAA2B,GAAG,cAAc,CAAC;AAEpE,qCAAqC;AACd,qCAAc,GAAG,YAAY,CAAC;AAC9B,wCAAiB,GAAG,eAAe,CAAC;AACpC,uCAAgB,GAAG,cAAc,CAAC;AAClC,yCAAkB,GAAG,gBAAgB,CAAC;AACtC,sCAAe,GAAG,aAAa,CAAC;AAChC,+CAAwB,GAAG,6BAA6B,CAAC;AACzD,kCAAW,GAAG,aAAa,CAAC;AAC5B,kDAA2B,GAAG,yCAAyC,CAAC;AACxE,4CAAqB,GAAG,6CAA6C,CAAC;AACtE,0DAAmC,GAAG,gDAAgD,CAAC;AACvF,2CAAoB,GAAG,sBAAsB,CAAC;AAC9C,yDAAkC,GAAG,oCAAoC,CAAC;AAC1E,gDAAyB,GAAG,2BAA2B,CAAC;AAE/E,6BAA6B;AACN,mEAA4C,GAAG,kCAAkC,CAAC;AAClF,4DAAqC,GAAG,2BAA2B,CAAC;AACpE,gDAAyB,GAAG,uBAAuB,CAAC;AACpD,oDAA6B,GAAG,2BAA2B,CAAC;AAC5D,+CAAwB,GAAG,sBAAsB,CAAC;AAClD,qDAA8B,GAAG,4BAA4B,CAAC;AAC9D,+CAAwB,GAAG,sBAAsB,CAAC;AAClD,6CAAsB,GAAG,oBAAoB,CAAC;AAC9C,yDAAkC,GAAG,gCAAgC,CAAC;AACtE,gDAAyB,GAAG,uBAAuB,CAAC;AACpD,wCAAiB,GAAG,eAAe,CAAC;AACpC,0CAAmB,GAAG,gBAAgB,CAAC;AAEvC,0CAAmB,GAAG,iBAAiB,CAAC;AACxC,4CAAqB,GAAG,mBAAmB,CAAC;AAC5C,mDAA4B,GAAG,0BAA0B,CAAC;AAC1D,iDAA0B,GAAG,wBAAwB,CAAC;AACtD,wDAAiC,GAAG,+BAA+B,CAAC;AACpE,4CAAqB,GAAG,mBAAmB,CAAC;AAC5C,oDAA6B,GAAG,2BAA2B,CAAC;AAC5D,qDAA8B,GAAG,4BAA4B,CAAC;AAC9D,oCAAa,GAAG,eAAe,CAAC;AAChC,+CAAwB,GAAG,sBAAsB,CAAC;AAElD,qDAA8B,GAAG,4BAA4B,CAAC;AAC9D,gDAAyB,GAAG,uBAAuB,CAAC;AACpD,iDAA0B,GAAG,wBAAwB,CAAC;AACtD,2CAAoB,GAAG,sBAAsB,CAAC;AAErE,2BAA2B;AACJ,8CAAuB,GAAG,qBAAqB,CAAC;AAChD,2CAAoB,GAAG,kBAAkB,CAAC;AAC1C,kDAA2B,GAAG,yBAAyB,CAAC;AACxD,2CAAoB,GAAG,4BAA4B,CAAC;AACpD,kDAA2B,GAAG,sBAAsB,CAAC,CAAC,uBAAuB;AAC7E,2CAAoB,GAAG,kBAAkB,CAAC;AAEjE,gFAAgF;AACzD,+CAAwB,GAAG,qBAAqB,CAAC;AACjD,gDAAyB,GAAG,sBAAsB,CAAC;AACnD,kDAA2B,GAAG,wBAAwB,CAAC;AACvD,2CAAoB,GAAG,kBAAkB,CAAC;AAC1C,6CAAsB,GAAG,oBAAoB,CAAC;AAC9C,4CAAqB,GAAG,mBAAmB,CAAC;AAEnE,yCAAyC;AAClB,sDAA+B,GAAG,4BAA4B,CAAC;AAC/D,kDAA2B,GAAG,yBAAyB,CAAC;AACxD,wDAAiC,GAAG,8BAA8B,CAAC;AACnE,mDAA4B,GAAG,0BAA0B,CAAC;AAC1D,iDAA0B,GAAG,wBAAwB,CAAC;AACtD,6DAAsC,GAAG,mCAAmC,CAAC;AAEpG,4BAA4B;AACL,mCAAY,GAAG,iBAAiB,CAAC;AACjC,yCAAkB,GAAG,gBAAgB,CAAC;AACtC,qCAAc,GAAG,YAAY,CAAC;AAC9B,0CAAmB,GAAG,0BAA0B,CAAC;AACjD,oCAAa,GAAG,WAAW,CAAC;AAEnD,eAAe;AACQ,2CAAoB,GAAG,kBAAkB,CAAC;AAC1C,4CAAqB,GAAG,sBAAsB,CAAC;AAC/C,2CAAoB,GAAG,kBAAkB,CAAC;AAC1C,oDAA6B,GAAG,4BAA4B,CAAC;AAC7D,yCAAkB,GAAG,gBAAgB,CAAC;AACtC,4CAAqB,GAAG,mBAAmB,CAAC;AAEnE,+BAA+B;AACR,gDAAyB,GAAG,uBAAuB,CAAC;AACpD,mDAA4B,GAAG,0BAA0B,CAAC;AAEjF,6BAA6B;AACN,qDAA8B,GAAG,oCAAoC,CAAC;AACtE,uDAAgC,GAAG,qBAAqB,CAAC;AACzD,8DAAuC,GAAG,qBAAqB,CAAC;AAEvF,uCAAuC;AAChB,gDAAyB,GAAG,uBAAuB,CAAC;AACpD,2CAAoB,GAAG,kBAAkB,CAAC"}