@microsoft/opentelemetry 0.1.0-alpha.6 → 0.1.0-beta.1

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 (150) hide show
  1. package/README.md +86 -1
  2. package/dist/commonjs/a365/configuration/A365Configuration.js +1 -1
  3. package/dist/commonjs/a365/configuration/A365Configuration.js.map +1 -1
  4. package/dist/commonjs/a365/constants.d.ts +1 -1
  5. package/dist/commonjs/a365/constants.d.ts.map +1 -1
  6. package/dist/commonjs/a365/exporter/Agent365Exporter.d.ts +4 -2
  7. package/dist/commonjs/a365/exporter/Agent365Exporter.d.ts.map +1 -1
  8. package/dist/commonjs/a365/exporter/Agent365Exporter.js +55 -30
  9. package/dist/commonjs/a365/exporter/Agent365Exporter.js.map +1 -1
  10. package/dist/commonjs/a365/exporter/Agent365ExporterOptions.d.ts +3 -0
  11. package/dist/commonjs/a365/exporter/Agent365ExporterOptions.d.ts.map +1 -1
  12. package/dist/commonjs/a365/exporter/Agent365ExporterOptions.js +5 -1
  13. package/dist/commonjs/a365/exporter/Agent365ExporterOptions.js.map +1 -1
  14. package/dist/commonjs/a365/exporter/utils.d.ts +29 -1
  15. package/dist/commonjs/a365/exporter/utils.d.ts.map +1 -1
  16. package/dist/commonjs/a365/exporter/utils.js +121 -5
  17. package/dist/commonjs/a365/exporter/utils.js.map +1 -1
  18. package/dist/commonjs/a365/hosting/agenticTokenCache.d.ts +58 -0
  19. package/dist/commonjs/a365/hosting/agenticTokenCache.d.ts.map +1 -0
  20. package/dist/commonjs/a365/hosting/agenticTokenCache.js +229 -0
  21. package/dist/commonjs/a365/hosting/agenticTokenCache.js.map +1 -0
  22. package/dist/commonjs/a365/hosting/index.d.ts +2 -0
  23. package/dist/commonjs/a365/hosting/index.d.ts.map +1 -1
  24. package/dist/commonjs/a365/hosting/index.js +4 -1
  25. package/dist/commonjs/a365/hosting/index.js.map +1 -1
  26. package/dist/commonjs/a365/index.d.ts +2 -2
  27. package/dist/commonjs/a365/index.d.ts.map +1 -1
  28. package/dist/commonjs/a365/index.js +3 -1
  29. package/dist/commonjs/a365/index.js.map +1 -1
  30. package/dist/commonjs/distro/distro.d.ts +8 -1
  31. package/dist/commonjs/distro/distro.d.ts.map +1 -1
  32. package/dist/commonjs/distro/distro.js +75 -6
  33. package/dist/commonjs/distro/distro.js.map +1 -1
  34. package/dist/commonjs/distro/loader.d.ts +10 -0
  35. package/dist/commonjs/distro/loader.d.ts.map +1 -0
  36. package/dist/commonjs/distro/loader.js +16 -0
  37. package/dist/commonjs/distro/loader.js.map +1 -0
  38. package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts +2 -6
  39. package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts.map +1 -1
  40. package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.js +10 -14
  41. package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.js.map +1 -1
  42. package/dist/commonjs/genai/instrumentations/langchain/tracer.d.ts +9 -8
  43. package/dist/commonjs/genai/instrumentations/langchain/tracer.d.ts.map +1 -1
  44. package/dist/commonjs/genai/instrumentations/langchain/tracer.js +40 -15
  45. package/dist/commonjs/genai/instrumentations/langchain/tracer.js.map +1 -1
  46. package/dist/commonjs/genai/instrumentations/langchain/utils.d.ts.map +1 -1
  47. package/dist/commonjs/genai/instrumentations/langchain/utils.js +259 -75
  48. package/dist/commonjs/genai/instrumentations/langchain/utils.js.map +1 -1
  49. package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceInstrumentor.d.ts.map +1 -1
  50. package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceInstrumentor.js +0 -1
  51. package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceInstrumentor.js.map +1 -1
  52. package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceProcessor.d.ts +4 -5
  53. package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceProcessor.d.ts.map +1 -1
  54. package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceProcessor.js +72 -37
  55. package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceProcessor.js.map +1 -1
  56. package/dist/commonjs/genai/instrumentations/openai/semconv.d.ts +0 -2
  57. package/dist/commonjs/genai/instrumentations/openai/semconv.d.ts.map +1 -1
  58. package/dist/commonjs/genai/instrumentations/openai/semconv.js +1 -3
  59. package/dist/commonjs/genai/instrumentations/openai/semconv.js.map +1 -1
  60. package/dist/commonjs/genai/instrumentations/openai/utils.d.ts +37 -16
  61. package/dist/commonjs/genai/instrumentations/openai/utils.d.ts.map +1 -1
  62. package/dist/commonjs/genai/instrumentations/openai/utils.js +239 -60
  63. package/dist/commonjs/genai/instrumentations/openai/utils.js.map +1 -1
  64. package/dist/commonjs/genai/semconv.d.ts +2 -0
  65. package/dist/commonjs/genai/semconv.d.ts.map +1 -1
  66. package/dist/commonjs/genai/semconv.js +5 -1
  67. package/dist/commonjs/genai/semconv.js.map +1 -1
  68. package/dist/commonjs/index.d.ts +2 -2
  69. package/dist/commonjs/index.d.ts.map +1 -1
  70. package/dist/commonjs/index.js +3 -1
  71. package/dist/commonjs/index.js.map +1 -1
  72. package/dist/commonjs/types.d.ts +1 -8
  73. package/dist/commonjs/types.d.ts.map +1 -1
  74. package/dist/commonjs/types.js +1 -1
  75. package/dist/commonjs/types.js.map +1 -1
  76. package/dist/esm/a365/configuration/A365Configuration.js +1 -1
  77. package/dist/esm/a365/configuration/A365Configuration.js.map +1 -1
  78. package/dist/esm/a365/constants.d.ts +1 -1
  79. package/dist/esm/a365/constants.d.ts.map +1 -1
  80. package/dist/esm/a365/exporter/Agent365Exporter.d.ts +4 -2
  81. package/dist/esm/a365/exporter/Agent365Exporter.d.ts.map +1 -1
  82. package/dist/esm/a365/exporter/Agent365Exporter.js +56 -31
  83. package/dist/esm/a365/exporter/Agent365Exporter.js.map +1 -1
  84. package/dist/esm/a365/exporter/Agent365ExporterOptions.d.ts +3 -0
  85. package/dist/esm/a365/exporter/Agent365ExporterOptions.d.ts.map +1 -1
  86. package/dist/esm/a365/exporter/Agent365ExporterOptions.js +5 -1
  87. package/dist/esm/a365/exporter/Agent365ExporterOptions.js.map +1 -1
  88. package/dist/esm/a365/exporter/utils.d.ts +29 -1
  89. package/dist/esm/a365/exporter/utils.d.ts.map +1 -1
  90. package/dist/esm/a365/exporter/utils.js +119 -6
  91. package/dist/esm/a365/exporter/utils.js.map +1 -1
  92. package/dist/esm/a365/hosting/agenticTokenCache.d.ts +58 -0
  93. package/dist/esm/a365/hosting/agenticTokenCache.d.ts.map +1 -0
  94. package/dist/esm/a365/hosting/agenticTokenCache.js +225 -0
  95. package/dist/esm/a365/hosting/agenticTokenCache.js.map +1 -0
  96. package/dist/esm/a365/hosting/index.d.ts +2 -0
  97. package/dist/esm/a365/hosting/index.d.ts.map +1 -1
  98. package/dist/esm/a365/hosting/index.js +1 -0
  99. package/dist/esm/a365/hosting/index.js.map +1 -1
  100. package/dist/esm/a365/index.d.ts +2 -2
  101. package/dist/esm/a365/index.d.ts.map +1 -1
  102. package/dist/esm/a365/index.js +1 -1
  103. package/dist/esm/a365/index.js.map +1 -1
  104. package/dist/esm/distro/distro.d.ts +8 -1
  105. package/dist/esm/distro/distro.d.ts.map +1 -1
  106. package/dist/esm/distro/distro.js +74 -6
  107. package/dist/esm/distro/distro.js.map +1 -1
  108. package/dist/esm/distro/loader.d.ts +10 -0
  109. package/dist/esm/distro/loader.d.ts.map +1 -0
  110. package/dist/esm/distro/loader.js +14 -0
  111. package/dist/esm/distro/loader.js.map +1 -0
  112. package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts +2 -6
  113. package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts.map +1 -1
  114. package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.js +10 -14
  115. package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.js.map +1 -1
  116. package/dist/esm/genai/instrumentations/langchain/tracer.d.ts +9 -8
  117. package/dist/esm/genai/instrumentations/langchain/tracer.d.ts.map +1 -1
  118. package/dist/esm/genai/instrumentations/langchain/tracer.js +41 -16
  119. package/dist/esm/genai/instrumentations/langchain/tracer.js.map +1 -1
  120. package/dist/esm/genai/instrumentations/langchain/utils.d.ts.map +1 -1
  121. package/dist/esm/genai/instrumentations/langchain/utils.js +260 -76
  122. package/dist/esm/genai/instrumentations/langchain/utils.js.map +1 -1
  123. package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceInstrumentor.d.ts.map +1 -1
  124. package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceInstrumentor.js +0 -1
  125. package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceInstrumentor.js.map +1 -1
  126. package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceProcessor.d.ts +4 -5
  127. package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceProcessor.d.ts.map +1 -1
  128. package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceProcessor.js +75 -40
  129. package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceProcessor.js.map +1 -1
  130. package/dist/esm/genai/instrumentations/openai/semconv.d.ts +0 -2
  131. package/dist/esm/genai/instrumentations/openai/semconv.d.ts.map +1 -1
  132. package/dist/esm/genai/instrumentations/openai/semconv.js +0 -2
  133. package/dist/esm/genai/instrumentations/openai/semconv.js.map +1 -1
  134. package/dist/esm/genai/instrumentations/openai/utils.d.ts +37 -16
  135. package/dist/esm/genai/instrumentations/openai/utils.d.ts.map +1 -1
  136. package/dist/esm/genai/instrumentations/openai/utils.js +233 -57
  137. package/dist/esm/genai/instrumentations/openai/utils.js.map +1 -1
  138. package/dist/esm/genai/semconv.d.ts +2 -0
  139. package/dist/esm/genai/semconv.d.ts.map +1 -1
  140. package/dist/esm/genai/semconv.js +4 -0
  141. package/dist/esm/genai/semconv.js.map +1 -1
  142. package/dist/esm/index.d.ts +2 -2
  143. package/dist/esm/index.d.ts.map +1 -1
  144. package/dist/esm/index.js +1 -1
  145. package/dist/esm/index.js.map +1 -1
  146. package/dist/esm/types.d.ts +1 -8
  147. package/dist/esm/types.d.ts.map +1 -1
  148. package/dist/esm/types.js +1 -1
  149. package/dist/esm/types.js.map +1 -1
  150. package/package.json +5 -5
package/README.md CHANGED
@@ -13,6 +13,67 @@ npm install @microsoft/opentelemetry
13
13
 
14
14
  > **Important:** Import and call `useMicrosoftOpenTelemetry()` as early as possible in your application entry point so instrumentations can patch libraries before they are loaded.
15
15
 
16
+ ### ESM Support
17
+
18
+ > **Note:** ESM support requires Node.js 20.6.0 or later. This package's ESM loader flow relies on `--import` and `node:module.register()`, which are not available on older Node.js releases. For background on why startup ordering matters, see the [OpenTelemetry ESM Support documentation](https://github.com/open-telemetry/opentelemetry-js/blob/main/doc/esm-support.md).
19
+
20
+ For ESM applications, instrumentation hooks must be registered before any instrumented modules (for example `http`, `express`, `axios`, or loggers) are loaded. This is a fundamental ESM constraint: modules cannot be instrumented after they are already loaded.
21
+
22
+ This pattern is **not** reliable for auto-instrumentation:
23
+
24
+ ```typescript
25
+ import { useMicrosoftOpenTelemetry } from "@microsoft/opentelemetry";
26
+ useMicrosoftOpenTelemetry();
27
+
28
+ import express from "express";
29
+ ```
30
+
31
+ Use `--import` so the loader is registered at process startup.
32
+
33
+ ```bash
34
+ node --import @microsoft/opentelemetry/loader ./app.mjs
35
+ ```
36
+
37
+ For example, in `package.json`:
38
+
39
+ ```json
40
+ {
41
+ "scripts": {
42
+ "start": "node --import @microsoft/opentelemetry/loader ./dist/index.js"
43
+ }
44
+ }
45
+ ```
46
+
47
+ If you prefer explicit telemetry configuration in a bootstrap file, preload that file instead:
48
+
49
+ `telemetry.mjs`:
50
+
51
+ ```javascript
52
+ import "@microsoft/opentelemetry/loader";
53
+ import { useMicrosoftOpenTelemetry } from "@microsoft/opentelemetry";
54
+
55
+ useMicrosoftOpenTelemetry({
56
+ azureMonitor: {
57
+ azureMonitorExporterOptions: {
58
+ connectionString: process.env.APPLICATIONINSIGHTS_CONNECTION_STRING,
59
+ },
60
+ enableLiveMetrics: false,
61
+ },
62
+ instrumentationOptions: {
63
+ bunyan: { enabled: true },
64
+ winston: { enabled: true },
65
+ },
66
+ });
67
+ ```
68
+
69
+ Start your app:
70
+
71
+ ```bash
72
+ node --import ./telemetry.mjs ./app.mjs
73
+ ```
74
+
75
+ Your application code can keep regular static ESM imports in `app.mjs`.
76
+
16
77
  ### A365
17
78
 
18
79
  ```typescript
@@ -74,9 +135,10 @@ That's it — traces, metrics, and logs are collected automatically with built-i
74
135
 
75
136
  Most instrumentations use `InstrumentationConfig` shape (`{ enabled?: boolean, ... }`).
76
137
 
77
- - Built-in infra instrumentations (`http`, `azureSdk`, `azureFunctions`, `mongoDb`, `mySql`, `postgreSql`, `redis`, `redis4`) are enabled by default.
138
+ - Built-in infra instrumentations (`http`, `azureSdk`, `mongoDb`, `mySql`, `postgreSql`, `redis`, `redis4`) are enabled by default.
78
139
  - Logging instrumentations (`bunyan`, `winston`) are disabled by default.
79
140
  - GenAI instrumentations (`openaiAgents`, `langchain`) are enabled by default.
141
+ - When `a365.enabled` is `true`, non-GenAI instrumentations (`http`, `azureSdk`, DB/cache, and logging) are disabled by default unless explicitly set in `instrumentationOptions`.
80
142
 
81
143
  Set `enabled: true` or `enabled: false` explicitly for predictable behavior.
82
144
 
@@ -179,6 +241,29 @@ See the [OpenTelemetry OTLP Exporter specification](https://opentelemetry.io/doc
179
241
  | `clusterCategory` | `ClusterCategory` | `"prod"` | Cluster category for endpoint resolution (`local`, `dev`, `test`, `preprod`, `firstrelease`, `prod`, `gov`, `high`, `dod`, `mooncake`, `ex`, `rx`) |
180
242
  | `domainOverride` | `string` | — | Override the A365 observability service domain |
181
243
  | `authScopes` | `string[]` | `["https://api.powerplatform.com/.default"]` | OAuth scopes for A365 service authentication |
244
+
245
+ When A365 export is enabled, the distro defaults to GenAI-focused telemetry. To opt back into non-GenAI auto-instrumentation, set explicit overrides:
246
+
247
+ ```typescript
248
+ useMicrosoftOpenTelemetry({
249
+ a365: {
250
+ enabled: true,
251
+ tokenResolver: (agentId, tenantId) => getToken(agentId, tenantId),
252
+ },
253
+ instrumentationOptions: {
254
+ http: { enabled: true },
255
+ azureSdk: { enabled: true },
256
+ mongoDb: { enabled: true },
257
+ mySql: { enabled: true },
258
+ postgreSql: { enabled: true },
259
+ redis: { enabled: true },
260
+ redis4: { enabled: true },
261
+ bunyan: { enabled: true },
262
+ winston: { enabled: true },
263
+ },
264
+ });
265
+ ```
266
+
182
267
  #### A365 hosting middleware setup
183
268
 
184
269
  Hosting middleware is configured separately from `a365` exporter options.
@@ -36,7 +36,7 @@ exports.A365_ENV_VARS = {
36
36
  CLUSTER_CATEGORY: "CLUSTER_CATEGORY",
37
37
  LOG_LEVEL: "A365_OBSERVABILITY_LOG_LEVEL",
38
38
  };
39
- const DEFAULT_AUTH_SCOPE = "https://api.powerplatform.com/.default";
39
+ const DEFAULT_AUTH_SCOPE = "api://9b975845-388f-4429-889e-eab1ef63949c/.default";
40
40
  const VALID_CLUSTER_CATEGORIES = new Set([
41
41
  "local",
42
42
  "dev",
@@ -1 +1 @@
1
- {"version":3,"file":"A365Configuration.js","sourceRoot":"","sources":["../../../../src/a365/configuration/A365Configuration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"A365Configuration.js","sourceRoot":"","sources":["../../../../src/a365/configuration/A365Configuration.ts"],"names":[],"mappings":"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"}
@@ -87,6 +87,6 @@ export declare class OpenTelemetryConstants {
87
87
  static readonly TELEMETRY_SDK_VERSION_KEY = "telemetry.sdk.version";
88
88
  static readonly TELEMETRY_SDK_NAME_VALUE = "A365ObservabilitySDK";
89
89
  static readonly TELEMETRY_SDK_LANGUAGE_VALUE = "nodejs";
90
- static readonly TELEMETRY_SDK_VERSION_VALUE = "0.1.0-alpha.6";
90
+ static readonly TELEMETRY_SDK_VERSION_VALUE = "0.1.0-beta.1";
91
91
  }
92
92
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/a365/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/a365/constants.ts"],"names":[],"mappings":"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"}
@@ -11,13 +11,15 @@ import type { Agent365ExporterOptions } from "./Agent365ExporterOptions.js";
11
11
  export declare class Agent365Exporter implements SpanExporter {
12
12
  private closed;
13
13
  private readonly options;
14
- private readonly logger;
14
+ private get logger();
15
15
  constructor(options?: Agent365ExporterOptions);
16
16
  export(spans: ReadableSpan[], resultCallback: (result: ExportResult) => void): Promise<void>;
17
17
  private exportGroup;
18
18
  private resolveToken;
19
19
  private postWithRetries;
20
- private buildExportRequest;
20
+ private mapAndTruncateSpans;
21
+ private getResourceAttributes;
22
+ private buildEnvelope;
21
23
  private mapSpan;
22
24
  shutdown(): Promise<void>;
23
25
  forceFlush(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"Agent365Exporter.d.ts","sourceRoot":"","sources":["../../../../src/a365/exporter/Agent365Exporter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAEhF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAgE5E;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,YAAY;IACnD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;gBAE9B,OAAO,CAAC,EAAE,uBAAuB;IAIvC,MAAM,CACV,KAAK,EAAE,YAAY,EAAE,EACrB,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAC7C,OAAO,CAAC,IAAI,CAAC;YAuDF,WAAW;YAuDX,YAAY;YAMZ,eAAe;IA0D7B,OAAO,CAAC,kBAAkB;IAwC1B,OAAO,CAAC,OAAO;IAwDT,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,OAAO,CAAC,gBAAgB;CAoBzB"}
1
+ {"version":3,"file":"Agent365Exporter.d.ts","sourceRoot":"","sources":["../../../../src/a365/exporter/Agent365Exporter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAEhF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAyE5E;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,YAAY;IACnD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAElD,OAAO,KAAK,MAAM,GAEjB;gBAEW,OAAO,CAAC,EAAE,uBAAuB;IAIvC,MAAM,CACV,KAAK,EAAE,YAAY,EAAE,EACrB,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAC7C,OAAO,CAAC,IAAI,CAAC;YAuDF,WAAW;YAmFX,YAAY;YAMZ,eAAe;IA0D7B,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,aAAa;IAoCrB,OAAO,CAAC,OAAO;IAwDT,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,OAAO,CAAC,gBAAgB;CAoBzB"}
@@ -19,7 +19,9 @@ const DEFAULT_MAX_RETRIES = 3;
19
19
  class Agent365Exporter {
20
20
  closed = false;
21
21
  options;
22
- logger = (0, logging_js_1.getA365Logger)();
22
+ get logger() {
23
+ return (0, logging_js_1.getA365Logger)();
24
+ }
23
25
  constructor(options) {
24
26
  this.options = new Agent365ExporterOptions_js_1.ResolvedExporterOptions(options);
25
27
  }
@@ -61,8 +63,13 @@ class Agent365Exporter {
61
63
  async exportGroup(identityKey, spans) {
62
64
  const start = Date.now();
63
65
  const { tenantId, agentId } = (0, utils_js_1.parseIdentityKey)(identityKey);
64
- const payload = this.buildExportRequest(spans);
65
- const body = JSON.stringify(payload);
66
+ // Map, truncate, and chunk spans by estimated byte size
67
+ const mappedSpans = this.mapAndTruncateSpans(spans);
68
+ const resourceAttrs = this.getResourceAttributes(spans);
69
+ const chunks = (0, utils_js_1.chunkBySize)(mappedSpans, (ms) => (0, utils_js_1.estimateSpanBytes)(ms.span), this.options.maxPayloadBytes);
70
+ if (chunks.length > 1) {
71
+ this.logger.info(`[Agent365Exporter] Split ${spans.length} spans into ${chunks.length} chunks for ${tenantId}/${agentId}`);
72
+ }
66
73
  const servicePrefix = this.options.useS2SEndpoint ? "/observabilityService" : "/observability";
67
74
  const endpointPath = `${servicePrefix}/tenants/${encodeURIComponent(tenantId)}/otlp/agents/${encodeURIComponent(agentId)}/traces`;
68
75
  const baseUrl = this.options.domainOverride ?? (0, utils_js_1.resolveAgent365Endpoint)(this.options.clusterCategory);
@@ -79,16 +86,21 @@ class Agent365Exporter {
79
86
  return;
80
87
  }
81
88
  headers["authorization"] = `Bearer ${token}`;
82
- const { ok, correlationId } = await this.postWithRetries(url, body, headers);
83
- if (!ok) {
84
- this.logExporterEvent(ExporterEventNames_js_1.ExporterEventNames.EXPORT_GROUP, false, Date.now() - start, undefined, {
85
- tenantId,
86
- agentId,
87
- correlationId,
88
- });
89
- throw new Error(`Failed to export spans for ${tenantId}/${agentId}`);
89
+ // Send each chunk (all-or-nothing: fail on first chunk failure)
90
+ let lastCorrelationId = "unknown";
91
+ for (let i = 0; i < chunks.length; i++) {
92
+ const chunk = chunks[i];
93
+ const payload = this.buildEnvelope(chunk, resourceAttrs);
94
+ const body = JSON.stringify(payload);
95
+ this.logger.info(`[Agent365Exporter] Sending chunk ${i + 1} of ${chunks.length} (${chunk.length} spans)`);
96
+ const { ok, correlationId } = await this.postWithRetries(url, body, headers);
97
+ lastCorrelationId = correlationId;
98
+ if (!ok) {
99
+ this.logExporterEvent(ExporterEventNames_js_1.ExporterEventNames.EXPORT_GROUP, false, Date.now() - start, `chunk ${i + 1} of ${chunks.length} failed`, { tenantId, agentId, correlationId });
100
+ throw new Error(`Failed to export spans (chunk ${i + 1} of ${chunks.length})`);
101
+ }
90
102
  }
91
- this.logExporterEvent(ExporterEventNames_js_1.ExporterEventNames.EXPORT_GROUP, true, Date.now() - start, "Spans exported successfully", { tenantId, agentId, correlationId });
103
+ this.logExporterEvent(ExporterEventNames_js_1.ExporterEventNames.EXPORT_GROUP, true, Date.now() - start, `${chunks.length} chunk(s) exported successfully`, { tenantId, agentId, correlationId: lastCorrelationId });
92
104
  }
93
105
  async resolveToken(agentId, tenantId) {
94
106
  if (!this.options.tokenResolver)
@@ -137,30 +149,43 @@ class Agent365Exporter {
137
149
  }
138
150
  return { ok: false, correlationId: lastCorrelationId };
139
151
  }
140
- buildExportRequest(spans) {
141
- const scopeMap = new Map();
142
- for (const sp of spans) {
152
+ mapAndTruncateSpans(spans) {
153
+ return spans.map((sp) => {
143
154
  const scope = sp.instrumentationScope;
144
- const scopeKey = `${scope?.name ?? "unknown"}:${scope?.version ?? ""}`;
145
- let existing = scopeMap.get(scopeKey);
146
- if (!existing) {
147
- existing = [];
148
- scopeMap.set(scopeKey, existing);
149
- }
150
- existing.push((0, utils_js_1.truncateSpan)(this.mapSpan(sp)));
155
+ const scopeName = scope?.name ?? "unknown";
156
+ const scopeVersion = scope?.version ?? "";
157
+ return {
158
+ span: (0, utils_js_1.truncateSpan)(this.mapSpan(sp)),
159
+ scopeKey: `${scopeName}:${scopeVersion}`,
160
+ scopeName,
161
+ scopeVersion: scopeVersion || undefined,
162
+ };
163
+ });
164
+ }
165
+ getResourceAttributes(spans) {
166
+ if (spans.length > 0 && spans[0].resource?.attributes) {
167
+ return { ...spans[0].resource.attributes };
168
+ }
169
+ return {};
170
+ }
171
+ buildEnvelope(mappedSpans, resourceAttrs) {
172
+ const scopeMap = new Map();
173
+ for (const ms of mappedSpans) {
174
+ const existing = scopeMap.get(ms.scopeKey) || [];
175
+ existing.push(ms.span);
176
+ scopeMap.set(ms.scopeKey, existing);
151
177
  }
152
178
  const scopeSpans = [];
153
- for (const [scopeKey, mappedSpans] of scopeMap) {
154
- const [name, version] = scopeKey.split(":");
179
+ for (const [scopeKey, spans] of scopeMap) {
180
+ const representative = mappedSpans.find((ms) => ms.scopeKey === scopeKey);
155
181
  scopeSpans.push({
156
- scope: { name, version: version || undefined },
157
- spans: mappedSpans,
182
+ scope: {
183
+ name: representative.scopeName,
184
+ version: representative.scopeVersion,
185
+ },
186
+ spans,
158
187
  });
159
188
  }
160
- let resourceAttrs = {};
161
- if (spans.length > 0 && spans[0].resource?.attributes) {
162
- resourceAttrs = { ...spans[0].resource.attributes };
163
- }
164
189
  return {
165
190
  resourceSpans: [
166
191
  {
@@ -1 +1 @@
1
- {"version":3,"file":"Agent365Exporter.js","sourceRoot":"","sources":["../../../../src/a365/exporter/Agent365Exporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Agent365Exporter.js","sourceRoot":"","sources":["../../../../src/a365/exporter/Agent365Exporter.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,8 @@ export interface Agent365ExporterOptions {
28
28
  httpRequestTimeoutMilliseconds?: number;
29
29
  /** Maximum number of spans per export batch. @default 512 */
30
30
  maxExportBatchSize?: number;
31
+ /** Maximum estimated payload size (bytes) per HTTP chunk. @default 900 * 1024 (900KB) */
32
+ maxPayloadBytes?: number;
31
33
  }
32
34
  /** Resolved options with defaults applied. */
33
35
  export declare class ResolvedExporterOptions {
@@ -41,6 +43,7 @@ export declare class ResolvedExporterOptions {
41
43
  readonly exporterTimeoutMilliseconds: number;
42
44
  readonly httpRequestTimeoutMilliseconds: number;
43
45
  readonly maxExportBatchSize: number;
46
+ readonly maxPayloadBytes: number;
44
47
  constructor(options?: Agent365ExporterOptions);
45
48
  }
46
49
  //# sourceMappingURL=Agent365ExporterOptions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Agent365ExporterOptions.d.ts","sourceRoot":"","sources":["../../../../src/a365/exporter/Agent365ExporterOptions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAEpF;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,CAC1B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,KAClB,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,gEAAgE;IAChE,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,oEAAoE;IACpE,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B,uFAAuF;IACvF,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,sDAAsD;IACtD,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,uEAAuE;IACvE,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAEpC,qEAAqE;IACrE,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAErC,gGAAgG;IAChG,8BAA8B,CAAC,EAAE,MAAM,CAAC;IAExC,6DAA6D;IAC7D,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,8CAA8C;AAC9C,qBAAa,uBAAuB;IAClC,SAAgB,eAAe,EAAE,eAAe,CAAC;IACjD,SAAgB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9C,SAAgB,cAAc,EAAE,OAAO,CAAC;IACxC,SAAgB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxC,SAAgB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrC,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,SAAgB,0BAA0B,EAAE,MAAM,CAAC;IACnD,SAAgB,2BAA2B,EAAE,MAAM,CAAC;IACpD,SAAgB,8BAA8B,EAAE,MAAM,CAAC;IACvD,SAAgB,kBAAkB,EAAE,MAAM,CAAC;gBAE/B,OAAO,CAAC,EAAE,uBAAuB;CAY9C"}
1
+ {"version":3,"file":"Agent365ExporterOptions.d.ts","sourceRoot":"","sources":["../../../../src/a365/exporter/Agent365ExporterOptions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAEpF;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,CAC1B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,KAClB,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,gEAAgE;IAChE,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,oEAAoE;IACpE,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B,uFAAuF;IACvF,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,sDAAsD;IACtD,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,uEAAuE;IACvE,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAEpC,qEAAqE;IACrE,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAErC,gGAAgG;IAChG,8BAA8B,CAAC,EAAE,MAAM,CAAC;IAExC,6DAA6D;IAC7D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,yFAAyF;IACzF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,8CAA8C;AAC9C,qBAAa,uBAAuB;IAClC,SAAgB,eAAe,EAAE,eAAe,CAAC;IACjD,SAAgB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9C,SAAgB,cAAc,EAAE,OAAO,CAAC;IACxC,SAAgB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxC,SAAgB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrC,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,SAAgB,0BAA0B,EAAE,MAAM,CAAC;IACnD,SAAgB,2BAA2B,EAAE,MAAM,CAAC;IACpD,SAAgB,8BAA8B,EAAE,MAAM,CAAC;IACvD,SAAgB,kBAAkB,EAAE,MAAM,CAAC;IAC3C,SAAgB,eAAe,EAAE,MAAM,CAAC;gBAE5B,OAAO,CAAC,EAAE,uBAAuB;CAe9C"}
@@ -15,17 +15,21 @@ class ResolvedExporterOptions {
15
15
  exporterTimeoutMilliseconds;
16
16
  httpRequestTimeoutMilliseconds;
17
17
  maxExportBatchSize;
18
+ maxPayloadBytes;
18
19
  constructor(options) {
19
20
  this.clusterCategory = options?.clusterCategory ?? "prod";
20
21
  this.tokenResolver = options?.tokenResolver;
21
22
  this.useS2SEndpoint = options?.useS2SEndpoint ?? false;
22
23
  this.domainOverride = options?.domainOverride;
23
- this.authScopes = options?.authScopes ?? ["https://api.powerplatform.com/.default"];
24
+ this.authScopes = options?.authScopes ?? [
25
+ "api://9b975845-388f-4429-889e-eab1ef63949c/.default",
26
+ ];
24
27
  this.maxQueueSize = options?.maxQueueSize ?? 2048;
25
28
  this.scheduledDelayMilliseconds = options?.scheduledDelayMilliseconds ?? 5000;
26
29
  this.exporterTimeoutMilliseconds = options?.exporterTimeoutMilliseconds ?? 90000;
27
30
  this.httpRequestTimeoutMilliseconds = options?.httpRequestTimeoutMilliseconds ?? 30000;
28
31
  this.maxExportBatchSize = options?.maxExportBatchSize ?? 512;
32
+ this.maxPayloadBytes = options?.maxPayloadBytes ?? 900 * 1024;
29
33
  }
30
34
  }
31
35
  exports.ResolvedExporterOptions = ResolvedExporterOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"Agent365ExporterOptions.js","sourceRoot":"","sources":["../../../../src/a365/exporter/Agent365ExporterOptions.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAiDlC,8CAA8C;AAC9C,MAAa,uBAAuB;IAClB,eAAe,CAAkB;IACjC,aAAa,CAAiB;IAC9B,cAAc,CAAU;IACxB,cAAc,CAAU;IACxB,UAAU,CAAW;IACrB,YAAY,CAAS;IACrB,0BAA0B,CAAS;IACnC,2BAA2B,CAAS;IACpC,8BAA8B,CAAS;IACvC,kBAAkB,CAAS;IAE3C,YAAY,OAAiC;QAC3C,IAAI,CAAC,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,MAAM,CAAC;QAC1D,IAAI,CAAC,aAAa,GAAG,OAAO,EAAE,aAAa,CAAC;QAC5C,IAAI,CAAC,cAAc,GAAG,OAAO,EAAE,cAAc,IAAI,KAAK,CAAC;QACvD,IAAI,CAAC,cAAc,GAAG,OAAO,EAAE,cAAc,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,CAAC,wCAAwC,CAAC,CAAC;QACpF,IAAI,CAAC,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,IAAI,CAAC;QAClD,IAAI,CAAC,0BAA0B,GAAG,OAAO,EAAE,0BAA0B,IAAI,IAAI,CAAC;QAC9E,IAAI,CAAC,2BAA2B,GAAG,OAAO,EAAE,2BAA2B,IAAI,KAAK,CAAC;QACjF,IAAI,CAAC,8BAA8B,GAAG,OAAO,EAAE,8BAA8B,IAAI,KAAK,CAAC;QACvF,IAAI,CAAC,kBAAkB,GAAG,OAAO,EAAE,kBAAkB,IAAI,GAAG,CAAC;IAC/D,CAAC;CACF;AAxBD,0DAwBC"}
1
+ {"version":3,"file":"Agent365ExporterOptions.js","sourceRoot":"","sources":["../../../../src/a365/exporter/Agent365ExporterOptions.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAoDlC,8CAA8C;AAC9C,MAAa,uBAAuB;IAClB,eAAe,CAAkB;IACjC,aAAa,CAAiB;IAC9B,cAAc,CAAU;IACxB,cAAc,CAAU;IACxB,UAAU,CAAW;IACrB,YAAY,CAAS;IACrB,0BAA0B,CAAS;IACnC,2BAA2B,CAAS;IACpC,8BAA8B,CAAS;IACvC,kBAAkB,CAAS;IAC3B,eAAe,CAAS;IAExC,YAAY,OAAiC;QAC3C,IAAI,CAAC,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,MAAM,CAAC;QAC1D,IAAI,CAAC,aAAa,GAAG,OAAO,EAAE,aAAa,CAAC;QAC5C,IAAI,CAAC,cAAc,GAAG,OAAO,EAAE,cAAc,IAAI,KAAK,CAAC;QACvD,IAAI,CAAC,cAAc,GAAG,OAAO,EAAE,cAAc,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI;YACvC,qDAAqD;SACtD,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,IAAI,CAAC;QAClD,IAAI,CAAC,0BAA0B,GAAG,OAAO,EAAE,0BAA0B,IAAI,IAAI,CAAC;QAC9E,IAAI,CAAC,2BAA2B,GAAG,OAAO,EAAE,2BAA2B,IAAI,KAAK,CAAC;QACjF,IAAI,CAAC,8BAA8B,GAAG,OAAO,EAAE,8BAA8B,IAAI,KAAK,CAAC;QACvF,IAAI,CAAC,kBAAkB,GAAG,OAAO,EAAE,kBAAkB,IAAI,GAAG,CAAC;QAC7D,IAAI,CAAC,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,GAAG,GAAG,IAAI,CAAC;IAChE,CAAC;CACF;AA5BD,0DA4BC"}
@@ -3,7 +3,7 @@ import { SpanKind, SpanStatusCode } from "@opentelemetry/api";
3
3
  import type { ClusterCategory } from "../configuration/A365ConfigurationOptions.js";
4
4
  /**
5
5
  * Partition spans by (tenantId, agentId) identity pairs.
6
- * Spans missing either attribute are skipped.
6
+ * Only genAI spans (those with a known gen_ai.operation.name) are included.
7
7
  */
8
8
  export declare function partitionByIdentity(spans: ReadableSpan[]): Map<string, ReadableSpan[]>;
9
9
  /** Parse identity key back to tenant and agent IDs. */
@@ -30,6 +30,34 @@ export declare const MAX_SPAN_SIZE_BYTES: number;
30
30
  interface OTLPSpanLike {
31
31
  attributes: Record<string, unknown> | null;
32
32
  }
33
+ /**
34
+ * Estimate the serialized byte size of a single attribute value in OTLP/HTTP JSON.
35
+ */
36
+ export declare function estimateValueBytes(value: unknown): number;
37
+ /**
38
+ * Heuristic estimator for the serialized size of an OTLP span in HTTP JSON.
39
+ *
40
+ * Uses generous constants tuned to over-estimate by ~25-50%, providing headroom
41
+ * for JSON serializer variance.
42
+ */
43
+ export declare function estimateSpanBytes(span: {
44
+ name?: string;
45
+ attributes?: Record<string, unknown> | null;
46
+ events?: Array<{
47
+ name: string;
48
+ attributes?: Record<string, unknown> | null;
49
+ }> | null;
50
+ }): number;
51
+ /**
52
+ * Split items into sub-batches whose cumulative estimated size stays under maxChunkBytes.
53
+ *
54
+ * Invariants:
55
+ * - Input order is preserved across chunks.
56
+ * - Empty input produces empty output.
57
+ * - A single item whose size exceeds maxChunkBytes forms its own single-item chunk.
58
+ * - No chunk is ever empty.
59
+ */
60
+ export declare function chunkBySize<T>(items: T[], getSize: (item: T) => number, maxChunkBytes: number): T[][];
33
61
  /**
34
62
  * Truncate span attributes if the serialized span exceeds MAX_SPAN_SIZE_BYTES.
35
63
  *
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/a365/exporter/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAmBpF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CA8BtF;AAED,uDAAuD;AACvD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAGnF;AAED,qDAAqD;AACrD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAKzD;AAED,oDAAoD;AACpD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAKxD;AAED,yEAAyE;AACzE,wBAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAIpD;AAED,0BAA0B;AAC1B,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAe/C;AAED,uBAAuB;AACvB,wBAAgB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAWvD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,eAAe,GAAG,MAAM,CAUhF;AAID,kDAAkD;AAClD,eAAO,MAAM,mBAAmB,QAAa,CAAC;AAS9C,UAAU,YAAY;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC5C;AA+QD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAqEnE"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/a365/exporter/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAsCpF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAgDtF;AAED,uDAAuD;AACvD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAGnF;AAED,qDAAqD;AACrD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAKzD;AAED,oDAAoD;AACpD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAKxD;AAED,yEAAyE;AACzE,wBAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAIpD;AAED,0BAA0B;AAC1B,wBAAgB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAe/C;AAED,uBAAuB;AACvB,wBAAgB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAWvD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,eAAe,GAAG,MAAM,CAUhF;AAID,kDAAkD;AAClD,eAAO,MAAM,mBAAmB,QAAa,CAAC;AAS9C,UAAU,YAAY;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC5C;AA0RD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAgBzD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5C,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;CACtF,GAAG,MAAM,CA8BT;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,KAAK,EAAE,CAAC,EAAE,EACV,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EAC5B,aAAa,EAAE,MAAM,GACpB,CAAC,EAAE,EAAE,CAqBP;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAqEnE"}
@@ -11,6 +11,9 @@ exports.asStr = asStr;
11
11
  exports.kindName = kindName;
12
12
  exports.statusName = statusName;
13
13
  exports.resolveAgent365Endpoint = resolveAgent365Endpoint;
14
+ exports.estimateValueBytes = estimateValueBytes;
15
+ exports.estimateSpanBytes = estimateSpanBytes;
16
+ exports.chunkBySize = chunkBySize;
14
17
  exports.truncateSpan = truncateSpan;
15
18
  const api_1 = require("@opentelemetry/api");
16
19
  const index_js_1 = require("../../shared/logging/index.js");
@@ -23,19 +26,38 @@ const MESSAGE_ATTR_KEYS = new Set([
23
26
  semconv_js_1.ATTR_GEN_AI_OUTPUT_MESSAGES,
24
27
  ]);
25
28
  const MESSAGE_ROLE_SYSTEM = "system";
29
+ /**
30
+ * Known genAI operation names produced by the SDK scopes and auto-instrumentation.
31
+ * Only spans whose gen_ai.operation.name matches one of these values are exported.
32
+ */
33
+ const GEN_AI_OPERATION_NAMES = new Set([
34
+ semconv_js_1.GEN_AI_OPERATION_INVOKE_AGENT, // 'invoke_agent'
35
+ semconv_js_1.GEN_AI_OPERATION_EXECUTE_TOOL, // 'execute_tool'
36
+ semconv_js_1.GEN_AI_OPERATION_OUTPUT_MESSAGES, // 'output_messages'
37
+ semconv_js_1.GEN_AI_OPERATION_CHAT, // 'chat'
38
+ "Chat", // InferenceOperationType.CHAT
39
+ "TextCompletion", // InferenceOperationType.TEXT_COMPLETION
40
+ "GenerateContent", // InferenceOperationType.GENERATE_CONTENT
41
+ ]);
26
42
  /**
27
43
  * Partition spans by (tenantId, agentId) identity pairs.
28
- * Spans missing either attribute are skipped.
44
+ * Only genAI spans (those with a known gen_ai.operation.name) are included.
29
45
  */
30
46
  function partitionByIdentity(spans) {
31
47
  const groups = new Map();
32
- let skippedCount = 0;
48
+ let nonGenAICount = 0;
49
+ let missingIdentityCount = 0;
33
50
  for (const span of spans) {
34
51
  const attrs = span.attributes || {};
52
+ const operationName = asStr(attrs[semconv_js_1.ATTR_GEN_AI_OPERATION_NAME]);
53
+ if (!operationName || !GEN_AI_OPERATION_NAMES.has(operationName)) {
54
+ nonGenAICount++;
55
+ continue;
56
+ }
35
57
  const tenant = asStr(attrs[semconv_js_1.ATTR_MICROSOFT_TENANT_ID]);
36
58
  const agent = asStr(attrs[semconv_js_1.ATTR_GEN_AI_AGENT_ID]);
37
59
  if (!tenant || !agent) {
38
- skippedCount++;
60
+ missingIdentityCount++;
39
61
  continue;
40
62
  }
41
63
  const key = `${tenant}:${agent}`;
@@ -46,9 +68,14 @@ function partitionByIdentity(spans) {
46
68
  }
47
69
  existing.push(span);
48
70
  }
49
- if (skippedCount > 0) {
50
- index_js_1.Logger.getInstance().info(`[${ExporterEventNames_js_1.ExporterEventNames.EXPORT_PARTITION_SPAN_MISSING_IDENTITY}] ${skippedCount} spans skipped (missing tenant or agent ID)`);
71
+ if (nonGenAICount > 0) {
72
+ index_js_1.Logger.getInstance().info(`[Agent365Exporter] ${nonGenAICount} non-genAI spans filtered out`);
73
+ }
74
+ if (missingIdentityCount > 0) {
75
+ index_js_1.Logger.getInstance().info(`[${ExporterEventNames_js_1.ExporterEventNames.EXPORT_PARTITION_SPAN_MISSING_IDENTITY}] ${missingIdentityCount} spans skipped (missing tenant or agent ID)`);
51
76
  }
77
+ const skippedCount = nonGenAICount + missingIdentityCount;
78
+ index_js_1.Logger.getInstance().info(`[Agent365Exporter] Partitioned into ${groups.size} identity groups (${skippedCount} spans skipped)`);
52
79
  return groups;
53
80
  }
54
81
  /** Parse identity key back to tenant and agent IDs. */
@@ -341,6 +368,95 @@ function runShrinkPhase(span, attributes, parsedMessages, currentSize) {
341
368
  flushParsedMessages(attributes, parsedMessages);
342
369
  return nextSize;
343
370
  }
371
+ // ── Span size estimation and byte-level chunking ────────────────────────────
372
+ /** Overhead constant for OTLP JSON span fixed fields. @internal */
373
+ const SPAN_BASE_OVERHEAD = 2000;
374
+ /** Overhead per attribute in OTLP JSON format. @internal */
375
+ const ATTR_OVERHEAD = 80;
376
+ /** Overhead per event in OTLP JSON. @internal */
377
+ const EVENT_OVERHEAD = 200;
378
+ /**
379
+ * Estimate the serialized byte size of a single attribute value in OTLP/HTTP JSON.
380
+ */
381
+ function estimateValueBytes(value) {
382
+ if (typeof value === "string") {
383
+ return 40 + Buffer.byteLength(value, "utf8");
384
+ }
385
+ if (Array.isArray(value)) {
386
+ if (value.length === 0)
387
+ return 60;
388
+ if (typeof value[0] === "string") {
389
+ let sum = 60;
390
+ for (const s of value) {
391
+ sum += 40 + Buffer.byteLength(String(s), "utf8");
392
+ }
393
+ return sum;
394
+ }
395
+ return 60 + 50 * value.length;
396
+ }
397
+ return 40; // bool/int/float/null/other
398
+ }
399
+ /**
400
+ * Heuristic estimator for the serialized size of an OTLP span in HTTP JSON.
401
+ *
402
+ * Uses generous constants tuned to over-estimate by ~25-50%, providing headroom
403
+ * for JSON serializer variance.
404
+ */
405
+ function estimateSpanBytes(span) {
406
+ let total = SPAN_BASE_OVERHEAD;
407
+ if (span.name) {
408
+ total += Buffer.byteLength(span.name, "utf8");
409
+ }
410
+ if (span.attributes) {
411
+ for (const [key, value] of Object.entries(span.attributes)) {
412
+ total += ATTR_OVERHEAD;
413
+ total += Buffer.byteLength(key, "utf8");
414
+ total += estimateValueBytes(value);
415
+ }
416
+ }
417
+ if (span.events) {
418
+ for (const ev of span.events) {
419
+ total += EVENT_OVERHEAD;
420
+ total += Buffer.byteLength(ev.name, "utf8");
421
+ if (ev.attributes) {
422
+ for (const [key, value] of Object.entries(ev.attributes)) {
423
+ total += ATTR_OVERHEAD;
424
+ total += Buffer.byteLength(key, "utf8");
425
+ total += estimateValueBytes(value);
426
+ }
427
+ }
428
+ }
429
+ }
430
+ return total;
431
+ }
432
+ /**
433
+ * Split items into sub-batches whose cumulative estimated size stays under maxChunkBytes.
434
+ *
435
+ * Invariants:
436
+ * - Input order is preserved across chunks.
437
+ * - Empty input produces empty output.
438
+ * - A single item whose size exceeds maxChunkBytes forms its own single-item chunk.
439
+ * - No chunk is ever empty.
440
+ */
441
+ function chunkBySize(items, getSize, maxChunkBytes) {
442
+ const chunks = [];
443
+ let current = [];
444
+ let currentBytes = 0;
445
+ for (const item of items) {
446
+ const itemBytes = getSize(item);
447
+ if (current.length > 0 && currentBytes + itemBytes > maxChunkBytes) {
448
+ chunks.push(current);
449
+ current = [];
450
+ currentBytes = 0;
451
+ }
452
+ current.push(item);
453
+ currentBytes += itemBytes;
454
+ }
455
+ if (current.length > 0) {
456
+ chunks.push(current);
457
+ }
458
+ return chunks;
459
+ }
344
460
  /**
345
461
  * Truncate span attributes if the serialized span exceeds MAX_SPAN_SIZE_BYTES.
346
462
  *