@azure/monitor-opentelemetry 1.19.0 → 1.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/README.md +7 -3
  2. package/dist/commonjs/browserSdkLoader/browserSdkLoaderHelper.d.ts.map +1 -1
  3. package/dist/commonjs/browserSdkLoader/browserSdkLoaderHelper.js +1 -2
  4. package/dist/commonjs/browserSdkLoader/browserSdkLoaderHelper.js.map +1 -1
  5. package/dist/commonjs/index.d.ts +2 -2
  6. package/dist/commonjs/index.d.ts.map +1 -1
  7. package/dist/commonjs/index.js +18 -31
  8. package/dist/commonjs/index.js.map +1 -1
  9. package/dist/commonjs/logs/handler.d.ts +2 -1
  10. package/dist/commonjs/logs/handler.d.ts.map +1 -1
  11. package/dist/commonjs/logs/handler.js +14 -8
  12. package/dist/commonjs/logs/handler.js.map +1 -1
  13. package/dist/commonjs/metrics/performanceCounters.d.ts +3 -0
  14. package/dist/commonjs/metrics/performanceCounters.d.ts.map +1 -1
  15. package/dist/commonjs/metrics/performanceCounters.js +26 -26
  16. package/dist/commonjs/metrics/performanceCounters.js.map +1 -1
  17. package/dist/commonjs/metrics/quickpulse/export/sender.d.ts +1 -1
  18. package/dist/commonjs/metrics/quickpulse/export/sender.d.ts.map +1 -1
  19. package/dist/commonjs/metrics/quickpulse/export/sender.js +29 -23
  20. package/dist/commonjs/metrics/quickpulse/export/sender.js.map +1 -1
  21. package/dist/commonjs/metrics/quickpulse/liveMetrics.d.ts +5 -1
  22. package/dist/commonjs/metrics/quickpulse/liveMetrics.d.ts.map +1 -1
  23. package/dist/commonjs/metrics/quickpulse/liveMetrics.js +86 -75
  24. package/dist/commonjs/metrics/quickpulse/liveMetrics.js.map +1 -1
  25. package/dist/commonjs/package.json +6 -1
  26. package/dist/commonjs/shared/config.d.ts +7 -0
  27. package/dist/commonjs/shared/config.d.ts.map +1 -1
  28. package/dist/commonjs/shared/config.js +27 -6
  29. package/dist/commonjs/shared/config.js.map +1 -1
  30. package/dist/commonjs/traces/azureSdkInstrumentation.d.ts +12 -0
  31. package/dist/commonjs/traces/azureSdkInstrumentation.d.ts.map +1 -0
  32. package/dist/commonjs/traces/azureSdkInstrumentation.js +64 -0
  33. package/dist/commonjs/traces/azureSdkInstrumentation.js.map +1 -0
  34. package/dist/commonjs/traces/handler.d.ts +2 -13
  35. package/dist/commonjs/traces/handler.d.ts.map +1 -1
  36. package/dist/commonjs/traces/handler.js +14 -43
  37. package/dist/commonjs/traces/handler.js.map +1 -1
  38. package/dist/commonjs/traces/sampler.js +1 -1
  39. package/dist/commonjs/traces/sampler.js.map +1 -1
  40. package/dist/commonjs/tsdoc-metadata.json +1 -1
  41. package/dist/commonjs/types.d.ts +11 -2
  42. package/dist/commonjs/types.d.ts.map +1 -1
  43. package/dist/commonjs/types.js +1 -1
  44. package/dist/commonjs/types.js.map +1 -1
  45. package/dist/commonjs/utils/azureSdkTracingBridge.d.ts +4 -4
  46. package/dist/commonjs/utils/azureSdkTracingBridge.d.ts.map +1 -1
  47. package/dist/commonjs/utils/azureSdkTracingBridge.js +10 -8
  48. package/dist/commonjs/utils/azureSdkTracingBridge.js.map +1 -1
  49. package/dist/commonjs/utils/common.d.ts +24 -0
  50. package/dist/commonjs/utils/common.d.ts.map +1 -1
  51. package/dist/commonjs/utils/common.js +47 -0
  52. package/dist/commonjs/utils/common.js.map +1 -1
  53. package/dist/commonjs/utils/instrumentation.d.ts +8 -0
  54. package/dist/commonjs/utils/instrumentation.d.ts.map +1 -0
  55. package/dist/commonjs/utils/instrumentation.js +26 -0
  56. package/dist/commonjs/utils/instrumentation.js.map +1 -0
  57. package/dist/commonjs/utils/statsbeat.d.ts.map +1 -1
  58. package/dist/commonjs/utils/statsbeat.js +3 -1
  59. package/dist/commonjs/utils/statsbeat.js.map +1 -1
  60. package/dist/esm/browserSdkLoader/browserSdkLoaderHelper.d.ts.map +1 -1
  61. package/dist/esm/browserSdkLoader/browserSdkLoaderHelper.js +1 -2
  62. package/dist/esm/browserSdkLoader/browserSdkLoaderHelper.js.map +1 -1
  63. package/dist/esm/index.d.ts +2 -2
  64. package/dist/esm/index.d.ts.map +1 -1
  65. package/dist/esm/index.js +18 -31
  66. package/dist/esm/index.js.map +1 -1
  67. package/dist/esm/logs/handler.d.ts +2 -1
  68. package/dist/esm/logs/handler.d.ts.map +1 -1
  69. package/dist/esm/logs/handler.js +14 -8
  70. package/dist/esm/logs/handler.js.map +1 -1
  71. package/dist/esm/metrics/performanceCounters.d.ts +3 -0
  72. package/dist/esm/metrics/performanceCounters.d.ts.map +1 -1
  73. package/dist/esm/metrics/performanceCounters.js +26 -26
  74. package/dist/esm/metrics/performanceCounters.js.map +1 -1
  75. package/dist/esm/metrics/quickpulse/export/sender.d.ts +1 -1
  76. package/dist/esm/metrics/quickpulse/export/sender.d.ts.map +1 -1
  77. package/dist/esm/metrics/quickpulse/export/sender.js +29 -23
  78. package/dist/esm/metrics/quickpulse/export/sender.js.map +1 -1
  79. package/dist/esm/metrics/quickpulse/liveMetrics.d.ts +5 -1
  80. package/dist/esm/metrics/quickpulse/liveMetrics.d.ts.map +1 -1
  81. package/dist/esm/metrics/quickpulse/liveMetrics.js +86 -75
  82. package/dist/esm/metrics/quickpulse/liveMetrics.js.map +1 -1
  83. package/dist/esm/package.json +6 -1
  84. package/dist/esm/shared/config.d.ts +7 -0
  85. package/dist/esm/shared/config.d.ts.map +1 -1
  86. package/dist/esm/shared/config.js +28 -7
  87. package/dist/esm/shared/config.js.map +1 -1
  88. package/dist/esm/traces/azureSdkInstrumentation.d.ts +12 -0
  89. package/dist/esm/traces/azureSdkInstrumentation.d.ts.map +1 -0
  90. package/dist/esm/traces/azureSdkInstrumentation.js +60 -0
  91. package/dist/esm/traces/azureSdkInstrumentation.js.map +1 -0
  92. package/dist/esm/traces/handler.d.ts +2 -13
  93. package/dist/esm/traces/handler.d.ts.map +1 -1
  94. package/dist/esm/traces/handler.js +14 -42
  95. package/dist/esm/traces/handler.js.map +1 -1
  96. package/dist/esm/traces/sampler.js +1 -1
  97. package/dist/esm/traces/sampler.js.map +1 -1
  98. package/dist/esm/types.d.ts +11 -2
  99. package/dist/esm/types.d.ts.map +1 -1
  100. package/dist/esm/types.js +1 -1
  101. package/dist/esm/types.js.map +1 -1
  102. package/dist/esm/utils/azureSdkTracingBridge.d.ts +4 -4
  103. package/dist/esm/utils/azureSdkTracingBridge.d.ts.map +1 -1
  104. package/dist/esm/utils/azureSdkTracingBridge.js +11 -7
  105. package/dist/esm/utils/azureSdkTracingBridge.js.map +1 -1
  106. package/dist/esm/utils/common.d.ts +24 -0
  107. package/dist/esm/utils/common.d.ts.map +1 -1
  108. package/dist/esm/utils/common.js +45 -0
  109. package/dist/esm/utils/common.js.map +1 -1
  110. package/dist/esm/utils/instrumentation.d.ts +8 -0
  111. package/dist/esm/utils/instrumentation.d.ts.map +1 -0
  112. package/dist/esm/utils/instrumentation.js +23 -0
  113. package/dist/esm/utils/instrumentation.js.map +1 -0
  114. package/dist/esm/utils/statsbeat.d.ts.map +1 -1
  115. package/dist/esm/utils/statsbeat.js +4 -2
  116. package/dist/esm/utils/statsbeat.js.map +1 -1
  117. package/package.json +33 -30
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { AzureMonitorExporterOptions } from \"@azure/monitor-opentelemetry-exporter\";\nimport type { InstrumentationConfig } from \"@opentelemetry/instrumentation\";\nimport type { Resource } from \"@opentelemetry/resources\";\nimport type { LogRecordProcessor } from \"@opentelemetry/sdk-logs\";\nimport type { MetricReader, ViewOptions } from \"@opentelemetry/sdk-metrics\";\nimport type { SpanProcessor } from \"@opentelemetry/sdk-trace-base\";\n\n/**\n * Azure Monitor OpenTelemetry Options\n */\nexport interface AzureMonitorOpenTelemetryOptions {\n /** Azure Monitor Exporter Configuration */\n azureMonitorExporterOptions?: AzureMonitorExporterOptions;\n /** OpenTelemetry Resource */\n resource?: Resource;\n /** The rate of telemetry items tracked that should be transmitted (Default 1.0) */\n samplingRatio?: number;\n /** The maximum number of traces to sample per second (Default 5). Set to 0 to use samplingRatio instead. */\n tracesPerSecond?: number;\n /** Enable Live Metrics feature (Default false)*/\n enableLiveMetrics?: boolean;\n /** Enable Standard Metrics feature (Default true)*/\n enableStandardMetrics?: boolean;\n /** Enable log sampling based on trace (Default true) */\n enableTraceBasedSamplingForLogs?: boolean;\n /** Enable Performance Counter feature */\n enablePerformanceCounters?: boolean;\n /** OpenTelemetry Instrumentations options included as part of Azure Monitor. See {@link InstrumentationOptions} for the full set of supported instrumentations. */\n instrumentationOptions?: InstrumentationOptions;\n /** Application Insights Web Instrumentation options (enabled, connectionString, src, config)*/\n browserSdkLoaderOptions?: BrowserSdkLoaderOptions;\n /** An array of log record processors to register to the logger provider.*/\n logRecordProcessors?: LogRecordProcessor[];\n /** An array of span processors to register to the tracer provider.*/\n spanProcessors?: SpanProcessor[];\n /** An array of metric readers to register to the meter provider.*/\n metricReaders?: MetricReader[];\n /** An array of metric views to register to the meter provider.*/\n views?: ViewOptions[];\n}\n\n/**\n * OpenTelemetry Instrumentations Configuration interface\n */\nexport interface InstrumentationOptions {\n /** Azure SDK Instrumentation Config */\n azureSdk?: InstrumentationConfig;\n /** HTTP Instrumentation Config */\n http?: InstrumentationConfig;\n /** MongoDB Instrumentation Config */\n mongoDb?: InstrumentationConfig;\n /** MySQL Instrumentation Config */\n mySql?: InstrumentationConfig;\n /** PostgreSql Instrumentation Config */\n postgreSql?: InstrumentationConfig;\n /** Redis Instrumentation Config */\n redis?: InstrumentationConfig;\n /** Redis4 Instrumentation Config */\n redis4?: InstrumentationConfig;\n /** Bunyan Instrumentation Config */\n bunyan?: InstrumentationConfig;\n /** Winston Instrumentation Config */\n winston?: InstrumentationConfig;\n /** Console Instrumentation Config */\n console?: InstrumentationConfig;\n}\n\n/**\n * Statsbeat Features Configuration interface\n * @internal\n */\nexport interface StatsbeatFeatures {\n diskRetry?: boolean;\n aadHandling?: boolean;\n browserSdkLoader?: boolean;\n distro?: boolean;\n liveMetrics?: boolean;\n shim?: boolean;\n customerSdkStats?: boolean;\n multiIkey?: boolean;\n aksResourceDetectorPopulation?: boolean;\n}\n\n/**\n * Statsbeat Features Mapping\n * @internal\n */\nexport const StatsbeatFeaturesMap = new Map<string, number>([\n [\"diskRetry\", 1],\n [\"aadHandling\", 2],\n [\"browserSdkLoader\", 4],\n [\"distro\", 8],\n [\"liveMetrics\", 16],\n [\"shim\", 32],\n [\"customerSdkStats\", 64],\n [\"multiIkey\", 128],\n [\"aksResourceDetectorPopulation\", 256],\n]);\n\n/**\n * Statsbeat Instrumentations Configuration interface\n * @internal\n */\nexport interface StatsbeatInstrumentations {\n /** Azure Monitor Supported Instrumentations */\n azureSdk?: boolean;\n mongoDb?: boolean;\n mySql?: boolean;\n postgreSql?: boolean;\n redis?: boolean;\n bunyan?: boolean;\n winston?: boolean;\n console?: boolean;\n /** OpenTelemetry Community Instrumentations */\n amqplib?: boolean;\n cucumber?: boolean;\n dataloader?: boolean;\n fs?: boolean;\n lruMemoizer?: boolean;\n mongoose?: boolean;\n runtimeNode?: boolean;\n socketIo?: boolean;\n tedious?: boolean;\n undici?: boolean;\n cassandra?: boolean;\n connect?: boolean;\n dns?: boolean;\n express?: boolean;\n fastify?: boolean;\n genericPool?: boolean;\n graphql?: boolean;\n hapi?: boolean;\n ioredis?: boolean;\n knex?: boolean;\n koa?: boolean;\n memcached?: boolean;\n mysql2?: boolean;\n nestjsCore?: boolean;\n net?: boolean;\n pino?: boolean;\n restify?: boolean;\n router?: boolean;\n}\n\n/**\n * Statsbeat Instrumentation and Feature Option interface\n * @internal\n */\nexport interface StatsbeatOption {\n option: string;\n value: boolean;\n}\n\n/**\n * Application Insights Web Instrumentation Configuration interface\n */\nexport interface BrowserSdkLoaderOptions {\n /** Browser SDK Loader Enable */\n enabled?: boolean;\n /** Browser SDK Loader Connection String */\n connectionString?: string;\n}\n\nexport const AZURE_MONITOR_OPENTELEMETRY_VERSION = \"1.19.0\";\nexport const AZURE_MONITOR_STATSBEAT_FEATURES = \"AZURE_MONITOR_STATSBEAT_FEATURES\";\nexport const AZURE_MONITOR_PREFIX = \"AZURE_MONITOR_PREFIX\";\nexport const AZURE_MONITOR_AUTO_ATTACH = \"AZURE_MONITOR_AUTO_ATTACH\";\nexport const APPLICATION_INSIGHTS_SHIM_VERSION = \"APPLICATION_INSIGHTS_SHIM_VERSION\";\nexport const APPLICATIONINSIGHTS_AUTHENTICATION_STRING =\n \"APPLICATIONINSIGHTS_AUTHENTICATION_STRING\";\n\nexport enum AttachTypePrefix {\n INTEGRATED_AUTO = \"i\",\n MANUAL = \"m\",\n}\n\n/**\n * Default Browser SDK Loader Source\n * @internal\n */\nexport const BROWSER_SDK_LOADER_DEFAULT_SOURCE = \"https://js.monitor.azure.com/scripts/b/ai\";\n\n/**\n * Default Breeze endpoint.\n * @internal\n */\nexport const DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\n/**\n * Default Live Metrics endpoint.\n * @internal\n */\nexport const DEFAULT_LIVEMETRICS_ENDPOINT = \"https://global.livediagnostics.monitor.azure.com\";\n\n/**\n * Internal attribute name for sample rate\n * @internal\n */\nexport const AzureMonitorSampleRate = \"microsoft.sample_rate\";\n\n/**\n * Disables customer-facing SDK Stats.\n * @internal\n */\nexport const APPLICATIONINSIGHTS_SDKSTATS_DISABLED = \"APPLICATIONINSIGHTS_SDKSTATS_DISABLED\";\n\nexport enum StatsbeatFeature {\n NONE = 0,\n DISK_RETRY = 1,\n AAD_HANDLING = 2,\n BROWSER_SDK_LOADER = 4,\n DISTRO = 8,\n LIVE_METRICS = 16,\n SHIM = 32,\n CUSTOMER_SDKSTATS = 64,\n MULTI_IKEY = 128,\n AKS_RESOURCE_DETECTOR_POPULATION = 256,\n}\n\nexport enum StatsbeatInstrumentation {\n /** Azure Monitor Supported Instrumentations */\n NONE = 0,\n AZURE_CORE_TRACING = 1,\n MONGODB = 2,\n MYSQL = 4,\n REDIS = 8,\n POSTGRES = 16,\n BUNYAN = 32,\n WINSTON = 64,\n CONSOLE = 128,\n /** OpenTelemetry Supported Instrumentations */\n CUCUMBER = 256,\n DATALOADER = 512,\n FS = 1024,\n LRU_MEMOIZER = 2048,\n MONGOOSE = 4096,\n RUNTIME_NODE = 8192,\n SOCKET_IO = 16384,\n TEDIOUS = 32768,\n UNDICI = 65536,\n CASSANDRA = 131072,\n CONNECT = 262144,\n DNS = 524288,\n EXPRESS = 1048576,\n FASTIFY = 2097152,\n GENERIC_POOL = 4194304,\n GRAPHQL = 8388608,\n HAPI = 16777216,\n IOREDIS = 33554432,\n KNEX = 67108864,\n KOA = 134217728,\n MEMCACHED = 268435456,\n MYSQL2 = 536870912,\n NESTJS_CORE = 1073741824,\n NET = 2147483648,\n PINO = 4294967296,\n RESTIFY = 8589934592,\n ROUTER = 17179869184,\n AMQPLIB = 34359738368,\n}\n\n/**\n * Statsbeat Instrumentation Mapping\n * @internal\n */\nexport const StatsbeatInstrumentationMap = new Map<string, number>([\n [\"@opentelemetry/instrumentation-console\", StatsbeatInstrumentation.CONSOLE],\n [\"@opentelemetry/instrumentation-amqplib\", StatsbeatInstrumentation.AMQPLIB],\n [\"@opentelemetry/instrumentation-cucumber\", StatsbeatInstrumentation.CUCUMBER],\n [\"@opentelemetry/instrumentation-dataloader\", StatsbeatInstrumentation.DATALOADER],\n [\"@opentelemetry/instrumentation-fs\", StatsbeatInstrumentation.FS],\n [\"@opentelemetry/instrumentation-lru-memoizer\", StatsbeatInstrumentation.LRU_MEMOIZER],\n [\"@opentelemetry/instrumentation-mongoose\", StatsbeatInstrumentation.MONGOOSE],\n [\"@opentelemetry/instrumentation-runtime-node\", StatsbeatInstrumentation.RUNTIME_NODE],\n [\"@opentelemetry/instrumentation-socket.io\", StatsbeatInstrumentation.SOCKET_IO],\n [\"@opentelemetry/instrumentation-tedious\", StatsbeatInstrumentation.TEDIOUS],\n [\"@opentelemetry/instrumentation-undici\", StatsbeatInstrumentation.UNDICI],\n [\"@opentelemetry/instrumentation-cassandra-driver\", StatsbeatInstrumentation.CASSANDRA],\n [\"@opentelemetry/instrumentation-connect\", StatsbeatInstrumentation.CONNECT],\n [\"@opentelemetry/instrumentation-dns\", StatsbeatInstrumentation.DNS],\n [\"@opentelemetry/instrumentation-express\", StatsbeatInstrumentation.EXPRESS],\n [\"@opentelemetry/instrumentation-fastify\", StatsbeatInstrumentation.FASTIFY],\n [\"@opentelemetry/instrumentation-generic-pool\", StatsbeatInstrumentation.GENERIC_POOL],\n [\"@opentelemetry/instrumentation-graphql\", StatsbeatInstrumentation.GRAPHQL],\n [\"@opentelemetry/instrumentation-hapi\", StatsbeatInstrumentation.HAPI],\n [\"@opentelemetry/instrumentation-ioredis\", StatsbeatInstrumentation.IOREDIS],\n [\"@opentelemetry/instrumentation-knex\", StatsbeatInstrumentation.KNEX],\n [\"@opentelemetry/instrumentation-koa\", StatsbeatInstrumentation.KOA],\n [\"@opentelemetry/instrumentation-memcached\", StatsbeatInstrumentation.MEMCACHED],\n [\"@opentelemetry/instrumentation-mysql2\", StatsbeatInstrumentation.MYSQL2],\n [\"@opentelemetry/instrumentation-nestjs-core\", StatsbeatInstrumentation.NESTJS_CORE],\n [\"@opentelemetry/instrumentation-net\", StatsbeatInstrumentation.NET],\n [\"@opentelemetry/instrumentation-pino\", StatsbeatInstrumentation.PINO],\n [\"@opentelemetry/instrumentation-restify\", StatsbeatInstrumentation.RESTIFY],\n [\"@opentelemetry/instrumentation-router\", StatsbeatInstrumentation.ROUTER],\n]);\n\n/**\n * Maps Statsbeat instrumentation option names to their assigned bits.\n * @internal\n */\nexport const StatsbeatInstrumentationsMap = new Map<string, number>([\n [\"azureSdk\", StatsbeatInstrumentation.AZURE_CORE_TRACING],\n [\"mongoDb\", StatsbeatInstrumentation.MONGODB],\n [\"mySql\", StatsbeatInstrumentation.MYSQL],\n [\"postgreSql\", StatsbeatInstrumentation.POSTGRES],\n [\"redis\", StatsbeatInstrumentation.REDIS],\n [\"bunyan\", StatsbeatInstrumentation.BUNYAN],\n [\"winston\", StatsbeatInstrumentation.WINSTON],\n [\"console\", StatsbeatInstrumentation.CONSOLE],\n [\"amqplib\", StatsbeatInstrumentation.AMQPLIB],\n [\"cucumber\", StatsbeatInstrumentation.CUCUMBER],\n [\"dataloader\", StatsbeatInstrumentation.DATALOADER],\n [\"fs\", StatsbeatInstrumentation.FS],\n [\"lruMemoizer\", StatsbeatInstrumentation.LRU_MEMOIZER],\n [\"mongoose\", StatsbeatInstrumentation.MONGOOSE],\n [\"runtimeNode\", StatsbeatInstrumentation.RUNTIME_NODE],\n [\"socketIo\", StatsbeatInstrumentation.SOCKET_IO],\n [\"tedious\", StatsbeatInstrumentation.TEDIOUS],\n [\"undici\", StatsbeatInstrumentation.UNDICI],\n [\"cassandra\", StatsbeatInstrumentation.CASSANDRA],\n [\"connect\", StatsbeatInstrumentation.CONNECT],\n [\"dns\", StatsbeatInstrumentation.DNS],\n [\"express\", StatsbeatInstrumentation.EXPRESS],\n [\"fastify\", StatsbeatInstrumentation.FASTIFY],\n [\"genericPool\", StatsbeatInstrumentation.GENERIC_POOL],\n [\"graphql\", StatsbeatInstrumentation.GRAPHQL],\n [\"hapi\", StatsbeatInstrumentation.HAPI],\n [\"ioredis\", StatsbeatInstrumentation.IOREDIS],\n [\"knex\", StatsbeatInstrumentation.KNEX],\n [\"koa\", StatsbeatInstrumentation.KOA],\n [\"memcached\", StatsbeatInstrumentation.MEMCACHED],\n [\"mysql2\", StatsbeatInstrumentation.MYSQL2],\n [\"nestjsCore\", StatsbeatInstrumentation.NESTJS_CORE],\n [\"net\", StatsbeatInstrumentation.NET],\n [\"pino\", StatsbeatInstrumentation.PINO],\n [\"restify\", StatsbeatInstrumentation.RESTIFY],\n [\"router\", StatsbeatInstrumentation.ROUTER],\n]);\n\nexport interface StatsbeatEnvironmentConfig {\n instrumentation: StatsbeatInstrumentation;\n feature: StatsbeatFeature;\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { AzureMonitorExporterOptions } from \"@azure/monitor-opentelemetry-exporter\";\nimport type { InstrumentationConfig } from \"@opentelemetry/instrumentation\";\nimport type { SeverityNumber } from \"@opentelemetry/api-logs\";\nimport type { Resource } from \"@opentelemetry/resources\";\nimport type { LogRecordProcessor } from \"@opentelemetry/sdk-logs\";\nimport type { MetricReader, ViewOptions } from \"@opentelemetry/sdk-metrics\";\nimport type { SpanProcessor } from \"@opentelemetry/sdk-trace-base\";\n\n/**\n * Azure Monitor OpenTelemetry Options\n */\nexport interface AzureMonitorOpenTelemetryOptions {\n /** Azure Monitor Exporter Configuration */\n azureMonitorExporterOptions?: AzureMonitorExporterOptions;\n /** OpenTelemetry Resource */\n resource?: Resource;\n /** The rate of telemetry items tracked that should be transmitted (Default 1.0) */\n samplingRatio?: number;\n /** The maximum number of traces to sample per second (Default 5). Set to 0 to use samplingRatio instead. */\n tracesPerSecond?: number;\n /** Enable Live Metrics feature (Default false)*/\n enableLiveMetrics?: boolean;\n /** Enable Standard Metrics feature (Default true)*/\n enableStandardMetrics?: boolean;\n /** Enable log sampling based on trace (Default true) */\n enableTraceBasedSamplingForLogs?: boolean;\n /** Enable Performance Counter feature */\n enablePerformanceCounters?: boolean;\n /** OpenTelemetry Instrumentations options included as part of Azure Monitor. See {@link InstrumentationOptions} for the full set of supported instrumentations. */\n instrumentationOptions?: InstrumentationOptions;\n /** Application Insights Web Instrumentation options (enabled, connectionString, src, config)*/\n browserSdkLoaderOptions?: BrowserSdkLoaderOptions;\n /** An array of log record processors to register to the logger provider.*/\n logRecordProcessors?: LogRecordProcessor[];\n /** An array of span processors to register to the tracer provider.*/\n spanProcessors?: SpanProcessor[];\n /** An array of metric readers to register to the meter provider.*/\n metricReaders?: MetricReader[];\n /** An array of metric views to register to the meter provider.*/\n views?: ViewOptions[];\n}\n\n/**\n * OpenTelemetry Instrumentations Configuration interface\n */\nexport interface InstrumentationOptions {\n /** Azure SDK Instrumentation Config */\n azureSdk?: InstrumentationConfig;\n /** HTTP Instrumentation Config */\n http?: InstrumentationConfig;\n /** MongoDB Instrumentation Config */\n mongoDb?: InstrumentationConfig;\n /** MySQL Instrumentation Config */\n mySql?: InstrumentationConfig;\n /** PostgreSql Instrumentation Config */\n postgreSql?: InstrumentationConfig;\n /** Redis Instrumentation Config */\n redis?: InstrumentationConfig;\n /** Redis4 Instrumentation Config */\n redis4?: InstrumentationConfig;\n /** Bunyan Instrumentation Config */\n bunyan?: InstrumentationConfig;\n /** Winston Instrumentation Config */\n winston?: InstrumentationConfig;\n /** Console Instrumentation Config */\n console?: ConsoleInstrumentationOptions;\n}\n\n/**\n * Console Instrumentation Configuration interface\n */\nexport interface ConsoleInstrumentationOptions extends InstrumentationConfig {\n /** The minimum severity of `console` calls to collect. Defaults to the value derived from the\n * `APPLICATIONINSIGHTS_INSTRUMENTATION_LOGGING_LEVEL` environment variable. */\n logSeverity?: SeverityNumber;\n}\n\n/**\n * Statsbeat Features Configuration interface\n * @internal\n */\nexport interface StatsbeatFeatures {\n diskRetry?: boolean;\n aadHandling?: boolean;\n browserSdkLoader?: boolean;\n distro?: boolean;\n liveMetrics?: boolean;\n shim?: boolean;\n customerSdkStats?: boolean;\n multiIkey?: boolean;\n aksResourceDetectorPopulation?: boolean;\n}\n\n/**\n * Statsbeat Features Mapping\n * @internal\n */\nexport const StatsbeatFeaturesMap = new Map<string, number>([\n [\"diskRetry\", 1],\n [\"aadHandling\", 2],\n [\"browserSdkLoader\", 4],\n [\"distro\", 8],\n [\"liveMetrics\", 16],\n [\"shim\", 32],\n [\"customerSdkStats\", 64],\n [\"multiIkey\", 128],\n [\"aksResourceDetectorPopulation\", 256],\n]);\n\n/**\n * Statsbeat Instrumentations Configuration interface\n * @internal\n */\nexport interface StatsbeatInstrumentations {\n /** Azure Monitor Supported Instrumentations */\n azureSdk?: boolean;\n mongoDb?: boolean;\n mySql?: boolean;\n postgreSql?: boolean;\n redis?: boolean;\n bunyan?: boolean;\n winston?: boolean;\n console?: boolean;\n /** OpenTelemetry Community Instrumentations */\n amqplib?: boolean;\n cucumber?: boolean;\n dataloader?: boolean;\n fs?: boolean;\n lruMemoizer?: boolean;\n mongoose?: boolean;\n runtimeNode?: boolean;\n socketIo?: boolean;\n tedious?: boolean;\n undici?: boolean;\n cassandra?: boolean;\n connect?: boolean;\n dns?: boolean;\n express?: boolean;\n fastify?: boolean;\n genericPool?: boolean;\n graphql?: boolean;\n hapi?: boolean;\n ioredis?: boolean;\n knex?: boolean;\n koa?: boolean;\n memcached?: boolean;\n mysql2?: boolean;\n nestjsCore?: boolean;\n net?: boolean;\n pino?: boolean;\n restify?: boolean;\n router?: boolean;\n}\n\n/**\n * Statsbeat Instrumentation and Feature Option interface\n * @internal\n */\nexport interface StatsbeatOption {\n option: string;\n value: boolean;\n}\n\n/**\n * Application Insights Web Instrumentation Configuration interface\n */\nexport interface BrowserSdkLoaderOptions {\n /** Browser SDK Loader Enable */\n enabled?: boolean;\n /** Browser SDK Loader Connection String */\n connectionString?: string;\n}\n\nexport const AZURE_MONITOR_OPENTELEMETRY_VERSION = \"1.20.1\";\nexport const AZURE_MONITOR_STATSBEAT_FEATURES = \"AZURE_MONITOR_STATSBEAT_FEATURES\";\nexport const AZURE_MONITOR_PREFIX = \"AZURE_MONITOR_PREFIX\";\nexport const AZURE_MONITOR_AUTO_ATTACH = \"AZURE_MONITOR_AUTO_ATTACH\";\nexport const APPLICATION_INSIGHTS_SHIM_VERSION = \"APPLICATION_INSIGHTS_SHIM_VERSION\";\nexport const APPLICATIONINSIGHTS_AUTHENTICATION_STRING =\n \"APPLICATIONINSIGHTS_AUTHENTICATION_STRING\";\n\nexport enum AttachTypePrefix {\n INTEGRATED_AUTO = \"i\",\n MANUAL = \"m\",\n}\n\n/**\n * Default Browser SDK Loader Source\n * @internal\n */\nexport const BROWSER_SDK_LOADER_DEFAULT_SOURCE = \"https://js.monitor.azure.com/scripts/b/ai\";\n\n/**\n * Default Breeze endpoint.\n * @internal\n */\nexport const DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\n/**\n * Default Live Metrics endpoint.\n * @internal\n */\nexport const DEFAULT_LIVEMETRICS_ENDPOINT = \"https://global.livediagnostics.monitor.azure.com\";\n\n/**\n * Internal attribute name for sample rate\n * @internal\n */\nexport const AzureMonitorSampleRate = \"microsoft.sample_rate\";\n\n/**\n * Disables customer-facing SDK Stats.\n * @internal\n */\nexport const APPLICATIONINSIGHTS_SDKSTATS_DISABLED = \"APPLICATIONINSIGHTS_SDKSTATS_DISABLED\";\n\nexport enum StatsbeatFeature {\n NONE = 0,\n DISK_RETRY = 1,\n AAD_HANDLING = 2,\n BROWSER_SDK_LOADER = 4,\n DISTRO = 8,\n LIVE_METRICS = 16,\n SHIM = 32,\n CUSTOMER_SDKSTATS = 64,\n MULTI_IKEY = 128,\n AKS_RESOURCE_DETECTOR_POPULATION = 256,\n}\n\nexport enum StatsbeatInstrumentation {\n /** Azure Monitor Supported Instrumentations */\n NONE = 0,\n AZURE_CORE_TRACING = 1,\n MONGODB = 2,\n MYSQL = 4,\n REDIS = 8,\n POSTGRES = 16,\n BUNYAN = 32,\n WINSTON = 64,\n CONSOLE = 128,\n /** OpenTelemetry Supported Instrumentations */\n CUCUMBER = 256,\n DATALOADER = 512,\n FS = 1024,\n LRU_MEMOIZER = 2048,\n MONGOOSE = 4096,\n RUNTIME_NODE = 8192,\n SOCKET_IO = 16384,\n TEDIOUS = 32768,\n UNDICI = 65536,\n CASSANDRA = 131072,\n CONNECT = 262144,\n DNS = 524288,\n EXPRESS = 1048576,\n FASTIFY = 2097152,\n GENERIC_POOL = 4194304,\n GRAPHQL = 8388608,\n HAPI = 16777216,\n IOREDIS = 33554432,\n KNEX = 67108864,\n KOA = 134217728,\n MEMCACHED = 268435456,\n MYSQL2 = 536870912,\n NESTJS_CORE = 1073741824,\n NET = 2147483648,\n PINO = 4294967296,\n RESTIFY = 8589934592,\n ROUTER = 17179869184,\n AMQPLIB = 34359738368,\n}\n\n/**\n * Statsbeat Instrumentation Mapping\n * @internal\n */\nexport const StatsbeatInstrumentationMap = new Map<string, number>([\n [\"@opentelemetry/instrumentation-console\", StatsbeatInstrumentation.CONSOLE],\n [\"@opentelemetry/instrumentation-amqplib\", StatsbeatInstrumentation.AMQPLIB],\n [\"@opentelemetry/instrumentation-cucumber\", StatsbeatInstrumentation.CUCUMBER],\n [\"@opentelemetry/instrumentation-dataloader\", StatsbeatInstrumentation.DATALOADER],\n [\"@opentelemetry/instrumentation-fs\", StatsbeatInstrumentation.FS],\n [\"@opentelemetry/instrumentation-lru-memoizer\", StatsbeatInstrumentation.LRU_MEMOIZER],\n [\"@opentelemetry/instrumentation-mongoose\", StatsbeatInstrumentation.MONGOOSE],\n [\"@opentelemetry/instrumentation-runtime-node\", StatsbeatInstrumentation.RUNTIME_NODE],\n [\"@opentelemetry/instrumentation-socket.io\", StatsbeatInstrumentation.SOCKET_IO],\n [\"@opentelemetry/instrumentation-tedious\", StatsbeatInstrumentation.TEDIOUS],\n [\"@opentelemetry/instrumentation-undici\", StatsbeatInstrumentation.UNDICI],\n [\"@opentelemetry/instrumentation-cassandra-driver\", StatsbeatInstrumentation.CASSANDRA],\n [\"@opentelemetry/instrumentation-connect\", StatsbeatInstrumentation.CONNECT],\n [\"@opentelemetry/instrumentation-dns\", StatsbeatInstrumentation.DNS],\n [\"@opentelemetry/instrumentation-express\", StatsbeatInstrumentation.EXPRESS],\n [\"@opentelemetry/instrumentation-fastify\", StatsbeatInstrumentation.FASTIFY],\n [\"@opentelemetry/instrumentation-generic-pool\", StatsbeatInstrumentation.GENERIC_POOL],\n [\"@opentelemetry/instrumentation-graphql\", StatsbeatInstrumentation.GRAPHQL],\n [\"@opentelemetry/instrumentation-hapi\", StatsbeatInstrumentation.HAPI],\n [\"@opentelemetry/instrumentation-ioredis\", StatsbeatInstrumentation.IOREDIS],\n [\"@opentelemetry/instrumentation-knex\", StatsbeatInstrumentation.KNEX],\n [\"@opentelemetry/instrumentation-koa\", StatsbeatInstrumentation.KOA],\n [\"@opentelemetry/instrumentation-memcached\", StatsbeatInstrumentation.MEMCACHED],\n [\"@opentelemetry/instrumentation-mysql2\", StatsbeatInstrumentation.MYSQL2],\n [\"@opentelemetry/instrumentation-nestjs-core\", StatsbeatInstrumentation.NESTJS_CORE],\n [\"@opentelemetry/instrumentation-net\", StatsbeatInstrumentation.NET],\n [\"@opentelemetry/instrumentation-pino\", StatsbeatInstrumentation.PINO],\n [\"@opentelemetry/instrumentation-restify\", StatsbeatInstrumentation.RESTIFY],\n [\"@opentelemetry/instrumentation-router\", StatsbeatInstrumentation.ROUTER],\n]);\n\n/**\n * Maps Statsbeat instrumentation option names to their assigned bits.\n * @internal\n */\nexport const StatsbeatInstrumentationsMap = new Map<string, number>([\n [\"azureSdk\", StatsbeatInstrumentation.AZURE_CORE_TRACING],\n [\"mongoDb\", StatsbeatInstrumentation.MONGODB],\n [\"mySql\", StatsbeatInstrumentation.MYSQL],\n [\"postgreSql\", StatsbeatInstrumentation.POSTGRES],\n [\"redis\", StatsbeatInstrumentation.REDIS],\n [\"bunyan\", StatsbeatInstrumentation.BUNYAN],\n [\"winston\", StatsbeatInstrumentation.WINSTON],\n [\"console\", StatsbeatInstrumentation.CONSOLE],\n [\"amqplib\", StatsbeatInstrumentation.AMQPLIB],\n [\"cucumber\", StatsbeatInstrumentation.CUCUMBER],\n [\"dataloader\", StatsbeatInstrumentation.DATALOADER],\n [\"fs\", StatsbeatInstrumentation.FS],\n [\"lruMemoizer\", StatsbeatInstrumentation.LRU_MEMOIZER],\n [\"mongoose\", StatsbeatInstrumentation.MONGOOSE],\n [\"runtimeNode\", StatsbeatInstrumentation.RUNTIME_NODE],\n [\"socketIo\", StatsbeatInstrumentation.SOCKET_IO],\n [\"tedious\", StatsbeatInstrumentation.TEDIOUS],\n [\"undici\", StatsbeatInstrumentation.UNDICI],\n [\"cassandra\", StatsbeatInstrumentation.CASSANDRA],\n [\"connect\", StatsbeatInstrumentation.CONNECT],\n [\"dns\", StatsbeatInstrumentation.DNS],\n [\"express\", StatsbeatInstrumentation.EXPRESS],\n [\"fastify\", StatsbeatInstrumentation.FASTIFY],\n [\"genericPool\", StatsbeatInstrumentation.GENERIC_POOL],\n [\"graphql\", StatsbeatInstrumentation.GRAPHQL],\n [\"hapi\", StatsbeatInstrumentation.HAPI],\n [\"ioredis\", StatsbeatInstrumentation.IOREDIS],\n [\"knex\", StatsbeatInstrumentation.KNEX],\n [\"koa\", StatsbeatInstrumentation.KOA],\n [\"memcached\", StatsbeatInstrumentation.MEMCACHED],\n [\"mysql2\", StatsbeatInstrumentation.MYSQL2],\n [\"nestjsCore\", StatsbeatInstrumentation.NESTJS_CORE],\n [\"net\", StatsbeatInstrumentation.NET],\n [\"pino\", StatsbeatInstrumentation.PINO],\n [\"restify\", StatsbeatInstrumentation.RESTIFY],\n [\"router\", StatsbeatInstrumentation.ROUTER],\n]);\n\nexport interface StatsbeatEnvironmentConfig {\n instrumentation: StatsbeatInstrumentation;\n feature: StatsbeatFeature;\n}\n"]}
@@ -1,3 +1,4 @@
1
+ import type { Instrumentation } from "@opentelemetry/instrumentation";
1
2
  /**
2
3
  * Eagerly installs the OpenTelemetry bridge for \@azure/core-tracing.
3
4
  *
@@ -8,11 +9,10 @@
8
9
  * imported \@azure/ai-projects or any other Azure SDK package first), the hook
9
10
  * never fires, and Azure SDK spans are silently dropped.
10
11
  *
11
- * This function works around the issue by directly calling useInstrumenter()
12
- * with an instrumenter created via createOpenTelemetryInstrumenter(), which
13
- * patches the already-loaded \@azure/core-tracing singleton state.
12
+ * Apply the registered instrumentation's patch to both module systems so the
13
+ * eager bridge follows the same enable/disable lifecycle as the module hooks.
14
14
  *
15
15
  * @internal
16
16
  */
17
- export declare function ensureAzureSdkTracingBridge(): void;
17
+ export declare function ensureAzureSdkTracingBridge(instrumentation: Instrumentation): void;
18
18
  //# sourceMappingURL=azureSdkTracingBridge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"azureSdkTracingBridge.d.ts","sourceRoot":"","sources":["../../../src/utils/azureSdkTracingBridge.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,2BAA2B,IAAI,IAAI,CAclD"}
1
+ {"version":3,"file":"azureSdkTracingBridge.d.ts","sourceRoot":"","sources":["../../../src/utils/azureSdkTracingBridge.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,eAAe,EAEhB,MAAM,gCAAgC,CAAC;AAExC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,2BAA2B,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI,CAoBlF"}
@@ -2,6 +2,7 @@
2
2
  // Licensed under the MIT License.
3
3
  import { diag } from "@opentelemetry/api";
4
4
  import { createRequire } from "node:module";
5
+ import * as coreTracing from "@azure/core-tracing";
5
6
  /**
6
7
  * Eagerly installs the OpenTelemetry bridge for \@azure/core-tracing.
7
8
  *
@@ -12,20 +13,23 @@ import { createRequire } from "node:module";
12
13
  * imported \@azure/ai-projects or any other Azure SDK package first), the hook
13
14
  * never fires, and Azure SDK spans are silently dropped.
14
15
  *
15
- * This function works around the issue by directly calling useInstrumenter()
16
- * with an instrumenter created via createOpenTelemetryInstrumenter(), which
17
- * patches the already-loaded \@azure/core-tracing singleton state.
16
+ * Apply the registered instrumentation's patch to both module systems so the
17
+ * eager bridge follows the same enable/disable lifecycle as the module hooks.
18
18
  *
19
19
  * @internal
20
20
  */
21
- export function ensureAzureSdkTracingBridge() {
21
+ export function ensureAzureSdkTracingBridge(instrumentation) {
22
22
  try {
23
23
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
24
24
  // @ts-ignore ESM only output
25
25
  const esmRequire = createRequire(import.meta.url);
26
- const { useInstrumenter } = esmRequire("@azure/core-tracing");
27
- const { createOpenTelemetryInstrumenter } = esmRequire("@azure/opentelemetry-instrumentation-azure-sdk");
28
- useInstrumenter(createOpenTelemetryInstrumenter());
26
+ const moduleDefinitions = instrumentation.getModuleDefinitions?.() ?? [];
27
+ for (const moduleDefinition of moduleDefinitions) {
28
+ if (moduleDefinition.name === "@azure/core-tracing" && moduleDefinition.patch) {
29
+ moduleDefinition.patch(coreTracing);
30
+ moduleDefinition.patch(esmRequire("@azure/core-tracing"));
31
+ }
32
+ }
29
33
  }
30
34
  catch (e) {
31
35
  diag.warn("Failed to install Azure SDK tracing bridge", e);
@@ -1 +1 @@
1
- {"version":3,"file":"azureSdkTracingBridge.js","sourceRoot":"","sources":["../../../src/utils/azureSdkTracingBridge.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,2BAA2B;IACzC,IAAI,CAAC;QACH,6DAA6D;QAC7D,6BAA6B;QAC7B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,EAAE,eAAe,EAAE,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC;QAC9D,MAAM,EAAE,+BAA+B,EAAE,GAAG,UAAU,CACpD,gDAAgD,CACjD,CAAC;QAEF,eAAe,CAAC,+BAA+B,EAAE,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,IAAI,CAAC,4CAA4C,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { diag } from \"@opentelemetry/api\";\nimport { createRequire } from \"node:module\";\n\n/**\n * Eagerly installs the OpenTelemetry bridge for \\@azure/core-tracing.\n *\n * The \\@azure/opentelemetry-instrumentation-azure-sdk package normally installs\n * the bridge via a require-in-the-middle (RITM) hook that intercepts future\n * `require(\"@azure/core-tracing\")` calls. However, if \\@azure/core-tracing is\n * already loaded before useAzureMonitor() is called (e.g. because the customer\n * imported \\@azure/ai-projects or any other Azure SDK package first), the hook\n * never fires, and Azure SDK spans are silently dropped.\n *\n * This function works around the issue by directly calling useInstrumenter()\n * with an instrumenter created via createOpenTelemetryInstrumenter(), which\n * patches the already-loaded \\@azure/core-tracing singleton state.\n *\n * @internal\n */\nexport function ensureAzureSdkTracingBridge(): void {\n try {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore ESM only output\n const esmRequire = createRequire(import.meta.url);\n const { useInstrumenter } = esmRequire(\"@azure/core-tracing\");\n const { createOpenTelemetryInstrumenter } = esmRequire(\n \"@azure/opentelemetry-instrumentation-azure-sdk\",\n );\n\n useInstrumenter(createOpenTelemetryInstrumenter());\n } catch (e) {\n diag.warn(\"Failed to install Azure SDK tracing bridge\", e);\n }\n}\n"]}
1
+ {"version":3,"file":"azureSdkTracingBridge.js","sourceRoot":"","sources":["../../../src/utils/azureSdkTracingBridge.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,WAAW,MAAM,qBAAqB,CAAC;AAMnD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,2BAA2B,CAAC,eAAgC;IAC1E,IAAI,CAAC;QACH,6DAA6D;QAC7D,6BAA6B;QAC7B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,iBAAiB,GAEnB,eAGD,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,CAAC;QACnC,KAAK,MAAM,gBAAgB,IAAI,iBAAiB,EAAE,CAAC;YACjD,IAAI,gBAAgB,CAAC,IAAI,KAAK,qBAAqB,IAAI,gBAAgB,CAAC,KAAK,EAAE,CAAC;gBAC9E,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBACpC,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,IAAI,CAAC,4CAA4C,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { diag } from \"@opentelemetry/api\";\nimport { createRequire } from \"node:module\";\nimport * as coreTracing from \"@azure/core-tracing\";\nimport type {\n Instrumentation,\n InstrumentationModuleDefinition,\n} from \"@opentelemetry/instrumentation\";\n\n/**\n * Eagerly installs the OpenTelemetry bridge for \\@azure/core-tracing.\n *\n * The \\@azure/opentelemetry-instrumentation-azure-sdk package normally installs\n * the bridge via a require-in-the-middle (RITM) hook that intercepts future\n * `require(\"@azure/core-tracing\")` calls. However, if \\@azure/core-tracing is\n * already loaded before useAzureMonitor() is called (e.g. because the customer\n * imported \\@azure/ai-projects or any other Azure SDK package first), the hook\n * never fires, and Azure SDK spans are silently dropped.\n *\n * Apply the registered instrumentation's patch to both module systems so the\n * eager bridge follows the same enable/disable lifecycle as the module hooks.\n *\n * @internal\n */\nexport function ensureAzureSdkTracingBridge(instrumentation: Instrumentation): void {\n try {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore ESM only output\n const esmRequire = createRequire(import.meta.url);\n const moduleDefinitions =\n (\n instrumentation as Instrumentation & {\n getModuleDefinitions?: () => InstrumentationModuleDefinition[];\n }\n ).getModuleDefinitions?.() ?? [];\n for (const moduleDefinition of moduleDefinitions) {\n if (moduleDefinition.name === \"@azure/core-tracing\" && moduleDefinition.patch) {\n moduleDefinition.patch(coreTracing);\n moduleDefinition.patch(esmRequire(\"@azure/core-tracing\"));\n }\n }\n } catch (e) {\n diag.warn(\"Failed to install Azure SDK tracing bridge\", e);\n }\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import type http from "node:http";
2
+ import type { Attributes } from "@opentelemetry/api";
2
3
  import type { ResourceDetector } from "@opentelemetry/resources";
3
4
  /**
4
5
  * Tests a flag without 32-bit coercion.
@@ -10,6 +11,11 @@ export declare function hasNumberFlag(mask: number, flag: number): boolean;
10
11
  * @internal
11
12
  */
12
13
  export declare function addNumberFlag(mask: number, flag: number): number;
14
+ /**
15
+ * Clears a flag without 32-bit coercion.
16
+ * @internal
17
+ */
18
+ export declare function removeNumberFlag(mask: number, flag: number): number;
13
19
  export declare function ignoreOutgoingRequestHook(request: http.RequestOptions): boolean;
14
20
  export declare const isWindows: () => boolean;
15
21
  export declare const isLinux: () => boolean;
@@ -30,6 +36,24 @@ export declare const getOsPrefix: () => string;
30
36
  export declare const isAppService: () => boolean;
31
37
  export declare const isFunctionApp: () => boolean;
32
38
  export declare const isAks: () => boolean;
39
+ /**
40
+ * Determines whether the AKS resource detector was actually able to populate the AKS cluster
41
+ * attributes, based on the attributes that detector - and only that detector - produced.
42
+ *
43
+ * This is only the case when the customer is running in AKS *and* has correctly wired up access
44
+ * to the `aks-cluster-metadata` ConfigMap in the `kube-public` namespace (RBAC role and role
45
+ * binding, surfaced either through the `CLUSTER_RESOURCE_ID` environment variable or through the
46
+ * mounted ConfigMap file).
47
+ *
48
+ * The merged resource is deliberately not inspected, because `k8s.cluster.name` and
49
+ * `cloud.resource_id` can also be contributed by other sources - the App Service, Functions and
50
+ * VM detectors all set `cloud.resource_id`, and both attributes can be supplied by the customer
51
+ * through `OTEL_RESOURCE_ATTRIBUTES` or a custom resource - none of which indicate that the AKS
52
+ * resource detector is working. The cluster resource ID is additionally validated to be a full
53
+ * AKS managed cluster ARM ID, since the detector does not validate the value it reads.
54
+ * @internal
55
+ */
56
+ export declare function isAksResourceDetectorPopulated(attributes?: Attributes): boolean;
33
57
  /**
34
58
  * Get prefix resource provider, vm will considered as "unknown RP"
35
59
  * Web App: "a"
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/utils/common.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAgBjE;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,GAAG,OAAO,CAiB/E;AAED,eAAO,MAAM,SAAS,QAAO,OAE5B,CAAC;AAEF,eAAO,MAAM,OAAO,QAAO,OAE1B,CAAC;AAEF,eAAO,MAAM,QAAQ,QAAO,OAE3B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,QAAO,MAE9B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,QAAO,OAE/B,CAAC;AAEF,eAAO,MAAM,aAAa,QAAO,OAEhC,CAAC;AAEF,eAAO,MAAM,KAAK,QAAO,OAExB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,QAAO,MAWtC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAiB/C;AAKD,wBAAgB,gCAAgC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CA4C1E"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/utils/common.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAgCjE;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,GAAG,OAAO,CAiB/E;AAED,eAAO,MAAM,SAAS,QAAO,OAE5B,CAAC;AAEF,eAAO,MAAM,OAAO,QAAO,OAE1B,CAAC;AAEF,eAAO,MAAM,QAAQ,QAAO,OAE3B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,QAAO,MAE9B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,QAAO,OAE/B,CAAC;AAEF,eAAO,MAAM,aAAa,QAAO,OAEhC,CAAC;AAEF,eAAO,MAAM,KAAK,QAAO,OAExB,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,8BAA8B,CAAC,UAAU,GAAE,UAAe,GAAG,OAAO,CASnF;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,QAAO,MAWtC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAiB/C;AAKD,wBAAgB,gCAAgC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CA4C1E"}
@@ -1,6 +1,19 @@
1
1
  import { envDetector, hostDetector, osDetector, processDetector, serviceInstanceIdDetector, } from "@opentelemetry/resources";
2
2
  import { diag } from "@opentelemetry/api";
3
3
  import { azureAksDetector, azureAppServiceDetector, azureFunctionsDetector, azureVmDetector, } from "@opentelemetry/resource-detector-azure";
4
+ /**
5
+ * Resource attribute holding the ARM resource ID of the AKS cluster, populated by the AKS
6
+ * resource detector. Declared locally because it is an unstable semantic convention that the
7
+ * detector package does not export.
8
+ * @internal
9
+ */
10
+ const CLOUD_RESOURCE_ID_ATTRIBUTE = "cloud.resource_id";
11
+ /**
12
+ * Matches the full ARM resource ID of an AKS managed cluster, for example
13
+ * `/subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.ContainerService/managedClusters/{name}`.
14
+ * @internal
15
+ */
16
+ const AKS_MANAGED_CLUSTER_RESOURCE_ID_REGEX = /^\/subscriptions\/[^/\s]+\/resourceGroups\/[^/\s]+\/providers\/Microsoft\.ContainerService\/managedClusters\/[^/\s]+\/?$/i;
4
17
  /**
5
18
  * Tests a flag without 32-bit coercion.
6
19
  * @internal
@@ -15,6 +28,13 @@ export function hasNumberFlag(mask, flag) {
15
28
  export function addNumberFlag(mask, flag) {
16
29
  return flag > 0 && !hasNumberFlag(mask, flag) ? mask + flag : mask;
17
30
  }
31
+ /**
32
+ * Clears a flag without 32-bit coercion.
33
+ * @internal
34
+ */
35
+ export function removeNumberFlag(mask, flag) {
36
+ return hasNumberFlag(mask, flag) ? mask - flag : mask;
37
+ }
18
38
  export function ignoreOutgoingRequestHook(request) {
19
39
  if (request && request.headers && !Array.isArray(request.headers)) {
20
40
  const outgoingHeaders = request.headers;
@@ -64,6 +84,31 @@ export const isFunctionApp = () => {
64
84
  export const isAks = () => {
65
85
  return process.env.AKS_ARM_NAMESPACE_ID || process.env.KUBERNETES_SERVICE_HOST ? true : false;
66
86
  };
87
+ /**
88
+ * Determines whether the AKS resource detector was actually able to populate the AKS cluster
89
+ * attributes, based on the attributes that detector - and only that detector - produced.
90
+ *
91
+ * This is only the case when the customer is running in AKS *and* has correctly wired up access
92
+ * to the `aks-cluster-metadata` ConfigMap in the `kube-public` namespace (RBAC role and role
93
+ * binding, surfaced either through the `CLUSTER_RESOURCE_ID` environment variable or through the
94
+ * mounted ConfigMap file).
95
+ *
96
+ * The merged resource is deliberately not inspected, because `k8s.cluster.name` and
97
+ * `cloud.resource_id` can also be contributed by other sources - the App Service, Functions and
98
+ * VM detectors all set `cloud.resource_id`, and both attributes can be supplied by the customer
99
+ * through `OTEL_RESOURCE_ATTRIBUTES` or a custom resource - none of which indicate that the AKS
100
+ * resource detector is working. The cluster resource ID is additionally validated to be a full
101
+ * AKS managed cluster ARM ID, since the detector does not validate the value it reads.
102
+ * @internal
103
+ */
104
+ export function isAksResourceDetectorPopulated(attributes = {}) {
105
+ if (!isAks()) {
106
+ return false;
107
+ }
108
+ const clusterResourceId = attributes[CLOUD_RESOURCE_ID_ATTRIBUTE];
109
+ return (typeof clusterResourceId === "string" &&
110
+ AKS_MANAGED_CLUSTER_RESOURCE_ID_REGEX.test(clusterResourceId.trim()));
111
+ }
67
112
  /**
68
113
  * Get prefix resource provider, vm will considered as "unknown RP"
69
114
  * Web App: "a"
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/utils/common.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type http from \"node:http\";\nimport type { ResourceDetector } from \"@opentelemetry/resources\";\nimport {\n envDetector,\n hostDetector,\n osDetector,\n processDetector,\n serviceInstanceIdDetector,\n} from \"@opentelemetry/resources\";\nimport { diag } from \"@opentelemetry/api\";\nimport {\n azureAksDetector,\n azureAppServiceDetector,\n azureFunctionsDetector,\n azureVmDetector,\n} from \"@opentelemetry/resource-detector-azure\";\n\n/**\n * Tests a flag without 32-bit coercion.\n * @internal\n */\nexport function hasNumberFlag(mask: number, flag: number): boolean {\n return flag > 0 && Math.floor(mask / flag) % 2 === 1;\n}\n\n/**\n * Sets a flag without 32-bit coercion.\n * @internal\n */\nexport function addNumberFlag(mask: number, flag: number): number {\n return flag > 0 && !hasNumberFlag(mask, flag) ? mask + flag : mask;\n}\n\nexport function ignoreOutgoingRequestHook(request: http.RequestOptions): boolean {\n if (request && request.headers && !Array.isArray(request.headers)) {\n const outgoingHeaders = request.headers as http.OutgoingHttpHeaders;\n if (\n (outgoingHeaders[\"User-Agent\"] &&\n outgoingHeaders[\"User-Agent\"]\n .toString()\n .indexOf(\"azsdk-js-monitor-opentelemetry-exporter\") > -1) ||\n (outgoingHeaders[\"user-agent\"] &&\n outgoingHeaders[\"user-agent\"]\n .toString()\n .indexOf(\"azsdk-js-monitor-opentelemetry-exporter\") > -1)\n ) {\n return true;\n }\n }\n return false;\n}\n\nexport const isWindows = (): boolean => {\n return process.platform === \"win32\";\n};\n\nexport const isLinux = (): boolean => {\n return process.platform === \"linux\";\n};\n\nexport const isDarwin = (): boolean => {\n return process.platform === \"darwin\";\n};\n\n/**\n * Get prefix for OS\n * Windows system: \"w\"\n * Linux system: \"l\"\n * non-Windows and non-Linux system: \"u\" (unknown)\n */\nexport const getOsPrefix = (): string => {\n return isWindows() ? \"w\" : isLinux() ? \"l\" : \"u\";\n};\n\n/**\n * Get prefix resource provider, vm will considered as \"unknown RP\"\n * Web App: \"a\"\n * Function App: \"f\"\n * non-Web and non-Function APP: \"u\" (unknown)\n */\nexport const isAppService = (): boolean => {\n return process.env.WEBSITE_SITE_NAME && !process.env.FUNCTIONS_WORKER_RUNTIME ? true : false;\n};\n\nexport const isFunctionApp = (): boolean => {\n return process.env.FUNCTIONS_WORKER_RUNTIME ? true : false;\n};\n\nexport const isAks = (): boolean => {\n return process.env.AKS_ARM_NAMESPACE_ID || process.env.KUBERNETES_SERVICE_HOST ? true : false;\n};\n\n/**\n * Get prefix resource provider, vm will considered as \"unknown RP\"\n * Web App: \"a\"\n * Function App: \"f\"\n * AKS: \"k\"\n * non-Web and non-Function APP: \"u\" (unknown)\n */\nexport const getResourceProvider = (): string => {\n if (isAppService()) {\n return \"a\";\n }\n if (isFunctionApp()) {\n return \"f\";\n }\n if (isAks()) {\n return \"k\";\n }\n return \"u\";\n};\n\n/**\n * Convert milliseconds to Breeze expected time.\n * @internal\n */\nexport function msToTimeSpan(ms: number): string {\n let totalms = ms;\n if (Number.isNaN(totalms) || totalms < 0 || !Number.isFinite(ms)) {\n totalms = 0;\n }\n\n let sec = ((totalms / 1000) % 60).toFixed(7).replace(/0{0,4}$/, \"\");\n let min = `${Math.floor(totalms / (1000 * 60)) % 60}`;\n let hour = `${Math.floor(totalms / (1000 * 60 * 60)) % 24}`;\n const days = Math.floor(totalms / (1000 * 60 * 60 * 24));\n\n sec = sec.indexOf(\".\") < 2 ? `0${sec}` : sec;\n min = min.length < 2 ? `0${min}` : min;\n hour = hour.length < 2 ? `0${hour}` : hour;\n const daysText = days > 0 ? `${days}.` : \"\";\n\n return `${daysText + hour}:${min}:${sec}`;\n}\n\n// This function is a slight modification of an upstream otel util function -\n// mainly for prioritizing the resource detectors customer may specify over\n// env var & not enabling process detector by default.\nexport function parseResourceDetectorsFromEnvVar(): Array<ResourceDetector> {\n const resourceDetectors = new Map<string, ResourceDetector>([\n [\"env\", envDetector],\n [\"host\", hostDetector],\n [\"os\", osDetector],\n [\"process\", processDetector],\n [\"serviceinstance\", serviceInstanceIdDetector],\n [\"azure_aks\", azureAksDetector],\n [\"azure_app_service\", azureAppServiceDetector],\n [\"azure_functions\", azureFunctionsDetector],\n [\"azure_vm\", azureVmDetector],\n ]);\n\n if (process.env.OTEL_NODE_RESOURCE_DETECTORS != null) {\n const resourceDetectorsFromEnv = process.env.OTEL_NODE_RESOURCE_DETECTORS?.split(\",\") ?? [\n \"env\",\n \"host\",\n \"os\",\n ];\n\n if (resourceDetectorsFromEnv.includes(\"all\")) {\n return [...resourceDetectors.values()];\n }\n\n if (resourceDetectorsFromEnv.includes(\"none\")) {\n return [];\n }\n\n return resourceDetectorsFromEnv.flatMap((detector) => {\n const resourceDetector = resourceDetectors.get(detector);\n if (!resourceDetector) {\n diag.error(\n `Invalid resource detector \"${detector}\" specified in the environment variable OTEL_NODE_RESOURCE_DETECTORS`,\n );\n return [];\n }\n return [resourceDetector];\n });\n } else {\n // leaving out the process detector as that can add many resource attributes\n // with large values. Also not enabling service instance attributes by default\n // as this is still experimental.\n return [envDetector, hostDetector, osDetector];\n }\n}\n"]}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/utils/common.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,WAAW,EACX,YAAY,EACZ,UAAU,EACV,eAAe,EACf,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,eAAe,GAChB,MAAM,wCAAwC,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,2BAA2B,GAAG,mBAAmB,CAAC;AAExD;;;;GAIG;AACH,MAAM,qCAAqC,GACzC,2HAA2H,CAAC;AAE9H;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,IAAY;IACtD,OAAO,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,IAAY;IACtD,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACrE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,IAAY;IACzD,OAAO,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAA4B;IACpE,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAClE,MAAM,eAAe,GAAG,OAAO,CAAC,OAAmC,CAAC;QACpE,IACE,CAAC,eAAe,CAAC,YAAY,CAAC;YAC5B,eAAe,CAAC,YAAY,CAAC;iBAC1B,QAAQ,EAAE;iBACV,OAAO,CAAC,yCAAyC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7D,CAAC,eAAe,CAAC,YAAY,CAAC;gBAC5B,eAAe,CAAC,YAAY,CAAC;qBAC1B,QAAQ,EAAE;qBACV,OAAO,CAAC,yCAAyC,CAAC,GAAG,CAAC,CAAC,CAAC,EAC7D,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,GAAY,EAAE;IACrC,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,GAAY,EAAE;IACnC,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAY,EAAE;IACpC,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC;AACvC,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAW,EAAE;IACtC,OAAO,SAAS,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACnD,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAY,EAAE;IACxC,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/F,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,GAAY,EAAE;IACzC,OAAO,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,GAAY,EAAE;IACjC,OAAO,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAChG,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,8BAA8B,CAAC,aAAyB,EAAE;IACxE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,iBAAiB,GAAG,UAAU,CAAC,2BAA2B,CAAC,CAAC;IAClE,OAAO,CACL,OAAO,iBAAiB,KAAK,QAAQ;QACrC,qCAAqC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CACrE,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAW,EAAE;IAC9C,IAAI,YAAY,EAAE,EAAE,CAAC;QACnB,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,aAAa,EAAE,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,KAAK,EAAE,EAAE,CAAC;QACZ,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,EAAU;IACrC,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QACjE,OAAO,GAAG,CAAC,CAAC;IACd,CAAC;IAED,IAAI,GAAG,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACpE,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;IACtD,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;IAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAEzD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7C,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IACvC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAE5C,OAAO,GAAG,QAAQ,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;AAC5C,CAAC;AAED,6EAA6E;AAC7E,2EAA2E;AAC3E,sDAAsD;AACtD,MAAM,UAAU,gCAAgC;IAC9C,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAA2B;QAC1D,CAAC,KAAK,EAAE,WAAW,CAAC;QACpB,CAAC,MAAM,EAAE,YAAY,CAAC;QACtB,CAAC,IAAI,EAAE,UAAU,CAAC;QAClB,CAAC,SAAS,EAAE,eAAe,CAAC;QAC5B,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;QAC9C,CAAC,WAAW,EAAE,gBAAgB,CAAC;QAC/B,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;QAC9C,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;QAC3C,CAAC,UAAU,EAAE,eAAe,CAAC;KAC9B,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,IAAI,EAAE,CAAC;QACrD,MAAM,wBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI;YACvF,KAAK;YACL,MAAM;YACN,IAAI;SACL,CAAC;QAEF,IAAI,wBAAwB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7C,OAAO,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,wBAAwB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9C,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,wBAAwB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;YACnD,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzD,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,IAAI,CAAC,KAAK,CACR,8BAA8B,QAAQ,sEAAsE,CAC7G,CAAC;gBACF,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,4EAA4E;QAC5E,8EAA8E;QAC9E,iCAAiC;QACjC,OAAO,CAAC,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IACjD,CAAC;AACH,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type http from \"node:http\";\nimport type { Attributes } from \"@opentelemetry/api\";\nimport type { ResourceDetector } from \"@opentelemetry/resources\";\nimport {\n envDetector,\n hostDetector,\n osDetector,\n processDetector,\n serviceInstanceIdDetector,\n} from \"@opentelemetry/resources\";\nimport { diag } from \"@opentelemetry/api\";\nimport {\n azureAksDetector,\n azureAppServiceDetector,\n azureFunctionsDetector,\n azureVmDetector,\n} from \"@opentelemetry/resource-detector-azure\";\n\n/**\n * Resource attribute holding the ARM resource ID of the AKS cluster, populated by the AKS\n * resource detector. Declared locally because it is an unstable semantic convention that the\n * detector package does not export.\n * @internal\n */\nconst CLOUD_RESOURCE_ID_ATTRIBUTE = \"cloud.resource_id\";\n\n/**\n * Matches the full ARM resource ID of an AKS managed cluster, for example\n * `/subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.ContainerService/managedClusters/{name}`.\n * @internal\n */\nconst AKS_MANAGED_CLUSTER_RESOURCE_ID_REGEX =\n /^\\/subscriptions\\/[^/\\s]+\\/resourceGroups\\/[^/\\s]+\\/providers\\/Microsoft\\.ContainerService\\/managedClusters\\/[^/\\s]+\\/?$/i;\n\n/**\n * Tests a flag without 32-bit coercion.\n * @internal\n */\nexport function hasNumberFlag(mask: number, flag: number): boolean {\n return flag > 0 && Math.floor(mask / flag) % 2 === 1;\n}\n\n/**\n * Sets a flag without 32-bit coercion.\n * @internal\n */\nexport function addNumberFlag(mask: number, flag: number): number {\n return flag > 0 && !hasNumberFlag(mask, flag) ? mask + flag : mask;\n}\n\n/**\n * Clears a flag without 32-bit coercion.\n * @internal\n */\nexport function removeNumberFlag(mask: number, flag: number): number {\n return hasNumberFlag(mask, flag) ? mask - flag : mask;\n}\n\nexport function ignoreOutgoingRequestHook(request: http.RequestOptions): boolean {\n if (request && request.headers && !Array.isArray(request.headers)) {\n const outgoingHeaders = request.headers as http.OutgoingHttpHeaders;\n if (\n (outgoingHeaders[\"User-Agent\"] &&\n outgoingHeaders[\"User-Agent\"]\n .toString()\n .indexOf(\"azsdk-js-monitor-opentelemetry-exporter\") > -1) ||\n (outgoingHeaders[\"user-agent\"] &&\n outgoingHeaders[\"user-agent\"]\n .toString()\n .indexOf(\"azsdk-js-monitor-opentelemetry-exporter\") > -1)\n ) {\n return true;\n }\n }\n return false;\n}\n\nexport const isWindows = (): boolean => {\n return process.platform === \"win32\";\n};\n\nexport const isLinux = (): boolean => {\n return process.platform === \"linux\";\n};\n\nexport const isDarwin = (): boolean => {\n return process.platform === \"darwin\";\n};\n\n/**\n * Get prefix for OS\n * Windows system: \"w\"\n * Linux system: \"l\"\n * non-Windows and non-Linux system: \"u\" (unknown)\n */\nexport const getOsPrefix = (): string => {\n return isWindows() ? \"w\" : isLinux() ? \"l\" : \"u\";\n};\n\n/**\n * Get prefix resource provider, vm will considered as \"unknown RP\"\n * Web App: \"a\"\n * Function App: \"f\"\n * non-Web and non-Function APP: \"u\" (unknown)\n */\nexport const isAppService = (): boolean => {\n return process.env.WEBSITE_SITE_NAME && !process.env.FUNCTIONS_WORKER_RUNTIME ? true : false;\n};\n\nexport const isFunctionApp = (): boolean => {\n return process.env.FUNCTIONS_WORKER_RUNTIME ? true : false;\n};\n\nexport const isAks = (): boolean => {\n return process.env.AKS_ARM_NAMESPACE_ID || process.env.KUBERNETES_SERVICE_HOST ? true : false;\n};\n\n/**\n * Determines whether the AKS resource detector was actually able to populate the AKS cluster\n * attributes, based on the attributes that detector - and only that detector - produced.\n *\n * This is only the case when the customer is running in AKS *and* has correctly wired up access\n * to the `aks-cluster-metadata` ConfigMap in the `kube-public` namespace (RBAC role and role\n * binding, surfaced either through the `CLUSTER_RESOURCE_ID` environment variable or through the\n * mounted ConfigMap file).\n *\n * The merged resource is deliberately not inspected, because `k8s.cluster.name` and\n * `cloud.resource_id` can also be contributed by other sources - the App Service, Functions and\n * VM detectors all set `cloud.resource_id`, and both attributes can be supplied by the customer\n * through `OTEL_RESOURCE_ATTRIBUTES` or a custom resource - none of which indicate that the AKS\n * resource detector is working. The cluster resource ID is additionally validated to be a full\n * AKS managed cluster ARM ID, since the detector does not validate the value it reads.\n * @internal\n */\nexport function isAksResourceDetectorPopulated(attributes: Attributes = {}): boolean {\n if (!isAks()) {\n return false;\n }\n const clusterResourceId = attributes[CLOUD_RESOURCE_ID_ATTRIBUTE];\n return (\n typeof clusterResourceId === \"string\" &&\n AKS_MANAGED_CLUSTER_RESOURCE_ID_REGEX.test(clusterResourceId.trim())\n );\n}\n\n/**\n * Get prefix resource provider, vm will considered as \"unknown RP\"\n * Web App: \"a\"\n * Function App: \"f\"\n * AKS: \"k\"\n * non-Web and non-Function APP: \"u\" (unknown)\n */\nexport const getResourceProvider = (): string => {\n if (isAppService()) {\n return \"a\";\n }\n if (isFunctionApp()) {\n return \"f\";\n }\n if (isAks()) {\n return \"k\";\n }\n return \"u\";\n};\n\n/**\n * Convert milliseconds to Breeze expected time.\n * @internal\n */\nexport function msToTimeSpan(ms: number): string {\n let totalms = ms;\n if (Number.isNaN(totalms) || totalms < 0 || !Number.isFinite(ms)) {\n totalms = 0;\n }\n\n let sec = ((totalms / 1000) % 60).toFixed(7).replace(/0{0,4}$/, \"\");\n let min = `${Math.floor(totalms / (1000 * 60)) % 60}`;\n let hour = `${Math.floor(totalms / (1000 * 60 * 60)) % 24}`;\n const days = Math.floor(totalms / (1000 * 60 * 60 * 24));\n\n sec = sec.indexOf(\".\") < 2 ? `0${sec}` : sec;\n min = min.length < 2 ? `0${min}` : min;\n hour = hour.length < 2 ? `0${hour}` : hour;\n const daysText = days > 0 ? `${days}.` : \"\";\n\n return `${daysText + hour}:${min}:${sec}`;\n}\n\n// This function is a slight modification of an upstream otel util function -\n// mainly for prioritizing the resource detectors customer may specify over\n// env var & not enabling process detector by default.\nexport function parseResourceDetectorsFromEnvVar(): Array<ResourceDetector> {\n const resourceDetectors = new Map<string, ResourceDetector>([\n [\"env\", envDetector],\n [\"host\", hostDetector],\n [\"os\", osDetector],\n [\"process\", processDetector],\n [\"serviceinstance\", serviceInstanceIdDetector],\n [\"azure_aks\", azureAksDetector],\n [\"azure_app_service\", azureAppServiceDetector],\n [\"azure_functions\", azureFunctionsDetector],\n [\"azure_vm\", azureVmDetector],\n ]);\n\n if (process.env.OTEL_NODE_RESOURCE_DETECTORS != null) {\n const resourceDetectorsFromEnv = process.env.OTEL_NODE_RESOURCE_DETECTORS?.split(\",\") ?? [\n \"env\",\n \"host\",\n \"os\",\n ];\n\n if (resourceDetectorsFromEnv.includes(\"all\")) {\n return [...resourceDetectors.values()];\n }\n\n if (resourceDetectorsFromEnv.includes(\"none\")) {\n return [];\n }\n\n return resourceDetectorsFromEnv.flatMap((detector) => {\n const resourceDetector = resourceDetectors.get(detector);\n if (!resourceDetector) {\n diag.error(\n `Invalid resource detector \"${detector}\" specified in the environment variable OTEL_NODE_RESOURCE_DETECTORS`,\n );\n return [];\n }\n return [resourceDetector];\n });\n } else {\n // leaving out the process detector as that can add many resource attributes\n // with large values. Also not enabling service instance attributes by default\n // as this is still experimental.\n return [envDetector, hostDetector, osDetector];\n }\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import type { Instrumentation, InstrumentationConfig } from "@opentelemetry/instrumentation";
2
+ /**
3
+ * Reuse module hooks across SDK lifetimes: new hooks cannot reliably patch
4
+ * libraries that have already been loaded. NodeSDK supplies the new providers
5
+ * before enabling the returned instrumentation.
6
+ */
7
+ export declare function configureInstrumentation<T extends InstrumentationConfig>(cache: Map<string, Instrumentation> | undefined, name: string, config: T, create: (config: T) => Instrumentation): Instrumentation;
8
+ //# sourceMappingURL=instrumentation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../src/utils/instrumentation.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE7F;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,qBAAqB,EACtE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,SAAS,EAC/C,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,eAAe,GACrC,eAAe,CAajB"}
@@ -0,0 +1,23 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT License.
3
+ /**
4
+ * Reuse module hooks across SDK lifetimes: new hooks cannot reliably patch
5
+ * libraries that have already been loaded. NodeSDK supplies the new providers
6
+ * before enabling the returned instrumentation.
7
+ */
8
+ export function configureInstrumentation(cache, name, config, create) {
9
+ if (!cache) {
10
+ return create(config);
11
+ }
12
+ const deferredConfig = { ...config, enabled: false };
13
+ let instrumentation = cache.get(name);
14
+ if (instrumentation) {
15
+ instrumentation.setConfig(deferredConfig);
16
+ }
17
+ else {
18
+ instrumentation = create(deferredConfig);
19
+ cache.set(name, instrumentation);
20
+ }
21
+ return instrumentation;
22
+ }
23
+ //# sourceMappingURL=instrumentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../src/utils/instrumentation.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAIlC;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAA+C,EAC/C,IAAY,EACZ,MAAS,EACT,MAAsC;IAEtC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IACD,MAAM,cAAc,GAAG,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACrD,IAAI,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,eAAe,EAAE,CAAC;QACpB,eAAe,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;QACzC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { Instrumentation, InstrumentationConfig } from \"@opentelemetry/instrumentation\";\n\n/**\n * Reuse module hooks across SDK lifetimes: new hooks cannot reliably patch\n * libraries that have already been loaded. NodeSDK supplies the new providers\n * before enabling the returned instrumentation.\n */\nexport function configureInstrumentation<T extends InstrumentationConfig>(\n cache: Map<string, Instrumentation> | undefined,\n name: string,\n config: T,\n create: (config: T) => Instrumentation,\n): Instrumentation {\n if (!cache) {\n return create(config);\n }\n const deferredConfig = { ...config, enabled: false };\n let instrumentation = cache.get(name);\n if (instrumentation) {\n instrumentation.setConfig(deferredConfig);\n } else {\n instrumentation = create(deferredConfig);\n cache.set(name, instrumentation);\n }\n return instrumentation;\n}\n"]}
@@ -1 +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;AAarB,cAAM,sBAAsB;IAE1B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,gCAAgC,CAAiC;IACzE,OAAO,CAAC,wBAAwB,CAAyB;;IAmBlD,oBAAoB,GACzB,2BAA2B,yBAAyB,EACpD,mBAAmB,iBAAiB,UA4GpC;CACH;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,sBAAsB,CAKpD"}
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;AAarB,cAAM,sBAAsB;IAE1B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,gCAAgC,CAAiC;IACzE,OAAO,CAAC,wBAAwB,CAAyB;;IAmBlD,oBAAoB,GACzB,2BAA2B,yBAAyB,EACpD,mBAAmB,iBAAiB,UAiHpC;CACH;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,sBAAsB,CAKpD"}
@@ -2,7 +2,7 @@
2
2
  // Licensed under the MIT License.
3
3
  import { AZURE_MONITOR_STATSBEAT_FEATURES, StatsbeatFeature, StatsbeatFeaturesMap, StatsbeatInstrumentation, StatsbeatInstrumentationsMap, } from "../types.js";
4
4
  import { Logger as InternalLogger } from "../shared/logging/index.js";
5
- import { addNumberFlag, hasNumberFlag } from "./common.js";
5
+ import { addNumberFlag, hasNumberFlag, removeNumberFlag } from "./common.js";
6
6
  let instance;
7
7
  class StatsbeatConfiguration {
8
8
  // Initial Statsbeat options
@@ -104,7 +104,9 @@ class StatsbeatConfiguration {
104
104
  try {
105
105
  const currentFeaturesBitMap = Number(process.env[AZURE_MONITOR_STATSBEAT_FEATURES]);
106
106
  if (!isNaN(currentFeaturesBitMap)) {
107
- featureBitMap |= currentFeaturesBitMap;
107
+ // The AKS resource detector feature always reflects whether *this* process was able to
108
+ // read the AKS cluster metadata, so it is never inherited from a seeded bit map.
109
+ featureBitMap |= removeNumberFlag(currentFeaturesBitMap, StatsbeatFeature.AKS_RESOURCE_DETECTOR_POPULATION);
108
110
  }
109
111
  process.env[AZURE_MONITOR_STATSBEAT_FEATURES] = JSON.stringify({
110
112
  instrumentation: instrumentationBitMap,
@@ -1 +1 @@
1
- {"version":3,"file":"statsbeat.js","sourceRoot":"","sources":["../../../src/utils/statsbeat.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n StatsbeatEnvironmentConfig,\n StatsbeatFeatures,\n StatsbeatInstrumentations,\n StatsbeatOption,\n} from \"../types.js\";\nimport {\n AZURE_MONITOR_STATSBEAT_FEATURES,\n StatsbeatFeature,\n StatsbeatFeaturesMap,\n StatsbeatInstrumentation,\n StatsbeatInstrumentationsMap,\n} from \"../types.js\";\nimport { Logger as InternalLogger } from \"../shared/logging/index.js\";\nimport { addNumberFlag, hasNumberFlag } from \"./common.js\";\n\nlet instance: StatsbeatConfiguration;\n\nclass StatsbeatConfiguration {\n // Initial Statsbeat options\n private initializedByShim = false;\n private currentStatsbeatInstrumentations: StatsbeatInstrumentations = {};\n private currentStatsbeatFeatures: StatsbeatFeatures = {};\n\n constructor() {\n // Check for shim initialization upon construction\n try {\n if (\n JSON.parse(process.env[AZURE_MONITOR_STATSBEAT_FEATURES] || \"{}\").feature &\n StatsbeatFeature.SHIM\n ) {\n this.initializedByShim = true;\n }\n } catch (error) {\n InternalLogger.getInstance().error(\n \"Failed to parse statsbeat config environment variable.\",\n error,\n );\n }\n }\n\n public setStatsbeatFeatures = (\n statsbeatInstrumentations: StatsbeatInstrumentations,\n statsbeatFeatures: StatsbeatFeatures,\n ) => {\n let statsbeatEnv: StatsbeatEnvironmentConfig;\n try {\n statsbeatEnv = JSON.parse(process.env[AZURE_MONITOR_STATSBEAT_FEATURES] || \"{}\");\n } catch (error) {\n InternalLogger.getInstance().error(\n \"Failed to parse statsbeat config environment variable.\",\n error,\n );\n }\n this.currentStatsbeatInstrumentations = {\n ...this.currentStatsbeatInstrumentations,\n ...statsbeatInstrumentations,\n };\n this.currentStatsbeatFeatures = { ...this.currentStatsbeatFeatures, ...statsbeatFeatures };\n\n // Set the statsbeat options for community instrumentations based on the environment variable\n const envInstrumentation = statsbeatEnv!.instrumentation;\n statsbeatInstrumentations = {\n ...this.currentStatsbeatInstrumentations,\n amqplib: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.AMQPLIB),\n cucumber: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.CUCUMBER),\n dataloader: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.DATALOADER),\n fs: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.FS),\n lruMemoizer: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.LRU_MEMOIZER),\n mongoose: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.MONGOOSE),\n runtimeNode: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.RUNTIME_NODE),\n socketIo: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.SOCKET_IO),\n tedious: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.TEDIOUS),\n undici: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.UNDICI),\n cassandra: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.CASSANDRA),\n connect: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.CONNECT),\n dns: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.DNS),\n express: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.EXPRESS),\n fastify: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.FASTIFY),\n genericPool: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.GENERIC_POOL),\n graphql: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.GRAPHQL),\n hapi: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.HAPI),\n ioredis: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.IOREDIS),\n knex: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.KNEX),\n koa: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.KOA),\n memcached: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.MEMCACHED),\n mysql2: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.MYSQL2),\n nestjsCore: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.NESTJS_CORE),\n net: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.NET),\n pino: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.PINO),\n restify: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.RESTIFY),\n router: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.ROUTER),\n };\n\n let instrumentationBitMap = StatsbeatInstrumentation.NONE;\n\n const instrumentationArray: Array<StatsbeatOption> = Object.entries(\n statsbeatInstrumentations,\n ).map((entry) => {\n return { option: entry[0], value: entry[1] };\n });\n\n // Map enabled option names to their assigned bits.\n for (let i = 0; i < instrumentationArray.length; i++) {\n if (instrumentationArray[i].value) {\n const instrumentationBit = StatsbeatInstrumentationsMap.get(instrumentationArray[i].option);\n if (instrumentationBit !== undefined) {\n instrumentationBitMap = addNumberFlag(instrumentationBitMap, instrumentationBit);\n }\n }\n }\n\n // Create feature bit map\n let featureBitMap = StatsbeatFeature.NONE;\n\n if (this.initializedByShim) {\n this.currentStatsbeatFeatures.shim = true;\n } else {\n this.currentStatsbeatFeatures.distro = true;\n }\n\n if (statsbeatFeatures.liveMetrics) {\n this.currentStatsbeatFeatures.liveMetrics = true;\n }\n\n const featureArray: Array<StatsbeatOption> = Object.entries(this.currentStatsbeatFeatures).map(\n (entry) => {\n return { option: entry[0], value: entry[1] };\n },\n );\n\n // Map the feature options to a bit map\n for (let i = 0; i < featureArray.length; i++) {\n if (featureArray[i].value) {\n featureBitMap |= StatsbeatFeaturesMap.get(featureArray[i].option)!;\n }\n }\n\n // Merge old statsbeat options with new statsbeat options overriding any common properties\n try {\n const currentFeaturesBitMap = Number(process.env[AZURE_MONITOR_STATSBEAT_FEATURES]);\n if (!isNaN(currentFeaturesBitMap)) {\n featureBitMap |= currentFeaturesBitMap;\n }\n process.env[AZURE_MONITOR_STATSBEAT_FEATURES] = JSON.stringify({\n instrumentation: instrumentationBitMap,\n feature: featureBitMap,\n });\n } catch (error) {\n InternalLogger.getInstance().error(\"Failed call to JSON.stringify.\", error);\n }\n };\n}\n\n/**\n * Singleton Statsbeat instance.\n * @internal\n */\nexport function getInstance(): StatsbeatConfiguration {\n if (!instance) {\n instance = new StatsbeatConfiguration();\n }\n return instance;\n}\n"]}
1
+ {"version":3,"file":"statsbeat.js","sourceRoot":"","sources":["../../../src/utils/statsbeat.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n StatsbeatEnvironmentConfig,\n StatsbeatFeatures,\n StatsbeatInstrumentations,\n StatsbeatOption,\n} from \"../types.js\";\nimport {\n AZURE_MONITOR_STATSBEAT_FEATURES,\n StatsbeatFeature,\n StatsbeatFeaturesMap,\n StatsbeatInstrumentation,\n StatsbeatInstrumentationsMap,\n} from \"../types.js\";\nimport { Logger as InternalLogger } from \"../shared/logging/index.js\";\nimport { addNumberFlag, hasNumberFlag, removeNumberFlag } from \"./common.js\";\n\nlet instance: StatsbeatConfiguration;\n\nclass StatsbeatConfiguration {\n // Initial Statsbeat options\n private initializedByShim = false;\n private currentStatsbeatInstrumentations: StatsbeatInstrumentations = {};\n private currentStatsbeatFeatures: StatsbeatFeatures = {};\n\n constructor() {\n // Check for shim initialization upon construction\n try {\n if (\n JSON.parse(process.env[AZURE_MONITOR_STATSBEAT_FEATURES] || \"{}\").feature &\n StatsbeatFeature.SHIM\n ) {\n this.initializedByShim = true;\n }\n } catch (error) {\n InternalLogger.getInstance().error(\n \"Failed to parse statsbeat config environment variable.\",\n error,\n );\n }\n }\n\n public setStatsbeatFeatures = (\n statsbeatInstrumentations: StatsbeatInstrumentations,\n statsbeatFeatures: StatsbeatFeatures,\n ) => {\n let statsbeatEnv: StatsbeatEnvironmentConfig;\n try {\n statsbeatEnv = JSON.parse(process.env[AZURE_MONITOR_STATSBEAT_FEATURES] || \"{}\");\n } catch (error) {\n InternalLogger.getInstance().error(\n \"Failed to parse statsbeat config environment variable.\",\n error,\n );\n }\n this.currentStatsbeatInstrumentations = {\n ...this.currentStatsbeatInstrumentations,\n ...statsbeatInstrumentations,\n };\n this.currentStatsbeatFeatures = { ...this.currentStatsbeatFeatures, ...statsbeatFeatures };\n\n // Set the statsbeat options for community instrumentations based on the environment variable\n const envInstrumentation = statsbeatEnv!.instrumentation;\n statsbeatInstrumentations = {\n ...this.currentStatsbeatInstrumentations,\n amqplib: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.AMQPLIB),\n cucumber: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.CUCUMBER),\n dataloader: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.DATALOADER),\n fs: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.FS),\n lruMemoizer: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.LRU_MEMOIZER),\n mongoose: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.MONGOOSE),\n runtimeNode: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.RUNTIME_NODE),\n socketIo: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.SOCKET_IO),\n tedious: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.TEDIOUS),\n undici: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.UNDICI),\n cassandra: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.CASSANDRA),\n connect: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.CONNECT),\n dns: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.DNS),\n express: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.EXPRESS),\n fastify: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.FASTIFY),\n genericPool: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.GENERIC_POOL),\n graphql: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.GRAPHQL),\n hapi: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.HAPI),\n ioredis: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.IOREDIS),\n knex: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.KNEX),\n koa: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.KOA),\n memcached: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.MEMCACHED),\n mysql2: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.MYSQL2),\n nestjsCore: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.NESTJS_CORE),\n net: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.NET),\n pino: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.PINO),\n restify: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.RESTIFY),\n router: hasNumberFlag(envInstrumentation, StatsbeatInstrumentation.ROUTER),\n };\n\n let instrumentationBitMap = StatsbeatInstrumentation.NONE;\n\n const instrumentationArray: Array<StatsbeatOption> = Object.entries(\n statsbeatInstrumentations,\n ).map((entry) => {\n return { option: entry[0], value: entry[1] };\n });\n\n // Map enabled option names to their assigned bits.\n for (let i = 0; i < instrumentationArray.length; i++) {\n if (instrumentationArray[i].value) {\n const instrumentationBit = StatsbeatInstrumentationsMap.get(instrumentationArray[i].option);\n if (instrumentationBit !== undefined) {\n instrumentationBitMap = addNumberFlag(instrumentationBitMap, instrumentationBit);\n }\n }\n }\n\n // Create feature bit map\n let featureBitMap = StatsbeatFeature.NONE;\n\n if (this.initializedByShim) {\n this.currentStatsbeatFeatures.shim = true;\n } else {\n this.currentStatsbeatFeatures.distro = true;\n }\n\n if (statsbeatFeatures.liveMetrics) {\n this.currentStatsbeatFeatures.liveMetrics = true;\n }\n\n const featureArray: Array<StatsbeatOption> = Object.entries(this.currentStatsbeatFeatures).map(\n (entry) => {\n return { option: entry[0], value: entry[1] };\n },\n );\n\n // Map the feature options to a bit map\n for (let i = 0; i < featureArray.length; i++) {\n if (featureArray[i].value) {\n featureBitMap |= StatsbeatFeaturesMap.get(featureArray[i].option)!;\n }\n }\n\n // Merge old statsbeat options with new statsbeat options overriding any common properties\n try {\n const currentFeaturesBitMap = Number(process.env[AZURE_MONITOR_STATSBEAT_FEATURES]);\n if (!isNaN(currentFeaturesBitMap)) {\n // The AKS resource detector feature always reflects whether *this* process was able to\n // read the AKS cluster metadata, so it is never inherited from a seeded bit map.\n featureBitMap |= removeNumberFlag(\n currentFeaturesBitMap,\n StatsbeatFeature.AKS_RESOURCE_DETECTOR_POPULATION,\n );\n }\n process.env[AZURE_MONITOR_STATSBEAT_FEATURES] = JSON.stringify({\n instrumentation: instrumentationBitMap,\n feature: featureBitMap,\n });\n } catch (error) {\n InternalLogger.getInstance().error(\"Failed call to JSON.stringify.\", error);\n }\n };\n}\n\n/**\n * Singleton Statsbeat instance.\n * @internal\n */\nexport function getInstance(): StatsbeatConfiguration {\n if (!instance) {\n instance = new StatsbeatConfiguration();\n }\n return instance;\n}\n"]}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@azure/monitor-opentelemetry",
3
3
  "author": "Microsoft Corporation",
4
4
  "sdk-type": "client",
5
- "version": "1.19.0",
5
+ "version": "1.20.1",
6
6
  "description": "Azure Monitor OpenTelemetry (Node.js)",
7
7
  "main": "./dist/commonjs/index.js",
8
8
  "module": "./dist/esm/index.js",
@@ -44,23 +44,26 @@
44
44
  }
45
45
  },
46
46
  "devDependencies": {
47
+ "@azure-tools/test-utils-vitest": "^2.0.1",
48
+ "@azure/dev-tool": "^1.0.0",
49
+ "@azure/eslint-plugin-azure-sdk": "^3.0.0",
47
50
  "@azure/functions": "^4.9.0",
48
51
  "@azure/functions-old": "npm:@azure/functions@3.5.1",
49
- "@opentelemetry/exporter-metrics-otlp-http": "^0.220.0",
50
- "@opentelemetry/exporter-trace-otlp-http": "^0.220.0",
52
+ "@opentelemetry/exporter-metrics-otlp-http": "^0.221.0",
53
+ "@opentelemetry/exporter-trace-otlp-http": "^0.221.0",
54
+ "@types/bunyan": "^1.8.11",
51
55
  "@types/node": "^22.0.0",
52
- "@vitest/browser-playwright": "^4.1.2",
53
- "@vitest/coverage-istanbul": "^4.1.2",
56
+ "@vitest/browser-playwright": "^5.0.0",
57
+ "@vitest/coverage-istanbul": "^5.0.0",
58
+ "bunyan": "^1.8.15",
54
59
  "cross-env": "^10.1.0",
55
60
  "dotenv": "^16.6.1",
56
61
  "eslint": "^10.8.0",
57
62
  "prettier": "^3.9.1",
58
63
  "rimraf": "^6.1.0",
59
64
  "typescript": "~6.0.2",
60
- "vitest": "^4.1.2",
61
- "@azure-tools/test-utils-vitest": "^2.0.1",
62
- "@azure/dev-tool": "^1.0.0",
63
- "@azure/eslint-plugin-azure-sdk": "^3.0.0"
65
+ "vitest": "^5.0.0",
66
+ "winston": "^3.19.0"
64
67
  },
65
68
  "dependencies": {
66
69
  "@azure-rest/core-client": "^2.5.2",
@@ -69,30 +72,30 @@
69
72
  "@azure/core-tracing": "^1.2.0",
70
73
  "@azure/identity": "^4.13.1",
71
74
  "@azure/logger": "^1.3.0",
72
- "@azure/monitor-opentelemetry-exporter": "1.0.0-beta.44",
75
+ "@azure/monitor-opentelemetry-exporter": "1.0.0-beta.46",
73
76
  "@azure/opentelemetry-instrumentation-azure-sdk": "^1.1.0-beta.1",
74
77
  "@microsoft/applicationinsights-web-snippet": "^1.2.3",
75
78
  "@opentelemetry/api": "^1.9.1",
76
- "@opentelemetry/api-logs": "^0.220.0",
77
- "@opentelemetry/core": "^2.9.0",
78
- "@opentelemetry/instrumentation": "^0.220.0",
79
- "@opentelemetry/instrumentation-bunyan": "^0.65.0",
80
- "@opentelemetry/instrumentation-console": "^0.2.0",
81
- "@opentelemetry/instrumentation-http": "^0.220.0",
82
- "@opentelemetry/instrumentation-mongodb": "^0.73.0",
83
- "@opentelemetry/instrumentation-mysql": "^0.66.0",
84
- "@opentelemetry/instrumentation-pg": "^0.72.0",
85
- "@opentelemetry/instrumentation-redis": "^0.68.0",
86
- "@opentelemetry/instrumentation-winston": "^0.64.0",
87
- "@opentelemetry/resource-detector-azure": "^0.28.0",
88
- "@opentelemetry/resources": "^2.9.0",
89
- "@opentelemetry/sdk-logs": "^0.220.0",
90
- "@opentelemetry/sdk-metrics": "^2.9.0",
91
- "@opentelemetry/sdk-node": "^0.220.0",
92
- "@opentelemetry/sdk-trace-base": "^2.9.0",
93
- "@opentelemetry/sdk-trace-node": "^2.9.0",
94
- "@opentelemetry/semantic-conventions": "^1.40.0",
95
- "@opentelemetry/winston-transport": "^0.30.0",
79
+ "@opentelemetry/api-logs": "^0.221.0",
80
+ "@opentelemetry/core": "^2.10.0",
81
+ "@opentelemetry/instrumentation": "^0.221.0",
82
+ "@opentelemetry/instrumentation-bunyan": "^0.66.0",
83
+ "@opentelemetry/instrumentation-console": "^0.3.0",
84
+ "@opentelemetry/instrumentation-http": "^0.221.0",
85
+ "@opentelemetry/instrumentation-mongodb": "^0.74.0",
86
+ "@opentelemetry/instrumentation-mysql": "^0.67.0",
87
+ "@opentelemetry/instrumentation-pg": "^0.73.0",
88
+ "@opentelemetry/instrumentation-redis": "^0.69.0",
89
+ "@opentelemetry/instrumentation-winston": "^0.65.0",
90
+ "@opentelemetry/resource-detector-azure": "^0.29.0",
91
+ "@opentelemetry/resources": "^2.10.0",
92
+ "@opentelemetry/sdk-logs": "^0.221.0",
93
+ "@opentelemetry/sdk-metrics": "^2.10.0",
94
+ "@opentelemetry/sdk-node": "^0.221.0",
95
+ "@opentelemetry/sdk-trace-base": "^2.10.0",
96
+ "@opentelemetry/sdk-trace-node": "^2.10.0",
97
+ "@opentelemetry/semantic-conventions": "^1.43.0",
98
+ "@opentelemetry/winston-transport": "^0.31.0",
96
99
  "tslib": "^2.8.1"
97
100
  },
98
101
  "sideEffects": false,