@microsoft/opentelemetry 0.1.0-alpha.6 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +90 -3
- package/dist/commonjs/a365/configuration/A365Configuration.d.ts +32 -0
- package/dist/commonjs/a365/configuration/A365Configuration.d.ts.map +1 -1
- package/dist/commonjs/a365/configuration/A365Configuration.js +74 -5
- package/dist/commonjs/a365/configuration/A365Configuration.js.map +1 -1
- package/dist/commonjs/a365/configuration/A365ConfigurationOptions.d.ts +49 -0
- package/dist/commonjs/a365/configuration/A365ConfigurationOptions.d.ts.map +1 -1
- package/dist/commonjs/a365/constants.d.ts +1 -1
- package/dist/commonjs/a365/constants.d.ts.map +1 -1
- package/dist/commonjs/a365/exporter/Agent365Exporter.d.ts +4 -2
- package/dist/commonjs/a365/exporter/Agent365Exporter.d.ts.map +1 -1
- package/dist/commonjs/a365/exporter/Agent365Exporter.js +55 -30
- package/dist/commonjs/a365/exporter/Agent365Exporter.js.map +1 -1
- package/dist/commonjs/a365/exporter/Agent365ExporterOptions.d.ts +3 -0
- package/dist/commonjs/a365/exporter/Agent365ExporterOptions.d.ts.map +1 -1
- package/dist/commonjs/a365/exporter/Agent365ExporterOptions.js +5 -1
- package/dist/commonjs/a365/exporter/Agent365ExporterOptions.js.map +1 -1
- package/dist/commonjs/a365/exporter/utils.d.ts +29 -1
- package/dist/commonjs/a365/exporter/utils.d.ts.map +1 -1
- package/dist/commonjs/a365/exporter/utils.js +121 -5
- package/dist/commonjs/a365/exporter/utils.js.map +1 -1
- package/dist/commonjs/a365/hosting/agenticTokenCache.d.ts +58 -0
- package/dist/commonjs/a365/hosting/agenticTokenCache.d.ts.map +1 -0
- package/dist/commonjs/a365/hosting/agenticTokenCache.js +229 -0
- package/dist/commonjs/a365/hosting/agenticTokenCache.js.map +1 -0
- package/dist/commonjs/a365/hosting/index.d.ts +2 -0
- package/dist/commonjs/a365/hosting/index.d.ts.map +1 -1
- package/dist/commonjs/a365/hosting/index.js +4 -1
- package/dist/commonjs/a365/hosting/index.js.map +1 -1
- package/dist/commonjs/a365/index.d.ts +2 -2
- package/dist/commonjs/a365/index.d.ts.map +1 -1
- package/dist/commonjs/a365/index.js +3 -1
- package/dist/commonjs/a365/index.js.map +1 -1
- package/dist/commonjs/azureMonitor/index.d.ts +9 -1
- package/dist/commonjs/azureMonitor/index.d.ts.map +1 -1
- package/dist/commonjs/azureMonitor/index.js +13 -18
- package/dist/commonjs/azureMonitor/index.js.map +1 -1
- package/dist/commonjs/azureMonitor/metrics/quickpulse/liveMetrics.js +1 -1
- package/dist/commonjs/azureMonitor/metrics/quickpulse/liveMetrics.js.map +1 -1
- package/dist/commonjs/azureMonitor/metrics/quickpulse/utils.d.ts.map +1 -1
- package/dist/commonjs/azureMonitor/metrics/quickpulse/utils.js +4 -6
- package/dist/commonjs/azureMonitor/metrics/quickpulse/utils.js.map +1 -1
- package/dist/commonjs/distro/distro.d.ts +11 -2
- package/dist/commonjs/distro/distro.d.ts.map +1 -1
- package/dist/commonjs/distro/distro.js +183 -36
- package/dist/commonjs/distro/distro.js.map +1 -1
- package/dist/commonjs/distro/loader.d.ts +10 -0
- package/dist/commonjs/distro/loader.d.ts.map +1 -0
- package/dist/commonjs/distro/loader.js +16 -0
- package/dist/commonjs/distro/loader.js.map +1 -0
- package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts +2 -6
- package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts.map +1 -1
- package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.js +10 -14
- package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.js.map +1 -1
- package/dist/commonjs/genai/instrumentations/langchain/tracer.d.ts +9 -8
- package/dist/commonjs/genai/instrumentations/langchain/tracer.d.ts.map +1 -1
- package/dist/commonjs/genai/instrumentations/langchain/tracer.js +40 -15
- package/dist/commonjs/genai/instrumentations/langchain/tracer.js.map +1 -1
- package/dist/commonjs/genai/instrumentations/langchain/utils.d.ts.map +1 -1
- package/dist/commonjs/genai/instrumentations/langchain/utils.js +259 -75
- package/dist/commonjs/genai/instrumentations/langchain/utils.js.map +1 -1
- package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceInstrumentor.d.ts.map +1 -1
- package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceInstrumentor.js +0 -1
- package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceInstrumentor.js.map +1 -1
- package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceProcessor.d.ts +4 -5
- package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceProcessor.d.ts.map +1 -1
- package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceProcessor.js +72 -37
- package/dist/commonjs/genai/instrumentations/openai/openAIAgentsTraceProcessor.js.map +1 -1
- package/dist/commonjs/genai/instrumentations/openai/semconv.d.ts +0 -2
- package/dist/commonjs/genai/instrumentations/openai/semconv.d.ts.map +1 -1
- package/dist/commonjs/genai/instrumentations/openai/semconv.js +1 -3
- package/dist/commonjs/genai/instrumentations/openai/semconv.js.map +1 -1
- package/dist/commonjs/genai/instrumentations/openai/utils.d.ts +37 -16
- package/dist/commonjs/genai/instrumentations/openai/utils.d.ts.map +1 -1
- package/dist/commonjs/genai/instrumentations/openai/utils.js +239 -60
- package/dist/commonjs/genai/instrumentations/openai/utils.js.map +1 -1
- package/dist/commonjs/genai/semconv.d.ts +2 -0
- package/dist/commonjs/genai/semconv.d.ts.map +1 -1
- package/dist/commonjs/genai/semconv.js +5 -1
- package/dist/commonjs/genai/semconv.js.map +1 -1
- package/dist/commonjs/index.d.ts +2 -2
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +3 -1
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/sdkstats/index.d.ts +18 -0
- package/dist/commonjs/sdkstats/index.d.ts.map +1 -0
- package/dist/commonjs/sdkstats/index.js +37 -0
- package/dist/commonjs/sdkstats/index.js.map +1 -0
- package/dist/commonjs/sdkstats/manager.d.ts +31 -0
- package/dist/commonjs/sdkstats/manager.d.ts.map +1 -0
- package/dist/commonjs/sdkstats/manager.js +190 -0
- package/dist/commonjs/sdkstats/manager.js.map +1 -0
- package/dist/commonjs/sdkstats/metrics.d.ts +20 -0
- package/dist/commonjs/sdkstats/metrics.d.ts.map +1 -0
- package/dist/commonjs/sdkstats/metrics.js +84 -0
- package/dist/commonjs/sdkstats/metrics.js.map +1 -0
- package/dist/commonjs/sdkstats/state.d.ts +58 -0
- package/dist/commonjs/sdkstats/state.d.ts.map +1 -0
- package/dist/commonjs/sdkstats/state.js +94 -0
- package/dist/commonjs/sdkstats/state.js.map +1 -0
- package/dist/commonjs/types.d.ts +6 -9
- package/dist/commonjs/types.d.ts.map +1 -1
- package/dist/commonjs/types.js +5 -1
- package/dist/commonjs/types.js.map +1 -1
- package/dist/commonjs/utils/common.js +2 -2
- package/dist/commonjs/utils/common.js.map +1 -1
- package/dist/commonjs/utils/index.d.ts +2 -0
- package/dist/commonjs/utils/index.d.ts.map +1 -1
- package/dist/commonjs/utils/index.js +5 -1
- package/dist/commonjs/utils/index.js.map +1 -1
- package/dist/commonjs/utils/opentelemetryInstrumentationPatcher.d.ts.map +1 -0
- package/dist/commonjs/{azureMonitor/utils → utils}/opentelemetryInstrumentationPatcher.js +13 -11
- package/dist/commonjs/utils/opentelemetryInstrumentationPatcher.js.map +1 -0
- package/dist/commonjs/{azureMonitor/utils → utils}/statsbeat.d.ts +1 -1
- package/dist/commonjs/utils/statsbeat.d.ts.map +1 -0
- package/dist/commonjs/{azureMonitor/utils → utils}/statsbeat.js +8 -8
- package/dist/commonjs/utils/statsbeat.js.map +1 -0
- package/dist/esm/a365/configuration/A365Configuration.d.ts +32 -0
- package/dist/esm/a365/configuration/A365Configuration.d.ts.map +1 -1
- package/dist/esm/a365/configuration/A365Configuration.js +74 -5
- package/dist/esm/a365/configuration/A365Configuration.js.map +1 -1
- package/dist/esm/a365/configuration/A365ConfigurationOptions.d.ts +49 -0
- package/dist/esm/a365/configuration/A365ConfigurationOptions.d.ts.map +1 -1
- package/dist/esm/a365/constants.d.ts +1 -1
- package/dist/esm/a365/constants.d.ts.map +1 -1
- package/dist/esm/a365/exporter/Agent365Exporter.d.ts +4 -2
- package/dist/esm/a365/exporter/Agent365Exporter.d.ts.map +1 -1
- package/dist/esm/a365/exporter/Agent365Exporter.js +56 -31
- package/dist/esm/a365/exporter/Agent365Exporter.js.map +1 -1
- package/dist/esm/a365/exporter/Agent365ExporterOptions.d.ts +3 -0
- package/dist/esm/a365/exporter/Agent365ExporterOptions.d.ts.map +1 -1
- package/dist/esm/a365/exporter/Agent365ExporterOptions.js +5 -1
- package/dist/esm/a365/exporter/Agent365ExporterOptions.js.map +1 -1
- package/dist/esm/a365/exporter/utils.d.ts +29 -1
- package/dist/esm/a365/exporter/utils.d.ts.map +1 -1
- package/dist/esm/a365/exporter/utils.js +119 -6
- package/dist/esm/a365/exporter/utils.js.map +1 -1
- package/dist/esm/a365/hosting/agenticTokenCache.d.ts +58 -0
- package/dist/esm/a365/hosting/agenticTokenCache.d.ts.map +1 -0
- package/dist/esm/a365/hosting/agenticTokenCache.js +225 -0
- package/dist/esm/a365/hosting/agenticTokenCache.js.map +1 -0
- package/dist/esm/a365/hosting/index.d.ts +2 -0
- package/dist/esm/a365/hosting/index.d.ts.map +1 -1
- package/dist/esm/a365/hosting/index.js +1 -0
- package/dist/esm/a365/hosting/index.js.map +1 -1
- package/dist/esm/a365/index.d.ts +2 -2
- package/dist/esm/a365/index.d.ts.map +1 -1
- package/dist/esm/a365/index.js +1 -1
- package/dist/esm/a365/index.js.map +1 -1
- package/dist/esm/azureMonitor/index.d.ts +9 -1
- package/dist/esm/azureMonitor/index.d.ts.map +1 -1
- package/dist/esm/azureMonitor/index.js +12 -18
- package/dist/esm/azureMonitor/index.js.map +1 -1
- package/dist/esm/azureMonitor/metrics/quickpulse/liveMetrics.js +1 -1
- package/dist/esm/azureMonitor/metrics/quickpulse/liveMetrics.js.map +1 -1
- package/dist/esm/azureMonitor/metrics/quickpulse/utils.d.ts.map +1 -1
- package/dist/esm/azureMonitor/metrics/quickpulse/utils.js +5 -7
- package/dist/esm/azureMonitor/metrics/quickpulse/utils.js.map +1 -1
- package/dist/esm/distro/distro.d.ts +11 -2
- package/dist/esm/distro/distro.d.ts.map +1 -1
- package/dist/esm/distro/distro.js +181 -35
- package/dist/esm/distro/distro.js.map +1 -1
- package/dist/esm/distro/loader.d.ts +10 -0
- package/dist/esm/distro/loader.d.ts.map +1 -0
- package/dist/esm/distro/loader.js +14 -0
- package/dist/esm/distro/loader.js.map +1 -0
- package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts +2 -6
- package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts.map +1 -1
- package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.js +10 -14
- package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.js.map +1 -1
- package/dist/esm/genai/instrumentations/langchain/tracer.d.ts +9 -8
- package/dist/esm/genai/instrumentations/langchain/tracer.d.ts.map +1 -1
- package/dist/esm/genai/instrumentations/langchain/tracer.js +41 -16
- package/dist/esm/genai/instrumentations/langchain/tracer.js.map +1 -1
- package/dist/esm/genai/instrumentations/langchain/utils.d.ts.map +1 -1
- package/dist/esm/genai/instrumentations/langchain/utils.js +260 -76
- package/dist/esm/genai/instrumentations/langchain/utils.js.map +1 -1
- package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceInstrumentor.d.ts.map +1 -1
- package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceInstrumentor.js +0 -1
- package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceInstrumentor.js.map +1 -1
- package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceProcessor.d.ts +4 -5
- package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceProcessor.d.ts.map +1 -1
- package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceProcessor.js +75 -40
- package/dist/esm/genai/instrumentations/openai/openAIAgentsTraceProcessor.js.map +1 -1
- package/dist/esm/genai/instrumentations/openai/semconv.d.ts +0 -2
- package/dist/esm/genai/instrumentations/openai/semconv.d.ts.map +1 -1
- package/dist/esm/genai/instrumentations/openai/semconv.js +0 -2
- package/dist/esm/genai/instrumentations/openai/semconv.js.map +1 -1
- package/dist/esm/genai/instrumentations/openai/utils.d.ts +37 -16
- package/dist/esm/genai/instrumentations/openai/utils.d.ts.map +1 -1
- package/dist/esm/genai/instrumentations/openai/utils.js +233 -57
- package/dist/esm/genai/instrumentations/openai/utils.js.map +1 -1
- package/dist/esm/genai/semconv.d.ts +2 -0
- package/dist/esm/genai/semconv.d.ts.map +1 -1
- package/dist/esm/genai/semconv.js +4 -0
- package/dist/esm/genai/semconv.js.map +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/sdkstats/index.d.ts +18 -0
- package/dist/esm/sdkstats/index.d.ts.map +1 -0
- package/dist/esm/sdkstats/index.js +20 -0
- package/dist/esm/sdkstats/index.js.map +1 -0
- package/dist/esm/sdkstats/manager.d.ts +31 -0
- package/dist/esm/sdkstats/manager.d.ts.map +1 -0
- package/dist/esm/sdkstats/manager.js +186 -0
- package/dist/esm/sdkstats/manager.js.map +1 -0
- package/dist/esm/sdkstats/metrics.d.ts +20 -0
- package/dist/esm/sdkstats/metrics.d.ts.map +1 -0
- package/dist/esm/sdkstats/metrics.js +77 -0
- package/dist/esm/sdkstats/metrics.js.map +1 -0
- package/dist/esm/sdkstats/state.d.ts +58 -0
- package/dist/esm/sdkstats/state.d.ts.map +1 -0
- package/dist/esm/sdkstats/state.js +83 -0
- package/dist/esm/sdkstats/state.js.map +1 -0
- package/dist/esm/types.d.ts +6 -9
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +5 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils/common.js +2 -2
- package/dist/esm/utils/common.js.map +1 -1
- package/dist/esm/utils/index.d.ts +2 -0
- package/dist/esm/utils/index.d.ts.map +1 -1
- package/dist/esm/utils/index.js +2 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/opentelemetryInstrumentationPatcher.d.ts.map +1 -0
- package/dist/esm/{azureMonitor/utils → utils}/opentelemetryInstrumentationPatcher.js +13 -11
- package/dist/esm/utils/opentelemetryInstrumentationPatcher.js.map +1 -0
- package/dist/esm/{azureMonitor/utils → utils}/statsbeat.d.ts +1 -1
- package/dist/esm/utils/statsbeat.d.ts.map +1 -0
- package/dist/esm/{azureMonitor/utils → utils}/statsbeat.js +8 -8
- package/dist/esm/utils/statsbeat.js.map +1 -0
- package/package.json +6 -6
- package/dist/commonjs/azureMonitor/utils/opentelemetryInstrumentationPatcher.d.ts.map +0 -1
- package/dist/commonjs/azureMonitor/utils/opentelemetryInstrumentationPatcher.js.map +0 -1
- package/dist/commonjs/azureMonitor/utils/statsbeat.d.ts.map +0 -1
- package/dist/commonjs/azureMonitor/utils/statsbeat.js.map +0 -1
- package/dist/esm/azureMonitor/utils/opentelemetryInstrumentationPatcher.d.ts.map +0 -1
- package/dist/esm/azureMonitor/utils/opentelemetryInstrumentationPatcher.js.map +0 -1
- package/dist/esm/azureMonitor/utils/statsbeat.d.ts.map +0 -1
- package/dist/esm/azureMonitor/utils/statsbeat.js.map +0 -1
- /package/dist/commonjs/{azureMonitor/utils → utils}/opentelemetryInstrumentationPatcher.d.ts +0 -0
- /package/dist/esm/{azureMonitor/utils → utils}/opentelemetryInstrumentationPatcher.d.ts +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright (c) Microsoft Corporation.
|
|
3
3
|
// Licensed under the MIT License.
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.parseResourceDetectorsFromEnvVar = exports.isFunctionApp = exports.unlinkAsync = exports.writeFileAsync = exports.mkdirAsync = exports.lstatAsync = exports.statAsync = exports.readFileAsync = exports.readdirAsync = exports.getShallowFileSize = exports.getShallowDirectorySizeSync = exports.getShallowDirectorySize = exports.confirmDirExists = exports.appendFileAsync = exports.accessAsync = void 0;
|
|
5
|
+
exports.patchOpenTelemetryInstrumentationEnable = exports.getInstance = exports.parseResourceDetectorsFromEnvVar = exports.isFunctionApp = exports.unlinkAsync = exports.writeFileAsync = exports.mkdirAsync = exports.lstatAsync = exports.statAsync = exports.readFileAsync = exports.readdirAsync = exports.getShallowFileSize = exports.getShallowDirectorySizeSync = exports.getShallowDirectorySize = exports.confirmDirExists = exports.appendFileAsync = exports.accessAsync = void 0;
|
|
6
6
|
var fileSystem_js_1 = require("./fileSystem.js");
|
|
7
7
|
Object.defineProperty(exports, "accessAsync", { enumerable: true, get: function () { return fileSystem_js_1.accessAsync; } });
|
|
8
8
|
Object.defineProperty(exports, "appendFileAsync", { enumerable: true, get: function () { return fileSystem_js_1.appendFileAsync; } });
|
|
@@ -20,4 +20,8 @@ Object.defineProperty(exports, "unlinkAsync", { enumerable: true, get: function
|
|
|
20
20
|
var common_js_1 = require("./common.js");
|
|
21
21
|
Object.defineProperty(exports, "isFunctionApp", { enumerable: true, get: function () { return common_js_1.isFunctionApp; } });
|
|
22
22
|
Object.defineProperty(exports, "parseResourceDetectorsFromEnvVar", { enumerable: true, get: function () { return common_js_1.parseResourceDetectorsFromEnvVar; } });
|
|
23
|
+
var statsbeat_js_1 = require("./statsbeat.js");
|
|
24
|
+
Object.defineProperty(exports, "getInstance", { enumerable: true, get: function () { return statsbeat_js_1.getInstance; } });
|
|
25
|
+
var opentelemetryInstrumentationPatcher_js_1 = require("./opentelemetryInstrumentationPatcher.js");
|
|
26
|
+
Object.defineProperty(exports, "patchOpenTelemetryInstrumentationEnable", { enumerable: true, get: function () { return opentelemetryInstrumentationPatcher_js_1.patchOpenTelemetryInstrumentationEnable; } });
|
|
23
27
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,iDAcyB;AAbvB,4GAAA,WAAW,OAAA;AACX,gHAAA,eAAe,OAAA;AACf,iHAAA,gBAAgB,OAAA;AAChB,wHAAA,uBAAuB,OAAA;AACvB,4HAAA,2BAA2B,OAAA;AAC3B,mHAAA,kBAAkB,OAAA;AAClB,6GAAA,YAAY,OAAA;AACZ,8GAAA,aAAa,OAAA;AACb,0GAAA,SAAS,OAAA;AACT,2GAAA,UAAU,OAAA;AACV,2GAAA,UAAU,OAAA;AACV,+GAAA,cAAc,OAAA;AACd,4GAAA,WAAW,OAAA;AAEb,yCAA8E;AAArE,0GAAA,aAAa,OAAA;AAAE,6HAAA,gCAAgC,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,iDAcyB;AAbvB,4GAAA,WAAW,OAAA;AACX,gHAAA,eAAe,OAAA;AACf,iHAAA,gBAAgB,OAAA;AAChB,wHAAA,uBAAuB,OAAA;AACvB,4HAAA,2BAA2B,OAAA;AAC3B,mHAAA,kBAAkB,OAAA;AAClB,6GAAA,YAAY,OAAA;AACZ,8GAAA,aAAa,OAAA;AACb,0GAAA,SAAS,OAAA;AACT,2GAAA,UAAU,OAAA;AACV,2GAAA,UAAU,OAAA;AACV,+GAAA,cAAc,OAAA;AACd,4GAAA,WAAW,OAAA;AAEb,yCAA8E;AAArE,0GAAA,aAAa,OAAA;AAAE,6HAAA,gCAAgC,OAAA;AACxD,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,mGAAmG;AAA1F,iKAAA,uCAAuC,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opentelemetryInstrumentationPatcher.d.ts","sourceRoot":"","sources":["../../../src/utils/opentelemetryInstrumentationPatcher.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,wBAAgB,uCAAuC,IAAI,IAAI,CAmC9D"}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
// Licensed under the MIT License.
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.patchOpenTelemetryInstrumentationEnable = patchOpenTelemetryInstrumentationEnable;
|
|
6
|
-
const types_js_1 = require("
|
|
7
|
-
const index_js_1 = require("
|
|
6
|
+
const types_js_1 = require("../types.js");
|
|
7
|
+
const index_js_1 = require("../shared/logging/index.js");
|
|
8
8
|
/**
|
|
9
9
|
* Patch OpenTelemetry Instrumentation enablement to update the statsbeat environment variable with the enabled instrumentations
|
|
10
10
|
* @internal
|
|
@@ -19,16 +19,18 @@ function patchOpenTelemetryInstrumentationEnable() {
|
|
|
19
19
|
// Parses the enabled instrumentations and then ammends the statsbeat instrumentation environment variable
|
|
20
20
|
autoLoaderUtils.enableInstrumentations = function (instrumentations) {
|
|
21
21
|
try {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
22
|
+
if (instrumentations.length > 0) {
|
|
23
|
+
const statsbeatOptions = JSON.parse(process.env[types_js_1.AZURE_MONITOR_STATSBEAT_FEATURES] || emptyStatsbeatConfig);
|
|
24
|
+
let updatedStatsbeat = {};
|
|
25
|
+
for (let i = 0; i < instrumentations.length; i++) {
|
|
26
|
+
updatedStatsbeat = {
|
|
27
|
+
instrumentation: (statsbeatOptions.instrumentation |=
|
|
28
|
+
types_js_1.StatsbeatInstrumentationMap.get(instrumentations[i].instrumentationName) || 0),
|
|
29
|
+
feature: statsbeatOptions.feature,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
process.env[types_js_1.AZURE_MONITOR_STATSBEAT_FEATURES] = JSON.stringify(updatedStatsbeat);
|
|
30
33
|
}
|
|
31
|
-
process.env[types_js_1.AZURE_MONITOR_STATSBEAT_FEATURES] = JSON.stringify(updatedStatsbeat);
|
|
32
34
|
}
|
|
33
35
|
catch (_e) {
|
|
34
36
|
index_js_1.Logger.getInstance().warn("Failed to parse the statsbeat environment variable");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opentelemetryInstrumentationPatcher.js","sourceRoot":"","sources":["../../../src/utils/opentelemetryInstrumentationPatcher.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAWlC,0FAmCC;AA1CD,0CAA4F;AAC5F,yDAAoD;AAEpD;;;GAGG;AACH,SAAgB,uCAAuC;IACrD,MAAM,oBAAoB,GAAW,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACxF,IAAI,CAAC;QACH,OAAO,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QAClD,iEAAiE;QACjE,MAAM,eAAe,GAAG,OAAO,CAAC,0DAA0D,CAAC,CAAC;QAE5F,MAAM,wBAAwB,GAAG,eAAe,CAAC,sBAAsB,CAAC;QAExE,0GAA0G;QAC1G,eAAe,CAAC,sBAAsB,GAAG,UAAU,gBAAmC;YACpF,IAAI,CAAC;gBACH,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChC,MAAM,gBAAgB,GAA+B,IAAI,CAAC,KAAK,CAC7D,OAAO,CAAC,GAAG,CAAC,2CAAgC,CAAC,IAAI,oBAAoB,CACtE,CAAC;oBACF,IAAI,gBAAgB,GAAG,EAAE,CAAC;oBAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACjD,gBAAgB,GAAG;4BACjB,eAAe,EAAE,CAAC,gBAAgB,CAAC,eAAe;gCAChD,sCAA2B,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;4BAChF,OAAO,EAAE,gBAAgB,CAAC,OAAO;yBAClC,CAAC;oBACJ,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,2CAAgC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;gBACnF,CAAC;YACH,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC;gBACZ,iBAAM,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;YAClF,CAAC;YACD,8CAA8C;YAC9C,OAAO,wBAAwB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACzD,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,2CAA2C;IAC7C,CAAC;AACH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { StatsbeatFeatures, StatsbeatInstrumentations } from "
|
|
1
|
+
import type { StatsbeatFeatures, StatsbeatInstrumentations } from "../types.js";
|
|
2
2
|
declare class StatsbeatConfiguration {
|
|
3
3
|
private initializedByShim;
|
|
4
4
|
private currentStatsbeatInstrumentations;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statsbeat.d.ts","sourceRoot":"","sources":["../../../src/utils/statsbeat.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,iBAAiB,EACjB,yBAAyB,EAE1B,MAAM,aAAa,CAAC;AAUrB,cAAM,sBAAsB;IAE1B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,gCAAgC,CAAiC;IACzE,OAAO,CAAC,wBAAwB,CAAyB;;IAgBlD,oBAAoB,GACzB,2BAA2B,yBAAyB,EACpD,mBAAmB,iBAAiB,UA2GpC;CACH;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,sBAAsB,CAKpD"}
|
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
// Licensed under the MIT License.
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.getInstance = getInstance;
|
|
6
|
-
const types_js_1 = require("
|
|
7
|
-
const index_js_1 = require("../../shared/logging/index.js");
|
|
6
|
+
const types_js_1 = require("../types.js");
|
|
8
7
|
let instance;
|
|
9
8
|
class StatsbeatConfiguration {
|
|
10
9
|
// Initial Statsbeat options
|
|
@@ -19,8 +18,8 @@ class StatsbeatConfiguration {
|
|
|
19
18
|
this.initializedByShim = true;
|
|
20
19
|
}
|
|
21
20
|
}
|
|
22
|
-
catch (
|
|
23
|
-
|
|
21
|
+
catch (_error) {
|
|
22
|
+
// Fail silently — statsbeat is best-effort
|
|
24
23
|
}
|
|
25
24
|
}
|
|
26
25
|
setStatsbeatFeatures = (statsbeatInstrumentations, statsbeatFeatures) => {
|
|
@@ -28,8 +27,9 @@ class StatsbeatConfiguration {
|
|
|
28
27
|
try {
|
|
29
28
|
statsbeatEnv = JSON.parse(process.env[types_js_1.AZURE_MONITOR_STATSBEAT_FEATURES] || "{}");
|
|
30
29
|
}
|
|
31
|
-
catch (
|
|
32
|
-
|
|
30
|
+
catch (_error) {
|
|
31
|
+
// Fail silently — statsbeat is best-effort
|
|
32
|
+
return;
|
|
33
33
|
}
|
|
34
34
|
this.currentStatsbeatInstrumentations = {
|
|
35
35
|
...this.currentStatsbeatInstrumentations,
|
|
@@ -109,8 +109,8 @@ class StatsbeatConfiguration {
|
|
|
109
109
|
feature: featureBitMap,
|
|
110
110
|
});
|
|
111
111
|
}
|
|
112
|
-
catch (
|
|
113
|
-
|
|
112
|
+
catch (_error) {
|
|
113
|
+
// Fail silently — statsbeat is best-effort
|
|
114
114
|
}
|
|
115
115
|
};
|
|
116
116
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statsbeat.js","sourceRoot":"","sources":["../../../src/utils/statsbeat.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,38 @@ export declare class A365Configuration {
|
|
|
29
29
|
readonly domainOverride?: string;
|
|
30
30
|
/** OAuth scopes for A365 service authentication. */
|
|
31
31
|
readonly authScopes: string[];
|
|
32
|
+
/**
|
|
33
|
+
* Whether the A365 HTTP exporter (`Agent365Exporter`) should be added to
|
|
34
|
+
* the pipeline. The `A365SpanProcessor` is still registered when
|
|
35
|
+
* {@link enabled} is `true`, regardless of this flag.
|
|
36
|
+
*
|
|
37
|
+
* Resolved from {@link A365Options.enableObservabilityExporter} (programmatic)
|
|
38
|
+
* or the `ENABLE_A365_OBSERVABILITY_EXPORTER` environment variable; defaults
|
|
39
|
+
* to `false`.
|
|
40
|
+
*/
|
|
41
|
+
readonly enableObservabilityExporter: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Resolved log level for A365 observability components.
|
|
44
|
+
*
|
|
45
|
+
* `undefined` when neither the `logLevel` option nor the
|
|
46
|
+
* `A365_OBSERVABILITY_LOG_LEVEL` environment variable is set; in that case
|
|
47
|
+
* the A365 logger keeps its default ("none").
|
|
48
|
+
*/
|
|
49
|
+
readonly logLevel?: string;
|
|
50
|
+
/** When true, use the S2S endpoint path for export. */
|
|
51
|
+
readonly useS2SEndpoint: boolean;
|
|
52
|
+
/** Maximum span queue size before drops occur. */
|
|
53
|
+
readonly maxQueueSize?: number;
|
|
54
|
+
/** Delay (ms) between automatic batch flush attempts. */
|
|
55
|
+
readonly scheduledDelayMilliseconds?: number;
|
|
56
|
+
/** Maximum time (ms) for the entire export() call. */
|
|
57
|
+
readonly exporterTimeoutMilliseconds?: number;
|
|
58
|
+
/** Timeout (ms) per individual HTTP request. */
|
|
59
|
+
readonly httpRequestTimeoutMilliseconds?: number;
|
|
60
|
+
/** Maximum number of spans per export batch. */
|
|
61
|
+
readonly maxExportBatchSize?: number;
|
|
62
|
+
/** Maximum estimated payload size (bytes) per HTTP chunk. */
|
|
63
|
+
readonly maxPayloadBytes?: number;
|
|
32
64
|
constructor(options?: A365Options);
|
|
33
65
|
private _warnIfOptionsSetButDisabled;
|
|
34
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"A365Configuration.d.ts","sourceRoot":"","sources":["../../../../src/a365/configuration/A365Configuration.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAuBlF;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;CAMhB,CAAC;AAmBX;;;;;;;GAOG;AACH,qBAAa,iBAAiB;IAC5B,6CAA6C;IAC7C,SAAgB,OAAO,EAAE,OAAO,CAAC;IAEjC,+DAA+D;IAC/D,SAAgB,aAAa,CAAC,EAAE,CAC9B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,KAClB,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9B,wBAAwB;IACxB,SAAgB,eAAe,EAAE,eAAe,CAAC;IAEjD,0DAA0D;IAC1D,SAAgB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExC,oDAAoD;IACpD,SAAgB,UAAU,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"A365Configuration.d.ts","sourceRoot":"","sources":["../../../../src/a365/configuration/A365Configuration.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAuBlF;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;CAMhB,CAAC;AAmBX;;;;;;;GAOG;AACH,qBAAa,iBAAiB;IAC5B,6CAA6C;IAC7C,SAAgB,OAAO,EAAE,OAAO,CAAC;IAEjC,+DAA+D;IAC/D,SAAgB,aAAa,CAAC,EAAE,CAC9B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,KAClB,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9B,wBAAwB;IACxB,SAAgB,eAAe,EAAE,eAAe,CAAC;IAEjD,0DAA0D;IAC1D,SAAgB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExC,oDAAoD;IACpD,SAAgB,UAAU,EAAE,MAAM,EAAE,CAAC;IAErC;;;;;;;;OAQG;IACH,SAAgB,2BAA2B,EAAE,OAAO,CAAC;IAErD;;;;;;OAMG;IACH,SAAgB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElC,uDAAuD;IACvD,SAAgB,cAAc,EAAE,OAAO,CAAC;IAExC,kDAAkD;IAClD,SAAgB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtC,yDAAyD;IACzD,SAAgB,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAEpD,sDAAsD;IACtD,SAAgB,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAErD,gDAAgD;IAChD,SAAgB,8BAA8B,CAAC,EAAE,MAAM,CAAC;IAExD,gDAAgD;IAChD,SAAgB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5C,6DAA6D;IAC7D,SAAgB,eAAe,CAAC,EAAE,MAAM,CAAC;gBAE7B,OAAO,CAAC,EAAE,WAAW;IA2FjC,OAAO,CAAC,4BAA4B;CAcrC"}
|
|
@@ -33,7 +33,7 @@ export const A365_ENV_VARS = {
|
|
|
33
33
|
CLUSTER_CATEGORY: "CLUSTER_CATEGORY",
|
|
34
34
|
LOG_LEVEL: "A365_OBSERVABILITY_LOG_LEVEL",
|
|
35
35
|
};
|
|
36
|
-
const DEFAULT_AUTH_SCOPE = "
|
|
36
|
+
const DEFAULT_AUTH_SCOPE = "api://9b975845-388f-4429-889e-eab1ef63949c/.default";
|
|
37
37
|
const VALID_CLUSTER_CATEGORIES = new Set([
|
|
38
38
|
"local",
|
|
39
39
|
"dev",
|
|
@@ -67,26 +67,74 @@ export class A365Configuration {
|
|
|
67
67
|
domainOverride;
|
|
68
68
|
/** OAuth scopes for A365 service authentication. */
|
|
69
69
|
authScopes;
|
|
70
|
+
/**
|
|
71
|
+
* Whether the A365 HTTP exporter (`Agent365Exporter`) should be added to
|
|
72
|
+
* the pipeline. The `A365SpanProcessor` is still registered when
|
|
73
|
+
* {@link enabled} is `true`, regardless of this flag.
|
|
74
|
+
*
|
|
75
|
+
* Resolved from {@link A365Options.enableObservabilityExporter} (programmatic)
|
|
76
|
+
* or the `ENABLE_A365_OBSERVABILITY_EXPORTER` environment variable; defaults
|
|
77
|
+
* to `false`.
|
|
78
|
+
*/
|
|
79
|
+
enableObservabilityExporter;
|
|
80
|
+
/**
|
|
81
|
+
* Resolved log level for A365 observability components.
|
|
82
|
+
*
|
|
83
|
+
* `undefined` when neither the `logLevel` option nor the
|
|
84
|
+
* `A365_OBSERVABILITY_LOG_LEVEL` environment variable is set; in that case
|
|
85
|
+
* the A365 logger keeps its default ("none").
|
|
86
|
+
*/
|
|
87
|
+
logLevel;
|
|
88
|
+
/** When true, use the S2S endpoint path for export. */
|
|
89
|
+
useS2SEndpoint;
|
|
90
|
+
/** Maximum span queue size before drops occur. */
|
|
91
|
+
maxQueueSize;
|
|
92
|
+
/** Delay (ms) between automatic batch flush attempts. */
|
|
93
|
+
scheduledDelayMilliseconds;
|
|
94
|
+
/** Maximum time (ms) for the entire export() call. */
|
|
95
|
+
exporterTimeoutMilliseconds;
|
|
96
|
+
/** Timeout (ms) per individual HTTP request. */
|
|
97
|
+
httpRequestTimeoutMilliseconds;
|
|
98
|
+
/** Maximum number of spans per export batch. */
|
|
99
|
+
maxExportBatchSize;
|
|
100
|
+
/** Maximum estimated payload size (bytes) per HTTP chunk. */
|
|
101
|
+
maxPayloadBytes;
|
|
70
102
|
constructor(options) {
|
|
71
103
|
// 1. Set defaults
|
|
72
104
|
let enabled = false;
|
|
105
|
+
let enableObservabilityExporter = false;
|
|
73
106
|
let clusterCategory = "prod";
|
|
74
107
|
let domainOverride = options?.domainOverride;
|
|
75
108
|
let authScopes = options?.authScopes ?? [DEFAULT_AUTH_SCOPE];
|
|
76
109
|
// 2. Apply programmatic options
|
|
77
110
|
if (options) {
|
|
78
111
|
enabled = options.enabled ?? enabled;
|
|
112
|
+
enableObservabilityExporter =
|
|
113
|
+
options.enableObservabilityExporter ?? enableObservabilityExporter;
|
|
79
114
|
clusterCategory = options.clusterCategory ?? clusterCategory;
|
|
80
115
|
}
|
|
81
116
|
// 3. Apply environment variable overrides (highest precedence)
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
117
|
+
// ENABLE_A365_OBSERVABILITY_EXPORTER controls just the HTTP exporter, not
|
|
118
|
+
// the master `enabled` toggle. It is a secondary toggle that only takes
|
|
119
|
+
// effect when A365 is configured in code (options provided), matching the
|
|
120
|
+
// Python distro behavior (see microsoft/opentelemetry-distro-python#87).
|
|
121
|
+
const envExporter = parseEnvBoolean(process.env[A365_ENV_VARS.EXPORTER_ENABLED]);
|
|
122
|
+
if (envExporter !== undefined &&
|
|
123
|
+
options !== undefined &&
|
|
124
|
+
options.enableObservabilityExporter === undefined) {
|
|
125
|
+
enableObservabilityExporter = envExporter;
|
|
85
126
|
}
|
|
86
127
|
const envScopes = process.env[A365_ENV_VARS.AUTH_SCOPES]?.trim();
|
|
87
128
|
if (envScopes) {
|
|
88
129
|
authScopes = envScopes.split(/\s+/).filter(Boolean);
|
|
89
130
|
}
|
|
131
|
+
// observabilityScopeOverride wins over authScopes / env var so callers can
|
|
132
|
+
// narrow the resolved scope set to a single explicit value (mirrors the
|
|
133
|
+
// Python distro's a365_observability_scope_override kwarg).
|
|
134
|
+
const scopeOverride = options?.observabilityScopeOverride?.trim();
|
|
135
|
+
if (scopeOverride) {
|
|
136
|
+
authScopes = [scopeOverride];
|
|
137
|
+
}
|
|
90
138
|
const envDomain = process.env[A365_ENV_VARS.DOMAIN]?.trim();
|
|
91
139
|
if (envDomain) {
|
|
92
140
|
domainOverride = envDomain.replace(/\/+$/, "");
|
|
@@ -98,12 +146,32 @@ export class A365Configuration {
|
|
|
98
146
|
else if (envCluster) {
|
|
99
147
|
getA365Logger().warn(`Invalid ${A365_ENV_VARS.CLUSTER_CATEGORY} value '${envCluster}'. Using default cluster category.`);
|
|
100
148
|
}
|
|
149
|
+
// Log level: programmatic option wins over the env var so callers can
|
|
150
|
+
// explicitly opt out of (or override) host-level configuration. The
|
|
151
|
+
// default ("none") is applied inside the A365 logger module when no
|
|
152
|
+
// value is supplied here, so leave `logLevel` undefined in that case.
|
|
153
|
+
let logLevel = options?.logLevel?.trim() || undefined;
|
|
154
|
+
if (logLevel === undefined) {
|
|
155
|
+
const envLogLevel = process.env[A365_ENV_VARS.LOG_LEVEL]?.trim();
|
|
156
|
+
if (envLogLevel) {
|
|
157
|
+
logLevel = envLogLevel;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
101
160
|
// Assign resolved values
|
|
102
161
|
this.enabled = enabled;
|
|
162
|
+
this.enableObservabilityExporter = enableObservabilityExporter;
|
|
103
163
|
this.tokenResolver = options?.tokenResolver;
|
|
104
164
|
this.clusterCategory = clusterCategory;
|
|
105
165
|
this.domainOverride = domainOverride;
|
|
106
166
|
this.authScopes = authScopes;
|
|
167
|
+
this.logLevel = logLevel;
|
|
168
|
+
this.useS2SEndpoint = options?.useS2SEndpoint ?? false;
|
|
169
|
+
this.maxQueueSize = options?.maxQueueSize;
|
|
170
|
+
this.scheduledDelayMilliseconds = options?.scheduledDelayMilliseconds;
|
|
171
|
+
this.exporterTimeoutMilliseconds = options?.exporterTimeoutMilliseconds;
|
|
172
|
+
this.httpRequestTimeoutMilliseconds = options?.httpRequestTimeoutMilliseconds;
|
|
173
|
+
this.maxExportBatchSize = options?.maxExportBatchSize;
|
|
174
|
+
this.maxPayloadBytes = options?.maxPayloadBytes;
|
|
107
175
|
// Warn when A365-scoped options are set but A365 is not enabled
|
|
108
176
|
if (!this.enabled) {
|
|
109
177
|
this._warnIfOptionsSetButDisabled(options);
|
|
@@ -115,7 +183,8 @@ export class A365Configuration {
|
|
|
115
183
|
const hasNonTrivialOptions = options.tokenResolver !== undefined || options.domainOverride !== undefined;
|
|
116
184
|
if (hasNonTrivialOptions) {
|
|
117
185
|
getA365Logger().warn("A365 configuration options are set but A365 is not enabled. " +
|
|
118
|
-
"Set `a365.enabled: true` or `ENABLE_A365_OBSERVABILITY_EXPORTER=true`
|
|
186
|
+
"Set `a365.enabled: true` or set `ENABLE_A365_OBSERVABILITY_EXPORTER=true` " +
|
|
187
|
+
"(the env var only takes effect when a365 options are provided in code).");
|
|
119
188
|
}
|
|
120
189
|
}
|
|
121
190
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"A365Configuration.js","sourceRoot":"","sources":["../../../../src/a365/configuration/A365Configuration.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAGlC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,QAA4B;IACnD,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACjD,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAClC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,gBAAgB,EAAE,oCAAoC;IACtD,WAAW,EAAE,oCAAoC;IACjD,MAAM,EAAE,oCAAoC;IAC5C,gBAAgB,EAAE,kBAAkB;IACpC,SAAS,EAAE,8BAA8B;CACjC,CAAC;AAEX,MAAM,kBAAkB,GAAG,
|
|
1
|
+
{"version":3,"file":"A365Configuration.js","sourceRoot":"","sources":["../../../../src/a365/configuration/A365Configuration.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,5 +24,54 @@ export interface A365Options {
|
|
|
24
24
|
domainOverride?: string;
|
|
25
25
|
/** OAuth scopes for A365 service authentication. */
|
|
26
26
|
authScopes?: string[];
|
|
27
|
+
/**
|
|
28
|
+
* Single-string override for the A365 observability authentication scope.
|
|
29
|
+
*
|
|
30
|
+
* Equivalent to the `A365_OBSERVABILITY_SCOPES_OVERRIDE` environment
|
|
31
|
+
* variable; when supplied, it becomes the sole entry of the resolved
|
|
32
|
+
* {@link authScopes} array. Mirrors the Python distro's
|
|
33
|
+
* `a365_observability_scope_override` kwarg
|
|
34
|
+
* (microsoft/opentelemetry-distro-python#87).
|
|
35
|
+
*
|
|
36
|
+
* Precedence (highest to lowest): this option > env var > {@link authScopes}.
|
|
37
|
+
*/
|
|
38
|
+
observabilityScopeOverride?: string;
|
|
39
|
+
/**
|
|
40
|
+
* Enable the A365 HTTP observability exporter (`Agent365Exporter`).
|
|
41
|
+
*
|
|
42
|
+
* Defaults to `false`. When `false` (and {@link enabled} is `true`), the
|
|
43
|
+
* `A365SpanProcessor` is still registered for baggage/attribute enrichment
|
|
44
|
+
* of downstream exporters (Azure Monitor, OTLP, console, …) but no data is
|
|
45
|
+
* sent to the A365 observability service.
|
|
46
|
+
*
|
|
47
|
+
* Equivalent to the `ENABLE_A365_OBSERVABILITY_EXPORTER` environment
|
|
48
|
+
* variable. The programmatic value wins when both are set.
|
|
49
|
+
*
|
|
50
|
+
* Has no effect when {@link enabled} is `false`.
|
|
51
|
+
*/
|
|
52
|
+
enableObservabilityExporter?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Log level for A365 observability components.
|
|
55
|
+
*
|
|
56
|
+
* Accepts `none`, `info`, `warn`, `error`, or a `|`-separated combination
|
|
57
|
+
* (e.g. `"warn|error"`). Defaults to `none` when neither this option nor
|
|
58
|
+
* the `A365_OBSERVABILITY_LOG_LEVEL` environment variable is set. When set,
|
|
59
|
+
* this option overrides the environment variable.
|
|
60
|
+
*/
|
|
61
|
+
logLevel?: string;
|
|
62
|
+
/** When true, use the S2S endpoint path for export. @default false */
|
|
63
|
+
useS2SEndpoint?: boolean;
|
|
64
|
+
/** Maximum span queue size before drops occur. */
|
|
65
|
+
maxQueueSize?: number;
|
|
66
|
+
/** Delay (ms) between automatic batch flush attempts. */
|
|
67
|
+
scheduledDelayMilliseconds?: number;
|
|
68
|
+
/** Maximum time (ms) for the entire export() call. */
|
|
69
|
+
exporterTimeoutMilliseconds?: number;
|
|
70
|
+
/** Timeout (ms) per individual HTTP request. Each retry gets a fresh timeout. */
|
|
71
|
+
httpRequestTimeoutMilliseconds?: number;
|
|
72
|
+
/** Maximum number of spans per export batch. */
|
|
73
|
+
maxExportBatchSize?: number;
|
|
74
|
+
/** Maximum estimated payload size (bytes) per HTTP chunk. */
|
|
75
|
+
maxPayloadBytes?: number;
|
|
27
76
|
}
|
|
28
77
|
//# sourceMappingURL=A365ConfigurationOptions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"A365ConfigurationOptions.d.ts","sourceRoot":"","sources":["../../../../src/a365/configuration/A365ConfigurationOptions.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,MAAM,eAAe,GACvB,OAAO,GACP,KAAK,GACL,MAAM,GACN,SAAS,GACT,cAAc,GACd,MAAM,GACN,KAAK,GACL,MAAM,GACN,KAAK,GACL,UAAU,GACV,IAAI,GACJ,IAAI,CAAC;AAET;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,aAAa,CAAC,EAAE,CACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,KAClB,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9B,sDAAsD;IACtD,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,sDAAsD;IACtD,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"A365ConfigurationOptions.d.ts","sourceRoot":"","sources":["../../../../src/a365/configuration/A365ConfigurationOptions.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,MAAM,eAAe,GACvB,OAAO,GACP,KAAK,GACL,MAAM,GACN,SAAS,GACT,cAAc,GACd,MAAM,GACN,KAAK,GACL,MAAM,GACN,KAAK,GACL,UAAU,GACV,IAAI,GACJ,IAAI,CAAC;AAET;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,aAAa,CAAC,EAAE,CACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,KAClB,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9B,sDAAsD;IACtD,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,sDAAsD;IACtD,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB;;;;;;;;;;OAUG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAEpC;;;;;;;;;;;;OAYG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,sEAAsE;IACtE,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,yDAAyD;IACzD,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAEpC,sDAAsD;IACtD,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAErC,iFAAiF;IACjF,8BAA8B,CAAC,EAAE,MAAM,CAAC;IAExC,gDAAgD;IAChD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,6DAA6D;IAC7D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B"}
|
|
@@ -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 = "
|
|
90
|
+
static readonly TELEMETRY_SDK_VERSION_VALUE = "1.0.0";
|
|
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":"AAKA;;;;;;;GAOG;AACH,qBAAa,sBAAsB;IAEjC,gBAAuB,2BAA2B,kBAAkB;IACpE,gBAAuB,2BAA2B,kBAAkB;IACpE,gBAAuB,8BAA8B,qBAAqB;IAC1E,gBAAuB,mBAAmB,UAAU;IAGpD,gBAAuB,cAAc,gBAAgB;IACrD,gBAAuB,oBAAoB,2BAA2B;IACtE,gBAAuB,iBAAiB,mBAAmB;IAC3D,gBAAuB,gBAAgB,kBAAkB;IACzD,gBAAuB,kBAAkB,oBAAoB;IAC7D,gBAAuB,eAAe,iBAAiB;IACvD,gBAAuB,wBAAwB,iCAAiC;IAGhF,gBAAuB,WAAW,iBAAiB;IAGnD,gBAAuB,2BAA2B,6CAA6C;IAC/F,gBAAuB,qBAAqB,iDAAiD;IAC7F,gBAAuB,mCAAmC,oDACP;IACnD,gBAAuB,oBAAoB,0BAA0B;IACrE,gBAAuB,kCAAkC,wCAAwC;IACjG,gBAAuB,yBAAyB,+BAA+B;IAG/E,gBAAuB,yBAAyB,2BAA2B;IAC3E,gBAAuB,wBAAwB,0BAA0B;IACzE,gBAAuB,yBAAyB,2BAA2B;IAC3E,gBAAuB,kCAAkC,oCAAoC;IAC7F,gBAAuB,wBAAwB,0BAA0B;IACzE,gBAAuB,6BAA6B,+BAA+B;IACnF,gBAAuB,8BAA8B,gCAAgC;IACrF,gBAAuB,wBAAwB,0BAA0B;IACzE,gBAAuB,aAAa,mBAAmB;IAGvD,gBAAuB,4CAA4C,sCAC9B;IACrC,gBAAuB,qCAAqC,+BAA+B;IAG3F,gBAAuB,6BAA6B,+BAA+B;IACnF,gBAAuB,8BAA8B,gCAAgC;IAGrF,gBAAuB,8BAA8B,gCAAgC;IACrF,gBAAuB,yBAAyB,2BAA2B;IAC3E,gBAAuB,0BAA0B,4BAA4B;IAC7E,gBAAuB,gCAAgC,4CACZ;IAG3C,gBAAuB,mBAAmB,qBAAqB;IAC/D,gBAAuB,qBAAqB,uBAAuB;IACnE,gBAAuB,4BAA4B,8BAA8B;IACjF,gBAAuB,wBAAwB,0BAA0B;IACzE,gBAAuB,4BAA4B,sCAAsC;IACzF,gBAAuB,gCAAgC,0CAA0C;IACjG,gBAAuB,mBAAmB,8BAA8B;IACxE,gBAAuB,YAAY,qBAAqB;IAGxD,gBAAuB,0BAA0B,4BAA4B;IAC7E,gBAAuB,iCAAiC,sCAAsC;IAC9F,gBAAuB,cAAc,0BAA0B;IAC/D,gBAAuB,uBAAuB,mCAAmC;IAGjF,gBAAuB,uBAAuB,yBAAyB;IACvE,gBAAuB,oBAAoB,sBAAsB;IACjE,gBAAuB,2BAA2B,6BAA6B;IAC/E,gBAAuB,oBAAoB,gCAAgC;IAC3E,gBAAuB,2BAA2B,6BAA6B;IAC/E,gBAAuB,oBAAoB,sBAAsB;IAGjE,gBAAuB,aAAa,yBAAyB;IAG7D,gBAAuB,WAAW,aAAa;IAC/C,gBAAuB,aAAa,eAAe;IACnD,gBAAuB,cAAc,gBAAgB;IACrD,gBAAuB,2BAA2B,oBAAoB;IAGtE,gBAAuB,+BAA+B,yCAAyC;IAC/F,gBAAuB,6BAA6B,4CAA4C;IAChG,gBAAuB,4BAA4B,sCAAsC;IACzF,gBAAuB,0BAA0B,oCAAoC;IACrF,gBAAuB,sCAAsC,8CAChB;IAC7C,gBAAuB,mCAAmC,6CACd;IAC5C,gBAAuB,+BAA+B,yCAAyC;IAG/F,gBAAuB,qBAAqB,6BAA6B;IACzE,gBAAuB,sBAAsB,gCAAgC;IAC7E,gBAAuB,6BAA6B,uCAAuC;IAG3F,gBAAuB,kBAAkB,oBAAoB;IAC7D,gBAAuB,4BAA4B,8BAA8B;IAGjF,gBAAuB,gBAAgB,4BAA4B;IACnE,gBAAuB,gBAAgB,4BAA4B;IAGnE,gBAAuB,yBAAyB,2BAA2B;IAC3E,gBAAuB,oBAAoB,sBAAsB;IAGjE,gBAAuB,gBAAgB,kBAAkB;IAGzD,gBAAuB,sBAAsB,wBAAwB;IACrE,gBAAuB,0BAA0B,4BAA4B;IAC7E,gBAAuB,yBAAyB,2BAA2B;IAC3E,gBAAuB,wBAAwB,0BAA0B;IACzE,gBAAuB,4BAA4B,YAAY;IAC/D,gBAAuB,2BAA2B,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/a365/constants.ts"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,qBAAa,sBAAsB;IAEjC,gBAAuB,2BAA2B,kBAAkB;IACpE,gBAAuB,2BAA2B,kBAAkB;IACpE,gBAAuB,8BAA8B,qBAAqB;IAC1E,gBAAuB,mBAAmB,UAAU;IAGpD,gBAAuB,cAAc,gBAAgB;IACrD,gBAAuB,oBAAoB,2BAA2B;IACtE,gBAAuB,iBAAiB,mBAAmB;IAC3D,gBAAuB,gBAAgB,kBAAkB;IACzD,gBAAuB,kBAAkB,oBAAoB;IAC7D,gBAAuB,eAAe,iBAAiB;IACvD,gBAAuB,wBAAwB,iCAAiC;IAGhF,gBAAuB,WAAW,iBAAiB;IAGnD,gBAAuB,2BAA2B,6CAA6C;IAC/F,gBAAuB,qBAAqB,iDAAiD;IAC7F,gBAAuB,mCAAmC,oDACP;IACnD,gBAAuB,oBAAoB,0BAA0B;IACrE,gBAAuB,kCAAkC,wCAAwC;IACjG,gBAAuB,yBAAyB,+BAA+B;IAG/E,gBAAuB,yBAAyB,2BAA2B;IAC3E,gBAAuB,wBAAwB,0BAA0B;IACzE,gBAAuB,yBAAyB,2BAA2B;IAC3E,gBAAuB,kCAAkC,oCAAoC;IAC7F,gBAAuB,wBAAwB,0BAA0B;IACzE,gBAAuB,6BAA6B,+BAA+B;IACnF,gBAAuB,8BAA8B,gCAAgC;IACrF,gBAAuB,wBAAwB,0BAA0B;IACzE,gBAAuB,aAAa,mBAAmB;IAGvD,gBAAuB,4CAA4C,sCAC9B;IACrC,gBAAuB,qCAAqC,+BAA+B;IAG3F,gBAAuB,6BAA6B,+BAA+B;IACnF,gBAAuB,8BAA8B,gCAAgC;IAGrF,gBAAuB,8BAA8B,gCAAgC;IACrF,gBAAuB,yBAAyB,2BAA2B;IAC3E,gBAAuB,0BAA0B,4BAA4B;IAC7E,gBAAuB,gCAAgC,4CACZ;IAG3C,gBAAuB,mBAAmB,qBAAqB;IAC/D,gBAAuB,qBAAqB,uBAAuB;IACnE,gBAAuB,4BAA4B,8BAA8B;IACjF,gBAAuB,wBAAwB,0BAA0B;IACzE,gBAAuB,4BAA4B,sCAAsC;IACzF,gBAAuB,gCAAgC,0CAA0C;IACjG,gBAAuB,mBAAmB,8BAA8B;IACxE,gBAAuB,YAAY,qBAAqB;IAGxD,gBAAuB,0BAA0B,4BAA4B;IAC7E,gBAAuB,iCAAiC,sCAAsC;IAC9F,gBAAuB,cAAc,0BAA0B;IAC/D,gBAAuB,uBAAuB,mCAAmC;IAGjF,gBAAuB,uBAAuB,yBAAyB;IACvE,gBAAuB,oBAAoB,sBAAsB;IACjE,gBAAuB,2BAA2B,6BAA6B;IAC/E,gBAAuB,oBAAoB,gCAAgC;IAC3E,gBAAuB,2BAA2B,6BAA6B;IAC/E,gBAAuB,oBAAoB,sBAAsB;IAGjE,gBAAuB,aAAa,yBAAyB;IAG7D,gBAAuB,WAAW,aAAa;IAC/C,gBAAuB,aAAa,eAAe;IACnD,gBAAuB,cAAc,gBAAgB;IACrD,gBAAuB,2BAA2B,oBAAoB;IAGtE,gBAAuB,+BAA+B,yCAAyC;IAC/F,gBAAuB,6BAA6B,4CAA4C;IAChG,gBAAuB,4BAA4B,sCAAsC;IACzF,gBAAuB,0BAA0B,oCAAoC;IACrF,gBAAuB,sCAAsC,8CAChB;IAC7C,gBAAuB,mCAAmC,6CACd;IAC5C,gBAAuB,+BAA+B,yCAAyC;IAG/F,gBAAuB,qBAAqB,6BAA6B;IACzE,gBAAuB,sBAAsB,gCAAgC;IAC7E,gBAAuB,6BAA6B,uCAAuC;IAG3F,gBAAuB,kBAAkB,oBAAoB;IAC7D,gBAAuB,4BAA4B,8BAA8B;IAGjF,gBAAuB,gBAAgB,4BAA4B;IACnE,gBAAuB,gBAAgB,4BAA4B;IAGnE,gBAAuB,yBAAyB,2BAA2B;IAC3E,gBAAuB,oBAAoB,sBAAsB;IAGjE,gBAAuB,gBAAgB,kBAAkB;IAGzD,gBAAuB,sBAAsB,wBAAwB;IACrE,gBAAuB,0BAA0B,4BAA4B;IAC7E,gBAAuB,yBAAyB,2BAA2B;IAC3E,gBAAuB,wBAAwB,0BAA0B;IACzE,gBAAuB,4BAA4B,YAAY;IAC/D,gBAAuB,2BAA2B,WAAmC;CACtF"}
|
|
@@ -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
|
|
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
|
|
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;
|
|
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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { ExportResultCode } from "@opentelemetry/core";
|
|
4
4
|
import { ResolvedExporterOptions } from "./Agent365ExporterOptions.js";
|
|
5
5
|
import { ExporterEventNames } from "./ExporterEventNames.js";
|
|
6
|
-
import { partitionByIdentity, parseIdentityKey, hexTraceId, hexSpanId, kindName, statusName, resolveAgent365Endpoint, truncateSpan, } from "./utils.js";
|
|
6
|
+
import { partitionByIdentity, parseIdentityKey, hexTraceId, hexSpanId, kindName, statusName, resolveAgent365Endpoint, truncateSpan, estimateSpanBytes, chunkBySize, } from "./utils.js";
|
|
7
7
|
import { getA365Logger } from "../logging.js";
|
|
8
8
|
const DEFAULT_MAX_RETRIES = 3;
|
|
9
9
|
/**
|
|
@@ -16,7 +16,9 @@ const DEFAULT_MAX_RETRIES = 3;
|
|
|
16
16
|
export class Agent365Exporter {
|
|
17
17
|
closed = false;
|
|
18
18
|
options;
|
|
19
|
-
logger
|
|
19
|
+
get logger() {
|
|
20
|
+
return getA365Logger();
|
|
21
|
+
}
|
|
20
22
|
constructor(options) {
|
|
21
23
|
this.options = new ResolvedExporterOptions(options);
|
|
22
24
|
}
|
|
@@ -58,8 +60,13 @@ export class Agent365Exporter {
|
|
|
58
60
|
async exportGroup(identityKey, spans) {
|
|
59
61
|
const start = Date.now();
|
|
60
62
|
const { tenantId, agentId } = parseIdentityKey(identityKey);
|
|
61
|
-
|
|
62
|
-
const
|
|
63
|
+
// Map, truncate, and chunk spans by estimated byte size
|
|
64
|
+
const mappedSpans = this.mapAndTruncateSpans(spans);
|
|
65
|
+
const resourceAttrs = this.getResourceAttributes(spans);
|
|
66
|
+
const chunks = chunkBySize(mappedSpans, (ms) => estimateSpanBytes(ms.span), this.options.maxPayloadBytes);
|
|
67
|
+
if (chunks.length > 1) {
|
|
68
|
+
this.logger.info(`[Agent365Exporter] Split ${spans.length} spans into ${chunks.length} chunks for ${tenantId}/${agentId}`);
|
|
69
|
+
}
|
|
63
70
|
const servicePrefix = this.options.useS2SEndpoint ? "/observabilityService" : "/observability";
|
|
64
71
|
const endpointPath = `${servicePrefix}/tenants/${encodeURIComponent(tenantId)}/otlp/agents/${encodeURIComponent(agentId)}/traces`;
|
|
65
72
|
const baseUrl = this.options.domainOverride ?? resolveAgent365Endpoint(this.options.clusterCategory);
|
|
@@ -76,16 +83,21 @@ export class Agent365Exporter {
|
|
|
76
83
|
return;
|
|
77
84
|
}
|
|
78
85
|
headers["authorization"] = `Bearer ${token}`;
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
});
|
|
86
|
-
|
|
86
|
+
// Send each chunk (all-or-nothing: fail on first chunk failure)
|
|
87
|
+
let lastCorrelationId = "unknown";
|
|
88
|
+
for (let i = 0; i < chunks.length; i++) {
|
|
89
|
+
const chunk = chunks[i];
|
|
90
|
+
const payload = this.buildEnvelope(chunk, resourceAttrs);
|
|
91
|
+
const body = JSON.stringify(payload);
|
|
92
|
+
this.logger.info(`[Agent365Exporter] Sending chunk ${i + 1} of ${chunks.length} (${chunk.length} spans)`);
|
|
93
|
+
const { ok, correlationId } = await this.postWithRetries(url, body, headers);
|
|
94
|
+
lastCorrelationId = correlationId;
|
|
95
|
+
if (!ok) {
|
|
96
|
+
this.logExporterEvent(ExporterEventNames.EXPORT_GROUP, false, Date.now() - start, `chunk ${i + 1} of ${chunks.length} failed`, { tenantId, agentId, correlationId });
|
|
97
|
+
throw new Error(`Failed to export spans (chunk ${i + 1} of ${chunks.length})`);
|
|
98
|
+
}
|
|
87
99
|
}
|
|
88
|
-
this.logExporterEvent(ExporterEventNames.EXPORT_GROUP, true, Date.now() - start,
|
|
100
|
+
this.logExporterEvent(ExporterEventNames.EXPORT_GROUP, true, Date.now() - start, `${chunks.length} chunk(s) exported successfully`, { tenantId, agentId, correlationId: lastCorrelationId });
|
|
89
101
|
}
|
|
90
102
|
async resolveToken(agentId, tenantId) {
|
|
91
103
|
if (!this.options.tokenResolver)
|
|
@@ -134,30 +146,43 @@ export class Agent365Exporter {
|
|
|
134
146
|
}
|
|
135
147
|
return { ok: false, correlationId: lastCorrelationId };
|
|
136
148
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
for (const sp of spans) {
|
|
149
|
+
mapAndTruncateSpans(spans) {
|
|
150
|
+
return spans.map((sp) => {
|
|
140
151
|
const scope = sp.instrumentationScope;
|
|
141
|
-
const
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
152
|
+
const scopeName = scope?.name ?? "unknown";
|
|
153
|
+
const scopeVersion = scope?.version ?? "";
|
|
154
|
+
return {
|
|
155
|
+
span: truncateSpan(this.mapSpan(sp)),
|
|
156
|
+
scopeKey: `${scopeName}:${scopeVersion}`,
|
|
157
|
+
scopeName,
|
|
158
|
+
scopeVersion: scopeVersion || undefined,
|
|
159
|
+
};
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
getResourceAttributes(spans) {
|
|
163
|
+
if (spans.length > 0 && spans[0].resource?.attributes) {
|
|
164
|
+
return { ...spans[0].resource.attributes };
|
|
165
|
+
}
|
|
166
|
+
return {};
|
|
167
|
+
}
|
|
168
|
+
buildEnvelope(mappedSpans, resourceAttrs) {
|
|
169
|
+
const scopeMap = new Map();
|
|
170
|
+
for (const ms of mappedSpans) {
|
|
171
|
+
const existing = scopeMap.get(ms.scopeKey) || [];
|
|
172
|
+
existing.push(ms.span);
|
|
173
|
+
scopeMap.set(ms.scopeKey, existing);
|
|
148
174
|
}
|
|
149
175
|
const scopeSpans = [];
|
|
150
|
-
for (const [scopeKey,
|
|
151
|
-
const
|
|
176
|
+
for (const [scopeKey, spans] of scopeMap) {
|
|
177
|
+
const representative = mappedSpans.find((ms) => ms.scopeKey === scopeKey);
|
|
152
178
|
scopeSpans.push({
|
|
153
|
-
scope: {
|
|
154
|
-
|
|
179
|
+
scope: {
|
|
180
|
+
name: representative.scopeName,
|
|
181
|
+
version: representative.scopeVersion,
|
|
182
|
+
},
|
|
183
|
+
spans,
|
|
155
184
|
});
|
|
156
185
|
}
|
|
157
|
-
let resourceAttrs = {};
|
|
158
|
-
if (spans.length > 0 && spans[0].resource?.attributes) {
|
|
159
|
-
resourceAttrs = { ...spans[0].resource.attributes };
|
|
160
|
-
}
|
|
161
186
|
return {
|
|
162
187
|
resourceSpans: [
|
|
163
188
|
{
|