@azure/monitor-opentelemetry-exporter 1.0.0-beta.31 → 1.0.0-beta.33

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 (195) hide show
  1. package/README.md +4 -4
  2. package/dist/commonjs/Declarations/Constants.d.ts +5 -0
  3. package/dist/commonjs/Declarations/Constants.d.ts.map +1 -1
  4. package/dist/commonjs/Declarations/Constants.js +6 -1
  5. package/dist/commonjs/Declarations/Constants.js.map +1 -1
  6. package/dist/commonjs/export/base.js +25 -14
  7. package/dist/commonjs/export/base.js.map +1 -1
  8. package/dist/commonjs/export/log.js +5 -4
  9. package/dist/commonjs/export/log.js.map +1 -1
  10. package/dist/commonjs/export/metric.js +5 -4
  11. package/dist/commonjs/export/metric.js.map +1 -1
  12. package/dist/commonjs/export/statsbeat/customerStatsbeat.d.ts +125 -0
  13. package/dist/commonjs/export/statsbeat/customerStatsbeat.d.ts.map +1 -0
  14. package/dist/commonjs/export/statsbeat/customerStatsbeat.js +480 -0
  15. package/dist/commonjs/export/statsbeat/customerStatsbeat.js.map +1 -0
  16. package/dist/commonjs/export/statsbeat/longIntervalStatsbeatMetrics.d.ts +7 -7
  17. package/dist/commonjs/export/statsbeat/longIntervalStatsbeatMetrics.d.ts.map +1 -1
  18. package/dist/commonjs/export/statsbeat/longIntervalStatsbeatMetrics.js +69 -30
  19. package/dist/commonjs/export/statsbeat/longIntervalStatsbeatMetrics.js.map +1 -1
  20. package/dist/commonjs/export/statsbeat/networkStatsbeatMetrics.d.ts +6 -1
  21. package/dist/commonjs/export/statsbeat/networkStatsbeatMetrics.d.ts.map +1 -1
  22. package/dist/commonjs/export/statsbeat/networkStatsbeatMetrics.js +115 -43
  23. package/dist/commonjs/export/statsbeat/networkStatsbeatMetrics.js.map +1 -1
  24. package/dist/commonjs/export/statsbeat/statsbeatExporter.d.ts +7 -0
  25. package/dist/commonjs/export/statsbeat/statsbeatExporter.d.ts.map +1 -1
  26. package/dist/commonjs/export/statsbeat/statsbeatExporter.js +25 -5
  27. package/dist/commonjs/export/statsbeat/statsbeatExporter.js.map +1 -1
  28. package/dist/commonjs/export/statsbeat/statsbeatMetrics.js +6 -8
  29. package/dist/commonjs/export/statsbeat/statsbeatMetrics.js.map +1 -1
  30. package/dist/commonjs/export/statsbeat/types.d.ts +52 -0
  31. package/dist/commonjs/export/statsbeat/types.d.ts.map +1 -1
  32. package/dist/commonjs/export/statsbeat/types.js +75 -1
  33. package/dist/commonjs/export/statsbeat/types.js.map +1 -1
  34. package/dist/commonjs/export/trace.js +6 -5
  35. package/dist/commonjs/export/trace.js.map +1 -1
  36. package/dist/commonjs/generated/applicationInsightsClient.js +9 -4
  37. package/dist/commonjs/generated/applicationInsightsClient.js.map +1 -1
  38. package/dist/commonjs/generated/models/mappers.js +145 -68
  39. package/dist/commonjs/generated/models/mappers.js.map +1 -1
  40. package/dist/commonjs/index.d.ts +2 -1
  41. package/dist/commonjs/index.d.ts.map +1 -1
  42. package/dist/commonjs/index.js +5 -3
  43. package/dist/commonjs/index.js.map +1 -1
  44. package/dist/commonjs/platform/nodejs/baseSender.d.ts +1 -0
  45. package/dist/commonjs/platform/nodejs/baseSender.d.ts.map +1 -1
  46. package/dist/commonjs/platform/nodejs/baseSender.js +101 -34
  47. package/dist/commonjs/platform/nodejs/baseSender.js.map +1 -1
  48. package/dist/commonjs/platform/nodejs/context/context.d.ts +0 -1
  49. package/dist/commonjs/platform/nodejs/context/context.d.ts.map +1 -1
  50. package/dist/commonjs/platform/nodejs/context/context.js +4 -8
  51. package/dist/commonjs/platform/nodejs/context/context.js.map +1 -1
  52. package/dist/commonjs/platform/nodejs/httpSender.js +11 -4
  53. package/dist/commonjs/platform/nodejs/httpSender.js.map +1 -1
  54. package/dist/commonjs/platform/nodejs/index.d.ts +1 -0
  55. package/dist/commonjs/platform/nodejs/index.d.ts.map +1 -1
  56. package/dist/commonjs/platform/nodejs/index.js +1 -0
  57. package/dist/commonjs/platform/nodejs/index.js.map +1 -1
  58. package/dist/commonjs/platform/nodejs/persist/fileAccessControl.js +7 -7
  59. package/dist/commonjs/platform/nodejs/persist/fileAccessControl.js.map +1 -1
  60. package/dist/commonjs/platform/nodejs/persist/fileSystemPersist.d.ts +9 -1
  61. package/dist/commonjs/platform/nodejs/persist/fileSystemPersist.d.ts.map +1 -1
  62. package/dist/commonjs/platform/nodejs/persist/fileSystemPersist.js +37 -16
  63. package/dist/commonjs/platform/nodejs/persist/fileSystemPersist.js.map +1 -1
  64. package/dist/commonjs/{sampling.d.ts → sampling/percentageSampler.d.ts} +2 -3
  65. package/dist/commonjs/sampling/percentageSampler.d.ts.map +1 -0
  66. package/dist/commonjs/{sampling.js → sampling/percentageSampler.js} +6 -39
  67. package/dist/commonjs/sampling/percentageSampler.js.map +1 -0
  68. package/dist/commonjs/sampling/rateLimitedSampler.d.ts +58 -0
  69. package/dist/commonjs/sampling/rateLimitedSampler.d.ts.map +1 -0
  70. package/dist/commonjs/sampling/rateLimitedSampler.js +118 -0
  71. package/dist/commonjs/sampling/rateLimitedSampler.js.map +1 -0
  72. package/dist/commonjs/sampling/samplingUtils.d.ts +17 -0
  73. package/dist/commonjs/sampling/samplingUtils.d.ts.map +1 -0
  74. package/dist/commonjs/sampling/samplingUtils.js +94 -0
  75. package/dist/commonjs/sampling/samplingUtils.js.map +1 -0
  76. package/dist/commonjs/tsdoc-metadata.json +11 -11
  77. package/dist/commonjs/types.d.ts.map +1 -1
  78. package/dist/commonjs/types.js +1 -0
  79. package/dist/commonjs/types.js.map +1 -1
  80. package/dist/commonjs/utils/common.js +2 -3
  81. package/dist/commonjs/utils/common.js.map +1 -1
  82. package/dist/commonjs/utils/connectionStringParser.js +3 -3
  83. package/dist/commonjs/utils/connectionStringParser.js.map +1 -1
  84. package/dist/commonjs/utils/constants/applicationinsights.d.ts +1 -1
  85. package/dist/commonjs/utils/constants/applicationinsights.js +1 -1
  86. package/dist/commonjs/utils/constants/applicationinsights.js.map +1 -1
  87. package/dist/commonjs/utils/eventhub.js +5 -2
  88. package/dist/commonjs/utils/eventhub.js.map +1 -1
  89. package/dist/commonjs/utils/logUtils.js +10 -9
  90. package/dist/commonjs/utils/logUtils.js.map +1 -1
  91. package/dist/commonjs/utils/metricUtils.d.ts.map +1 -1
  92. package/dist/commonjs/utils/metricUtils.js +6 -6
  93. package/dist/commonjs/utils/metricUtils.js.map +1 -1
  94. package/dist/commonjs/utils/spanUtils.d.ts.map +1 -1
  95. package/dist/commonjs/utils/spanUtils.js +16 -14
  96. package/dist/commonjs/utils/spanUtils.js.map +1 -1
  97. package/dist/esm/Declarations/Constants.d.ts +5 -0
  98. package/dist/esm/Declarations/Constants.d.ts.map +1 -1
  99. package/dist/esm/Declarations/Constants.js +5 -0
  100. package/dist/esm/Declarations/Constants.js.map +1 -1
  101. package/dist/esm/export/base.js +25 -14
  102. package/dist/esm/export/base.js.map +1 -1
  103. package/dist/esm/export/log.js +5 -4
  104. package/dist/esm/export/log.js.map +1 -1
  105. package/dist/esm/export/metric.js +5 -4
  106. package/dist/esm/export/metric.js.map +1 -1
  107. package/dist/esm/export/statsbeat/customerStatsbeat.d.ts +125 -0
  108. package/dist/esm/export/statsbeat/customerStatsbeat.d.ts.map +1 -0
  109. package/dist/esm/export/statsbeat/customerStatsbeat.js +475 -0
  110. package/dist/esm/export/statsbeat/customerStatsbeat.js.map +1 -0
  111. package/dist/esm/export/statsbeat/longIntervalStatsbeatMetrics.d.ts +7 -7
  112. package/dist/esm/export/statsbeat/longIntervalStatsbeatMetrics.d.ts.map +1 -1
  113. package/dist/esm/export/statsbeat/longIntervalStatsbeatMetrics.js +68 -30
  114. package/dist/esm/export/statsbeat/longIntervalStatsbeatMetrics.js.map +1 -1
  115. package/dist/esm/export/statsbeat/networkStatsbeatMetrics.d.ts +6 -1
  116. package/dist/esm/export/statsbeat/networkStatsbeatMetrics.d.ts.map +1 -1
  117. package/dist/esm/export/statsbeat/networkStatsbeatMetrics.js +115 -43
  118. package/dist/esm/export/statsbeat/networkStatsbeatMetrics.js.map +1 -1
  119. package/dist/esm/export/statsbeat/statsbeatExporter.d.ts +7 -0
  120. package/dist/esm/export/statsbeat/statsbeatExporter.d.ts.map +1 -1
  121. package/dist/esm/export/statsbeat/statsbeatExporter.js +25 -5
  122. package/dist/esm/export/statsbeat/statsbeatExporter.js.map +1 -1
  123. package/dist/esm/export/statsbeat/statsbeatMetrics.js +6 -8
  124. package/dist/esm/export/statsbeat/statsbeatMetrics.js.map +1 -1
  125. package/dist/esm/export/statsbeat/types.d.ts +52 -0
  126. package/dist/esm/export/statsbeat/types.d.ts.map +1 -1
  127. package/dist/esm/export/statsbeat/types.js +73 -0
  128. package/dist/esm/export/statsbeat/types.js.map +1 -1
  129. package/dist/esm/export/trace.js +6 -5
  130. package/dist/esm/export/trace.js.map +1 -1
  131. package/dist/esm/generated/applicationInsightsClient.js +9 -4
  132. package/dist/esm/generated/applicationInsightsClient.js.map +1 -1
  133. package/dist/esm/generated/models/mappers.js +145 -68
  134. package/dist/esm/generated/models/mappers.js.map +1 -1
  135. package/dist/esm/index.d.ts +2 -1
  136. package/dist/esm/index.d.ts.map +1 -1
  137. package/dist/esm/index.js +2 -1
  138. package/dist/esm/index.js.map +1 -1
  139. package/dist/esm/platform/nodejs/baseSender.d.ts +1 -0
  140. package/dist/esm/platform/nodejs/baseSender.d.ts.map +1 -1
  141. package/dist/esm/platform/nodejs/baseSender.js +104 -37
  142. package/dist/esm/platform/nodejs/baseSender.js.map +1 -1
  143. package/dist/esm/platform/nodejs/context/context.d.ts +0 -1
  144. package/dist/esm/platform/nodejs/context/context.d.ts.map +1 -1
  145. package/dist/esm/platform/nodejs/context/context.js +4 -8
  146. package/dist/esm/platform/nodejs/context/context.js.map +1 -1
  147. package/dist/esm/platform/nodejs/httpSender.js +11 -4
  148. package/dist/esm/platform/nodejs/httpSender.js.map +1 -1
  149. package/dist/esm/platform/nodejs/index.d.ts +1 -0
  150. package/dist/esm/platform/nodejs/index.d.ts.map +1 -1
  151. package/dist/esm/platform/nodejs/index.js +1 -0
  152. package/dist/esm/platform/nodejs/index.js.map +1 -1
  153. package/dist/esm/platform/nodejs/persist/fileAccessControl.js +7 -7
  154. package/dist/esm/platform/nodejs/persist/fileAccessControl.js.map +1 -1
  155. package/dist/esm/platform/nodejs/persist/fileSystemPersist.d.ts +9 -1
  156. package/dist/esm/platform/nodejs/persist/fileSystemPersist.d.ts.map +1 -1
  157. package/dist/esm/platform/nodejs/persist/fileSystemPersist.js +37 -16
  158. package/dist/esm/platform/nodejs/persist/fileSystemPersist.js.map +1 -1
  159. package/dist/esm/{sampling.d.ts → sampling/percentageSampler.d.ts} +2 -3
  160. package/dist/esm/sampling/percentageSampler.d.ts.map +1 -0
  161. package/dist/esm/{sampling.js → sampling/percentageSampler.js} +6 -39
  162. package/dist/esm/sampling/percentageSampler.js.map +1 -0
  163. package/dist/esm/sampling/rateLimitedSampler.d.ts +58 -0
  164. package/dist/esm/sampling/rateLimitedSampler.d.ts.map +1 -0
  165. package/dist/esm/sampling/rateLimitedSampler.js +114 -0
  166. package/dist/esm/sampling/rateLimitedSampler.js.map +1 -0
  167. package/dist/esm/sampling/samplingUtils.d.ts +17 -0
  168. package/dist/esm/sampling/samplingUtils.d.ts.map +1 -0
  169. package/dist/esm/sampling/samplingUtils.js +89 -0
  170. package/dist/esm/sampling/samplingUtils.js.map +1 -0
  171. package/dist/esm/types.d.ts.map +1 -1
  172. package/dist/esm/types.js +2 -1
  173. package/dist/esm/types.js.map +1 -1
  174. package/dist/esm/utils/common.js +2 -3
  175. package/dist/esm/utils/common.js.map +1 -1
  176. package/dist/esm/utils/connectionStringParser.js +3 -3
  177. package/dist/esm/utils/connectionStringParser.js.map +1 -1
  178. package/dist/esm/utils/constants/applicationinsights.d.ts +1 -1
  179. package/dist/esm/utils/constants/applicationinsights.js +1 -1
  180. package/dist/esm/utils/constants/applicationinsights.js.map +1 -1
  181. package/dist/esm/utils/eventhub.js +5 -2
  182. package/dist/esm/utils/eventhub.js.map +1 -1
  183. package/dist/esm/utils/logUtils.js +10 -9
  184. package/dist/esm/utils/logUtils.js.map +1 -1
  185. package/dist/esm/utils/metricUtils.d.ts.map +1 -1
  186. package/dist/esm/utils/metricUtils.js +6 -6
  187. package/dist/esm/utils/metricUtils.js.map +1 -1
  188. package/dist/esm/utils/spanUtils.d.ts.map +1 -1
  189. package/dist/esm/utils/spanUtils.js +16 -14
  190. package/dist/esm/utils/spanUtils.js.map +1 -1
  191. package/package.json +21 -26
  192. package/dist/commonjs/sampling.d.ts.map +0 -1
  193. package/dist/commonjs/sampling.js.map +0 -1
  194. package/dist/esm/sampling.d.ts.map +0 -1
  195. package/dist/esm/sampling.js.map +0 -1
@@ -11,6 +11,8 @@ const Constants = tslib_1.__importStar(require("../Declarations/Constants.js"));
11
11
  * @internal
12
12
  */
13
13
  class ConnectionStringParser {
14
+ static FIELDS_SEPARATOR = ";";
15
+ static FIELD_KEY_VALUE_SEPARATOR = "=";
14
16
  static parse(connectionString) {
15
17
  if (!connectionString) {
16
18
  return {};
@@ -23,7 +25,7 @@ class ConnectionStringParser {
23
25
  // only save fields with valid formats
24
26
  const key = kvParts[0].toLowerCase();
25
27
  const value = kvParts[1];
26
- return Object.assign(Object.assign({}, fields), { [key]: value });
28
+ return { ...fields, [key]: value };
27
29
  }
28
30
  api_1.diag.error("Connection string key-value pair is invalid: Entire connection string will be discarded");
29
31
  isValid = false;
@@ -78,6 +80,4 @@ class ConnectionStringParser {
78
80
  }
79
81
  }
80
82
  exports.ConnectionStringParser = ConnectionStringParser;
81
- ConnectionStringParser.FIELDS_SEPARATOR = ";";
82
- ConnectionStringParser.FIELD_KEY_VALUE_SEPARATOR = "=";
83
83
  //# sourceMappingURL=connectionStringParser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connectionStringParser.js","sourceRoot":"","sources":["../../../src/utils/connectionStringParser.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { diag } from \"@opentelemetry/api\";\nimport type { ConnectionString, ConnectionStringKey } from \"../Declarations/Contracts/index.js\";\nimport * as Constants from \"../Declarations/Constants.js\";\n\n/**\n * ConnectionString parser.\n * @internal\n */\nexport class ConnectionStringParser {\n private static readonly FIELDS_SEPARATOR = \";\";\n\n private static readonly FIELD_KEY_VALUE_SEPARATOR = \"=\";\n\n public static parse(connectionString?: string): ConnectionString {\n if (!connectionString) {\n return {};\n }\n\n const kvPairs = connectionString.split(ConnectionStringParser.FIELDS_SEPARATOR);\n let isValid = true;\n\n const result: ConnectionString = kvPairs.reduce((fields: ConnectionString, kv: string) => {\n const kvParts = kv.split(ConnectionStringParser.FIELD_KEY_VALUE_SEPARATOR);\n\n if (kvParts.length === 2) {\n // only save fields with valid formats\n const key = kvParts[0].toLowerCase() as ConnectionStringKey;\n const value = kvParts[1];\n return { ...fields, [key]: value };\n }\n diag.error(\n \"Connection string key-value pair is invalid: Entire connection string will be discarded\",\n );\n isValid = false;\n return fields;\n }, {});\n\n if (isValid && Object.keys(result).length > 0) {\n // this is a valid connection string, so parse the results\n\n if (result.endpointsuffix) {\n // use endpoint suffix where overrides are not provided\n const locationPrefix = result.location ? `${result.location}.` : \"\";\n result.ingestionendpoint =\n result.ingestionendpoint || `https://${locationPrefix}dc.${result.endpointsuffix}`;\n result.liveendpoint =\n result.liveendpoint || `https://${locationPrefix}live.${result.endpointsuffix}`;\n }\n\n result.ingestionendpoint = result.ingestionendpoint\n ? ConnectionStringParser.sanitizeUrl(result.ingestionendpoint)\n : Constants.DEFAULT_BREEZE_ENDPOINT;\n result.liveendpoint = result.liveendpoint\n ? ConnectionStringParser.sanitizeUrl(result.liveendpoint)\n : Constants.DEFAULT_LIVEMETRICS_ENDPOINT;\n if (result.authorization && result.authorization.toLowerCase() !== \"ikey\") {\n diag.warn(\n `Connection String contains an unsupported 'Authorization' value. Defaulting to 'Authorization=ikey'`,\n );\n }\n } else {\n diag.error(\"An invalid connection string was passed in. There may be telemetry loss\");\n }\n\n return result;\n }\n\n public static sanitizeUrl(url: string): string {\n let newUrl = url.trim();\n if (newUrl.indexOf(\"https://\") < 0) {\n // Try to update http to https\n newUrl = newUrl.replace(\"http://\", \"https://\");\n }\n // Remove final slash if present\n if (newUrl[newUrl.length - 1] === \"/\") {\n newUrl = newUrl.slice(0, -1);\n }\n return newUrl;\n }\n\n public static validateInstrumentationKey(iKey: string): boolean {\n if (iKey.startsWith(\"InstrumentationKey=\")) {\n const startIndex = iKey.indexOf(\"InstrumentationKey=\") + \"InstrumentationKey=\".length;\n const endIndex = iKey.indexOf(\";\", startIndex);\n iKey = iKey.substring(startIndex, endIndex);\n }\n const UUID_Regex = \"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$\";\n const regexp = new RegExp(UUID_Regex);\n return regexp.test(iKey);\n }\n}\n"]}
1
+ {"version":3,"file":"connectionStringParser.js","sourceRoot":"","sources":["../../../src/utils/connectionStringParser.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { diag } from \"@opentelemetry/api\";\nimport type { ConnectionString, ConnectionStringKey } from \"../Declarations/Contracts/index.js\";\nimport * as Constants from \"../Declarations/Constants.js\";\n\n/**\n * ConnectionString parser.\n * @internal\n */\nexport class ConnectionStringParser {\n private static readonly FIELDS_SEPARATOR = \";\";\n\n private static readonly FIELD_KEY_VALUE_SEPARATOR = \"=\";\n\n public static parse(connectionString?: string): ConnectionString {\n if (!connectionString) {\n return {};\n }\n\n const kvPairs = connectionString.split(ConnectionStringParser.FIELDS_SEPARATOR);\n let isValid = true;\n\n const result: ConnectionString = kvPairs.reduce((fields: ConnectionString, kv: string) => {\n const kvParts = kv.split(ConnectionStringParser.FIELD_KEY_VALUE_SEPARATOR);\n\n if (kvParts.length === 2) {\n // only save fields with valid formats\n const key = kvParts[0].toLowerCase() as ConnectionStringKey;\n const value = kvParts[1];\n return { ...fields, [key]: value };\n }\n diag.error(\n \"Connection string key-value pair is invalid: Entire connection string will be discarded\",\n );\n isValid = false;\n return fields;\n }, {});\n\n if (isValid && Object.keys(result).length > 0) {\n // this is a valid connection string, so parse the results\n\n if (result.endpointsuffix) {\n // use endpoint suffix where overrides are not provided\n const locationPrefix = result.location ? `${result.location}.` : \"\";\n result.ingestionendpoint =\n result.ingestionendpoint || `https://${locationPrefix}dc.${result.endpointsuffix}`;\n result.liveendpoint =\n result.liveendpoint || `https://${locationPrefix}live.${result.endpointsuffix}`;\n }\n\n result.ingestionendpoint = result.ingestionendpoint\n ? ConnectionStringParser.sanitizeUrl(result.ingestionendpoint)\n : Constants.DEFAULT_BREEZE_ENDPOINT;\n result.liveendpoint = result.liveendpoint\n ? ConnectionStringParser.sanitizeUrl(result.liveendpoint)\n : Constants.DEFAULT_LIVEMETRICS_ENDPOINT;\n if (result.authorization && result.authorization.toLowerCase() !== \"ikey\") {\n diag.warn(\n `Connection String contains an unsupported 'Authorization' value. Defaulting to 'Authorization=ikey'`,\n );\n }\n } else {\n diag.error(\"An invalid connection string was passed in. There may be telemetry loss\");\n }\n\n return result;\n }\n\n public static sanitizeUrl(url: string): string {\n let newUrl = url.trim();\n if (newUrl.indexOf(\"https://\") < 0) {\n // Try to update http to https\n newUrl = newUrl.replace(\"http://\", \"https://\");\n }\n // Remove final slash if present\n if (newUrl[newUrl.length - 1] === \"/\") {\n newUrl = newUrl.slice(0, -1);\n }\n return newUrl;\n }\n\n public static validateInstrumentationKey(iKey: string): boolean {\n if (iKey.startsWith(\"InstrumentationKey=\")) {\n const startIndex = iKey.indexOf(\"InstrumentationKey=\") + \"InstrumentationKey=\".length;\n const endIndex = iKey.indexOf(\";\", startIndex);\n iKey = iKey.substring(startIndex, endIndex);\n }\n const UUID_Regex = \"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$\";\n const regexp = new RegExp(UUID_Regex);\n return regexp.test(iKey);\n }\n}\n"]}
@@ -17,7 +17,7 @@ export declare const TIME_SINCE_ENQUEUED = "timeSinceEnqueued";
17
17
  * AzureMonitorTraceExporter version.
18
18
  * @internal
19
19
  */
20
- export declare const packageVersion = "1.0.0-beta.31";
20
+ export declare const packageVersion = "1.0.0-beta.33";
21
21
  export declare enum DependencyTypes {
22
22
  InProc = "InProc",
23
23
  QueueMessage = "Queue Message",
@@ -22,7 +22,7 @@ exports.TIME_SINCE_ENQUEUED = "timeSinceEnqueued";
22
22
  * AzureMonitorTraceExporter version.
23
23
  * @internal
24
24
  */
25
- exports.packageVersion = "1.0.0-beta.31";
25
+ exports.packageVersion = "1.0.0-beta.33";
26
26
  var DependencyTypes;
27
27
  (function (DependencyTypes) {
28
28
  DependencyTypes["InProc"] = "InProc";
@@ -1 +1 @@
1
- {"version":3,"file":"applicationinsights.js","sourceRoot":"","sources":["../../../../src/utils/constants/applicationinsights.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC;;;GAGG;AACU,QAAA,QAAQ,GAAG,WAAW,CAAC;AACpC;;;GAGG;AACU,QAAA,aAAa,GAAG,cAAc,CAAC;AAC5C;;;GAGG;AACU,QAAA,mBAAmB,GAAG,mBAAmB,CAAC;AACvD;;;GAGG;AACU,QAAA,cAAc,GAAG,eAAe,CAAC;AAE9C,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,iDAA8B,CAAA;IAC9B,8BAAW,CAAA;IACX,gCAAa,CAAA;IACb,gCAAa,CAAA;IACb,sCAAmB,CAAA;AACrB,CAAC,EAPW,eAAe,+BAAf,eAAe,QAO1B;AAEY,QAAA,sBAAsB,GAAG,uBAAuB,CAAC;AACjD,QAAA,2BAA2B,GAAG,cAAc,CAAC;AAC7C,QAAA,kCAAkC,GAAG,6BAA6B,CAAC;AAEnE,QAAA,8BAA8B,GAAG,uCAAuC,CAAC;AACzE,QAAA,gCAAgC,GAAG,yCAAyC,CAAC;AAC7E,QAAA,+BAA+B,GAAG,wCAAwC,CAAC;AAC3E,QAAA,mCAAmC,GAAG,4CAA4C,CAAC;AACnF,QAAA,4BAA4B,GAAG,qCAAqC,CAAC;AAErE,QAAA,kCAAkC,GAAG,aAAa,CAAC;AACnD,QAAA,oCAAoC,GAAG,eAAe,CAAC;AACvD,QAAA,mCAAmC,GAAG,cAAc,CAAC;AACrD,QAAA,uCAAuC,GAAG,kBAAkB,CAAC;AAC7D,QAAA,gCAAgC,GAAG,WAAW,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * AI MS Links.\n * @internal\n */\nexport const MS_LINKS = \"_MS.links\";\n/**\n * AI enqueued time attribute.\n * @internal\n */\nexport const ENQUEUED_TIME = \"enqueuedTime\";\n/**\n * AI time since enqueued attribute.\n * @internal\n */\nexport const TIME_SINCE_ENQUEUED = \"timeSinceEnqueued\";\n/**\n * AzureMonitorTraceExporter version.\n * @internal\n */\nexport const packageVersion = \"1.0.0-beta.31\";\n\nexport enum DependencyTypes {\n InProc = \"InProc\",\n QueueMessage = \"Queue Message\",\n Sql = \"SQL\",\n Http = \"Http\",\n Grpc = \"GRPC\",\n Wcf = \"WCF Service\",\n}\n\nexport const AzureMonitorSampleRate = \"microsoft.sample_rate\";\nexport const ApplicationInsightsBaseType = \"_MS.baseType\";\nexport const ApplicationInsightsCustomEventName = \"microsoft.custom_event.name\";\n\nexport const ApplicationInsightsMessageName = \"Microsoft.ApplicationInsights.Message\";\nexport const ApplicationInsightsExceptionName = \"Microsoft.ApplicationInsights.Exception\";\nexport const ApplicationInsightsPageViewName = \"Microsoft.ApplicationInsights.PageView\";\nexport const ApplicationInsightsAvailabilityName = \"Microsoft.ApplicationInsights.Availability\";\nexport const ApplicationInsightsEventName = \"Microsoft.ApplicationInsights.Event\";\n\nexport const ApplicationInsightsMessageBaseType = \"MessageData\";\nexport const ApplicationInsightsExceptionBaseType = \"ExceptionData\";\nexport const ApplicationInsightsPageViewBaseType = \"PageViewData\";\nexport const ApplicationInsightsAvailabilityBaseType = \"AvailabilityData\";\nexport const ApplicationInsightsEventBaseType = \"EventData\";\n"]}
1
+ {"version":3,"file":"applicationinsights.js","sourceRoot":"","sources":["../../../../src/utils/constants/applicationinsights.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC;;;GAGG;AACU,QAAA,QAAQ,GAAG,WAAW,CAAC;AACpC;;;GAGG;AACU,QAAA,aAAa,GAAG,cAAc,CAAC;AAC5C;;;GAGG;AACU,QAAA,mBAAmB,GAAG,mBAAmB,CAAC;AACvD;;;GAGG;AACU,QAAA,cAAc,GAAG,eAAe,CAAC;AAE9C,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,iDAA8B,CAAA;IAC9B,8BAAW,CAAA;IACX,gCAAa,CAAA;IACb,gCAAa,CAAA;IACb,sCAAmB,CAAA;AACrB,CAAC,EAPW,eAAe,+BAAf,eAAe,QAO1B;AAEY,QAAA,sBAAsB,GAAG,uBAAuB,CAAC;AACjD,QAAA,2BAA2B,GAAG,cAAc,CAAC;AAC7C,QAAA,kCAAkC,GAAG,6BAA6B,CAAC;AAEnE,QAAA,8BAA8B,GAAG,uCAAuC,CAAC;AACzE,QAAA,gCAAgC,GAAG,yCAAyC,CAAC;AAC7E,QAAA,+BAA+B,GAAG,wCAAwC,CAAC;AAC3E,QAAA,mCAAmC,GAAG,4CAA4C,CAAC;AACnF,QAAA,4BAA4B,GAAG,qCAAqC,CAAC;AAErE,QAAA,kCAAkC,GAAG,aAAa,CAAC;AACnD,QAAA,oCAAoC,GAAG,eAAe,CAAC;AACvD,QAAA,mCAAmC,GAAG,cAAc,CAAC;AACrD,QAAA,uCAAuC,GAAG,kBAAkB,CAAC;AAC7D,QAAA,gCAAgC,GAAG,WAAW,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * AI MS Links.\n * @internal\n */\nexport const MS_LINKS = \"_MS.links\";\n/**\n * AI enqueued time attribute.\n * @internal\n */\nexport const ENQUEUED_TIME = \"enqueuedTime\";\n/**\n * AI time since enqueued attribute.\n * @internal\n */\nexport const TIME_SINCE_ENQUEUED = \"timeSinceEnqueued\";\n/**\n * AzureMonitorTraceExporter version.\n * @internal\n */\nexport const packageVersion = \"1.0.0-beta.33\";\n\nexport enum DependencyTypes {\n InProc = \"InProc\",\n QueueMessage = \"Queue Message\",\n Sql = \"SQL\",\n Http = \"Http\",\n Grpc = \"GRPC\",\n Wcf = \"WCF Service\",\n}\n\nexport const AzureMonitorSampleRate = \"microsoft.sample_rate\";\nexport const ApplicationInsightsBaseType = \"_MS.baseType\";\nexport const ApplicationInsightsCustomEventName = \"microsoft.custom_event.name\";\n\nexport const ApplicationInsightsMessageName = \"Microsoft.ApplicationInsights.Message\";\nexport const ApplicationInsightsExceptionName = \"Microsoft.ApplicationInsights.Exception\";\nexport const ApplicationInsightsPageViewName = \"Microsoft.ApplicationInsights.PageView\";\nexport const ApplicationInsightsAvailabilityName = \"Microsoft.ApplicationInsights.Availability\";\nexport const ApplicationInsightsEventName = \"Microsoft.ApplicationInsights.Event\";\n\nexport const ApplicationInsightsMessageBaseType = \"MessageData\";\nexport const ApplicationInsightsExceptionBaseType = \"ExceptionData\";\nexport const ApplicationInsightsPageViewBaseType = \"PageViewData\";\nexport const ApplicationInsightsAvailabilityBaseType = \"AvailabilityData\";\nexport const ApplicationInsightsEventBaseType = \"EventData\";\n"]}
@@ -16,7 +16,7 @@ const getTimeSinceEnqueued = (span) => {
16
16
  let sumEnqueueDiffs = 0;
17
17
  const startTimeMs = (0, core_1.hrTimeToMilliseconds)(span.startTime);
18
18
  span.links.forEach(({ attributes }) => {
19
- const enqueuedTime = attributes === null || attributes === void 0 ? void 0 : attributes[applicationinsights_js_1.ENQUEUED_TIME];
19
+ const enqueuedTime = attributes?.[applicationinsights_js_1.ENQUEUED_TIME];
20
20
  if (enqueuedTime) {
21
21
  countEnqueueDiffs += 1;
22
22
  sumEnqueueDiffs += startTimeMs - (parseFloat(enqueuedTime.toString()) || 0);
@@ -48,7 +48,10 @@ const parseEventHubSpan = (span, baseData) => {
48
48
  case api_1.SpanKind.CONSUMER:
49
49
  baseData.type = `Queue Message | ${namespace}`;
50
50
  baseData.source = `${peerAddress}/${messageBusDestination}`;
51
- baseData.measurements = Object.assign(Object.assign({}, baseData.measurements), { [applicationinsights_js_1.TIME_SINCE_ENQUEUED]: getTimeSinceEnqueued(span) });
51
+ baseData.measurements = {
52
+ ...baseData.measurements,
53
+ [applicationinsights_js_1.TIME_SINCE_ENQUEUED]: getTimeSinceEnqueued(span),
54
+ };
52
55
  break;
53
56
  default: // no op
54
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"eventhub.js","sourceRoot":"","sources":["../../../src/utils/eventhub.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,4CAA8C;AAC9C,8CAA2D;AAC3D,8EAA6E;AAG7E,+EAAwF;AAExF,sEAAsF;AAEtF;;GAEG;AACH,MAAM,oBAAoB,GAAG,CAAC,IAAkB,EAAU,EAAE;IAC1D,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,MAAM,WAAW,GAAG,IAAA,2BAAoB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEzD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;QACpC,MAAM,YAAY,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,sCAAa,CAAoB,CAAC;QACpE,IAAI,YAAY,EAAE,CAAC;YACjB,iBAAiB,IAAI,CAAC,CAAC;YACvB,eAAe,IAAI,WAAW,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,iBAAiB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC,CAAC;AAEF;;;;;GAKG;AACI,MAAM,iBAAiB,GAAG,CAC/B,IAAkB,EAClB,QAA4C,EACtC,EAAE;IACR,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,6BAAW,CAA6B,CAAC;IAC3E,MAAM,WAAW,GACf,CAAC,IAAI,CAAC,UAAU,CAAC,6CAAsB,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;QAC/B,SAAS,CACZ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,sBAAsB;IAC7C,MAAM,qBAAqB,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,uCAAqB,CAAC,IAAI,SAAS,CAAW,CAAC;IAE9F,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,cAAQ,CAAC,MAAM;YAClB,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAC;YAC1B,QAAQ,CAAC,MAAM,GAAG,GAAG,WAAW,IAAI,qBAAqB,EAAE,CAAC;YAC5D,MAAM;QACR,KAAK,cAAQ,CAAC,QAAQ;YACpB,QAAQ,CAAC,IAAI,GAAG,mBAAmB,SAAS,EAAE,CAAC;YAC/C,QAAQ,CAAC,MAAM,GAAG,GAAG,WAAW,IAAI,qBAAqB,EAAE,CAAC;YAC5D,MAAM;QACR,KAAK,cAAQ,CAAC,QAAQ;YACpB,QAAQ,CAAC,IAAI,GAAG,mBAAmB,SAAS,EAAE,CAAC;YAC9C,QAAgB,CAAC,MAAM,GAAG,GAAG,WAAW,IAAI,qBAAqB,EAAE,CAAC;YACrE,QAAQ,CAAC,YAAY,mCAChB,QAAQ,CAAC,YAAY,KACxB,CAAC,4CAAmB,CAAC,EAAE,oBAAoB,CAAC,IAAI,CAAC,GAClD,CAAC;YACF,MAAM;QACR,QAAQ,CAAC,QAAQ;IACnB,CAAC;AACH,CAAC,CAAC;AA/BW,QAAA,iBAAiB,qBA+B5B","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { SpanKind } from \"@opentelemetry/api\";\nimport { hrTimeToMilliseconds } from \"@opentelemetry/core\";\nimport { SEMATTRS_NET_PEER_NAME } from \"@opentelemetry/semantic-conventions\";\nimport type { ReadableSpan } from \"@opentelemetry/sdk-trace-base\";\nimport type { RemoteDependencyData, RequestData } from \"../generated/index.js\";\nimport { TIME_SINCE_ENQUEUED, ENQUEUED_TIME } from \"./constants/applicationinsights.js\";\nimport type { MicrosoftEventHub } from \"./constants/span/azAttributes.js\";\nimport { AzNamespace, MessageBusDestination } from \"./constants/span/azAttributes.js\";\n\n/**\n * Average span.links[].attributes.enqueuedTime\n */\nconst getTimeSinceEnqueued = (span: ReadableSpan): number => {\n let countEnqueueDiffs = 0;\n let sumEnqueueDiffs = 0;\n const startTimeMs = hrTimeToMilliseconds(span.startTime);\n\n span.links.forEach(({ attributes }) => {\n const enqueuedTime = attributes?.[ENQUEUED_TIME] as string | number;\n if (enqueuedTime) {\n countEnqueueDiffs += 1;\n sumEnqueueDiffs += startTimeMs - (parseFloat(enqueuedTime.toString()) || 0);\n }\n });\n\n return Math.max(sumEnqueueDiffs / (countEnqueueDiffs || 1), 0);\n};\n\n/**\n * Implementation of Mapping to Azure Monitor\n *\n * https://gist.github.com/lmolkova/e4215c0f44a49ef824983382762e6b92#mapping-to-azure-monitor-application-insights-telemetry\n * @internal\n */\nexport const parseEventHubSpan = (\n span: ReadableSpan,\n baseData: RequestData | RemoteDependencyData,\n): void => {\n const namespace = span.attributes[AzNamespace] as typeof MicrosoftEventHub;\n const peerAddress = (\n (span.attributes[SEMATTRS_NET_PEER_NAME] ||\n span.attributes[\"peer.address\"] ||\n \"unknown\") as string\n ).replace(/\\/$/g, \"\"); // remove trailing \"/\"\n const messageBusDestination = (span.attributes[MessageBusDestination] || \"unknown\") as string;\n\n switch (span.kind) {\n case SpanKind.CLIENT:\n baseData.type = namespace;\n baseData.target = `${peerAddress}/${messageBusDestination}`;\n break;\n case SpanKind.PRODUCER:\n baseData.type = `Queue Message | ${namespace}`;\n baseData.target = `${peerAddress}/${messageBusDestination}`;\n break;\n case SpanKind.CONSUMER:\n baseData.type = `Queue Message | ${namespace}`;\n (baseData as any).source = `${peerAddress}/${messageBusDestination}`;\n baseData.measurements = {\n ...baseData.measurements,\n [TIME_SINCE_ENQUEUED]: getTimeSinceEnqueued(span),\n };\n break;\n default: // no op\n }\n};\n"]}
1
+ {"version":3,"file":"eventhub.js","sourceRoot":"","sources":["../../../src/utils/eventhub.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,4CAA8C;AAC9C,8CAA2D;AAC3D,8EAA6E;AAG7E,+EAAwF;AAExF,sEAAsF;AAEtF;;GAEG;AACH,MAAM,oBAAoB,GAAG,CAAC,IAAkB,EAAU,EAAE;IAC1D,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,MAAM,WAAW,GAAG,IAAA,2BAAoB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEzD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;QACpC,MAAM,YAAY,GAAG,UAAU,EAAE,CAAC,sCAAa,CAAoB,CAAC;QACpE,IAAI,YAAY,EAAE,CAAC;YACjB,iBAAiB,IAAI,CAAC,CAAC;YACvB,eAAe,IAAI,WAAW,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,iBAAiB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC,CAAC;AAEF;;;;;GAKG;AACI,MAAM,iBAAiB,GAAG,CAC/B,IAAkB,EAClB,QAA4C,EACtC,EAAE;IACR,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,6BAAW,CAA6B,CAAC;IAC3E,MAAM,WAAW,GACf,CAAC,IAAI,CAAC,UAAU,CAAC,6CAAsB,CAAC;QACtC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;QAC/B,SAAS,CACZ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,sBAAsB;IAC7C,MAAM,qBAAqB,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,uCAAqB,CAAC,IAAI,SAAS,CAAW,CAAC;IAE9F,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,cAAQ,CAAC,MAAM;YAClB,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAC;YAC1B,QAAQ,CAAC,MAAM,GAAG,GAAG,WAAW,IAAI,qBAAqB,EAAE,CAAC;YAC5D,MAAM;QACR,KAAK,cAAQ,CAAC,QAAQ;YACpB,QAAQ,CAAC,IAAI,GAAG,mBAAmB,SAAS,EAAE,CAAC;YAC/C,QAAQ,CAAC,MAAM,GAAG,GAAG,WAAW,IAAI,qBAAqB,EAAE,CAAC;YAC5D,MAAM;QACR,KAAK,cAAQ,CAAC,QAAQ;YACpB,QAAQ,CAAC,IAAI,GAAG,mBAAmB,SAAS,EAAE,CAAC;YAC9C,QAAgB,CAAC,MAAM,GAAG,GAAG,WAAW,IAAI,qBAAqB,EAAE,CAAC;YACrE,QAAQ,CAAC,YAAY,GAAG;gBACtB,GAAG,QAAQ,CAAC,YAAY;gBACxB,CAAC,4CAAmB,CAAC,EAAE,oBAAoB,CAAC,IAAI,CAAC;aAClD,CAAC;YACF,MAAM;QACR,QAAQ,CAAC,QAAQ;IACnB,CAAC;AACH,CAAC,CAAC;AA/BW,QAAA,iBAAiB,qBA+B5B","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { SpanKind } from \"@opentelemetry/api\";\nimport { hrTimeToMilliseconds } from \"@opentelemetry/core\";\nimport { SEMATTRS_NET_PEER_NAME } from \"@opentelemetry/semantic-conventions\";\nimport type { ReadableSpan } from \"@opentelemetry/sdk-trace-base\";\nimport type { RemoteDependencyData, RequestData } from \"../generated/index.js\";\nimport { TIME_SINCE_ENQUEUED, ENQUEUED_TIME } from \"./constants/applicationinsights.js\";\nimport type { MicrosoftEventHub } from \"./constants/span/azAttributes.js\";\nimport { AzNamespace, MessageBusDestination } from \"./constants/span/azAttributes.js\";\n\n/**\n * Average span.links[].attributes.enqueuedTime\n */\nconst getTimeSinceEnqueued = (span: ReadableSpan): number => {\n let countEnqueueDiffs = 0;\n let sumEnqueueDiffs = 0;\n const startTimeMs = hrTimeToMilliseconds(span.startTime);\n\n span.links.forEach(({ attributes }) => {\n const enqueuedTime = attributes?.[ENQUEUED_TIME] as string | number;\n if (enqueuedTime) {\n countEnqueueDiffs += 1;\n sumEnqueueDiffs += startTimeMs - (parseFloat(enqueuedTime.toString()) || 0);\n }\n });\n\n return Math.max(sumEnqueueDiffs / (countEnqueueDiffs || 1), 0);\n};\n\n/**\n * Implementation of Mapping to Azure Monitor\n *\n * https://gist.github.com/lmolkova/e4215c0f44a49ef824983382762e6b92#mapping-to-azure-monitor-application-insights-telemetry\n * @internal\n */\nexport const parseEventHubSpan = (\n span: ReadableSpan,\n baseData: RequestData | RemoteDependencyData,\n): void => {\n const namespace = span.attributes[AzNamespace] as typeof MicrosoftEventHub;\n const peerAddress = (\n (span.attributes[SEMATTRS_NET_PEER_NAME] ||\n span.attributes[\"peer.address\"] ||\n \"unknown\") as string\n ).replace(/\\/$/g, \"\"); // remove trailing \"/\"\n const messageBusDestination = (span.attributes[MessageBusDestination] || \"unknown\") as string;\n\n switch (span.kind) {\n case SpanKind.CLIENT:\n baseData.type = namespace;\n baseData.target = `${peerAddress}/${messageBusDestination}`;\n break;\n case SpanKind.PRODUCER:\n baseData.type = `Queue Message | ${namespace}`;\n baseData.target = `${peerAddress}/${messageBusDestination}`;\n break;\n case SpanKind.CONSUMER:\n baseData.type = `Queue Message | ${namespace}`;\n (baseData as any).source = `${peerAddress}/${messageBusDestination}`;\n baseData.measurements = {\n ...baseData.measurements,\n [TIME_SINCE_ENQUEUED]: getTimeSinceEnqueued(span),\n };\n break;\n default: // no op\n }\n};\n"]}
@@ -96,18 +96,20 @@ function logToEnvelope(log, ikey) {
96
96
  version: 1,
97
97
  data: {
98
98
  baseType,
99
- baseData: Object.assign(Object.assign({}, baseData), { properties,
100
- measurements }),
99
+ baseData: {
100
+ ...baseData,
101
+ properties,
102
+ measurements,
103
+ },
101
104
  },
102
105
  };
103
106
  }
104
107
  function createTagsFromLog(log) {
105
- var _a, _b;
106
108
  const tags = (0, common_js_1.createTagsFromResource)(log.resource);
107
- if ((_a = log.spanContext) === null || _a === void 0 ? void 0 : _a.traceId) {
109
+ if (log.spanContext?.traceId) {
108
110
  tags[index_js_1.KnownContextTagKeys.AiOperationId] = log.spanContext.traceId;
109
111
  }
110
- if ((_b = log.spanContext) === null || _b === void 0 ? void 0 : _b.spanId) {
112
+ if (log.spanContext?.spanId) {
111
113
  tags[index_js_1.KnownContextTagKeys.AiOperationParentId] = log.spanContext.spanId;
112
114
  }
113
115
  if (log.attributes[index_js_1.KnownContextTagKeys.AiOperationName]) {
@@ -179,10 +181,9 @@ function getLegacyApplicationInsightsName(log) {
179
181
  return name;
180
182
  }
181
183
  function getLegacyApplicationInsightsMeasurements(log) {
182
- var _a;
183
184
  let measurements = {};
184
- if ((_a = log.body) === null || _a === void 0 ? void 0 : _a.measurements) {
185
- measurements = Object.assign({}, log.body.measurements);
185
+ if (log.body?.measurements) {
186
+ measurements = { ...log.body.measurements };
186
187
  }
187
188
  return measurements;
188
189
  }
@@ -209,7 +210,7 @@ function getLegacyApplicationInsightsBaseData(log) {
209
210
  baseData = log.body;
210
211
  break;
211
212
  }
212
- if (typeof (baseData === null || baseData === void 0 ? void 0 : baseData.message) === "object") {
213
+ if (typeof baseData?.message === "object") {
213
214
  baseData.message = JSON.stringify(baseData.message);
214
215
  }
215
216
  }
@@ -1 +1 @@
1
- {"version":3,"file":"logUtils.js","sourceRoot":"","sources":["../../../src/utils/logUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n AvailabilityData,\n TelemetryItem as Envelope,\n MessageData,\n MonitorDomain,\n PageViewData,\n TelemetryEventData,\n TelemetryExceptionData,\n TelemetryExceptionDetails,\n} from \"../generated/index.js\";\nimport { KnownContextTagKeys, KnownSeverityLevel } from \"../generated/index.js\";\nimport {\n createTagsFromResource,\n hrTimeToDate,\n isSyntheticSource,\n serializeAttribute,\n} from \"./common.js\";\nimport type { ReadableLogRecord } from \"@opentelemetry/sdk-logs\";\nimport {\n ATTR_EXCEPTION_MESSAGE,\n ATTR_EXCEPTION_STACKTRACE,\n ATTR_EXCEPTION_TYPE,\n} from \"@opentelemetry/semantic-conventions\";\nimport type { Measurements, Properties, Tags } from \"../types.js\";\nimport { httpSemanticValues, legacySemanticValues, MaxPropertyLengths } from \"../types.js\";\nimport type { Attributes } from \"@opentelemetry/api\";\nimport { diag } from \"@opentelemetry/api\";\nimport {\n ApplicationInsightsAvailabilityBaseType,\n ApplicationInsightsAvailabilityName,\n ApplicationInsightsBaseType,\n ApplicationInsightsCustomEventName,\n ApplicationInsightsEventBaseType,\n ApplicationInsightsEventName,\n ApplicationInsightsExceptionBaseType,\n ApplicationInsightsExceptionName,\n ApplicationInsightsMessageBaseType,\n ApplicationInsightsMessageName,\n ApplicationInsightsPageViewBaseType,\n ApplicationInsightsPageViewName,\n} from \"./constants/applicationinsights.js\";\nimport { getLocationIp } from \"./spanUtils.js\";\n\n/**\n * Log to Azure envelope parsing.\n * @internal\n */\nexport function logToEnvelope(log: ReadableLogRecord, ikey: string): Envelope | undefined {\n const time = hrTimeToDate(log.hrTime);\n const sampleRate = 100;\n const instrumentationKey = ikey;\n const tags = createTagsFromLog(log);\n // eslint-disable-next-line prefer-const\n let [properties, measurements] = createPropertiesFromLog(log);\n let name: string;\n let baseType: string;\n let baseData: MonitorDomain;\n\n const exceptionStacktrace = log.attributes[ATTR_EXCEPTION_STACKTRACE];\n const exceptionType = log.attributes[ATTR_EXCEPTION_TYPE];\n const isExceptionType: boolean = !!(exceptionType && exceptionStacktrace) || false;\n const isMessageType: boolean =\n !log.attributes[ApplicationInsightsBaseType] &&\n !log.attributes[ApplicationInsightsCustomEventName] &&\n !exceptionType;\n if (isExceptionType) {\n const exceptionMessage = log.attributes[ATTR_EXCEPTION_MESSAGE];\n name = ApplicationInsightsExceptionName;\n baseType = ApplicationInsightsExceptionBaseType;\n const exceptionDetails: TelemetryExceptionDetails = {\n typeName: String(exceptionType),\n message: String(exceptionMessage),\n hasFullStack: exceptionStacktrace ? true : false,\n stack: String(exceptionStacktrace),\n };\n const exceptionData: TelemetryExceptionData = {\n exceptions: [exceptionDetails],\n severityLevel: String(getSeverity(log.severityNumber)),\n version: 2,\n };\n baseData = exceptionData;\n } else if (log.attributes[ApplicationInsightsCustomEventName]) {\n name = ApplicationInsightsEventName;\n baseType = ApplicationInsightsEventBaseType;\n const eventData: TelemetryEventData = {\n name: String(log.attributes[ApplicationInsightsCustomEventName]),\n version: 2,\n };\n baseData = eventData;\n measurements = getLegacyApplicationInsightsMeasurements(log);\n } else if (isMessageType) {\n name = ApplicationInsightsMessageName;\n baseType = ApplicationInsightsMessageBaseType;\n const messageData: MessageData = {\n message: String(log.body),\n severityLevel: String(getSeverity(log.severityNumber)),\n version: 2,\n };\n baseData = messageData;\n } else {\n // If Legacy Application Insights Log\n baseType = String(log.attributes[ApplicationInsightsBaseType]);\n name = getLegacyApplicationInsightsName(log);\n baseData = getLegacyApplicationInsightsBaseData(log);\n measurements = getLegacyApplicationInsightsMeasurements(log);\n if (!baseData) {\n // Failed to parse log\n return;\n }\n }\n // Truncate properties\n if (baseData.message) {\n baseData.message = String(baseData.message).substring(0, MaxPropertyLengths.FIFTEEN_BIT);\n }\n if (properties) {\n for (const key of Object.keys(properties)) {\n properties[key] = String(properties[key]).substring(0, MaxPropertyLengths.THIRTEEN_BIT);\n }\n }\n return {\n name,\n sampleRate,\n time,\n instrumentationKey,\n tags,\n version: 1,\n data: {\n baseType,\n baseData: {\n ...baseData,\n properties,\n measurements,\n },\n },\n };\n}\n\nfunction createTagsFromLog(log: ReadableLogRecord): Tags {\n const tags: Tags = createTagsFromResource(log.resource);\n if (log.spanContext?.traceId) {\n tags[KnownContextTagKeys.AiOperationId] = log.spanContext.traceId;\n }\n if (log.spanContext?.spanId) {\n tags[KnownContextTagKeys.AiOperationParentId] = log.spanContext.spanId;\n }\n if (log.attributes[KnownContextTagKeys.AiOperationName]) {\n tags[KnownContextTagKeys.AiOperationName] = log.attributes[\n KnownContextTagKeys.AiOperationName\n ] as string;\n }\n if (isSyntheticSource(log.attributes as Attributes)) {\n tags[KnownContextTagKeys.AiOperationSyntheticSource] = \"True\";\n }\n getLocationIp(tags, log.attributes as Attributes);\n return tags;\n}\n\nfunction createPropertiesFromLog(log: ReadableLogRecord): [Properties, Measurements] {\n const measurements: Measurements = {};\n const properties: { [propertyName: string]: string } = {};\n if (log.attributes) {\n for (const key of Object.keys(log.attributes)) {\n // Avoid duplication ignoring fields already mapped.\n if (\n !(\n key.startsWith(\"_MS.\") ||\n key.startsWith(\"microsoft\") ||\n legacySemanticValues.includes(key) ||\n httpSemanticValues.includes(key as any) ||\n key === (KnownContextTagKeys.AiOperationName as string)\n )\n ) {\n properties[key] = serializeAttribute(log.attributes[key]);\n }\n }\n }\n return [properties, measurements];\n}\n\n// https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#field-severitynumber\nfunction getSeverity(severityNumber: number | undefined): KnownSeverityLevel | undefined {\n if (severityNumber) {\n if (severityNumber > 0 && severityNumber < 9) {\n return KnownSeverityLevel.Verbose;\n } else if (severityNumber >= 9 && severityNumber < 13) {\n return KnownSeverityLevel.Information;\n } else if (severityNumber >= 13 && severityNumber < 17) {\n return KnownSeverityLevel.Warning;\n } else if (severityNumber >= 17 && severityNumber < 21) {\n return KnownSeverityLevel.Error;\n } else if (severityNumber >= 21 && severityNumber < 25) {\n return KnownSeverityLevel.Critical;\n }\n }\n return;\n}\n\nfunction getLegacyApplicationInsightsName(log: ReadableLogRecord): string {\n let name = \"\";\n switch (log.attributes[ApplicationInsightsBaseType]) {\n case ApplicationInsightsAvailabilityBaseType:\n name = ApplicationInsightsAvailabilityName;\n break;\n case ApplicationInsightsExceptionBaseType:\n name = ApplicationInsightsExceptionName;\n break;\n case ApplicationInsightsMessageBaseType:\n name = ApplicationInsightsMessageName;\n break;\n case ApplicationInsightsPageViewBaseType:\n name = ApplicationInsightsPageViewName;\n break;\n case ApplicationInsightsEventBaseType:\n name = ApplicationInsightsEventName;\n break;\n }\n return name;\n}\n\nfunction getLegacyApplicationInsightsMeasurements(log: ReadableLogRecord): Measurements {\n let measurements: Measurements = {};\n if ((log.body as MonitorDomain)?.measurements) {\n measurements = { ...(log.body as MonitorDomain).measurements };\n }\n return measurements;\n}\n\nfunction getLegacyApplicationInsightsBaseData(log: ReadableLogRecord): MonitorDomain {\n let baseData: MonitorDomain = {\n version: 2,\n };\n if (log.body) {\n try {\n switch (log.attributes[ApplicationInsightsBaseType]) {\n case ApplicationInsightsAvailabilityBaseType:\n baseData = log.body as AvailabilityData;\n break;\n case ApplicationInsightsExceptionBaseType:\n baseData = log.body as TelemetryExceptionData;\n break;\n case ApplicationInsightsMessageBaseType:\n baseData = log.body as MessageData;\n break;\n case ApplicationInsightsPageViewBaseType:\n baseData = log.body as PageViewData;\n break;\n case ApplicationInsightsEventBaseType:\n baseData = log.body as TelemetryEventData;\n break;\n }\n if (typeof baseData?.message === \"object\") {\n baseData.message = JSON.stringify(baseData.message);\n }\n } catch (err) {\n diag.error(\"AzureMonitorLogExporter failed to parse Application Insights Telemetry\");\n }\n }\n return baseData;\n}\n"]}
1
+ {"version":3,"file":"logUtils.js","sourceRoot":"","sources":["../../../src/utils/logUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n AvailabilityData,\n TelemetryItem as Envelope,\n MessageData,\n MonitorDomain,\n PageViewData,\n TelemetryEventData,\n TelemetryExceptionData,\n TelemetryExceptionDetails,\n} from \"../generated/index.js\";\nimport { KnownContextTagKeys, KnownSeverityLevel } from \"../generated/index.js\";\nimport {\n createTagsFromResource,\n hrTimeToDate,\n isSyntheticSource,\n serializeAttribute,\n} from \"./common.js\";\nimport type { ReadableLogRecord } from \"@opentelemetry/sdk-logs\";\nimport {\n ATTR_EXCEPTION_MESSAGE,\n ATTR_EXCEPTION_STACKTRACE,\n ATTR_EXCEPTION_TYPE,\n} from \"@opentelemetry/semantic-conventions\";\nimport type { Measurements, Properties, Tags } from \"../types.js\";\nimport { httpSemanticValues, legacySemanticValues, MaxPropertyLengths } from \"../types.js\";\nimport type { Attributes } from \"@opentelemetry/api\";\nimport { diag } from \"@opentelemetry/api\";\nimport {\n ApplicationInsightsAvailabilityBaseType,\n ApplicationInsightsAvailabilityName,\n ApplicationInsightsBaseType,\n ApplicationInsightsCustomEventName,\n ApplicationInsightsEventBaseType,\n ApplicationInsightsEventName,\n ApplicationInsightsExceptionBaseType,\n ApplicationInsightsExceptionName,\n ApplicationInsightsMessageBaseType,\n ApplicationInsightsMessageName,\n ApplicationInsightsPageViewBaseType,\n ApplicationInsightsPageViewName,\n} from \"./constants/applicationinsights.js\";\nimport { getLocationIp } from \"./spanUtils.js\";\n\n/**\n * Log to Azure envelope parsing.\n * @internal\n */\nexport function logToEnvelope(log: ReadableLogRecord, ikey: string): Envelope | undefined {\n const time = hrTimeToDate(log.hrTime);\n const sampleRate = 100;\n const instrumentationKey = ikey;\n const tags = createTagsFromLog(log);\n // eslint-disable-next-line prefer-const\n let [properties, measurements] = createPropertiesFromLog(log);\n let name: string;\n let baseType: string;\n let baseData: MonitorDomain;\n\n const exceptionStacktrace = log.attributes[ATTR_EXCEPTION_STACKTRACE];\n const exceptionType = log.attributes[ATTR_EXCEPTION_TYPE];\n const isExceptionType: boolean = !!(exceptionType && exceptionStacktrace) || false;\n const isMessageType: boolean =\n !log.attributes[ApplicationInsightsBaseType] &&\n !log.attributes[ApplicationInsightsCustomEventName] &&\n !exceptionType;\n if (isExceptionType) {\n const exceptionMessage = log.attributes[ATTR_EXCEPTION_MESSAGE];\n name = ApplicationInsightsExceptionName;\n baseType = ApplicationInsightsExceptionBaseType;\n const exceptionDetails: TelemetryExceptionDetails = {\n typeName: String(exceptionType),\n message: String(exceptionMessage),\n hasFullStack: exceptionStacktrace ? true : false,\n stack: String(exceptionStacktrace),\n };\n const exceptionData: TelemetryExceptionData = {\n exceptions: [exceptionDetails],\n severityLevel: String(getSeverity(log.severityNumber)),\n version: 2,\n };\n baseData = exceptionData;\n } else if (log.attributes[ApplicationInsightsCustomEventName]) {\n name = ApplicationInsightsEventName;\n baseType = ApplicationInsightsEventBaseType;\n const eventData: TelemetryEventData = {\n name: String(log.attributes[ApplicationInsightsCustomEventName]),\n version: 2,\n };\n baseData = eventData;\n measurements = getLegacyApplicationInsightsMeasurements(log);\n } else if (isMessageType) {\n name = ApplicationInsightsMessageName;\n baseType = ApplicationInsightsMessageBaseType;\n const messageData: MessageData = {\n message: String(log.body),\n severityLevel: String(getSeverity(log.severityNumber)),\n version: 2,\n };\n baseData = messageData;\n } else {\n // If Legacy Application Insights Log\n baseType = String(log.attributes[ApplicationInsightsBaseType]);\n name = getLegacyApplicationInsightsName(log);\n baseData = getLegacyApplicationInsightsBaseData(log);\n measurements = getLegacyApplicationInsightsMeasurements(log);\n if (!baseData) {\n // Failed to parse log\n return;\n }\n }\n // Truncate properties\n if (baseData.message) {\n baseData.message = String(baseData.message).substring(0, MaxPropertyLengths.FIFTEEN_BIT);\n }\n if (properties) {\n for (const key of Object.keys(properties)) {\n properties[key] = String(properties[key]).substring(0, MaxPropertyLengths.THIRTEEN_BIT);\n }\n }\n return {\n name,\n sampleRate,\n time,\n instrumentationKey,\n tags,\n version: 1,\n data: {\n baseType,\n baseData: {\n ...baseData,\n properties,\n measurements,\n },\n },\n };\n}\n\nfunction createTagsFromLog(log: ReadableLogRecord): Tags {\n const tags: Tags = createTagsFromResource(log.resource);\n if (log.spanContext?.traceId) {\n tags[KnownContextTagKeys.AiOperationId] = log.spanContext.traceId;\n }\n if (log.spanContext?.spanId) {\n tags[KnownContextTagKeys.AiOperationParentId] = log.spanContext.spanId;\n }\n if (log.attributes[KnownContextTagKeys.AiOperationName]) {\n tags[KnownContextTagKeys.AiOperationName] = log.attributes[\n KnownContextTagKeys.AiOperationName\n ] as string;\n }\n if (isSyntheticSource(log.attributes as Attributes)) {\n tags[KnownContextTagKeys.AiOperationSyntheticSource] = \"True\";\n }\n getLocationIp(tags, log.attributes as Attributes);\n return tags;\n}\n\nfunction createPropertiesFromLog(log: ReadableLogRecord): [Properties, Measurements] {\n const measurements: Measurements = {};\n const properties: { [propertyName: string]: string } = {};\n if (log.attributes) {\n for (const key of Object.keys(log.attributes)) {\n // Avoid duplication ignoring fields already mapped.\n if (\n !(\n key.startsWith(\"_MS.\") ||\n key.startsWith(\"microsoft\") ||\n legacySemanticValues.includes(key) ||\n httpSemanticValues.includes(key as any) ||\n key === (KnownContextTagKeys.AiOperationName as string)\n )\n ) {\n properties[key] = serializeAttribute(log.attributes[key]);\n }\n }\n }\n return [properties, measurements];\n}\n\n// https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#field-severitynumber\nfunction getSeverity(severityNumber: number | undefined): KnownSeverityLevel | undefined {\n if (severityNumber) {\n if (severityNumber > 0 && severityNumber < 9) {\n return KnownSeverityLevel.Verbose;\n } else if (severityNumber >= 9 && severityNumber < 13) {\n return KnownSeverityLevel.Information;\n } else if (severityNumber >= 13 && severityNumber < 17) {\n return KnownSeverityLevel.Warning;\n } else if (severityNumber >= 17 && severityNumber < 21) {\n return KnownSeverityLevel.Error;\n } else if (severityNumber >= 21 && severityNumber < 25) {\n return KnownSeverityLevel.Critical;\n }\n }\n return;\n}\n\nfunction getLegacyApplicationInsightsName(log: ReadableLogRecord): string {\n let name = \"\";\n switch (log.attributes[ApplicationInsightsBaseType]) {\n case ApplicationInsightsAvailabilityBaseType:\n name = ApplicationInsightsAvailabilityName;\n break;\n case ApplicationInsightsExceptionBaseType:\n name = ApplicationInsightsExceptionName;\n break;\n case ApplicationInsightsMessageBaseType:\n name = ApplicationInsightsMessageName;\n break;\n case ApplicationInsightsPageViewBaseType:\n name = ApplicationInsightsPageViewName;\n break;\n case ApplicationInsightsEventBaseType:\n name = ApplicationInsightsEventName;\n break;\n }\n return name;\n}\n\nfunction getLegacyApplicationInsightsMeasurements(log: ReadableLogRecord): Measurements {\n let measurements: Measurements = {};\n if ((log.body as MonitorDomain)?.measurements) {\n measurements = { ...(log.body as MonitorDomain).measurements };\n }\n return measurements;\n}\n\nfunction getLegacyApplicationInsightsBaseData(log: ReadableLogRecord): MonitorDomain {\n let baseData: MonitorDomain = {\n version: 2,\n };\n if (log.body) {\n try {\n switch (log.attributes[ApplicationInsightsBaseType]) {\n case ApplicationInsightsAvailabilityBaseType:\n baseData = log.body as AvailabilityData;\n break;\n case ApplicationInsightsExceptionBaseType:\n baseData = log.body as TelemetryExceptionData;\n break;\n case ApplicationInsightsMessageBaseType:\n baseData = log.body as MessageData;\n break;\n case ApplicationInsightsPageViewBaseType:\n baseData = log.body as PageViewData;\n break;\n case ApplicationInsightsEventBaseType:\n baseData = log.body as TelemetryEventData;\n break;\n }\n if (typeof baseData?.message === \"object\") {\n baseData.message = JSON.stringify(baseData.message);\n }\n } catch (err) {\n diag.error(\"AzureMonitorLogExporter failed to parse Application Insights Telemetry\");\n }\n }\n return baseData;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"metricUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/metricUtils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,SAAS,EACT,oBAAoB,EACpB,SAAS,EACT,eAAe,EAChB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EACV,aAAa,IAAI,QAAQ,EAG1B,MAAM,uBAAuB,CAAC;AAS/B,OAAO,EAAE,cAAc,EAA6B,MAAM,8BAA8B,CAAC;AAgCzF;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,OAAO,GACpB,QAAQ,EAAE,CAoFZ;AAED,wBAAgB,WAAW,IAAI,OAAO,CAIrC;AAED,wBAAgB,gBAAgB,IAAI,OAAO,CAK1C;AAED,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,oBAAoB,CAAC,GACpF,OAAO,CAET;AAED,wBAAgB,aAAa,IAAI,cAAc,CAK9C"}
1
+ {"version":3,"file":"metricUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/metricUtils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,SAAS,EACT,oBAAoB,EACpB,SAAS,EACT,eAAe,EAChB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EACV,aAAa,IAAI,QAAQ,EAG1B,MAAM,uBAAuB,CAAC;AAU/B,OAAO,EAAE,cAAc,EAA6B,MAAM,8BAA8B,CAAC;AAgCzF;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,OAAO,GACpB,QAAQ,EAAE,CAoFZ;AAED,wBAAgB,WAAW,IAAI,OAAO,CAIrC;AAED,wBAAgB,gBAAgB,IAAI,OAAO,CAK1C;AAED,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,oBAAoB,CAAC,GACpF,OAAO,CAET;AAED,wBAAgB,aAAa,IAAI,cAAc,CAK9C"}
@@ -51,7 +51,7 @@ function resourceMetricsToEnvelope(metrics, ikey, isStatsbeat) {
51
51
  if (isStatsbeat) {
52
52
  envelopeName = "Microsoft.ApplicationInsights.Statsbeat";
53
53
  const context = (0, index_js_1.getInstance)();
54
- tags = Object.assign({}, context.tags);
54
+ tags = { ...context.tags };
55
55
  }
56
56
  else {
57
57
  envelopeName = "Microsoft.ApplicationInsights.Metric";
@@ -110,7 +110,9 @@ function resourceMetricsToEnvelope(metrics, ikey, isStatsbeat) {
110
110
  version: 1,
111
111
  data: {
112
112
  baseType: "MetricData",
113
- baseData: Object.assign({}, baseData),
113
+ baseData: {
114
+ ...baseData,
115
+ },
114
116
  },
115
117
  };
116
118
  envelopes.push(envelope);
@@ -123,13 +125,11 @@ function isAksAttach() {
123
125
  return !!(process.env[Constants_js_1.ENV_AZURE_MONITOR_AUTO_ATTACH] === "true" && process.env.AKS_ARM_NAMESPACE_ID);
124
126
  }
125
127
  function shouldSendToOtlp() {
126
- var _a;
127
128
  return !!(process.env[Constants_js_1.ENV_OTLP_METRICS_ENDPOINT] &&
128
- ((_a = process.env[Constants_js_1.ENV_OTEL_METRICS_EXPORTER]) === null || _a === void 0 ? void 0 : _a.includes("otlp")));
129
+ process.env[Constants_js_1.ENV_OTEL_METRICS_EXPORTER]?.includes("otlp"));
129
130
  }
130
131
  function isStandardMetric(dataPoint) {
131
- var _a;
132
- return ((_a = dataPoint.attributes) === null || _a === void 0 ? void 0 : _a["_MS.IsAutocollected"]) === "True";
132
+ return dataPoint.attributes?.["_MS.IsAutocollected"] === "True";
133
133
  }
134
134
  function getAttachType() {
135
135
  if (process.env[types_js_2.AZURE_MONITOR_AUTO_ATTACH] === "true") {
@@ -1 +1 @@
1
- {"version":3,"file":"metricUtils.js","sourceRoot":"","sources":["../../../src/utils/metricUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { Attributes } from \"@opentelemetry/api\";\nimport type {\n DataPoint,\n ExponentialHistogram,\n Histogram,\n ResourceMetrics,\n} from \"@opentelemetry/sdk-metrics\";\nimport { DataPointType } from \"@opentelemetry/sdk-metrics\";\nimport type {\n TelemetryItem as Envelope,\n MetricsData,\n MetricDataPoint,\n} from \"../generated/index.js\";\nimport { createTagsFromResource } from \"./common.js\";\nimport { BreezePerformanceCounterNames, OTelPerformanceCounterNames, Tags } from \"../types.js\";\nimport {\n ENV_OTEL_METRICS_EXPORTER,\n ENV_OTLP_METRICS_ENDPOINT,\n ENV_AZURE_MONITOR_AUTO_ATTACH,\n ENV_APPLICATIONINSIGHTS_METRICS_TO_LOGANALYTICS_ENABLED,\n} from \"../Declarations/Constants.js\";\nimport { AttachTypeName, AZURE_MONITOR_AUTO_ATTACH } from \"../export/statsbeat/types.js\";\nimport { getInstance } from \"../platform/index.js\";\n\nconst breezePerformanceCountersMap = new Map<string, string>([\n [OTelPerformanceCounterNames.PRIVATE_BYTES, BreezePerformanceCounterNames.PRIVATE_BYTES],\n [OTelPerformanceCounterNames.AVAILABLE_BYTES, BreezePerformanceCounterNames.AVAILABLE_BYTES],\n [OTelPerformanceCounterNames.PROCESSOR_TIME, BreezePerformanceCounterNames.PROCESSOR_TIME],\n [\n OTelPerformanceCounterNames.PROCESS_TIME_STANDARD,\n BreezePerformanceCounterNames.PROCESS_TIME_STANDARD,\n ],\n [\n OTelPerformanceCounterNames.PROCESS_TIME_NORMALIZED,\n BreezePerformanceCounterNames.PROCESS_TIME_NORMALIZED,\n ],\n [OTelPerformanceCounterNames.REQUEST_RATE, BreezePerformanceCounterNames.REQUEST_RATE],\n [OTelPerformanceCounterNames.REQUEST_DURATION, BreezePerformanceCounterNames.REQUEST_DURATION],\n [OTelPerformanceCounterNames.EXCEPTION_RATE, BreezePerformanceCounterNames.EXCEPTION_RATE],\n]);\n\nfunction createPropertiesFromMetricAttributes(attributes?: Attributes): {\n [propertyName: string]: string;\n} {\n const properties: { [propertyName: string]: string } = {};\n if (attributes) {\n for (const key of Object.keys(attributes)) {\n properties[key] = attributes[key] as string;\n }\n }\n return properties;\n}\n\n/**\n * Metric to Azure envelope parsing.\n * @internal\n */\nexport function resourceMetricsToEnvelope(\n metrics: ResourceMetrics,\n ikey: string,\n isStatsbeat?: boolean,\n): Envelope[] {\n const envelopes: Envelope[] = [];\n const time = new Date();\n const instrumentationKey = ikey;\n let tags: Tags;\n let envelopeName: string;\n\n if (isStatsbeat) {\n envelopeName = \"Microsoft.ApplicationInsights.Statsbeat\";\n const context = getInstance();\n tags = { ...context.tags };\n } else {\n envelopeName = \"Microsoft.ApplicationInsights.Metric\";\n tags = createTagsFromResource(metrics.resource);\n }\n\n metrics.scopeMetrics.forEach((scopeMetric) => {\n scopeMetric.metrics.forEach((metric) => {\n metric.dataPoints.forEach((dataPoint) => {\n const baseData: MetricsData = {\n metrics: [],\n version: 2,\n properties: {},\n };\n baseData.properties = createPropertiesFromMetricAttributes(dataPoint.attributes);\n\n // If we're not exporting statsbeat, the metric is *not* a standard metric and the env var is set to false, we should not send the metric.\n if (\n shouldSendToOtlp() &&\n isAksAttach() &&\n !isStandardMetric(dataPoint) &&\n process.env[ENV_APPLICATIONINSIGHTS_METRICS_TO_LOGANALYTICS_ENABLED] === \"false\" &&\n !isStatsbeat\n ) {\n return;\n }\n\n if (shouldSendToOtlp() && isAksAttach() && !isStatsbeat) {\n baseData.properties[\"_MS.SentToAMW\"] = \"True\";\n } else if (isAksAttach() && !isStatsbeat) {\n baseData.properties[\"_MS.SentToAMW\"] = \"False\";\n }\n let perfCounterName;\n if (breezePerformanceCountersMap.has(metric.descriptor.name)) {\n perfCounterName = breezePerformanceCountersMap.get(metric.descriptor.name);\n }\n const metricDataPoint: MetricDataPoint = {\n name: perfCounterName ? perfCounterName : metric.descriptor.name,\n value: 0,\n dataPointType: \"Aggregation\",\n };\n if (\n metric.dataPointType === DataPointType.SUM ||\n metric.dataPointType === DataPointType.GAUGE\n ) {\n metricDataPoint.value = dataPoint.value as number;\n metricDataPoint.count = 1;\n } else {\n metricDataPoint.value = (dataPoint.value as Histogram).sum || 0;\n metricDataPoint.count = (dataPoint.value as Histogram).count;\n metricDataPoint.max = (dataPoint.value as Histogram).max;\n metricDataPoint.min = (dataPoint.value as Histogram).min;\n }\n baseData.metrics.push(metricDataPoint);\n const envelope: Envelope = {\n name: envelopeName,\n time: time,\n sampleRate: 100, // Metrics are never sampled\n instrumentationKey: instrumentationKey,\n tags: tags,\n version: 1,\n data: {\n baseType: \"MetricData\",\n baseData: {\n ...baseData,\n },\n },\n };\n envelopes.push(envelope);\n });\n });\n });\n\n return envelopes;\n}\n\nexport function isAksAttach(): boolean {\n return !!(\n process.env[ENV_AZURE_MONITOR_AUTO_ATTACH] === \"true\" && process.env.AKS_ARM_NAMESPACE_ID\n );\n}\n\nexport function shouldSendToOtlp(): boolean {\n return !!(\n process.env[ENV_OTLP_METRICS_ENDPOINT] &&\n process.env[ENV_OTEL_METRICS_EXPORTER]?.includes(\"otlp\")\n );\n}\n\nexport function isStandardMetric(\n dataPoint: DataPoint<number> | DataPoint<Histogram> | DataPoint<ExponentialHistogram>,\n): boolean {\n return dataPoint.attributes?.[\"_MS.IsAutocollected\"] === \"True\";\n}\n\nexport function getAttachType(): AttachTypeName {\n if (process.env[AZURE_MONITOR_AUTO_ATTACH] === \"true\") {\n return AttachTypeName.INTEGRATED_AUTO;\n }\n return AttachTypeName.MANUAL;\n}\n"]}
1
+ {"version":3,"file":"metricUtils.js","sourceRoot":"","sources":["../../../src/utils/metricUtils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { Attributes } from \"@opentelemetry/api\";\nimport type {\n DataPoint,\n ExponentialHistogram,\n Histogram,\n ResourceMetrics,\n} from \"@opentelemetry/sdk-metrics\";\nimport { DataPointType } from \"@opentelemetry/sdk-metrics\";\nimport type {\n TelemetryItem as Envelope,\n MetricsData,\n MetricDataPoint,\n} from \"../generated/index.js\";\nimport { createTagsFromResource } from \"./common.js\";\nimport type { Tags } from \"../types.js\";\nimport { BreezePerformanceCounterNames, OTelPerformanceCounterNames } from \"../types.js\";\nimport {\n ENV_OTEL_METRICS_EXPORTER,\n ENV_OTLP_METRICS_ENDPOINT,\n ENV_AZURE_MONITOR_AUTO_ATTACH,\n ENV_APPLICATIONINSIGHTS_METRICS_TO_LOGANALYTICS_ENABLED,\n} from \"../Declarations/Constants.js\";\nimport { AttachTypeName, AZURE_MONITOR_AUTO_ATTACH } from \"../export/statsbeat/types.js\";\nimport { getInstance } from \"../platform/index.js\";\n\nconst breezePerformanceCountersMap = new Map<string, string>([\n [OTelPerformanceCounterNames.PRIVATE_BYTES, BreezePerformanceCounterNames.PRIVATE_BYTES],\n [OTelPerformanceCounterNames.AVAILABLE_BYTES, BreezePerformanceCounterNames.AVAILABLE_BYTES],\n [OTelPerformanceCounterNames.PROCESSOR_TIME, BreezePerformanceCounterNames.PROCESSOR_TIME],\n [\n OTelPerformanceCounterNames.PROCESS_TIME_STANDARD,\n BreezePerformanceCounterNames.PROCESS_TIME_STANDARD,\n ],\n [\n OTelPerformanceCounterNames.PROCESS_TIME_NORMALIZED,\n BreezePerformanceCounterNames.PROCESS_TIME_NORMALIZED,\n ],\n [OTelPerformanceCounterNames.REQUEST_RATE, BreezePerformanceCounterNames.REQUEST_RATE],\n [OTelPerformanceCounterNames.REQUEST_DURATION, BreezePerformanceCounterNames.REQUEST_DURATION],\n [OTelPerformanceCounterNames.EXCEPTION_RATE, BreezePerformanceCounterNames.EXCEPTION_RATE],\n]);\n\nfunction createPropertiesFromMetricAttributes(attributes?: Attributes): {\n [propertyName: string]: string;\n} {\n const properties: { [propertyName: string]: string } = {};\n if (attributes) {\n for (const key of Object.keys(attributes)) {\n properties[key] = attributes[key] as string;\n }\n }\n return properties;\n}\n\n/**\n * Metric to Azure envelope parsing.\n * @internal\n */\nexport function resourceMetricsToEnvelope(\n metrics: ResourceMetrics,\n ikey: string,\n isStatsbeat?: boolean,\n): Envelope[] {\n const envelopes: Envelope[] = [];\n const time = new Date();\n const instrumentationKey = ikey;\n let tags: Tags;\n let envelopeName: string;\n\n if (isStatsbeat) {\n envelopeName = \"Microsoft.ApplicationInsights.Statsbeat\";\n const context = getInstance();\n tags = { ...context.tags };\n } else {\n envelopeName = \"Microsoft.ApplicationInsights.Metric\";\n tags = createTagsFromResource(metrics.resource);\n }\n\n metrics.scopeMetrics.forEach((scopeMetric) => {\n scopeMetric.metrics.forEach((metric) => {\n metric.dataPoints.forEach((dataPoint) => {\n const baseData: MetricsData = {\n metrics: [],\n version: 2,\n properties: {},\n };\n baseData.properties = createPropertiesFromMetricAttributes(dataPoint.attributes);\n\n // If we're not exporting statsbeat, the metric is *not* a standard metric and the env var is set to false, we should not send the metric.\n if (\n shouldSendToOtlp() &&\n isAksAttach() &&\n !isStandardMetric(dataPoint) &&\n process.env[ENV_APPLICATIONINSIGHTS_METRICS_TO_LOGANALYTICS_ENABLED] === \"false\" &&\n !isStatsbeat\n ) {\n return;\n }\n\n if (shouldSendToOtlp() && isAksAttach() && !isStatsbeat) {\n baseData.properties[\"_MS.SentToAMW\"] = \"True\";\n } else if (isAksAttach() && !isStatsbeat) {\n baseData.properties[\"_MS.SentToAMW\"] = \"False\";\n }\n let perfCounterName;\n if (breezePerformanceCountersMap.has(metric.descriptor.name)) {\n perfCounterName = breezePerformanceCountersMap.get(metric.descriptor.name);\n }\n const metricDataPoint: MetricDataPoint = {\n name: perfCounterName ? perfCounterName : metric.descriptor.name,\n value: 0,\n dataPointType: \"Aggregation\",\n };\n if (\n metric.dataPointType === DataPointType.SUM ||\n metric.dataPointType === DataPointType.GAUGE\n ) {\n metricDataPoint.value = dataPoint.value as number;\n metricDataPoint.count = 1;\n } else {\n metricDataPoint.value = (dataPoint.value as Histogram).sum || 0;\n metricDataPoint.count = (dataPoint.value as Histogram).count;\n metricDataPoint.max = (dataPoint.value as Histogram).max;\n metricDataPoint.min = (dataPoint.value as Histogram).min;\n }\n baseData.metrics.push(metricDataPoint);\n const envelope: Envelope = {\n name: envelopeName,\n time: time,\n sampleRate: 100, // Metrics are never sampled\n instrumentationKey: instrumentationKey,\n tags: tags,\n version: 1,\n data: {\n baseType: \"MetricData\",\n baseData: {\n ...baseData,\n },\n },\n };\n envelopes.push(envelope);\n });\n });\n });\n\n return envelopes;\n}\n\nexport function isAksAttach(): boolean {\n return !!(\n process.env[ENV_AZURE_MONITOR_AUTO_ATTACH] === \"true\" && process.env.AKS_ARM_NAMESPACE_ID\n );\n}\n\nexport function shouldSendToOtlp(): boolean {\n return !!(\n process.env[ENV_OTLP_METRICS_ENDPOINT] &&\n process.env[ENV_OTEL_METRICS_EXPORTER]?.includes(\"otlp\")\n );\n}\n\nexport function isStandardMetric(\n dataPoint: DataPoint<number> | DataPoint<Histogram> | DataPoint<ExponentialHistogram>,\n): boolean {\n return dataPoint.attributes?.[\"_MS.IsAutocollected\"] === \"True\";\n}\n\nexport function getAttachType(): AttachTypeName {\n if (process.env[AZURE_MONITOR_AUTO_ATTACH] === \"true\") {\n return AttachTypeName.INTEGRATED_AUTO;\n }\n return AttachTypeName.MANUAL;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"spanUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/spanUtils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,+BAA+B,CAAC;AAE9E,OAAO,KAAK,EAAQ,UAAU,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAqD3E,OAAO,KAAK,EAAE,IAAI,EAAoC,MAAM,aAAa,CAAC;AAc1E,OAAO,KAAK,EAKV,aAAa,IAAI,QAAQ,EAE1B,MAAM,uBAAuB,CAAC;AA2O/B;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAyFjF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CA8FlF;AAED,wBAAgB,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAK5E;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAUtE;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAKlF;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAK/E;AAED,wBAAgB,UAAU,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAM7E;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAKhF;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAKpF;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAKhF;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAWhF;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAK9E;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAKjF;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CASjF"}
1
+ {"version":3,"file":"spanUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/spanUtils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,+BAA+B,CAAC;AAE9E,OAAO,KAAK,EAAQ,UAAU,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAqD3E,OAAO,KAAK,EAAE,IAAI,EAAoC,MAAM,aAAa,CAAC;AAc1E,OAAO,KAAK,EAKV,aAAa,IAAI,QAAQ,EAE1B,MAAM,uBAAuB,CAAC;AA4O/B;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAyFjF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CA8FlF;AAED,wBAAgB,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAK5E;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAUtE;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAKlF;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAK/E;AAED,wBAAgB,UAAU,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAM7E;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAKhF;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAKpF;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAKhF;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAWhF;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAK9E;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAKjF;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CASjF"}
@@ -29,8 +29,8 @@ const breezeUtils_js_1 = require("./breezeUtils.js");
29
29
  function createTagsFromSpan(span) {
30
30
  const tags = (0, common_js_1.createTagsFromResource)(span.resource);
31
31
  tags[index_js_1.KnownContextTagKeys.AiOperationId] = span.spanContext().traceId;
32
- if (span.parentSpanId) {
33
- tags[index_js_1.KnownContextTagKeys.AiOperationParentId] = span.parentSpanId;
32
+ if (span.parentSpanContext?.spanId) {
33
+ tags[index_js_1.KnownContextTagKeys.AiOperationParentId] = span.parentSpanContext.spanId;
34
34
  }
35
35
  const endUserId = span.attributes[semantic_conventions_1.SEMATTRS_ENDUSER_ID];
36
36
  if (endUserId) {
@@ -61,7 +61,7 @@ function createTagsFromSpan(span) {
61
61
  const url = new URL(String(httpUrl));
62
62
  tags[index_js_1.KnownContextTagKeys.AiOperationName] = String(`${httpMethod} ${url.pathname}`).substring(0, types_js_1.MaxPropertyLengths.TEN_BIT);
63
63
  }
64
- catch (_a) {
64
+ catch {
65
65
  /* no-op */
66
66
  }
67
67
  }
@@ -109,11 +109,10 @@ function createPropertiesFromSpan(span) {
109
109
  return [properties, measurements];
110
110
  }
111
111
  function createDependencyData(span) {
112
- var _a;
113
112
  const remoteDependencyData = {
114
113
  name: span.name, // Default
115
114
  id: `${span.spanContext().spanId}`,
116
- success: ((_a = span.status) === null || _a === void 0 ? void 0 : _a.code) !== api_1.SpanStatusCode.ERROR,
115
+ success: span.status?.code !== api_1.SpanStatusCode.ERROR,
117
116
  resultCode: "0",
118
117
  type: "Dependency",
119
118
  duration: (0, breezeUtils_js_1.msToTimeSpan)((0, core_1.hrTimeToMilliseconds)(span.duration)),
@@ -122,7 +121,7 @@ function createDependencyData(span) {
122
121
  if (span.kind === api_1.SpanKind.PRODUCER) {
123
122
  remoteDependencyData.type = applicationinsights_js_1.DependencyTypes.QueueMessage;
124
123
  }
125
- if (span.kind === api_1.SpanKind.INTERNAL && span.parentSpanId) {
124
+ if (span.kind === api_1.SpanKind.INTERNAL && span.parentSpanContext) {
126
125
  remoteDependencyData.type = applicationinsights_js_1.DependencyTypes.InProc;
127
126
  }
128
127
  const httpMethod = getHttpMethod(span.attributes);
@@ -136,7 +135,7 @@ function createDependencyData(span) {
136
135
  const dependencyUrl = new URL(String(httpUrl));
137
136
  remoteDependencyData.name = `${httpMethod} ${dependencyUrl.pathname}`;
138
137
  }
139
- catch (_b) {
138
+ catch {
140
139
  /* no-op */
141
140
  }
142
141
  }
@@ -162,7 +161,7 @@ function createDependencyData(span) {
162
161
  }
163
162
  }
164
163
  }
165
- catch (_c) {
164
+ catch {
166
165
  /* no-op */
167
166
  }
168
167
  remoteDependencyData.target = `${target}`;
@@ -231,8 +230,9 @@ function createDependencyData(span) {
231
230
  function createRequestData(span) {
232
231
  const requestData = {
233
232
  id: `${span.spanContext().spanId}`,
234
- success: span.status.code !== api_1.SpanStatusCode.ERROR &&
235
- (Number(getHttpStatusCode(span.attributes)) || 0) < 400,
233
+ success: span.status.code !== api_1.SpanStatusCode.UNSET
234
+ ? span.status.code === api_1.SpanStatusCode.OK
235
+ : (Number(getHttpStatusCode(span.attributes)) || 0) < 400,
236
236
  responseCode: "0",
237
237
  duration: (0, breezeUtils_js_1.msToTimeSpan)((0, core_1.hrTimeToMilliseconds)(span.duration)),
238
238
  version: 2,
@@ -330,8 +330,11 @@ function readableSpanToEnvelope(span, ikey) {
330
330
  version: 1,
331
331
  data: {
332
332
  baseType,
333
- baseData: Object.assign(Object.assign({}, baseData), { properties,
334
- measurements }),
333
+ baseData: {
334
+ ...baseData,
335
+ properties,
336
+ measurements,
337
+ },
335
338
  },
336
339
  };
337
340
  }
@@ -343,7 +346,6 @@ function spanEventsToEnvelopes(span, ikey) {
343
346
  const envelopes = [];
344
347
  if (span.events) {
345
348
  span.events.forEach((event) => {
346
- var _a;
347
349
  let baseType;
348
350
  const time = (0, common_js_1.hrTimeToDate)(event.time);
349
351
  let name = "";
@@ -351,7 +353,7 @@ function spanEventsToEnvelopes(span, ikey) {
351
353
  const properties = createPropertiesFromSpanAttributes(event.attributes);
352
354
  const tags = (0, common_js_1.createTagsFromResource)(span.resource);
353
355
  tags[index_js_1.KnownContextTagKeys.AiOperationId] = span.spanContext().traceId;
354
- const spanId = (_a = span.spanContext()) === null || _a === void 0 ? void 0 : _a.spanId;
356
+ const spanId = span.spanContext().spanId;
355
357
  if (spanId) {
356
358
  tags[index_js_1.KnownContextTagKeys.AiOperationParentId] = spanId;
357
359
  }