@azure/monitor-opentelemetry-exporter 1.0.0-beta.27 → 1.0.0-beta.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -53
- package/dist/commonjs/Declarations/Constants.d.ts +131 -0
- package/dist/commonjs/Declarations/Constants.d.ts.map +1 -0
- package/dist/commonjs/Declarations/Constants.js +147 -0
- package/dist/commonjs/Declarations/Constants.js.map +1 -0
- package/dist/commonjs/Declarations/Contracts/Constants.d.ts +14 -0
- package/dist/commonjs/Declarations/Contracts/Constants.d.ts.map +1 -0
- package/dist/commonjs/Declarations/Contracts/Constants.js +5 -0
- package/dist/commonjs/Declarations/Contracts/Constants.js.map +1 -0
- package/dist/commonjs/Declarations/Contracts/index.d.ts +2 -0
- package/dist/commonjs/Declarations/Contracts/index.d.ts.map +1 -0
- package/dist/commonjs/Declarations/Contracts/index.js +7 -0
- package/dist/commonjs/Declarations/Contracts/index.js.map +1 -0
- package/dist/commonjs/config.d.ts +30 -0
- package/dist/commonjs/config.d.ts.map +1 -0
- package/dist/commonjs/config.js +3 -0
- package/dist/commonjs/config.js.map +1 -0
- package/dist/commonjs/export/base.d.ts +36 -0
- package/dist/commonjs/export/base.d.ts.map +1 -0
- package/dist/commonjs/export/base.js +59 -0
- package/dist/commonjs/export/base.js.map +1 -0
- package/dist/commonjs/export/log.d.ts +30 -0
- package/dist/commonjs/export/log.d.ts.map +1 -0
- package/dist/commonjs/export/log.js +68 -0
- package/dist/commonjs/export/log.js.map +1 -0
- package/dist/commonjs/export/metric.d.ts +39 -0
- package/dist/commonjs/export/metric.d.ts.map +1 -0
- package/dist/commonjs/export/metric.js +79 -0
- package/dist/commonjs/export/metric.js.map +1 -0
- package/dist/commonjs/export/statsbeat/longIntervalStatsbeatMetrics.d.ts +39 -0
- package/dist/commonjs/export/statsbeat/longIntervalStatsbeatMetrics.d.ts.map +1 -0
- package/dist/commonjs/export/statsbeat/longIntervalStatsbeatMetrics.js +127 -0
- package/dist/commonjs/export/statsbeat/longIntervalStatsbeatMetrics.js.map +1 -0
- package/dist/commonjs/export/statsbeat/networkStatsbeatMetrics.d.ts +51 -0
- package/dist/commonjs/export/statsbeat/networkStatsbeatMetrics.d.ts.map +1 -0
- package/dist/commonjs/export/statsbeat/networkStatsbeatMetrics.js +289 -0
- package/dist/commonjs/export/statsbeat/networkStatsbeatMetrics.js.map +1 -0
- package/dist/commonjs/export/statsbeat/statsbeatExporter.d.ts +32 -0
- package/dist/commonjs/export/statsbeat/statsbeatExporter.d.ts.map +1 -0
- package/dist/commonjs/export/statsbeat/statsbeatExporter.js +62 -0
- package/dist/commonjs/export/statsbeat/statsbeatExporter.js.map +1 -0
- package/dist/commonjs/export/statsbeat/statsbeatMetrics.d.ts +11 -0
- package/dist/commonjs/export/statsbeat/statsbeatMetrics.d.ts.map +1 -0
- package/dist/commonjs/export/statsbeat/statsbeatMetrics.js +106 -0
- package/dist/commonjs/export/statsbeat/statsbeatMetrics.js.map +1 -0
- package/dist/commonjs/export/statsbeat/types.d.ts +102 -0
- package/dist/commonjs/export/statsbeat/types.d.ts.map +1 -0
- package/dist/commonjs/export/statsbeat/types.js +89 -0
- package/dist/commonjs/export/statsbeat/types.js.map +1 -0
- package/dist/commonjs/export/trace.d.ts +31 -0
- package/dist/commonjs/export/trace.d.ts.map +1 -0
- package/dist/commonjs/export/trace.js +76 -0
- package/dist/commonjs/export/trace.js.map +1 -0
- package/dist/commonjs/generated/applicationInsightsClient.d.ts +17 -0
- package/dist/commonjs/generated/applicationInsightsClient.d.ts.map +1 -0
- package/dist/commonjs/generated/applicationInsightsClient.js +89 -0
- package/dist/commonjs/generated/applicationInsightsClient.js.map +1 -0
- package/dist/commonjs/generated/index.d.ts +3 -0
- package/dist/commonjs/generated/index.d.ts.map +1 -0
- package/dist/commonjs/generated/index.js +15 -0
- package/dist/commonjs/generated/index.js.map +1 -0
- package/dist/commonjs/generated/models/index.d.ts +429 -0
- package/dist/commonjs/generated/models/index.d.ts.map +1 -0
- package/dist/commonjs/generated/models/index.js +93 -0
- package/dist/commonjs/generated/models/index.js.map +1 -0
- package/dist/commonjs/generated/models/mappers.d.ts +19 -0
- package/dist/commonjs/generated/models/mappers.d.ts.map +1 -0
- package/dist/commonjs/generated/models/mappers.js +848 -0
- package/dist/commonjs/generated/models/mappers.js.map +1 -0
- package/dist/commonjs/generated/models/parameters.d.ts +6 -0
- package/dist/commonjs/generated/models/parameters.d.ts.map +1 -0
- package/dist/commonjs/generated/models/parameters.js +60 -0
- package/dist/commonjs/generated/models/parameters.js.map +1 -0
- package/dist/commonjs/index.d.ts +10 -0
- package/dist/commonjs/index.d.ts.map +1 -0
- package/dist/commonjs/index.js +20 -0
- package/dist/commonjs/index.js.map +1 -0
- package/dist/commonjs/package.json +3 -0
- package/dist/commonjs/platform/index.d.ts +2 -0
- package/dist/commonjs/platform/index.d.ts.map +1 -0
- package/dist/commonjs/platform/index.js +10 -0
- package/dist/commonjs/platform/index.js.map +1 -0
- package/dist/commonjs/platform/nodejs/baseSender.d.ts +49 -0
- package/dist/commonjs/platform/nodejs/baseSender.d.ts.map +1 -0
- package/dist/commonjs/platform/nodejs/baseSender.js +239 -0
- package/dist/commonjs/platform/nodejs/baseSender.js.map +1 -0
- package/dist/commonjs/platform/nodejs/constants.d.ts +10 -0
- package/dist/commonjs/platform/nodejs/constants.d.ts.map +1 -0
- package/dist/commonjs/platform/nodejs/constants.js +15 -0
- package/dist/commonjs/platform/nodejs/constants.js.map +1 -0
- package/dist/commonjs/platform/nodejs/context/context.d.ts +20 -0
- package/dist/commonjs/platform/nodejs/context/context.d.ts.map +1 -0
- package/dist/commonjs/platform/nodejs/context/context.js +54 -0
- package/dist/commonjs/platform/nodejs/context/context.js.map +1 -0
- package/dist/commonjs/platform/nodejs/context/index.d.ts +2 -0
- package/dist/commonjs/platform/nodejs/context/index.d.ts.map +1 -0
- package/dist/commonjs/platform/nodejs/context/index.js +7 -0
- package/dist/commonjs/platform/nodejs/context/index.js.map +1 -0
- package/dist/commonjs/platform/nodejs/httpSender.d.ts +32 -0
- package/dist/commonjs/platform/nodejs/httpSender.d.ts.map +1 -0
- package/dist/commonjs/platform/nodejs/httpSender.js +70 -0
- package/dist/commonjs/platform/nodejs/httpSender.js.map +1 -0
- package/dist/commonjs/platform/nodejs/index.d.ts +8 -0
- package/dist/commonjs/platform/nodejs/index.d.ts.map +1 -0
- package/dist/commonjs/platform/nodejs/index.js +13 -0
- package/dist/commonjs/platform/nodejs/index.js.map +1 -0
- package/dist/commonjs/platform/nodejs/persist/fileAccessControl.d.ts +18 -0
- package/dist/commonjs/platform/nodejs/persist/fileAccessControl.d.ts.map +1 -0
- package/dist/commonjs/platform/nodejs/persist/fileAccessControl.js +177 -0
- package/dist/commonjs/platform/nodejs/persist/fileAccessControl.js.map +1 -0
- package/dist/commonjs/platform/nodejs/persist/fileSystemHelpers.d.ts +11 -0
- package/dist/commonjs/platform/nodejs/persist/fileSystemHelpers.d.ts.map +1 -0
- package/dist/commonjs/platform/nodejs/persist/fileSystemHelpers.js +60 -0
- package/dist/commonjs/platform/nodejs/persist/fileSystemHelpers.js.map +1 -0
- package/dist/commonjs/platform/nodejs/persist/fileSystemPersist.d.ts +29 -0
- package/dist/commonjs/platform/nodejs/persist/fileSystemPersist.d.ts.map +1 -0
- package/dist/commonjs/platform/nodejs/persist/fileSystemPersist.js +184 -0
- package/dist/commonjs/platform/nodejs/persist/fileSystemPersist.js.map +1 -0
- package/dist/commonjs/platform/nodejs/persist/index.d.ts +2 -0
- package/dist/commonjs/platform/nodejs/persist/index.d.ts.map +1 -0
- package/dist/commonjs/platform/nodejs/persist/index.js +7 -0
- package/dist/commonjs/platform/nodejs/persist/index.js.map +1 -0
- package/dist/commonjs/sampling.d.ts +38 -0
- package/dist/commonjs/sampling.d.ts.map +1 -0
- package/dist/commonjs/sampling.js +92 -0
- package/dist/commonjs/sampling.js.map +1 -0
- package/dist/commonjs/tsdoc-metadata.json +11 -0
- package/dist/commonjs/types.d.ts +96 -0
- package/dist/commonjs/types.d.ts.map +1 -0
- package/dist/commonjs/types.js +93 -0
- package/dist/commonjs/types.js.map +1 -0
- package/dist/commonjs/utils/breezeUtils.d.ts +25 -0
- package/dist/commonjs/utils/breezeUtils.d.ts.map +1 -0
- package/dist/commonjs/utils/breezeUtils.js +39 -0
- package/dist/commonjs/utils/breezeUtils.js.map +1 -0
- package/dist/commonjs/utils/common.d.ts +14 -0
- package/dist/commonjs/utils/common.d.ts.map +1 -0
- package/dist/commonjs/utils/common.js +251 -0
- package/dist/commonjs/utils/common.js.map +1 -0
- package/dist/commonjs/utils/connectionStringParser.d.ts +13 -0
- package/dist/commonjs/utils/connectionStringParser.d.ts.map +1 -0
- package/dist/commonjs/utils/connectionStringParser.js +83 -0
- package/dist/commonjs/utils/connectionStringParser.js.map +1 -0
- package/dist/commonjs/utils/constants/applicationinsights.d.ts +42 -0
- package/dist/commonjs/utils/constants/applicationinsights.d.ts.map +1 -0
- package/dist/commonjs/utils/constants/applicationinsights.js +48 -0
- package/dist/commonjs/utils/constants/applicationinsights.js.map +1 -0
- package/dist/commonjs/utils/constants/span/azAttributes.d.ts +16 -0
- package/dist/commonjs/utils/constants/span/azAttributes.d.ts.map +1 -0
- package/dist/commonjs/utils/constants/span/azAttributes.js +21 -0
- package/dist/commonjs/utils/constants/span/azAttributes.js.map +1 -0
- package/dist/commonjs/utils/eventhub.d.ts +10 -0
- package/dist/commonjs/utils/eventhub.d.ts.map +1 -0
- package/dist/commonjs/utils/eventhub.js +57 -0
- package/dist/commonjs/utils/eventhub.js.map +1 -0
- package/dist/commonjs/utils/logUtils.d.ts +8 -0
- package/dist/commonjs/utils/logUtils.d.ts.map +1 -0
- package/dist/commonjs/utils/logUtils.js +218 -0
- package/dist/commonjs/utils/logUtils.js.map +1 -0
- package/dist/commonjs/utils/metricUtils.d.ts +13 -0
- package/dist/commonjs/utils/metricUtils.d.ts.map +1 -0
- package/dist/commonjs/utils/metricUtils.js +132 -0
- package/dist/commonjs/utils/metricUtils.js.map +1 -0
- package/dist/commonjs/utils/spanUtils.d.ts +27 -0
- package/dist/commonjs/utils/spanUtils.d.ts.map +1 -0
- package/dist/commonjs/utils/spanUtils.js +516 -0
- package/dist/commonjs/utils/spanUtils.js.map +1 -0
- package/dist/esm/Declarations/Constants.d.ts +131 -0
- package/dist/esm/Declarations/Constants.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/Declarations/Constants.js +33 -0
- package/dist/esm/Declarations/Constants.js.map +1 -0
- package/dist/esm/Declarations/Contracts/Constants.d.ts +14 -0
- package/dist/esm/Declarations/Contracts/Constants.d.ts.map +1 -0
- package/dist/esm/Declarations/Contracts/index.d.ts +2 -0
- package/dist/esm/Declarations/Contracts/index.d.ts.map +1 -0
- package/{dist-esm/src/platform/nodejs/context → dist/esm/Declarations/Contracts}/index.js +1 -1
- package/dist/esm/Declarations/Contracts/index.js.map +1 -0
- package/dist/esm/config.d.ts +30 -0
- package/dist/esm/config.d.ts.map +1 -0
- package/dist/esm/config.js.map +1 -0
- package/dist/esm/export/base.d.ts +36 -0
- package/dist/esm/export/base.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/export/base.js +2 -2
- package/dist/esm/export/base.js.map +1 -0
- package/dist/esm/export/log.d.ts +30 -0
- package/dist/esm/export/log.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/export/log.js +3 -4
- package/dist/esm/export/log.js.map +1 -0
- package/dist/esm/export/metric.d.ts +39 -0
- package/dist/esm/export/metric.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/export/metric.js +4 -5
- package/dist/esm/export/metric.js.map +1 -0
- package/dist/esm/export/statsbeat/longIntervalStatsbeatMetrics.d.ts +39 -0
- package/dist/esm/export/statsbeat/longIntervalStatsbeatMetrics.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/export/statsbeat/longIntervalStatsbeatMetrics.js +18 -15
- package/dist/esm/export/statsbeat/longIntervalStatsbeatMetrics.js.map +1 -0
- package/dist/esm/export/statsbeat/networkStatsbeatMetrics.d.ts +51 -0
- package/dist/esm/export/statsbeat/networkStatsbeatMetrics.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/export/statsbeat/networkStatsbeatMetrics.js +11 -10
- package/dist/esm/export/statsbeat/networkStatsbeatMetrics.js.map +1 -0
- package/dist/esm/export/statsbeat/statsbeatExporter.d.ts +32 -0
- package/dist/esm/export/statsbeat/statsbeatExporter.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/export/statsbeat/statsbeatExporter.js +3 -4
- package/dist/esm/export/statsbeat/statsbeatExporter.js.map +1 -0
- package/dist/esm/export/statsbeat/statsbeatMetrics.d.ts +11 -0
- package/dist/esm/export/statsbeat/statsbeatMetrics.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/export/statsbeat/statsbeatMetrics.js +3 -4
- package/dist/esm/export/statsbeat/statsbeatMetrics.js.map +1 -0
- package/dist/esm/export/statsbeat/types.d.ts +102 -0
- package/dist/esm/export/statsbeat/types.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/export/statsbeat/types.js +6 -0
- package/dist/esm/export/statsbeat/types.js.map +1 -0
- package/dist/esm/export/trace.d.ts +31 -0
- package/dist/esm/export/trace.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/export/trace.js +4 -5
- package/dist/esm/export/trace.js.map +1 -0
- package/dist/esm/generated/applicationInsightsClient.d.ts +17 -0
- package/dist/esm/generated/applicationInsightsClient.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/generated/applicationInsightsClient.js +3 -3
- package/dist/esm/generated/applicationInsightsClient.js.map +1 -0
- package/dist/esm/generated/index.d.ts +3 -0
- package/dist/esm/generated/index.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/generated/index.js +2 -2
- package/dist/esm/generated/index.js.map +1 -0
- package/dist/esm/generated/models/index.d.ts +429 -0
- package/dist/esm/generated/models/index.d.ts.map +1 -0
- package/dist/esm/generated/models/mappers.d.ts +19 -0
- package/dist/esm/generated/models/mappers.d.ts.map +1 -0
- package/dist/esm/generated/models/parameters.d.ts +6 -0
- package/dist/esm/generated/models/parameters.d.ts.map +1 -0
- package/dist/esm/index.d.ts +10 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +10 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/platform/index.d.ts +2 -0
- package/dist/esm/platform/index.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/platform/index.js +1 -1
- package/dist/esm/platform/index.js.map +1 -0
- package/dist/esm/platform/nodejs/baseSender.d.ts +49 -0
- package/dist/esm/platform/nodejs/baseSender.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/platform/nodejs/baseSender.js +10 -8
- package/dist/esm/platform/nodejs/baseSender.js.map +1 -0
- package/dist/esm/platform/nodejs/constants.d.ts +10 -0
- package/dist/esm/platform/nodejs/constants.d.ts.map +1 -0
- package/dist/esm/platform/nodejs/context/context.d.ts +20 -0
- package/dist/esm/platform/nodejs/context/context.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/platform/nodejs/context/context.js +5 -5
- package/dist/esm/platform/nodejs/context/context.js.map +1 -0
- package/dist/esm/platform/nodejs/context/index.d.ts +2 -0
- package/dist/esm/platform/nodejs/context/index.d.ts.map +1 -0
- package/{dist-esm/src/Declarations/Contracts → dist/esm/platform/nodejs/context}/index.js +1 -1
- package/{dist-esm/src → dist/esm}/platform/nodejs/context/index.js.map +1 -1
- package/dist/esm/platform/nodejs/httpSender.d.ts +32 -0
- package/dist/esm/platform/nodejs/httpSender.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/platform/nodejs/httpSender.js +3 -4
- package/dist/esm/platform/nodejs/httpSender.js.map +1 -0
- package/dist/esm/platform/nodejs/index.d.ts +8 -0
- package/dist/esm/platform/nodejs/index.d.ts.map +1 -0
- package/dist/esm/platform/nodejs/index.js +10 -0
- package/dist/esm/platform/nodejs/index.js.map +1 -0
- package/dist/esm/platform/nodejs/persist/fileAccessControl.d.ts +18 -0
- package/dist/esm/platform/nodejs/persist/fileAccessControl.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/platform/nodejs/persist/fileAccessControl.js +14 -13
- package/dist/esm/platform/nodejs/persist/fileAccessControl.js.map +1 -0
- package/dist/esm/platform/nodejs/persist/fileSystemHelpers.d.ts +11 -0
- package/dist/esm/platform/nodejs/persist/fileSystemHelpers.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/platform/nodejs/persist/fileSystemHelpers.js +6 -11
- package/dist/esm/platform/nodejs/persist/fileSystemHelpers.js.map +1 -0
- package/dist/esm/platform/nodejs/persist/fileSystemPersist.d.ts +29 -0
- package/dist/esm/platform/nodejs/persist/fileSystemPersist.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/platform/nodejs/persist/fileSystemPersist.js +19 -26
- package/dist/esm/platform/nodejs/persist/fileSystemPersist.js.map +1 -0
- package/dist/esm/platform/nodejs/persist/index.d.ts +2 -0
- package/dist/esm/platform/nodejs/persist/index.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/platform/nodejs/persist/index.js +1 -1
- package/{dist-esm/src → dist/esm}/platform/nodejs/persist/index.js.map +1 -1
- package/dist/esm/sampling.d.ts +38 -0
- package/dist/esm/sampling.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/sampling.js +1 -1
- package/dist/esm/sampling.js.map +1 -0
- package/dist/esm/types.d.ts +96 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +90 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/utils/breezeUtils.d.ts +25 -0
- package/dist/esm/utils/breezeUtils.d.ts.map +1 -0
- package/dist/esm/utils/common.d.ts +14 -0
- package/dist/esm/utils/common.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/utils/common.js +22 -20
- package/dist/esm/utils/common.js.map +1 -0
- package/dist/esm/utils/connectionStringParser.d.ts +13 -0
- package/dist/esm/utils/connectionStringParser.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/utils/connectionStringParser.js +1 -1
- package/dist/esm/utils/connectionStringParser.js.map +1 -0
- package/dist/esm/utils/constants/applicationinsights.d.ts +42 -0
- package/dist/esm/utils/constants/applicationinsights.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/utils/constants/applicationinsights.js +2 -1
- package/dist/esm/utils/constants/applicationinsights.js.map +1 -0
- package/dist/esm/utils/constants/span/azAttributes.d.ts +16 -0
- package/dist/esm/utils/constants/span/azAttributes.d.ts.map +1 -0
- package/dist/esm/utils/eventhub.d.ts +10 -0
- package/dist/esm/utils/eventhub.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/utils/eventhub.js +2 -2
- package/dist/esm/utils/eventhub.js.map +1 -0
- package/dist/esm/utils/logUtils.d.ts +8 -0
- package/dist/esm/utils/logUtils.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/utils/logUtils.js +55 -39
- package/dist/esm/utils/logUtils.js.map +1 -0
- package/dist/esm/utils/metricUtils.d.ts +13 -0
- package/dist/esm/utils/metricUtils.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/utils/metricUtils.js +41 -3
- package/dist/esm/utils/metricUtils.js.map +1 -0
- package/dist/esm/utils/spanUtils.d.ts +27 -0
- package/dist/esm/utils/spanUtils.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/utils/spanUtils.js +151 -100
- package/dist/esm/utils/spanUtils.js.map +1 -0
- package/package.json +63 -43
- package/dist/index.js +0 -4134
- package/dist-esm/src/Declarations/Constants.js.map +0 -1
- package/dist-esm/src/Declarations/Contracts/index.js.map +0 -1
- package/dist-esm/src/config.js.map +0 -1
- package/dist-esm/src/export/base.js.map +0 -1
- package/dist-esm/src/export/log.js.map +0 -1
- package/dist-esm/src/export/metric.js.map +0 -1
- package/dist-esm/src/export/statsbeat/longIntervalStatsbeatMetrics.js.map +0 -1
- package/dist-esm/src/export/statsbeat/networkStatsbeatMetrics.js.map +0 -1
- package/dist-esm/src/export/statsbeat/statsbeatExporter.js.map +0 -1
- package/dist-esm/src/export/statsbeat/statsbeatMetrics.js.map +0 -1
- package/dist-esm/src/export/statsbeat/types.js.map +0 -1
- package/dist-esm/src/export/trace.js.map +0 -1
- package/dist-esm/src/generated/applicationInsightsClient.js.map +0 -1
- package/dist-esm/src/generated/index.js.map +0 -1
- package/dist-esm/src/index.js +0 -9
- package/dist-esm/src/index.js.map +0 -1
- package/dist-esm/src/platform/index.js.map +0 -1
- package/dist-esm/src/platform/nodejs/baseSender.js.map +0 -1
- package/dist-esm/src/platform/nodejs/context/context.js.map +0 -1
- package/dist-esm/src/platform/nodejs/httpSender.js.map +0 -1
- package/dist-esm/src/platform/nodejs/index.js +0 -10
- package/dist-esm/src/platform/nodejs/index.js.map +0 -1
- package/dist-esm/src/platform/nodejs/persist/fileAccessControl.js.map +0 -1
- package/dist-esm/src/platform/nodejs/persist/fileSystemHelpers.js.map +0 -1
- package/dist-esm/src/platform/nodejs/persist/fileSystemPersist.js.map +0 -1
- package/dist-esm/src/sampling.js.map +0 -1
- package/dist-esm/src/types.js +0 -40
- package/dist-esm/src/types.js.map +0 -1
- package/dist-esm/src/utils/common.js.map +0 -1
- package/dist-esm/src/utils/connectionStringParser.js.map +0 -1
- package/dist-esm/src/utils/constants/applicationinsights.js.map +0 -1
- package/dist-esm/src/utils/eventhub.js.map +0 -1
- package/dist-esm/src/utils/logUtils.js.map +0 -1
- package/dist-esm/src/utils/metricUtils.js.map +0 -1
- package/dist-esm/src/utils/spanUtils.js.map +0 -1
- package/types/monitor-opentelemetry-exporter.d.ts +0 -222
- /package/{dist-esm/src → dist/esm}/Declarations/Contracts/Constants.js +0 -0
- /package/{dist-esm/src → dist/esm}/Declarations/Contracts/Constants.js.map +0 -0
- /package/{dist-esm/src → dist/esm}/config.js +0 -0
- /package/{dist-esm/src → dist/esm}/generated/models/index.js +0 -0
- /package/{dist-esm/src → dist/esm}/generated/models/index.js.map +0 -0
- /package/{dist-esm/src → dist/esm}/generated/models/mappers.js +0 -0
- /package/{dist-esm/src → dist/esm}/generated/models/mappers.js.map +0 -0
- /package/{dist-esm/src → dist/esm}/generated/models/parameters.js +0 -0
- /package/{dist-esm/src → dist/esm}/generated/models/parameters.js.map +0 -0
- /package/{dist-esm/src → dist/esm}/platform/nodejs/constants.js +0 -0
- /package/{dist-esm/src → dist/esm}/platform/nodejs/constants.js.map +0 -0
- /package/{dist-esm/src → dist/esm}/utils/breezeUtils.js +0 -0
- /package/{dist-esm/src → dist/esm}/utils/breezeUtils.js.map +0 -0
- /package/{dist-esm/src → dist/esm}/utils/constants/span/azAttributes.js +0 -0
- /package/{dist-esm/src → dist/esm}/utils/constants/span/azAttributes.js.map +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventhub.d.ts","sourceRoot":"","sources":["../../../src/utils/eventhub.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAwB/E;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,SACtB,YAAY,YACR,WAAW,GAAG,oBAAoB,KAC3C,IA4BF,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.parseEventHubSpan = void 0;
|
|
6
|
+
const api_1 = require("@opentelemetry/api");
|
|
7
|
+
const core_1 = require("@opentelemetry/core");
|
|
8
|
+
const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
|
|
9
|
+
const applicationinsights_js_1 = require("./constants/applicationinsights.js");
|
|
10
|
+
const azAttributes_js_1 = require("./constants/span/azAttributes.js");
|
|
11
|
+
/**
|
|
12
|
+
* Average span.links[].attributes.enqueuedTime
|
|
13
|
+
*/
|
|
14
|
+
const getTimeSinceEnqueued = (span) => {
|
|
15
|
+
let countEnqueueDiffs = 0;
|
|
16
|
+
let sumEnqueueDiffs = 0;
|
|
17
|
+
const startTimeMs = (0, core_1.hrTimeToMilliseconds)(span.startTime);
|
|
18
|
+
span.links.forEach(({ attributes }) => {
|
|
19
|
+
const enqueuedTime = attributes === null || attributes === void 0 ? void 0 : attributes[applicationinsights_js_1.ENQUEUED_TIME];
|
|
20
|
+
if (enqueuedTime) {
|
|
21
|
+
countEnqueueDiffs += 1;
|
|
22
|
+
sumEnqueueDiffs += startTimeMs - (parseFloat(enqueuedTime.toString()) || 0);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
return Math.max(sumEnqueueDiffs / (countEnqueueDiffs || 1), 0);
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Implementation of Mapping to Azure Monitor
|
|
29
|
+
*
|
|
30
|
+
* https://gist.github.com/lmolkova/e4215c0f44a49ef824983382762e6b92#mapping-to-azure-monitor-application-insights-telemetry
|
|
31
|
+
* @internal
|
|
32
|
+
*/
|
|
33
|
+
const parseEventHubSpan = (span, baseData) => {
|
|
34
|
+
const namespace = span.attributes[azAttributes_js_1.AzNamespace];
|
|
35
|
+
const peerAddress = (span.attributes[semantic_conventions_1.SEMATTRS_NET_PEER_NAME] ||
|
|
36
|
+
span.attributes["peer.address"] ||
|
|
37
|
+
"unknown").replace(/\/$/g, ""); // remove trailing "/"
|
|
38
|
+
const messageBusDestination = (span.attributes[azAttributes_js_1.MessageBusDestination] || "unknown");
|
|
39
|
+
switch (span.kind) {
|
|
40
|
+
case api_1.SpanKind.CLIENT:
|
|
41
|
+
baseData.type = namespace;
|
|
42
|
+
baseData.target = `${peerAddress}/${messageBusDestination}`;
|
|
43
|
+
break;
|
|
44
|
+
case api_1.SpanKind.PRODUCER:
|
|
45
|
+
baseData.type = `Queue Message | ${namespace}`;
|
|
46
|
+
baseData.target = `${peerAddress}/${messageBusDestination}`;
|
|
47
|
+
break;
|
|
48
|
+
case api_1.SpanKind.CONSUMER:
|
|
49
|
+
baseData.type = `Queue Message | ${namespace}`;
|
|
50
|
+
baseData.source = `${peerAddress}/${messageBusDestination}`;
|
|
51
|
+
baseData.measurements = Object.assign(Object.assign({}, baseData.measurements), { [applicationinsights_js_1.TIME_SINCE_ENQUEUED]: getTimeSinceEnqueued(span) });
|
|
52
|
+
break;
|
|
53
|
+
default: // no op
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
exports.parseEventHubSpan = parseEventHubSpan;
|
|
57
|
+
//# sourceMappingURL=eventhub.js.map
|
|
@@ -0,0 +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"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { TelemetryItem as Envelope } from "../generated/index.js";
|
|
2
|
+
import type { ReadableLogRecord } from "@opentelemetry/sdk-logs";
|
|
3
|
+
/**
|
|
4
|
+
* Log to Azure envelope parsing.
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
export declare function logToEnvelope(log: ReadableLogRecord, ikey: string): Envelope | undefined;
|
|
8
|
+
//# sourceMappingURL=logUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/logUtils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,aAAa,IAAI,QAAQ,EAO1B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAwBjE;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAwFxF"}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.logToEnvelope = logToEnvelope;
|
|
6
|
+
const index_js_1 = require("../generated/index.js");
|
|
7
|
+
const common_js_1 = require("./common.js");
|
|
8
|
+
const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
|
|
9
|
+
const types_js_1 = require("../types.js");
|
|
10
|
+
const api_1 = require("@opentelemetry/api");
|
|
11
|
+
const applicationinsights_js_1 = require("./constants/applicationinsights.js");
|
|
12
|
+
/**
|
|
13
|
+
* Log to Azure envelope parsing.
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
function logToEnvelope(log, ikey) {
|
|
17
|
+
const time = (0, common_js_1.hrTimeToDate)(log.hrTime);
|
|
18
|
+
const sampleRate = 100;
|
|
19
|
+
const instrumentationKey = ikey;
|
|
20
|
+
const tags = createTagsFromLog(log);
|
|
21
|
+
// eslint-disable-next-line prefer-const
|
|
22
|
+
let [properties, measurements] = createPropertiesFromLog(log);
|
|
23
|
+
let name;
|
|
24
|
+
let baseType;
|
|
25
|
+
let baseData;
|
|
26
|
+
const exceptionStacktrace = log.attributes[semantic_conventions_1.ATTR_EXCEPTION_STACKTRACE];
|
|
27
|
+
const exceptionType = log.attributes[semantic_conventions_1.ATTR_EXCEPTION_TYPE];
|
|
28
|
+
const isExceptionType = !!(exceptionType && exceptionStacktrace) || false;
|
|
29
|
+
const isMessageType = !log.attributes[applicationinsights_js_1.ApplicationInsightsBaseType] &&
|
|
30
|
+
!log.attributes[applicationinsights_js_1.ApplicationInsightsCustomEventName] &&
|
|
31
|
+
!exceptionType;
|
|
32
|
+
if (isExceptionType) {
|
|
33
|
+
const exceptionMessage = log.attributes[semantic_conventions_1.ATTR_EXCEPTION_MESSAGE];
|
|
34
|
+
name = applicationinsights_js_1.ApplicationInsightsExceptionName;
|
|
35
|
+
baseType = applicationinsights_js_1.ApplicationInsightsExceptionBaseType;
|
|
36
|
+
const exceptionDetails = {
|
|
37
|
+
typeName: String(exceptionType),
|
|
38
|
+
message: String(exceptionMessage),
|
|
39
|
+
hasFullStack: exceptionStacktrace ? true : false,
|
|
40
|
+
stack: String(exceptionStacktrace),
|
|
41
|
+
};
|
|
42
|
+
const exceptionData = {
|
|
43
|
+
exceptions: [exceptionDetails],
|
|
44
|
+
severityLevel: String(getSeverity(log.severityNumber)),
|
|
45
|
+
version: 2,
|
|
46
|
+
};
|
|
47
|
+
baseData = exceptionData;
|
|
48
|
+
}
|
|
49
|
+
else if (log.attributes[applicationinsights_js_1.ApplicationInsightsCustomEventName]) {
|
|
50
|
+
name = applicationinsights_js_1.ApplicationInsightsEventName;
|
|
51
|
+
baseType = applicationinsights_js_1.ApplicationInsightsEventBaseType;
|
|
52
|
+
const eventData = {
|
|
53
|
+
name: String(log.attributes[applicationinsights_js_1.ApplicationInsightsCustomEventName]),
|
|
54
|
+
version: 2,
|
|
55
|
+
};
|
|
56
|
+
baseData = eventData;
|
|
57
|
+
measurements = getLegacyApplicationInsightsMeasurements(log);
|
|
58
|
+
}
|
|
59
|
+
else if (isMessageType) {
|
|
60
|
+
name = applicationinsights_js_1.ApplicationInsightsMessageName;
|
|
61
|
+
baseType = applicationinsights_js_1.ApplicationInsightsMessageBaseType;
|
|
62
|
+
const messageData = {
|
|
63
|
+
message: String(log.body),
|
|
64
|
+
severityLevel: String(getSeverity(log.severityNumber)),
|
|
65
|
+
version: 2,
|
|
66
|
+
};
|
|
67
|
+
baseData = messageData;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
// If Legacy Application Insights Log
|
|
71
|
+
baseType = String(log.attributes[applicationinsights_js_1.ApplicationInsightsBaseType]);
|
|
72
|
+
name = getLegacyApplicationInsightsName(log);
|
|
73
|
+
baseData = getLegacyApplicationInsightsBaseData(log);
|
|
74
|
+
measurements = getLegacyApplicationInsightsMeasurements(log);
|
|
75
|
+
if (!baseData) {
|
|
76
|
+
// Failed to parse log
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// Truncate properties
|
|
81
|
+
if (baseData.message) {
|
|
82
|
+
baseData.message = String(baseData.message).substring(0, types_js_1.MaxPropertyLengths.FIFTEEN_BIT);
|
|
83
|
+
}
|
|
84
|
+
if (properties) {
|
|
85
|
+
for (const key of Object.keys(properties)) {
|
|
86
|
+
properties[key] = String(properties[key]).substring(0, types_js_1.MaxPropertyLengths.THIRTEEN_BIT);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
name,
|
|
91
|
+
sampleRate,
|
|
92
|
+
time,
|
|
93
|
+
instrumentationKey,
|
|
94
|
+
tags,
|
|
95
|
+
version: 1,
|
|
96
|
+
data: {
|
|
97
|
+
baseType,
|
|
98
|
+
baseData: Object.assign(Object.assign({}, baseData), { properties,
|
|
99
|
+
measurements }),
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
function createTagsFromLog(log) {
|
|
104
|
+
var _a, _b;
|
|
105
|
+
const tags = (0, common_js_1.createTagsFromResource)(log.resource);
|
|
106
|
+
if ((_a = log.spanContext) === null || _a === void 0 ? void 0 : _a.traceId) {
|
|
107
|
+
tags[index_js_1.KnownContextTagKeys.AiOperationId] = log.spanContext.traceId;
|
|
108
|
+
}
|
|
109
|
+
if ((_b = log.spanContext) === null || _b === void 0 ? void 0 : _b.spanId) {
|
|
110
|
+
tags[index_js_1.KnownContextTagKeys.AiOperationParentId] = log.spanContext.spanId;
|
|
111
|
+
}
|
|
112
|
+
if (log.attributes[index_js_1.KnownContextTagKeys.AiOperationName]) {
|
|
113
|
+
tags[index_js_1.KnownContextTagKeys.AiOperationName] = log.attributes[index_js_1.KnownContextTagKeys.AiOperationName];
|
|
114
|
+
}
|
|
115
|
+
return tags;
|
|
116
|
+
}
|
|
117
|
+
function createPropertiesFromLog(log) {
|
|
118
|
+
const measurements = {};
|
|
119
|
+
const properties = {};
|
|
120
|
+
if (log.attributes) {
|
|
121
|
+
for (const key of Object.keys(log.attributes)) {
|
|
122
|
+
// Avoid duplication ignoring fields already mapped.
|
|
123
|
+
if (!(key.startsWith("_MS.") ||
|
|
124
|
+
key.startsWith("microsoft") ||
|
|
125
|
+
key === semantic_conventions_1.ATTR_EXCEPTION_TYPE ||
|
|
126
|
+
key === semantic_conventions_1.ATTR_EXCEPTION_MESSAGE ||
|
|
127
|
+
key === semantic_conventions_1.ATTR_EXCEPTION_STACKTRACE ||
|
|
128
|
+
key === index_js_1.KnownContextTagKeys.AiOperationName)) {
|
|
129
|
+
properties[key] = (0, common_js_1.serializeAttribute)(log.attributes[key]);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return [properties, measurements];
|
|
134
|
+
}
|
|
135
|
+
// https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#field-severitynumber
|
|
136
|
+
function getSeverity(severityNumber) {
|
|
137
|
+
if (severityNumber) {
|
|
138
|
+
if (severityNumber > 0 && severityNumber < 9) {
|
|
139
|
+
return index_js_1.KnownSeverityLevel.Verbose;
|
|
140
|
+
}
|
|
141
|
+
else if (severityNumber >= 9 && severityNumber < 13) {
|
|
142
|
+
return index_js_1.KnownSeverityLevel.Information;
|
|
143
|
+
}
|
|
144
|
+
else if (severityNumber >= 13 && severityNumber < 17) {
|
|
145
|
+
return index_js_1.KnownSeverityLevel.Warning;
|
|
146
|
+
}
|
|
147
|
+
else if (severityNumber >= 17 && severityNumber < 21) {
|
|
148
|
+
return index_js_1.KnownSeverityLevel.Error;
|
|
149
|
+
}
|
|
150
|
+
else if (severityNumber >= 21 && severityNumber < 25) {
|
|
151
|
+
return index_js_1.KnownSeverityLevel.Critical;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
function getLegacyApplicationInsightsName(log) {
|
|
157
|
+
let name = "";
|
|
158
|
+
switch (log.attributes[applicationinsights_js_1.ApplicationInsightsBaseType]) {
|
|
159
|
+
case applicationinsights_js_1.ApplicationInsightsAvailabilityBaseType:
|
|
160
|
+
name = applicationinsights_js_1.ApplicationInsightsAvailabilityName;
|
|
161
|
+
break;
|
|
162
|
+
case applicationinsights_js_1.ApplicationInsightsExceptionBaseType:
|
|
163
|
+
name = applicationinsights_js_1.ApplicationInsightsExceptionName;
|
|
164
|
+
break;
|
|
165
|
+
case applicationinsights_js_1.ApplicationInsightsMessageBaseType:
|
|
166
|
+
name = applicationinsights_js_1.ApplicationInsightsMessageName;
|
|
167
|
+
break;
|
|
168
|
+
case applicationinsights_js_1.ApplicationInsightsPageViewBaseType:
|
|
169
|
+
name = applicationinsights_js_1.ApplicationInsightsPageViewName;
|
|
170
|
+
break;
|
|
171
|
+
case applicationinsights_js_1.ApplicationInsightsEventBaseType:
|
|
172
|
+
name = applicationinsights_js_1.ApplicationInsightsEventName;
|
|
173
|
+
break;
|
|
174
|
+
}
|
|
175
|
+
return name;
|
|
176
|
+
}
|
|
177
|
+
function getLegacyApplicationInsightsMeasurements(log) {
|
|
178
|
+
var _a;
|
|
179
|
+
let measurements = {};
|
|
180
|
+
if ((_a = log.body) === null || _a === void 0 ? void 0 : _a.measurements) {
|
|
181
|
+
measurements = Object.assign({}, log.body.measurements);
|
|
182
|
+
}
|
|
183
|
+
return measurements;
|
|
184
|
+
}
|
|
185
|
+
function getLegacyApplicationInsightsBaseData(log) {
|
|
186
|
+
let baseData = {
|
|
187
|
+
version: 2,
|
|
188
|
+
};
|
|
189
|
+
if (log.body) {
|
|
190
|
+
try {
|
|
191
|
+
switch (log.attributes[applicationinsights_js_1.ApplicationInsightsBaseType]) {
|
|
192
|
+
case applicationinsights_js_1.ApplicationInsightsAvailabilityBaseType:
|
|
193
|
+
baseData = log.body;
|
|
194
|
+
break;
|
|
195
|
+
case applicationinsights_js_1.ApplicationInsightsExceptionBaseType:
|
|
196
|
+
baseData = log.body;
|
|
197
|
+
break;
|
|
198
|
+
case applicationinsights_js_1.ApplicationInsightsMessageBaseType:
|
|
199
|
+
baseData = log.body;
|
|
200
|
+
break;
|
|
201
|
+
case applicationinsights_js_1.ApplicationInsightsPageViewBaseType:
|
|
202
|
+
baseData = log.body;
|
|
203
|
+
break;
|
|
204
|
+
case applicationinsights_js_1.ApplicationInsightsEventBaseType:
|
|
205
|
+
baseData = log.body;
|
|
206
|
+
break;
|
|
207
|
+
}
|
|
208
|
+
if (typeof (baseData === null || baseData === void 0 ? void 0 : baseData.message) === "object") {
|
|
209
|
+
baseData.message = JSON.stringify(baseData.message);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
catch (err) {
|
|
213
|
+
api_1.diag.error("AzureMonitorLogExporter failed to parse Application Insights Telemetry");
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return baseData;
|
|
217
|
+
}
|
|
218
|
+
//# sourceMappingURL=logUtils.js.map
|
|
@@ -0,0 +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 { createTagsFromResource, hrTimeToDate, serializeAttribute } 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 { MaxPropertyLengths } from \"../types.js\";\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\";\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 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 key === ATTR_EXCEPTION_TYPE ||\n key === ATTR_EXCEPTION_MESSAGE ||\n key === ATTR_EXCEPTION_STACKTRACE ||\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"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { DataPoint, ExponentialHistogram, Histogram, ResourceMetrics } from "@opentelemetry/sdk-metrics";
|
|
2
|
+
import type { TelemetryItem as Envelope } from "../generated/index.js";
|
|
3
|
+
import { AttachTypeName } from "../export/statsbeat/types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Metric to Azure envelope parsing.
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export declare function resourceMetricsToEnvelope(metrics: ResourceMetrics, ikey: string, isStatsbeat?: boolean): Envelope[];
|
|
9
|
+
export declare function isAksAttach(): boolean;
|
|
10
|
+
export declare function shouldSendToOtlp(): boolean;
|
|
11
|
+
export declare function isStandardMetric(dataPoint: DataPoint<number> | DataPoint<Histogram> | DataPoint<ExponentialHistogram>): boolean;
|
|
12
|
+
export declare function getAttachType(): AttachTypeName;
|
|
13
|
+
//# sourceMappingURL=metricUtils.d.ts.map
|
|
@@ -0,0 +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;AAwBzF;;;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"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.resourceMetricsToEnvelope = resourceMetricsToEnvelope;
|
|
6
|
+
exports.isAksAttach = isAksAttach;
|
|
7
|
+
exports.shouldSendToOtlp = shouldSendToOtlp;
|
|
8
|
+
exports.isStandardMetric = isStandardMetric;
|
|
9
|
+
exports.getAttachType = getAttachType;
|
|
10
|
+
const sdk_metrics_1 = require("@opentelemetry/sdk-metrics");
|
|
11
|
+
const common_js_1 = require("./common.js");
|
|
12
|
+
const types_js_1 = require("../types.js");
|
|
13
|
+
const Constants_js_1 = require("../Declarations/Constants.js");
|
|
14
|
+
const types_js_2 = require("../export/statsbeat/types.js");
|
|
15
|
+
const index_js_1 = require("../platform/index.js");
|
|
16
|
+
const breezePerformanceCountersMap = new Map([
|
|
17
|
+
[types_js_1.OTelPerformanceCounterNames.PRIVATE_BYTES, types_js_1.BreezePerformanceCounterNames.PRIVATE_BYTES],
|
|
18
|
+
[types_js_1.OTelPerformanceCounterNames.AVAILABLE_BYTES, types_js_1.BreezePerformanceCounterNames.AVAILABLE_BYTES],
|
|
19
|
+
[types_js_1.OTelPerformanceCounterNames.PROCESSOR_TIME, types_js_1.BreezePerformanceCounterNames.PROCESSOR_TIME],
|
|
20
|
+
[types_js_1.OTelPerformanceCounterNames.PROCESS_TIME, types_js_1.BreezePerformanceCounterNames.PROCESS_TIME],
|
|
21
|
+
[types_js_1.OTelPerformanceCounterNames.REQUEST_RATE, types_js_1.BreezePerformanceCounterNames.REQUEST_RATE],
|
|
22
|
+
[types_js_1.OTelPerformanceCounterNames.REQUEST_DURATION, types_js_1.BreezePerformanceCounterNames.REQUEST_DURATION],
|
|
23
|
+
]);
|
|
24
|
+
function createPropertiesFromMetricAttributes(attributes) {
|
|
25
|
+
const properties = {};
|
|
26
|
+
if (attributes) {
|
|
27
|
+
for (const key of Object.keys(attributes)) {
|
|
28
|
+
properties[key] = attributes[key];
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return properties;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Metric to Azure envelope parsing.
|
|
35
|
+
* @internal
|
|
36
|
+
*/
|
|
37
|
+
function resourceMetricsToEnvelope(metrics, ikey, isStatsbeat) {
|
|
38
|
+
const envelopes = [];
|
|
39
|
+
const time = new Date();
|
|
40
|
+
const instrumentationKey = ikey;
|
|
41
|
+
let tags;
|
|
42
|
+
let envelopeName;
|
|
43
|
+
if (isStatsbeat) {
|
|
44
|
+
envelopeName = "Microsoft.ApplicationInsights.Statsbeat";
|
|
45
|
+
const context = (0, index_js_1.getInstance)();
|
|
46
|
+
tags = Object.assign({}, context.tags);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
envelopeName = "Microsoft.ApplicationInsights.Metric";
|
|
50
|
+
tags = (0, common_js_1.createTagsFromResource)(metrics.resource);
|
|
51
|
+
}
|
|
52
|
+
metrics.scopeMetrics.forEach((scopeMetric) => {
|
|
53
|
+
scopeMetric.metrics.forEach((metric) => {
|
|
54
|
+
metric.dataPoints.forEach((dataPoint) => {
|
|
55
|
+
const baseData = {
|
|
56
|
+
metrics: [],
|
|
57
|
+
version: 2,
|
|
58
|
+
properties: {},
|
|
59
|
+
};
|
|
60
|
+
baseData.properties = createPropertiesFromMetricAttributes(dataPoint.attributes);
|
|
61
|
+
// 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.
|
|
62
|
+
if (shouldSendToOtlp() &&
|
|
63
|
+
isAksAttach() &&
|
|
64
|
+
!isStandardMetric(dataPoint) &&
|
|
65
|
+
process.env[Constants_js_1.ENV_APPLICATIONINSIGHTS_METRICS_TO_LOGANALYTICS_ENABLED] === "false" &&
|
|
66
|
+
!isStatsbeat) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if (shouldSendToOtlp() && isAksAttach() && !isStatsbeat) {
|
|
70
|
+
baseData.properties["_MS.SentToAMW"] = "True";
|
|
71
|
+
}
|
|
72
|
+
else if (isAksAttach() && !isStatsbeat) {
|
|
73
|
+
baseData.properties["_MS.SentToAMW"] = "False";
|
|
74
|
+
}
|
|
75
|
+
let perfCounterName;
|
|
76
|
+
if (breezePerformanceCountersMap.has(metric.descriptor.name)) {
|
|
77
|
+
perfCounterName = breezePerformanceCountersMap.get(metric.descriptor.name);
|
|
78
|
+
}
|
|
79
|
+
const metricDataPoint = {
|
|
80
|
+
name: perfCounterName ? perfCounterName : metric.descriptor.name,
|
|
81
|
+
value: 0,
|
|
82
|
+
dataPointType: "Aggregation",
|
|
83
|
+
};
|
|
84
|
+
if (metric.dataPointType === sdk_metrics_1.DataPointType.SUM ||
|
|
85
|
+
metric.dataPointType === sdk_metrics_1.DataPointType.GAUGE) {
|
|
86
|
+
metricDataPoint.value = dataPoint.value;
|
|
87
|
+
metricDataPoint.count = 1;
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
metricDataPoint.value = dataPoint.value.sum || 0;
|
|
91
|
+
metricDataPoint.count = dataPoint.value.count;
|
|
92
|
+
metricDataPoint.max = dataPoint.value.max;
|
|
93
|
+
metricDataPoint.min = dataPoint.value.min;
|
|
94
|
+
}
|
|
95
|
+
baseData.metrics.push(metricDataPoint);
|
|
96
|
+
const envelope = {
|
|
97
|
+
name: envelopeName,
|
|
98
|
+
time: time,
|
|
99
|
+
sampleRate: 100, // Metrics are never sampled
|
|
100
|
+
instrumentationKey: instrumentationKey,
|
|
101
|
+
tags: tags,
|
|
102
|
+
version: 1,
|
|
103
|
+
data: {
|
|
104
|
+
baseType: "MetricData",
|
|
105
|
+
baseData: Object.assign({}, baseData),
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
envelopes.push(envelope);
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
return envelopes;
|
|
113
|
+
}
|
|
114
|
+
function isAksAttach() {
|
|
115
|
+
return !!(process.env[Constants_js_1.ENV_AZURE_MONITOR_AUTO_ATTACH] === "true" && process.env.AKS_ARM_NAMESPACE_ID);
|
|
116
|
+
}
|
|
117
|
+
function shouldSendToOtlp() {
|
|
118
|
+
var _a;
|
|
119
|
+
return !!(process.env[Constants_js_1.ENV_OTLP_METRICS_ENDPOINT] &&
|
|
120
|
+
((_a = process.env[Constants_js_1.ENV_OTEL_METRICS_EXPORTER]) === null || _a === void 0 ? void 0 : _a.includes("otlp")));
|
|
121
|
+
}
|
|
122
|
+
function isStandardMetric(dataPoint) {
|
|
123
|
+
var _a;
|
|
124
|
+
return ((_a = dataPoint.attributes) === null || _a === void 0 ? void 0 : _a["_MS.IsAutocollected"]) === "True";
|
|
125
|
+
}
|
|
126
|
+
function getAttachType() {
|
|
127
|
+
if (process.env[types_js_2.AZURE_MONITOR_AUTO_ATTACH] === "true") {
|
|
128
|
+
return types_js_2.AttachTypeName.INTEGRATED_AUTO;
|
|
129
|
+
}
|
|
130
|
+
return types_js_2.AttachTypeName.MANUAL;
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=metricUtils.js.map
|
|
@@ -0,0 +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 [OTelPerformanceCounterNames.PROCESS_TIME, BreezePerformanceCounterNames.PROCESS_TIME],\n [OTelPerformanceCounterNames.REQUEST_RATE, BreezePerformanceCounterNames.REQUEST_RATE],\n [OTelPerformanceCounterNames.REQUEST_DURATION, BreezePerformanceCounterNames.REQUEST_DURATION],\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"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ReadableSpan } from "@opentelemetry/sdk-trace-base";
|
|
2
|
+
import type { Attributes, AttributeValue } from "@opentelemetry/api";
|
|
3
|
+
import type { Tags } from "../types.js";
|
|
4
|
+
import type { TelemetryItem as Envelope } from "../generated/index.js";
|
|
5
|
+
/**
|
|
6
|
+
* Span to Azure envelope parsing.
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export declare function readableSpanToEnvelope(span: ReadableSpan, ikey: string): Envelope;
|
|
10
|
+
/**
|
|
11
|
+
* Span Events to Azure envelopes parsing.
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
export declare function spanEventsToEnvelopes(span: ReadableSpan, ikey: string): Envelope[];
|
|
15
|
+
export declare function getPeerIp(attributes: Attributes): AttributeValue | undefined;
|
|
16
|
+
export declare function getLocationIp(tags: Tags, attributes: Attributes): void;
|
|
17
|
+
export declare function getHttpClientIp(attributes: Attributes): AttributeValue | undefined;
|
|
18
|
+
export declare function getUserAgent(attributes: Attributes): AttributeValue | undefined;
|
|
19
|
+
export declare function getHttpUrl(attributes: Attributes): AttributeValue | undefined;
|
|
20
|
+
export declare function getHttpMethod(attributes: Attributes): AttributeValue | undefined;
|
|
21
|
+
export declare function getHttpStatusCode(attributes: Attributes): AttributeValue | undefined;
|
|
22
|
+
export declare function getHttpScheme(attributes: Attributes): AttributeValue | undefined;
|
|
23
|
+
export declare function getHttpTarget(attributes: Attributes): AttributeValue | undefined;
|
|
24
|
+
export declare function getHttpHost(attributes: Attributes): AttributeValue | undefined;
|
|
25
|
+
export declare function getNetPeerName(attributes: Attributes): AttributeValue | undefined;
|
|
26
|
+
export declare function getNetPeerPort(attributes: Attributes): AttributeValue | undefined;
|
|
27
|
+
//# sourceMappingURL=spanUtils.d.ts.map
|
|
@@ -0,0 +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;AAoD3E,OAAO,KAAK,EAAE,IAAI,EAAoC,MAAM,aAAa,CAAC;AAS1E,OAAO,KAAK,EAKV,aAAa,IAAI,QAAQ,EAE1B,MAAM,uBAAuB,CAAC;AAuO/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"}
|