@microsoft/opentelemetry 1.1.0 → 1.3.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 +25 -16
- package/dist/commonjs/a365/configuration/A365Configuration.js +2 -2
- package/dist/commonjs/a365/configuration/A365Configuration.js.map +1 -1
- package/dist/commonjs/a365/configuration/A365ConfigurationOptions.d.ts +1 -1
- package/dist/commonjs/a365/constants.d.ts +109 -2
- package/dist/commonjs/a365/constants.d.ts.map +1 -1
- package/dist/commonjs/a365/constants.js +108 -1
- package/dist/commonjs/a365/constants.js.map +1 -1
- package/dist/commonjs/a365/contracts.d.ts +138 -0
- package/dist/commonjs/a365/contracts.d.ts.map +1 -1
- package/dist/commonjs/a365/contracts.js +33 -0
- package/dist/commonjs/a365/contracts.js.map +1 -1
- package/dist/commonjs/a365/exporter/Agent365Exporter.d.ts +33 -1
- package/dist/commonjs/a365/exporter/Agent365Exporter.d.ts.map +1 -1
- package/dist/commonjs/a365/exporter/Agent365Exporter.js +83 -4
- package/dist/commonjs/a365/exporter/Agent365Exporter.js.map +1 -1
- package/dist/commonjs/a365/exporter/Agent365ExporterOptions.d.ts +8 -0
- package/dist/commonjs/a365/exporter/Agent365ExporterOptions.d.ts.map +1 -1
- package/dist/commonjs/a365/exporter/Agent365ExporterOptions.js.map +1 -1
- package/dist/commonjs/a365/exporter/ExporterEventNames.d.ts +3 -0
- package/dist/commonjs/a365/exporter/ExporterEventNames.d.ts.map +1 -1
- package/dist/commonjs/a365/exporter/ExporterEventNames.js +3 -0
- package/dist/commonjs/a365/exporter/ExporterEventNames.js.map +1 -1
- package/dist/commonjs/a365/hosting/agenticTokenCache.d.ts +24 -0
- package/dist/commonjs/a365/hosting/agenticTokenCache.d.ts.map +1 -1
- package/dist/commonjs/a365/hosting/agenticTokenCache.js +40 -3
- package/dist/commonjs/a365/hosting/agenticTokenCache.js.map +1 -1
- package/dist/commonjs/a365/hosting/outputLoggingMiddleware.d.ts.map +1 -1
- package/dist/commonjs/a365/hosting/outputLoggingMiddleware.js.map +1 -1
- package/dist/commonjs/a365/hosting/types.d.ts +47 -1
- package/dist/commonjs/a365/hosting/types.d.ts.map +1 -1
- package/dist/commonjs/a365/scopes/OpenTelemetryScope.d.ts +1 -1
- package/dist/commonjs/a365/scopes/OpenTelemetryScope.d.ts.map +1 -1
- package/dist/commonjs/a365/scopes/OpenTelemetryScope.js +1 -1
- package/dist/commonjs/a365/scopes/OpenTelemetryScope.js.map +1 -1
- package/dist/commonjs/azureMonitor/browserSdkLoader/browserSdkLoaderHelper.d.ts.map +1 -1
- package/dist/commonjs/azureMonitor/browserSdkLoader/browserSdkLoaderHelper.js +1 -3
- package/dist/commonjs/azureMonitor/browserSdkLoader/browserSdkLoaderHelper.js.map +1 -1
- package/dist/commonjs/azureMonitor/generated/models/models.d.ts.map +1 -1
- package/dist/commonjs/azureMonitor/generated/models/models.js.map +1 -1
- package/dist/commonjs/azureMonitor/index.d.ts +2 -2
- package/dist/commonjs/azureMonitor/logs/batchLogRecordProcessor.js +1 -1
- package/dist/commonjs/azureMonitor/logs/batchLogRecordProcessor.js.map +1 -1
- package/dist/commonjs/azureMonitor/logs/handler.d.ts +3 -3
- package/dist/commonjs/azureMonitor/logs/handler.js +3 -3
- package/dist/commonjs/azureMonitor/metrics/handler.d.ts +1 -1
- package/dist/commonjs/azureMonitor/metrics/handler.js +1 -1
- package/dist/commonjs/azureMonitor/metrics/performanceCounters.d.ts +2 -2
- package/dist/commonjs/azureMonitor/metrics/performanceCounters.d.ts.map +1 -1
- package/dist/commonjs/azureMonitor/metrics/performanceCounters.js +8 -16
- package/dist/commonjs/azureMonitor/metrics/performanceCounters.js.map +1 -1
- package/dist/commonjs/azureMonitor/metrics/quickpulse/filtering/validator.js +2 -2
- package/dist/commonjs/azureMonitor/metrics/quickpulse/filtering/validator.js.map +1 -1
- package/dist/commonjs/azureMonitor/metrics/quickpulse/liveMetrics.d.ts +3 -3
- package/dist/commonjs/azureMonitor/metrics/quickpulse/liveMetrics.d.ts.map +1 -1
- package/dist/commonjs/azureMonitor/metrics/quickpulse/liveMetrics.js +21 -9
- 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 +1 -1
- package/dist/commonjs/azureMonitor/metrics/quickpulse/utils.js.map +1 -1
- package/dist/commonjs/azureMonitor/metrics/standardMetrics.d.ts +1 -1
- package/dist/commonjs/azureMonitor/metrics/standardMetrics.js +1 -1
- package/dist/commonjs/azureMonitor/traces/sampler.js +1 -1
- package/dist/commonjs/azureMonitor/traces/sampler.js.map +1 -1
- package/dist/commonjs/distro/autoAttach.js +2 -2
- package/dist/commonjs/distro/autoAttach.js.map +1 -1
- package/dist/commonjs/distro/distro.d.ts +2 -2
- package/dist/commonjs/distro/distro.d.ts.map +1 -1
- package/dist/commonjs/distro/distro.js +32 -17
- package/dist/commonjs/distro/distro.js.map +1 -1
- package/dist/commonjs/distro/instrumentations.d.ts +2 -2
- package/dist/commonjs/distro/instrumentations.d.ts.map +1 -1
- package/dist/commonjs/distro/instrumentations.js +14 -2
- package/dist/commonjs/distro/instrumentations.js.map +1 -1
- package/dist/commonjs/distro/loader.d.ts +1 -1
- package/dist/commonjs/distro/loader.js +1 -1
- package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts +10 -4
- package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts.map +1 -1
- package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.js +41 -63
- package/dist/commonjs/genai/instrumentations/langchain/langchainTraceInstrumentor.js.map +1 -1
- package/dist/commonjs/genai/instrumentations/langchain/tracer.d.ts +16 -3
- package/dist/commonjs/genai/instrumentations/langchain/tracer.d.ts.map +1 -1
- package/dist/commonjs/genai/instrumentations/langchain/tracer.js +31 -8
- package/dist/commonjs/genai/instrumentations/langchain/tracer.js.map +1 -1
- package/dist/commonjs/genai/instrumentations/langchain/utils.d.ts +3 -1
- package/dist/commonjs/genai/instrumentations/langchain/utils.d.ts.map +1 -1
- package/dist/commonjs/genai/instrumentations/langchain/utils.js +137 -13
- package/dist/commonjs/genai/instrumentations/langchain/utils.js.map +1 -1
- package/dist/commonjs/genai/mainAgent/constants.d.ts +5 -0
- package/dist/commonjs/genai/mainAgent/constants.d.ts.map +1 -1
- package/dist/commonjs/genai/mainAgent/constants.js +5 -0
- package/dist/commonjs/genai/mainAgent/constants.js.map +1 -1
- package/dist/commonjs/genai/mainAgent/processor.d.ts +25 -0
- package/dist/commonjs/genai/mainAgent/processor.d.ts.map +1 -1
- package/dist/commonjs/genai/mainAgent/processor.js +25 -0
- package/dist/commonjs/genai/mainAgent/processor.js.map +1 -1
- package/dist/commonjs/genai/semconv.d.ts +1 -0
- package/dist/commonjs/genai/semconv.d.ts.map +1 -1
- package/dist/commonjs/genai/semconv.js +2 -1
- package/dist/commonjs/genai/semconv.js.map +1 -1
- package/dist/commonjs/otlp/handler.d.ts.map +1 -1
- package/dist/commonjs/otlp/handler.js +5 -20
- package/dist/commonjs/otlp/handler.js.map +1 -1
- package/dist/commonjs/sdkstats/constants.d.ts +45 -0
- package/dist/commonjs/sdkstats/constants.d.ts.map +1 -0
- package/dist/commonjs/sdkstats/constants.js +77 -0
- package/dist/commonjs/sdkstats/constants.js.map +1 -0
- package/dist/commonjs/sdkstats/index.d.ts +5 -6
- package/dist/commonjs/sdkstats/index.d.ts.map +1 -1
- package/dist/commonjs/sdkstats/index.js +15 -8
- package/dist/commonjs/sdkstats/index.js.map +1 -1
- package/dist/commonjs/sdkstats/manager.js +7 -7
- package/dist/commonjs/sdkstats/manager.js.map +1 -1
- package/dist/commonjs/sdkstats/metrics.d.ts.map +1 -1
- package/dist/commonjs/sdkstats/metrics.js +41 -7
- package/dist/commonjs/sdkstats/metrics.js.map +1 -1
- package/dist/commonjs/sdkstats/networkStats.d.ts +38 -16
- package/dist/commonjs/sdkstats/networkStats.d.ts.map +1 -1
- package/dist/commonjs/sdkstats/networkStats.js +95 -30
- package/dist/commonjs/sdkstats/networkStats.js.map +1 -1
- package/dist/commonjs/sdkstats/state.d.ts +5 -5
- package/dist/commonjs/sdkstats/state.js +3 -3
- package/dist/commonjs/sdkstats/state.js.map +1 -1
- package/dist/commonjs/shared/config.d.ts +1 -1
- package/dist/commonjs/shared/config.js +1 -1
- package/dist/commonjs/shared/logging/diagFileConsoleLogger.d.ts +1 -0
- package/dist/commonjs/shared/logging/diagFileConsoleLogger.d.ts.map +1 -1
- package/dist/commonjs/shared/logging/diagFileConsoleLogger.js +14 -6
- package/dist/commonjs/shared/logging/diagFileConsoleLogger.js.map +1 -1
- package/dist/commonjs/types.d.ts +14 -3
- package/dist/commonjs/types.d.ts.map +1 -1
- package/dist/commonjs/types.js +2 -3
- package/dist/commonjs/types.js.map +1 -1
- package/dist/commonjs/utils/sdkStats.d.ts.map +1 -1
- package/dist/commonjs/utils/sdkStats.js +14 -3
- package/dist/commonjs/utils/sdkStats.js.map +1 -1
- package/dist/esm/a365/configuration/A365Configuration.js +2 -2
- package/dist/esm/a365/configuration/A365Configuration.js.map +1 -1
- package/dist/esm/a365/configuration/A365ConfigurationOptions.d.ts +1 -1
- package/dist/esm/a365/constants.d.ts +109 -2
- package/dist/esm/a365/constants.d.ts.map +1 -1
- package/dist/esm/a365/constants.js +108 -1
- package/dist/esm/a365/constants.js.map +1 -1
- package/dist/esm/a365/contracts.d.ts +138 -0
- package/dist/esm/a365/contracts.d.ts.map +1 -1
- package/dist/esm/a365/contracts.js +33 -0
- package/dist/esm/a365/contracts.js.map +1 -1
- package/dist/esm/a365/exporter/Agent365Exporter.d.ts +33 -1
- package/dist/esm/a365/exporter/Agent365Exporter.d.ts.map +1 -1
- package/dist/esm/a365/exporter/Agent365Exporter.js +84 -5
- package/dist/esm/a365/exporter/Agent365Exporter.js.map +1 -1
- package/dist/esm/a365/exporter/Agent365ExporterOptions.d.ts +8 -0
- package/dist/esm/a365/exporter/Agent365ExporterOptions.d.ts.map +1 -1
- package/dist/esm/a365/exporter/Agent365ExporterOptions.js.map +1 -1
- package/dist/esm/a365/exporter/ExporterEventNames.d.ts +3 -0
- package/dist/esm/a365/exporter/ExporterEventNames.d.ts.map +1 -1
- package/dist/esm/a365/exporter/ExporterEventNames.js +3 -0
- package/dist/esm/a365/exporter/ExporterEventNames.js.map +1 -1
- package/dist/esm/a365/hosting/agenticTokenCache.d.ts +24 -0
- package/dist/esm/a365/hosting/agenticTokenCache.d.ts.map +1 -1
- package/dist/esm/a365/hosting/agenticTokenCache.js +40 -3
- package/dist/esm/a365/hosting/agenticTokenCache.js.map +1 -1
- package/dist/esm/a365/hosting/outputLoggingMiddleware.d.ts.map +1 -1
- package/dist/esm/a365/hosting/outputLoggingMiddleware.js.map +1 -1
- package/dist/esm/a365/hosting/types.d.ts +47 -1
- package/dist/esm/a365/hosting/types.d.ts.map +1 -1
- package/dist/esm/a365/scopes/OpenTelemetryScope.d.ts +1 -1
- package/dist/esm/a365/scopes/OpenTelemetryScope.d.ts.map +1 -1
- package/dist/esm/a365/scopes/OpenTelemetryScope.js +1 -1
- package/dist/esm/a365/scopes/OpenTelemetryScope.js.map +1 -1
- package/dist/esm/azureMonitor/browserSdkLoader/browserSdkLoaderHelper.d.ts.map +1 -1
- package/dist/esm/azureMonitor/browserSdkLoader/browserSdkLoaderHelper.js +1 -3
- package/dist/esm/azureMonitor/browserSdkLoader/browserSdkLoaderHelper.js.map +1 -1
- package/dist/esm/azureMonitor/generated/models/models.d.ts.map +1 -1
- package/dist/esm/azureMonitor/generated/models/models.js.map +1 -1
- package/dist/esm/azureMonitor/index.d.ts +2 -2
- package/dist/esm/azureMonitor/logs/batchLogRecordProcessor.js +1 -1
- package/dist/esm/azureMonitor/logs/batchLogRecordProcessor.js.map +1 -1
- package/dist/esm/azureMonitor/logs/handler.d.ts +3 -3
- package/dist/esm/azureMonitor/logs/handler.js +3 -3
- package/dist/esm/azureMonitor/metrics/handler.d.ts +1 -1
- package/dist/esm/azureMonitor/metrics/handler.js +1 -1
- package/dist/esm/azureMonitor/metrics/performanceCounters.d.ts +2 -2
- package/dist/esm/azureMonitor/metrics/performanceCounters.d.ts.map +1 -1
- package/dist/esm/azureMonitor/metrics/performanceCounters.js +8 -16
- package/dist/esm/azureMonitor/metrics/performanceCounters.js.map +1 -1
- package/dist/esm/azureMonitor/metrics/quickpulse/filtering/validator.js +2 -2
- package/dist/esm/azureMonitor/metrics/quickpulse/filtering/validator.js.map +1 -1
- package/dist/esm/azureMonitor/metrics/quickpulse/liveMetrics.d.ts +3 -3
- package/dist/esm/azureMonitor/metrics/quickpulse/liveMetrics.d.ts.map +1 -1
- package/dist/esm/azureMonitor/metrics/quickpulse/liveMetrics.js +21 -9
- 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 +1 -1
- package/dist/esm/azureMonitor/metrics/quickpulse/utils.js.map +1 -1
- package/dist/esm/azureMonitor/metrics/standardMetrics.d.ts +1 -1
- package/dist/esm/azureMonitor/metrics/standardMetrics.js +1 -1
- package/dist/esm/azureMonitor/traces/sampler.js +1 -1
- package/dist/esm/azureMonitor/traces/sampler.js.map +1 -1
- package/dist/esm/distro/autoAttach.js +2 -2
- package/dist/esm/distro/autoAttach.js.map +1 -1
- package/dist/esm/distro/distro.d.ts +2 -2
- package/dist/esm/distro/distro.d.ts.map +1 -1
- package/dist/esm/distro/distro.js +28 -13
- package/dist/esm/distro/distro.js.map +1 -1
- package/dist/esm/distro/instrumentations.d.ts +2 -2
- package/dist/esm/distro/instrumentations.d.ts.map +1 -1
- package/dist/esm/distro/instrumentations.js +14 -2
- package/dist/esm/distro/instrumentations.js.map +1 -1
- package/dist/esm/distro/loader.d.ts +1 -1
- package/dist/esm/distro/loader.js +1 -1
- package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts +10 -4
- package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.d.ts.map +1 -1
- package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.js +41 -30
- package/dist/esm/genai/instrumentations/langchain/langchainTraceInstrumentor.js.map +1 -1
- package/dist/esm/genai/instrumentations/langchain/tracer.d.ts +16 -3
- package/dist/esm/genai/instrumentations/langchain/tracer.d.ts.map +1 -1
- package/dist/esm/genai/instrumentations/langchain/tracer.js +31 -8
- package/dist/esm/genai/instrumentations/langchain/tracer.js.map +1 -1
- package/dist/esm/genai/instrumentations/langchain/utils.d.ts +3 -1
- package/dist/esm/genai/instrumentations/langchain/utils.d.ts.map +1 -1
- package/dist/esm/genai/instrumentations/langchain/utils.js +137 -15
- package/dist/esm/genai/instrumentations/langchain/utils.js.map +1 -1
- package/dist/esm/genai/mainAgent/constants.d.ts +5 -0
- package/dist/esm/genai/mainAgent/constants.d.ts.map +1 -1
- package/dist/esm/genai/mainAgent/constants.js +5 -0
- package/dist/esm/genai/mainAgent/constants.js.map +1 -1
- package/dist/esm/genai/mainAgent/processor.d.ts +25 -0
- package/dist/esm/genai/mainAgent/processor.d.ts.map +1 -1
- package/dist/esm/genai/mainAgent/processor.js +25 -0
- package/dist/esm/genai/mainAgent/processor.js.map +1 -1
- package/dist/esm/genai/semconv.d.ts +1 -0
- package/dist/esm/genai/semconv.d.ts.map +1 -1
- package/dist/esm/genai/semconv.js +1 -0
- package/dist/esm/genai/semconv.js.map +1 -1
- package/dist/esm/otlp/handler.d.ts.map +1 -1
- package/dist/esm/otlp/handler.js +5 -20
- package/dist/esm/otlp/handler.js.map +1 -1
- package/dist/esm/sdkstats/constants.d.ts +45 -0
- package/dist/esm/sdkstats/constants.d.ts.map +1 -0
- package/dist/esm/sdkstats/constants.js +74 -0
- package/dist/esm/sdkstats/constants.js.map +1 -0
- package/dist/esm/sdkstats/index.d.ts +5 -6
- package/dist/esm/sdkstats/index.d.ts.map +1 -1
- package/dist/esm/sdkstats/index.js +4 -5
- package/dist/esm/sdkstats/index.js.map +1 -1
- package/dist/esm/sdkstats/manager.js +7 -7
- package/dist/esm/sdkstats/manager.js.map +1 -1
- package/dist/esm/sdkstats/metrics.d.ts.map +1 -1
- package/dist/esm/sdkstats/metrics.js +42 -8
- package/dist/esm/sdkstats/metrics.js.map +1 -1
- package/dist/esm/sdkstats/networkStats.d.ts +38 -16
- package/dist/esm/sdkstats/networkStats.d.ts.map +1 -1
- package/dist/esm/sdkstats/networkStats.js +79 -26
- package/dist/esm/sdkstats/networkStats.js.map +1 -1
- package/dist/esm/sdkstats/state.d.ts +5 -5
- package/dist/esm/sdkstats/state.js +3 -3
- package/dist/esm/sdkstats/state.js.map +1 -1
- package/dist/esm/shared/config.d.ts +1 -1
- package/dist/esm/shared/config.js +1 -1
- package/dist/esm/shared/logging/diagFileConsoleLogger.d.ts +1 -0
- package/dist/esm/shared/logging/diagFileConsoleLogger.d.ts.map +1 -1
- package/dist/esm/shared/logging/diagFileConsoleLogger.js +14 -6
- package/dist/esm/shared/logging/diagFileConsoleLogger.js.map +1 -1
- package/dist/esm/types.d.ts +14 -3
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +1 -2
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils/sdkStats.d.ts.map +1 -1
- package/dist/esm/utils/sdkStats.js +14 -3
- package/dist/esm/utils/sdkStats.js.map +1 -1
- package/package.json +49 -39
- package/dist/commonjs/sdkstats/otlpWrapper.d.ts +0 -56
- package/dist/commonjs/sdkstats/otlpWrapper.d.ts.map +0 -1
- package/dist/commonjs/sdkstats/otlpWrapper.js +0 -121
- package/dist/commonjs/sdkstats/otlpWrapper.js.map +0 -1
- package/dist/esm/sdkstats/otlpWrapper.d.ts +0 -56
- package/dist/esm/sdkstats/otlpWrapper.d.ts.map +0 -1
- package/dist/esm/sdkstats/otlpWrapper.js +0 -115
- package/dist/esm/sdkstats/otlpWrapper.js.map +0 -1
|
@@ -6,15 +6,15 @@
|
|
|
6
6
|
* pipeline.
|
|
7
7
|
*
|
|
8
8
|
* When the full Azure Monitor pipeline is enabled, the exporter package's
|
|
9
|
-
* own SDKStats machinery handles SDKStats emission and
|
|
10
|
-
*
|
|
9
|
+
* own SDKStats machinery handles SDKStats emission and we just
|
|
10
|
+
* publish our bits via the `AZURE_MONITOR_STATSBEAT_FEATURES` env var
|
|
11
11
|
* for the exporter to read. For A365-only, OTLP-only, or Console-only
|
|
12
12
|
* customers this manager spins up a standalone `MeterProvider` →
|
|
13
13
|
* `AzureMonitorStatsbeatExporter` pipeline so feature/instrumentation
|
|
14
14
|
* SDKStats are still collected.
|
|
15
15
|
*
|
|
16
16
|
* Mirrors `src/microsoft/opentelemetry/_sdkstats/_manager.py` from the
|
|
17
|
-
* Python
|
|
17
|
+
* Python implementation.
|
|
18
18
|
*/
|
|
19
19
|
import { MeterProvider, PeriodicExportingMetricReader } from "@opentelemetry/sdk-metrics";
|
|
20
20
|
import { resourceFromAttributes } from "@opentelemetry/resources";
|
|
@@ -41,7 +41,7 @@ const SDKSTATS_LONG_EXPORT_INTERVAL_ENV = "APPLICATIONINSIGHTS_STATS_LONG_EXPORT
|
|
|
41
41
|
/**
|
|
42
42
|
* Default short export interval (15 minutes) for network SDKStats
|
|
43
43
|
* counters. Matches the Application Insights SDKStats short-interval
|
|
44
|
-
* cadence used by the Python
|
|
44
|
+
* cadence used by the Python package (`_get_stats_short_export_interval()`
|
|
45
45
|
* in `azure.monitor.opentelemetry.exporter.statsbeat._utils`).
|
|
46
46
|
*
|
|
47
47
|
* @internal
|
|
@@ -49,7 +49,7 @@ const SDKSTATS_LONG_EXPORT_INTERVAL_ENV = "APPLICATIONINSIGHTS_STATS_LONG_EXPORT
|
|
|
49
49
|
const DEFAULT_SHORT_EXPORT_INTERVAL_MS = 15 * 60 * 1000;
|
|
50
50
|
/**
|
|
51
51
|
* Override env var: short (network) export interval in seconds.
|
|
52
|
-
* Matches the Python
|
|
52
|
+
* Matches the Python package env var name.
|
|
53
53
|
*
|
|
54
54
|
* @internal
|
|
55
55
|
*/
|
|
@@ -59,7 +59,7 @@ const SDKSTATS_SHORT_EXPORT_INTERVAL_ENV = "APPLICATIONINSIGHTS_STATS_SHORT_EXPO
|
|
|
59
59
|
* Insights connection string. When unset, SDKStats flow to the
|
|
60
60
|
* Microsoft-owned SDKStats resource (`NON_EU_CONNECTION_STRING` in
|
|
61
61
|
* the AzMon exporter package). Primarily useful for testing.
|
|
62
|
-
* Matches the Python
|
|
62
|
+
* Matches the Python package env var name.
|
|
63
63
|
*
|
|
64
64
|
* @internal
|
|
65
65
|
*/
|
|
@@ -129,7 +129,7 @@ export class SdkStatsManager {
|
|
|
129
129
|
const AzureMonitorStatsbeatExporter = sdkStatsExporterModule.AzureMonitorStatsbeatExporter;
|
|
130
130
|
const NON_EU_CONNECTION_STRING = sdkStatsTypesModule.NON_EU_CONNECTION_STRING;
|
|
131
131
|
// Allow overriding the SDKStats ingestion target via env var,
|
|
132
|
-
// matching the Python
|
|
132
|
+
// matching the Python package's APPLICATIONINSIGHTS_STATS_CONNECTION_STRING
|
|
133
133
|
// hook. Primarily useful for testing — production should leave
|
|
134
134
|
// this unset so SDKStats flows to the Microsoft-owned SDKStats
|
|
135
135
|
// resource (NON_EU_CONNECTION_STRING).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/sdkstats/manager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/sdkstats/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/sdkstats/metrics.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/sdkstats/metrics.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAgBhE;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,4BAA4B,IAAI,CAAC;AA+D9C;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,iEAAiE;IACjE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,aAAa,CAAC;IAClC;;;;OAIG;IACH,kBAAkB,EAAE,aAAa,CAAC;CACnC;AAED;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyB;gBAE9C,OAAO,EAAE,sBAAsB;IAC3C,2DAA2D;gBAEzD,aAAa,EAAE,aAAa,EAC5B,OAAO,CAAC,EAAE,IAAI,CAAC,sBAAsB,EAAE,oBAAoB,GAAG,mBAAmB,CAAC;IA4EpF,OAAO,CAAC,eAAe,CAcrB;IAEF,OAAO,CAAC,uBAAuB,CAU7B;IAEF,OAAO,CAAC,mBAAmB;CAe5B"}
|
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
* caller-supplied `MeterProvider`.
|
|
9
9
|
*
|
|
10
10
|
* Mirrors `src/microsoft/opentelemetry/_sdkstats/_metrics.py` from the
|
|
11
|
-
* Python
|
|
11
|
+
* Python implementation.
|
|
12
12
|
*/
|
|
13
13
|
import os from "node:os";
|
|
14
14
|
import { MICROSOFT_OPENTELEMETRY_VERSION } from "../types.js";
|
|
15
15
|
import { getSdkStatsFeatureFlags, getSdkStatsInstrumentationFlags } from "./state.js";
|
|
16
|
-
import { REQUEST_SUCCESS_NAME, drain } from "./networkStats.js";
|
|
16
|
+
import { REQUEST_SUCCESS_NAME, REQUEST_FAILURE_NAME, REQUEST_DURATION_NAME, RETRY_COUNT_NAME, THROTTLE_COUNT_NAME, EXCEPTION_COUNT_NAME, drain, } from "./networkStats.js";
|
|
17
17
|
/**
|
|
18
18
|
* Feature SDKStats `type` dimension values, per the Application Insights
|
|
19
19
|
* SDKStats specification.
|
|
@@ -30,6 +30,37 @@ const NETWORK_GAUGE_SPECS = [
|
|
|
30
30
|
metric: REQUEST_SUCCESS_NAME,
|
|
31
31
|
unit: "count",
|
|
32
32
|
description: "Number of successful HTTP exports per endpoint",
|
|
33
|
+
keyAttributes: ["endpoint", "host"],
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
metric: REQUEST_FAILURE_NAME,
|
|
37
|
+
unit: "count",
|
|
38
|
+
description: "Number of failed HTTP exports per endpoint, broken down by status code",
|
|
39
|
+
keyAttributes: ["endpoint", "host", "statusCode"],
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
metric: REQUEST_DURATION_NAME,
|
|
43
|
+
unit: "ms",
|
|
44
|
+
description: "Average HTTP export request duration per endpoint",
|
|
45
|
+
keyAttributes: ["endpoint", "host"],
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
metric: RETRY_COUNT_NAME,
|
|
49
|
+
unit: "count",
|
|
50
|
+
description: "Number of HTTP exports that returned a retryable status code",
|
|
51
|
+
keyAttributes: ["endpoint", "host", "statusCode"],
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
metric: THROTTLE_COUNT_NAME,
|
|
55
|
+
unit: "count",
|
|
56
|
+
description: "Number of HTTP exports that returned a throttling status code (402/439)",
|
|
57
|
+
keyAttributes: ["endpoint", "host", "statusCode"],
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
metric: EXCEPTION_COUNT_NAME,
|
|
61
|
+
unit: "count",
|
|
62
|
+
description: "Number of HTTP exports that raised an exception (no HTTP response)",
|
|
63
|
+
keyAttributes: ["endpoint", "host", "exceptionType"],
|
|
33
64
|
},
|
|
34
65
|
];
|
|
35
66
|
/**
|
|
@@ -77,7 +108,7 @@ export class SdkStatsMetrics {
|
|
|
77
108
|
};
|
|
78
109
|
// Feature / instrumentation bitmask gauges are skipped when running
|
|
79
110
|
// alongside the Azure Monitor exporter's own SDKStats — that pipeline
|
|
80
|
-
// already emits them (with our
|
|
111
|
+
// already emits them (with our feature bits bridged in via
|
|
81
112
|
// `_bridge_sdkstats_to_azure_monitor`) and would collide with these.
|
|
82
113
|
// These gauges are registered on the long-interval MeterProvider.
|
|
83
114
|
if (!networkOnly && longMeterProvider) {
|
|
@@ -133,11 +164,14 @@ export class SdkStatsMetrics {
|
|
|
133
164
|
makeNetworkCallback(spec) {
|
|
134
165
|
return (result) => {
|
|
135
166
|
for (const [key, value] of drain(spec.metric)) {
|
|
136
|
-
const attrs = {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
167
|
+
const attrs = { ...this.commonAttributes };
|
|
168
|
+
for (let i = 0; i < spec.keyAttributes.length; i++) {
|
|
169
|
+
const name = spec.keyAttributes[i];
|
|
170
|
+
const part = key[i];
|
|
171
|
+
if (part !== undefined) {
|
|
172
|
+
attrs[name] = part;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
141
175
|
result.observe(value, attrs);
|
|
142
176
|
}
|
|
143
177
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/sdkstats/metrics.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AAIzB,OAAO,EAAE,+BAA+B,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/sdkstats/metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +1,50 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Network SDKStats accumulator for SDK self-telemetry.
|
|
3
3
|
*
|
|
4
|
-
* Per-export
|
|
5
|
-
* {@link recordSuccess}
|
|
6
|
-
* {@link
|
|
7
|
-
*
|
|
4
|
+
* Per-export counters and timings for telemetry exporters. Exporters call
|
|
5
|
+
* the {@link recordSuccess} / {@link recordFailure} / {@link recordRetry} /
|
|
6
|
+
* {@link recordThrottle} / {@link recordException} / {@link recordDuration}
|
|
7
|
+
* functions after each transmit; the {@link SdkStatsMetrics}
|
|
8
|
+
* observable-gauge callbacks drain the accumulated counts on each export
|
|
9
|
+
* interval.
|
|
8
10
|
*
|
|
9
11
|
* Mirrors `src/microsoft/opentelemetry/_sdkstats/_utils.py` from the Python
|
|
10
|
-
*
|
|
12
|
+
* implementation.
|
|
11
13
|
*/
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
*
|
|
16
|
-
* @internal
|
|
17
|
-
*/
|
|
18
|
-
export declare const NETWORK_METRIC_NAMES: readonly ["Request_Success_Count"];
|
|
19
|
-
export type NetworkMetricName = (typeof NETWORK_METRIC_NAMES)[number];
|
|
14
|
+
import { REQUEST_SUCCESS_NAME, REQUEST_FAILURE_NAME, REQUEST_DURATION_NAME, RETRY_COUNT_NAME, THROTTLE_COUNT_NAME, EXCEPTION_COUNT_NAME, NETWORK_METRIC_NAMES, type NetworkMetricName } from "./constants.js";
|
|
15
|
+
export { REQUEST_SUCCESS_NAME, REQUEST_FAILURE_NAME, REQUEST_DURATION_NAME, RETRY_COUNT_NAME, THROTTLE_COUNT_NAME, EXCEPTION_COUNT_NAME, NETWORK_METRIC_NAMES, };
|
|
16
|
+
export type { NetworkMetricName };
|
|
20
17
|
/**
|
|
21
18
|
* Composite key for an aggregated network SDKStats counter.
|
|
22
19
|
*
|
|
23
20
|
* Per the Application Insights SDKStats spec the per-key dimensions are
|
|
24
|
-
* `endpoint` (category, e.g. "
|
|
25
|
-
* region or hostname)
|
|
21
|
+
* `endpoint` (category, e.g. "a365") and `host` (stamp-specific
|
|
22
|
+
* region or hostname), optionally followed by a third dimension —
|
|
23
|
+
* `statusCode` (failure/retry/throttle) or `exceptionType` (exception).
|
|
26
24
|
*
|
|
27
25
|
* @internal
|
|
28
26
|
*/
|
|
29
|
-
export type NetworkKey = readonly [
|
|
27
|
+
export type NetworkKey = readonly string[];
|
|
30
28
|
export declare function recordSuccess(endpoint: string, host: string): void;
|
|
29
|
+
export declare function recordFailure(endpoint: string, host: string, statusCode: number | string): void;
|
|
30
|
+
export declare function recordRetry(endpoint: string, host: string, statusCode: number | string): void;
|
|
31
|
+
export declare function recordThrottle(endpoint: string, host: string, statusCode: number | string): void;
|
|
32
|
+
export declare function recordException(endpoint: string, host: string, exceptionType: string): void;
|
|
33
|
+
export declare function recordDuration(endpoint: string, host: string, durationMs: number): void;
|
|
34
|
+
/**
|
|
35
|
+
* Classification of an HTTP status code per the Application Insights
|
|
36
|
+
* SDKStats Network specification.
|
|
37
|
+
*
|
|
38
|
+
* - `success`: 200 (and 206 if all envelopes were accepted — handled by
|
|
39
|
+
* the caller, this helper only returns the bucket for a single response
|
|
40
|
+
* code).
|
|
41
|
+
* - `retry`: 401, 403, 408, 429, 500, 502, 503, 504.
|
|
42
|
+
* - `throttle`: 402, 439.
|
|
43
|
+
* - `failure`: everything else (excluding redirects 307/308 which are
|
|
44
|
+
* followed transparently and never reported).
|
|
45
|
+
*/
|
|
46
|
+
export type StatusCodeKind = "success" | "retry" | "throttle" | "failure" | "ignored";
|
|
47
|
+
export declare function classifyStatusCode(status: number): StatusCodeKind;
|
|
31
48
|
/**
|
|
32
49
|
* Compute the stamp-specific short host for the SDKStats `host` dimension.
|
|
33
50
|
*
|
|
@@ -48,6 +65,11 @@ export declare function shortHost(input: string): string;
|
|
|
48
65
|
*
|
|
49
66
|
* Used by the observable-gauge callbacks so each observation reports only
|
|
50
67
|
* the delta accumulated during the export interval.
|
|
68
|
+
*
|
|
69
|
+
* For {@link REQUEST_DURATION_NAME} the reported value is the average of
|
|
70
|
+
* all durations recorded since the previous drain, per the spec
|
|
71
|
+
* ("Request_Duration ... avg request duration during the scheduled
|
|
72
|
+
* interval").
|
|
51
73
|
*/
|
|
52
74
|
export declare function drain(metric: NetworkMetricName): Map<NetworkKey, number>;
|
|
53
75
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"networkStats.d.ts","sourceRoot":"","sources":["../../../src/sdkstats/networkStats.ts"],"names":[],"mappings":"AAGA
|
|
1
|
+
{"version":3,"file":"networkStats.d.ts","sourceRoot":"","sources":["../../../src/sdkstats/networkStats.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;GAYG;AAOH,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EAIpB,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,GACrB,CAAC;AACF,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAElC;;;;;;;;;GASG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,MAAM,EAAE,CAAC;AA0C3C,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAElE;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE/F;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE7F;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEhG;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAE3F;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAUvF;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAEtF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAMjE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAwB/C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,iBAAiB,GAAG,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAgBxE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAQvC"}
|
|
@@ -3,43 +3,41 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* Network SDKStats accumulator for SDK self-telemetry.
|
|
5
5
|
*
|
|
6
|
-
* Per-export
|
|
7
|
-
* {@link recordSuccess}
|
|
8
|
-
* {@link
|
|
9
|
-
*
|
|
6
|
+
* Per-export counters and timings for telemetry exporters. Exporters call
|
|
7
|
+
* the {@link recordSuccess} / {@link recordFailure} / {@link recordRetry} /
|
|
8
|
+
* {@link recordThrottle} / {@link recordException} / {@link recordDuration}
|
|
9
|
+
* functions after each transmit; the {@link SdkStatsMetrics}
|
|
10
|
+
* observable-gauge callbacks drain the accumulated counts on each export
|
|
11
|
+
* interval.
|
|
10
12
|
*
|
|
11
13
|
* Mirrors `src/microsoft/opentelemetry/_sdkstats/_utils.py` from the Python
|
|
12
|
-
*
|
|
14
|
+
* implementation.
|
|
13
15
|
*/
|
|
14
|
-
//
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
//
|
|
18
|
-
//
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
export const REQUEST_SUCCESS_NAME = "Request_Success_Count";
|
|
22
|
-
/**
|
|
23
|
-
* Names of registered network SDKStats metrics, in registration order.
|
|
24
|
-
*
|
|
25
|
-
* @internal
|
|
26
|
-
*/
|
|
27
|
-
export const NETWORK_METRIC_NAMES = [REQUEST_SUCCESS_NAME];
|
|
28
|
-
// Single-threaded JS execution → no lock needed (Python uses one because of
|
|
29
|
-
// the GIL + threads; Node.js doesn't share JS objects across worker threads).
|
|
16
|
+
// Wire-format metric names and the set of HTTP status-code buckets used
|
|
17
|
+
// below live in `./constants.js` so the A365 exporter wrapper can
|
|
18
|
+
// share a single source of truth. Re-exported here for backwards
|
|
19
|
+
// compatibility with existing imports of these symbols from
|
|
20
|
+
// `./networkStats.js`.
|
|
21
|
+
import { REQUEST_SUCCESS_NAME, REQUEST_FAILURE_NAME, REQUEST_DURATION_NAME, RETRY_COUNT_NAME, THROTTLE_COUNT_NAME, EXCEPTION_COUNT_NAME, NETWORK_METRIC_NAMES, RETRY_STATUSES, THROTTLE_STATUSES, IGNORED_STATUSES, } from "./constants.js";
|
|
22
|
+
export { REQUEST_SUCCESS_NAME, REQUEST_FAILURE_NAME, REQUEST_DURATION_NAME, RETRY_COUNT_NAME, THROTTLE_COUNT_NAME, EXCEPTION_COUNT_NAME, NETWORK_METRIC_NAMES, };
|
|
30
23
|
const REQUESTS_MAP = {
|
|
31
24
|
[REQUEST_SUCCESS_NAME]: new Map(),
|
|
25
|
+
[REQUEST_FAILURE_NAME]: new Map(),
|
|
26
|
+
[RETRY_COUNT_NAME]: new Map(),
|
|
27
|
+
[THROTTLE_COUNT_NAME]: new Map(),
|
|
28
|
+
[EXCEPTION_COUNT_NAME]: new Map(),
|
|
32
29
|
};
|
|
30
|
+
const DURATION_MAP = new Map();
|
|
33
31
|
// `Map` keys are compared by identity for arrays/objects, so we serialize
|
|
34
32
|
// the key tuple to a string. The `\u0000` separator can't appear in a URL
|
|
35
|
-
// hostname
|
|
33
|
+
// hostname, HTTP status code, or exception-type string, so this is
|
|
34
|
+
// unambiguous.
|
|
36
35
|
const KEY_SEPARATOR = "\u0000";
|
|
37
36
|
function encodeKey(key) {
|
|
38
37
|
return key.join(KEY_SEPARATOR);
|
|
39
38
|
}
|
|
40
39
|
function decodeKey(encoded) {
|
|
41
|
-
|
|
42
|
-
return [parts[0], parts[1]];
|
|
40
|
+
return encoded.split(KEY_SEPARATOR);
|
|
43
41
|
}
|
|
44
42
|
function bump(metric, key, value = 1) {
|
|
45
43
|
const bucket = REQUESTS_MAP[metric];
|
|
@@ -49,6 +47,42 @@ function bump(metric, key, value = 1) {
|
|
|
49
47
|
export function recordSuccess(endpoint, host) {
|
|
50
48
|
bump(REQUEST_SUCCESS_NAME, [endpoint, host]);
|
|
51
49
|
}
|
|
50
|
+
export function recordFailure(endpoint, host, statusCode) {
|
|
51
|
+
bump(REQUEST_FAILURE_NAME, [endpoint, host, String(statusCode)]);
|
|
52
|
+
}
|
|
53
|
+
export function recordRetry(endpoint, host, statusCode) {
|
|
54
|
+
bump(RETRY_COUNT_NAME, [endpoint, host, String(statusCode)]);
|
|
55
|
+
}
|
|
56
|
+
export function recordThrottle(endpoint, host, statusCode) {
|
|
57
|
+
bump(THROTTLE_COUNT_NAME, [endpoint, host, String(statusCode)]);
|
|
58
|
+
}
|
|
59
|
+
export function recordException(endpoint, host, exceptionType) {
|
|
60
|
+
bump(EXCEPTION_COUNT_NAME, [endpoint, host, exceptionType]);
|
|
61
|
+
}
|
|
62
|
+
export function recordDuration(endpoint, host, durationMs) {
|
|
63
|
+
if (!Number.isFinite(durationMs) || durationMs < 0)
|
|
64
|
+
return;
|
|
65
|
+
const encoded = encodeKey([endpoint, host]);
|
|
66
|
+
const existing = DURATION_MAP.get(encoded);
|
|
67
|
+
if (existing) {
|
|
68
|
+
existing.sum += durationMs;
|
|
69
|
+
existing.count += 1;
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
DURATION_MAP.set(encoded, { sum: durationMs, count: 1 });
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
export function classifyStatusCode(status) {
|
|
76
|
+
if (status >= 200 && status < 300 && status !== 206)
|
|
77
|
+
return "success";
|
|
78
|
+
if (IGNORED_STATUSES.has(status))
|
|
79
|
+
return "ignored";
|
|
80
|
+
if (THROTTLE_STATUSES.has(status))
|
|
81
|
+
return "throttle";
|
|
82
|
+
if (RETRY_STATUSES.has(status))
|
|
83
|
+
return "retry";
|
|
84
|
+
return "failure";
|
|
85
|
+
}
|
|
52
86
|
/**
|
|
53
87
|
* Compute the stamp-specific short host for the SDKStats `host` dimension.
|
|
54
88
|
*
|
|
@@ -98,10 +132,24 @@ export function shortHost(input) {
|
|
|
98
132
|
*
|
|
99
133
|
* Used by the observable-gauge callbacks so each observation reports only
|
|
100
134
|
* the delta accumulated during the export interval.
|
|
135
|
+
*
|
|
136
|
+
* For {@link REQUEST_DURATION_NAME} the reported value is the average of
|
|
137
|
+
* all durations recorded since the previous drain, per the spec
|
|
138
|
+
* ("Request_Duration ... avg request duration during the scheduled
|
|
139
|
+
* interval").
|
|
101
140
|
*/
|
|
102
141
|
export function drain(metric) {
|
|
103
|
-
const bucket = REQUESTS_MAP[metric];
|
|
104
142
|
const snapshot = new Map();
|
|
143
|
+
if (metric === REQUEST_DURATION_NAME) {
|
|
144
|
+
for (const [encoded, acc] of DURATION_MAP) {
|
|
145
|
+
if (acc.count === 0)
|
|
146
|
+
continue;
|
|
147
|
+
snapshot.set(decodeKey(encoded), acc.sum / acc.count);
|
|
148
|
+
}
|
|
149
|
+
DURATION_MAP.clear();
|
|
150
|
+
return snapshot;
|
|
151
|
+
}
|
|
152
|
+
const bucket = REQUESTS_MAP[metric];
|
|
105
153
|
for (const [encoded, value] of bucket) {
|
|
106
154
|
snapshot.set(decodeKey(encoded), value);
|
|
107
155
|
}
|
|
@@ -113,7 +161,12 @@ export function drain(metric) {
|
|
|
113
161
|
*/
|
|
114
162
|
export function _resetAllForTest() {
|
|
115
163
|
for (const name of NETWORK_METRIC_NAMES) {
|
|
116
|
-
|
|
164
|
+
if (name === REQUEST_DURATION_NAME) {
|
|
165
|
+
DURATION_MAP.clear();
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
REQUESTS_MAP[name].clear();
|
|
169
|
+
}
|
|
117
170
|
}
|
|
118
171
|
}
|
|
119
172
|
//# sourceMappingURL=networkStats.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"networkStats.js","sourceRoot":"","sources":["../../../src/sdkstats/networkStats.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC
|
|
1
|
+
{"version":3,"file":"networkStats.js","sourceRoot":"","sources":["../../../src/sdkstats/networkStats.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,19 +4,19 @@
|
|
|
4
4
|
* Feature and instrumentation flags are stored as bitmasks so they can be
|
|
5
5
|
* combined and reported efficiently. The bitmask values are intentionally
|
|
6
6
|
* compatible with the Azure Monitor Exporter SDKStats encoding so that
|
|
7
|
-
* Azure Monitor consumers see no behavioural change when
|
|
8
|
-
*
|
|
7
|
+
* Azure Monitor consumers see no behavioural change when our bits are
|
|
8
|
+
* bridged into the exporter's existing pipeline.
|
|
9
9
|
*
|
|
10
10
|
* Mirrors `src/microsoft/opentelemetry/_sdkstats/_state.py` from the
|
|
11
|
-
* Python
|
|
11
|
+
* Python implementation (microsoft/opentelemetry-distro-python#89).
|
|
12
12
|
*/
|
|
13
13
|
import { SdkStatsFeature, SdkStatsInstrumentation } from "../types.js";
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
15
|
+
* Microsoft OpenTelemetry specific feature flags, in addition to the
|
|
16
16
|
* {@link SdkStatsFeature} flags shared with the Azure Monitor exporter.
|
|
17
17
|
*
|
|
18
18
|
* These bit values intentionally start above the values used by
|
|
19
|
-
* {@link SdkStatsFeature} so that
|
|
19
|
+
* {@link SdkStatsFeature} so that the bits and exporter bits can be
|
|
20
20
|
* OR-combined into a single 64-bit mask without collision.
|
|
21
21
|
*/
|
|
22
22
|
export declare enum SdkStatsDistroFeature {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT License.
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Microsoft OpenTelemetry specific feature flags, in addition to the
|
|
5
5
|
* {@link SdkStatsFeature} flags shared with the Azure Monitor exporter.
|
|
6
6
|
*
|
|
7
7
|
* These bit values intentionally start above the values used by
|
|
8
|
-
* {@link SdkStatsFeature} so that
|
|
8
|
+
* {@link SdkStatsFeature} so that the bits and exporter bits can be
|
|
9
9
|
* OR-combined into a single 64-bit mask without collision.
|
|
10
10
|
*/
|
|
11
11
|
export var SdkStatsDistroFeature;
|
|
@@ -48,7 +48,7 @@ export function isSdkStatsEnabled() {
|
|
|
48
48
|
}
|
|
49
49
|
// ---------------------------------------------------------------------------
|
|
50
50
|
// Mutable global state — kept module-local to ensure a single source of truth
|
|
51
|
-
// across the
|
|
51
|
+
// across the process. Node.js executes JS in a single thread (modulo
|
|
52
52
|
// worker_threads), so no explicit locking is needed.
|
|
53
53
|
// ---------------------------------------------------------------------------
|
|
54
54
|
let _featureBits = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/sdkstats/state.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAiBlC;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC/B,iEAAQ,CAAA;IACR,iFAAiB,CAAA;IACjB,kFAAkB,CAAA;IAClB,wFAAqB,CAAA;AACvB,CAAC,EALW,qBAAqB,KAArB,qBAAqB,QAKhC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,kCAAkC,CAAC;AAExE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0CAA0C,GACrD,4CAA4C,CAAC;AAE/C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,KAAK,MAAM,MAAM,IAAI,CAAC,qBAAqB,EAAE,0CAA0C,CAAC,EAAE,CAAC;QACzF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,8EAA8E;AAC9E,
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/sdkstats/state.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAiBlC;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,qBAKX;AALD,WAAY,qBAAqB;IAC/B,iEAAQ,CAAA;IACR,iFAAiB,CAAA;IACjB,kFAAkB,CAAA;IAClB,wFAAqB,CAAA;AACvB,CAAC,EALW,qBAAqB,KAArB,qBAAqB,QAKhC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,kCAAkC,CAAC;AAExE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0CAA0C,GACrD,4CAA4C,CAAC;AAE/C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,KAAK,MAAM,MAAM,IAAI,CAAC,qBAAqB,EAAE,0CAA0C,CAAC,EAAE,CAAC;QACzF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,8EAA8E;AAC9E,qEAAqE;AACrE,qDAAqD;AACrD,8EAA8E;AAE9E,IAAI,YAAY,GAAG,CAAC,CAAC;AACrB,IAAI,oBAAoB,GAAG,CAAC,CAAC;AAC7B,IAAI,SAAS,GAAG,KAAK,CAAC;AAEtB,MAAM,UAAU,kBAAkB,CAAC,IAA6C;IAC9E,YAAY,IAAI,IAAI,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAA6B;IACtE,oBAAoB,IAAI,IAAI,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAQ,GAAG,IAAI;IACjD,SAAS,GAAG,QAAQ,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B;IACxC,YAAY,GAAG,CAAC,CAAC;IACjB,oBAAoB,GAAG,CAAC,CAAC;IACzB,SAAS,GAAG,KAAK,CAAC;AACpB,CAAC"}
|
|
@@ -37,7 +37,7 @@ export declare class InternalConfig {
|
|
|
37
37
|
browserSdkLoaderOptions: BrowserSdkLoaderOptions;
|
|
38
38
|
/**
|
|
39
39
|
* Initializes a new instance of InternalConfig.
|
|
40
|
-
* Accepts MicrosoftOpenTelemetryOptions (
|
|
40
|
+
* Accepts MicrosoftOpenTelemetryOptions (top-level) — global options come
|
|
41
41
|
* from the top level, Azure Monitor-specific options from the azureMonitor key.
|
|
42
42
|
*/
|
|
43
43
|
constructor(options?: MicrosoftOpenTelemetryOptions);
|
|
@@ -42,7 +42,7 @@ export class InternalConfig {
|
|
|
42
42
|
browserSdkLoaderOptions;
|
|
43
43
|
/**
|
|
44
44
|
* Initializes a new instance of InternalConfig.
|
|
45
|
-
* Accepts MicrosoftOpenTelemetryOptions (
|
|
45
|
+
* Accepts MicrosoftOpenTelemetryOptions (top-level) — global options come
|
|
46
46
|
* from the top level, Azure Monitor-specific options from the azureMonitor key.
|
|
47
47
|
*/
|
|
48
48
|
constructor(options) {
|
|
@@ -19,6 +19,7 @@ export declare class DiagFileConsoleLogger implements DiagLogger {
|
|
|
19
19
|
debug(message?: any, ...args: any[]): void;
|
|
20
20
|
verbose(message?: any, ...args: any[]): void;
|
|
21
21
|
logMessage(message?: any, ...optionalParams: any[]): Promise<void>;
|
|
22
|
+
private _writeToConsole;
|
|
22
23
|
/**
|
|
23
24
|
* Checks if the warning message should be filtered out to avoid showing
|
|
24
25
|
* non-actionable warnings to customers
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagFileConsoleLogger.d.ts","sourceRoot":"","sources":["../../../../src/shared/logging/diagFileConsoleLogger.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"diagFileConsoleLogger.d.ts","sourceRoot":"","sources":["../../../../src/shared/logging/diagFileConsoleLogger.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAiBrD,qBAAa,qBAAsB,YAAW,UAAU;IACtD,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAqB;;IAuCrC,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAW1C,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAWzC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAWzC,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAW1C,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAWtC,UAAU,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAe/E,OAAO,CAAC,eAAe;IAIvB;;;OAGG;IACH,OAAO,CAAC,qCAAqC;IA2C7C,OAAO,CAAC,wCAAwC;YAelC,YAAY;YAmCZ,iBAAiB;YAajB,gBAAgB;CAyB/B"}
|
|
@@ -4,6 +4,10 @@ import fs from "node:fs";
|
|
|
4
4
|
import os from "node:os";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { accessAsync, appendFileAsync, confirmDirExists, getShallowFileSize, readdirAsync, readFileAsync, writeFileAsync, unlinkAsync, } from "../../utils/index.js";
|
|
7
|
+
// Capture console.log at module load, before the console instrumentation patches it,
|
|
8
|
+
// so distro diagnostics are never captured as customer telemetry (which would recurse)
|
|
9
|
+
// and always reach the real console regardless of patch/unpatch cycles.
|
|
10
|
+
const originalConsoleLog = console.log.bind(console);
|
|
7
11
|
export class DiagFileConsoleLogger {
|
|
8
12
|
_TAG = "DiagFileConsoleLogger:";
|
|
9
13
|
_cleanupTimeOut = 60 * 30 * 1000; // 30 minutes;
|
|
@@ -105,13 +109,17 @@ export class DiagFileConsoleLogger {
|
|
|
105
109
|
await this._storeToDisk(args);
|
|
106
110
|
}
|
|
107
111
|
if (this._logToConsole) {
|
|
108
|
-
|
|
112
|
+
this._writeToConsole(...args);
|
|
109
113
|
}
|
|
110
114
|
}
|
|
111
115
|
catch (err) {
|
|
112
|
-
|
|
116
|
+
this._writeToConsole(this._TAG, `Failed to log to file: ${err && err.message}`);
|
|
113
117
|
}
|
|
114
118
|
}
|
|
119
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
120
|
+
_writeToConsole(...args) {
|
|
121
|
+
originalConsoleLog(...args);
|
|
122
|
+
}
|
|
115
123
|
/**
|
|
116
124
|
* Checks if the warning message should be filtered out to avoid showing
|
|
117
125
|
* non-actionable warnings to customers
|
|
@@ -169,7 +177,7 @@ export class DiagFileConsoleLogger {
|
|
|
169
177
|
await confirmDirExists(this._tempDir);
|
|
170
178
|
}
|
|
171
179
|
catch (err) {
|
|
172
|
-
|
|
180
|
+
this._writeToConsole(this._TAG, `Failed to create directory for log file: ${err && err.message}`);
|
|
173
181
|
return;
|
|
174
182
|
}
|
|
175
183
|
try {
|
|
@@ -181,7 +189,7 @@ export class DiagFileConsoleLogger {
|
|
|
181
189
|
await appendFileAsync(this._fileFullPath, data);
|
|
182
190
|
}
|
|
183
191
|
catch (appendError) {
|
|
184
|
-
|
|
192
|
+
this._writeToConsole(this._TAG, `Failed to put log into file: ${appendError && appendError.message}`);
|
|
185
193
|
return;
|
|
186
194
|
}
|
|
187
195
|
}
|
|
@@ -201,7 +209,7 @@ export class DiagFileConsoleLogger {
|
|
|
201
209
|
await writeFileAsync(backupPath, buffer);
|
|
202
210
|
}
|
|
203
211
|
catch (err) {
|
|
204
|
-
|
|
212
|
+
this._writeToConsole(this._TAG, "Failed to generate backup log file", err);
|
|
205
213
|
}
|
|
206
214
|
finally {
|
|
207
215
|
// Store logs
|
|
@@ -232,7 +240,7 @@ export class DiagFileConsoleLogger {
|
|
|
232
240
|
}
|
|
233
241
|
}
|
|
234
242
|
catch (err) {
|
|
235
|
-
|
|
243
|
+
this._writeToConsole(this._TAG, `Failed to cleanup log files: ${err && err.message}`);
|
|
236
244
|
}
|
|
237
245
|
}
|
|
238
246
|
}
|