@azure/monitor-opentelemetry-exporter 1.0.0-beta.26 → 1.0.0-beta.28
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 +10 -13
- package/dist/commonjs/Declarations/Constants.d.ts +111 -0
- package/dist/commonjs/Declarations/Constants.d.ts.map +1 -0
- package/dist/commonjs/Declarations/Constants.js +127 -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 +126 -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 +288 -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 +97 -0
- package/dist/commonjs/export/statsbeat/types.d.ts.map +1 -0
- package/dist/commonjs/export/statsbeat/types.js +83 -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 +86 -0
- package/dist/commonjs/types.d.ts.map +1 -0
- package/dist/commonjs/types.js +43 -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 +250 -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 +41 -0
- package/dist/commonjs/utils/constants/applicationinsights.d.ts.map +1 -0
- package/dist/commonjs/utils/constants/applicationinsights.js +47 -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 +206 -0
- package/dist/commonjs/utils/logUtils.js.map +1 -0
- package/dist/commonjs/utils/metricUtils.d.ts +8 -0
- package/dist/commonjs/utils/metricUtils.d.ts.map +1 -0
- package/dist/commonjs/utils/metricUtils.js +90 -0
- package/dist/commonjs/utils/metricUtils.js.map +1 -0
- package/dist/commonjs/utils/spanUtils.d.ts +13 -0
- package/dist/commonjs/utils/spanUtils.d.ts.map +1 -0
- package/dist/commonjs/utils/spanUtils.js +461 -0
- package/dist/commonjs/utils/spanUtils.js.map +1 -0
- package/dist/esm/Declarations/Constants.d.ts +111 -0
- package/dist/esm/Declarations/Constants.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/Declarations/Constants.js +19 -1
- 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 +3 -3
- 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 +16 -14
- 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 +45 -8
- 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 +97 -0
- package/dist/esm/export/statsbeat/types.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/export/statsbeat/types.js +14 -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 +27 -11
- 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 +86 -0
- package/dist/esm/types.d.ts.map +1 -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 +20 -11
- 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 +41 -0
- package/dist/esm/utils/constants/applicationinsights.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/utils/constants/applicationinsights.js +1 -1
- package/{dist-esm/src → dist/esm}/utils/constants/applicationinsights.js.map +1 -1
- 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 +15 -11
- package/dist/esm/utils/logUtils.js.map +1 -0
- package/dist/esm/utils/metricUtils.d.ts +8 -0
- package/dist/esm/utils/metricUtils.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/utils/metricUtils.js +2 -2
- package/dist/esm/utils/metricUtils.js.map +1 -0
- package/dist/esm/utils/spanUtils.d.ts +13 -0
- package/dist/esm/utils/spanUtils.d.ts.map +1 -0
- package/{dist-esm/src → dist/esm}/utils/spanUtils.js +33 -13
- package/dist/esm/utils/spanUtils.js.map +1 -0
- package/package.json +69 -50
- package/dist/index.js +0 -4045
- 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.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/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}/types.js +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,184 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.FileSystemPersist = void 0;
|
|
6
|
+
const node_os_1 = require("node:os");
|
|
7
|
+
const node_path_1 = require("node:path");
|
|
8
|
+
const api_1 = require("@opentelemetry/api");
|
|
9
|
+
const fileAccessControl_js_1 = require("./fileAccessControl.js");
|
|
10
|
+
const fileSystemHelpers_js_1 = require("./fileSystemHelpers.js");
|
|
11
|
+
const promises_1 = require("node:fs/promises");
|
|
12
|
+
/**
|
|
13
|
+
* File system persist class.
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
class FileSystemPersist {
|
|
17
|
+
constructor(instrumentationKey, _options) {
|
|
18
|
+
var _a, _b;
|
|
19
|
+
this._options = _options;
|
|
20
|
+
this.fileRetemptionPeriod = 2 * 24 * 60 * 60 * 1000; // 2 days
|
|
21
|
+
this.cleanupTimeOut = 60 * 60 * 1000; // 1 hour
|
|
22
|
+
this.maxBytesOnDisk = 50000000; // ~50MB
|
|
23
|
+
this._tempDirectory = "";
|
|
24
|
+
this._fileCleanupTimer = null;
|
|
25
|
+
this._instrumentationKey = instrumentationKey;
|
|
26
|
+
if ((_a = this._options) === null || _a === void 0 ? void 0 : _a.disableOfflineStorage) {
|
|
27
|
+
this._enabled = false;
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
this._enabled = true;
|
|
31
|
+
fileAccessControl_js_1.FileAccessControl.checkFileProtection();
|
|
32
|
+
if (!fileAccessControl_js_1.FileAccessControl.OS_PROVIDES_FILE_PROTECTION) {
|
|
33
|
+
this._enabled = false;
|
|
34
|
+
api_1.diag.error("Sufficient file protection capabilities were not detected. Files will not be persisted");
|
|
35
|
+
}
|
|
36
|
+
if (!this._instrumentationKey) {
|
|
37
|
+
this._enabled = false;
|
|
38
|
+
api_1.diag.error(`No instrumentation key was provided to FileSystemPersister. Files will not be persisted`);
|
|
39
|
+
}
|
|
40
|
+
if (this._enabled) {
|
|
41
|
+
this._tempDirectory = (0, node_path_1.join)(((_b = this._options) === null || _b === void 0 ? void 0 : _b.storageDirectory) || (0, node_os_1.tmpdir)(), "Microsoft", "AzureMonitor", FileSystemPersist.TEMPDIR_PREFIX + this._instrumentationKey);
|
|
42
|
+
// Starts file cleanup task
|
|
43
|
+
if (!this._fileCleanupTimer) {
|
|
44
|
+
this._fileCleanupTimer = setTimeout(() => {
|
|
45
|
+
this._fileCleanupTask();
|
|
46
|
+
}, this.cleanupTimeOut);
|
|
47
|
+
this._fileCleanupTimer.unref();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
push(value) {
|
|
52
|
+
var _a;
|
|
53
|
+
if (this._enabled) {
|
|
54
|
+
api_1.diag.debug("Pushing value to persistent storage", value.toString());
|
|
55
|
+
return this._storeToDisk(JSON.stringify(value));
|
|
56
|
+
}
|
|
57
|
+
// Only return a false promise if the SDK isn't set to disable offline storage
|
|
58
|
+
if (!((_a = this._options) === null || _a === void 0 ? void 0 : _a.disableOfflineStorage)) {
|
|
59
|
+
return new Promise((resolve) => {
|
|
60
|
+
resolve(false);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
return new Promise((resolve) => {
|
|
64
|
+
resolve(true);
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
async shift() {
|
|
68
|
+
if (this._enabled) {
|
|
69
|
+
api_1.diag.debug("Searching for filesystem persisted files");
|
|
70
|
+
try {
|
|
71
|
+
const buffer = await this._getFirstFileOnDisk();
|
|
72
|
+
if (buffer) {
|
|
73
|
+
return JSON.parse(buffer.toString("utf8"));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch (e) {
|
|
77
|
+
api_1.diag.debug("Failed to read persisted file", e);
|
|
78
|
+
}
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
return new Promise((resolve) => {
|
|
82
|
+
resolve(null);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Check for temp telemetry files
|
|
87
|
+
* reads the first file if exist, deletes it and tries to send its load
|
|
88
|
+
*/
|
|
89
|
+
async _getFirstFileOnDisk() {
|
|
90
|
+
try {
|
|
91
|
+
const stats = await (0, promises_1.stat)(this._tempDirectory);
|
|
92
|
+
if (stats.isDirectory()) {
|
|
93
|
+
const origFiles = await (0, promises_1.readdir)(this._tempDirectory);
|
|
94
|
+
const files = origFiles.filter((f) => (0, node_path_1.basename)(f).includes(FileSystemPersist.FILENAME_SUFFIX));
|
|
95
|
+
if (files.length === 0) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
const firstFile = files[0];
|
|
100
|
+
const filePath = (0, node_path_1.join)(this._tempDirectory, firstFile);
|
|
101
|
+
const payload = await (0, promises_1.readFile)(filePath);
|
|
102
|
+
// delete the file first to prevent double sending
|
|
103
|
+
await (0, promises_1.unlink)(filePath);
|
|
104
|
+
return payload;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
catch (e) {
|
|
110
|
+
if (e.code === "ENOENT") {
|
|
111
|
+
// File does not exist -- return null instead of throwing
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
throw e;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
async _storeToDisk(payload) {
|
|
120
|
+
try {
|
|
121
|
+
await (0, fileSystemHelpers_js_1.confirmDirExists)(this._tempDirectory);
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
api_1.diag.warn(`Error while checking/creating directory: `, error && error.message);
|
|
125
|
+
return false;
|
|
126
|
+
}
|
|
127
|
+
try {
|
|
128
|
+
const size = await (0, fileSystemHelpers_js_1.getShallowDirectorySize)(this._tempDirectory);
|
|
129
|
+
if (size > this.maxBytesOnDisk) {
|
|
130
|
+
api_1.diag.warn(`Not saving data due to max size limit being met. Directory size in bytes is: ${size}`);
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
api_1.diag.warn(`Error while checking size of persistence directory: `, error && error.message);
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
const fileName = `${new Date().getTime()}${FileSystemPersist.FILENAME_SUFFIX}`;
|
|
139
|
+
const fileFullPath = (0, node_path_1.join)(this._tempDirectory, fileName);
|
|
140
|
+
// Mode 600 is w/r for creator and no read access for others
|
|
141
|
+
api_1.diag.info(`saving data to disk at: ${fileFullPath}`);
|
|
142
|
+
try {
|
|
143
|
+
await (0, promises_1.writeFile)(fileFullPath, payload, { mode: 0o600 });
|
|
144
|
+
}
|
|
145
|
+
catch (writeError) {
|
|
146
|
+
api_1.diag.warn(`Error writing file to persistent file storage`, writeError);
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
149
|
+
return true;
|
|
150
|
+
}
|
|
151
|
+
async _fileCleanupTask() {
|
|
152
|
+
try {
|
|
153
|
+
const stats = await (0, promises_1.stat)(this._tempDirectory);
|
|
154
|
+
if (stats.isDirectory()) {
|
|
155
|
+
const origFiles = await (0, promises_1.readdir)(this._tempDirectory);
|
|
156
|
+
const files = origFiles.filter((f) => (0, node_path_1.basename)(f).includes(FileSystemPersist.FILENAME_SUFFIX));
|
|
157
|
+
if (files.length === 0) {
|
|
158
|
+
return false;
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
files.forEach(async (file) => {
|
|
162
|
+
// Check expiration
|
|
163
|
+
const fileCreationDate = new Date(parseInt(file.split(FileSystemPersist.FILENAME_SUFFIX)[0]));
|
|
164
|
+
const expired = new Date(+new Date() - this.fileRetemptionPeriod) > fileCreationDate;
|
|
165
|
+
if (expired) {
|
|
166
|
+
const filePath = (0, node_path_1.join)(this._tempDirectory, file);
|
|
167
|
+
await (0, promises_1.unlink)(filePath);
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
return true;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
api_1.diag.info(`Failed cleanup of persistent file storage expired files`, error);
|
|
177
|
+
return false;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
exports.FileSystemPersist = FileSystemPersist;
|
|
182
|
+
FileSystemPersist.TEMPDIR_PREFIX = "ot-azure-exporter-";
|
|
183
|
+
FileSystemPersist.FILENAME_SUFFIX = ".ai.json";
|
|
184
|
+
//# sourceMappingURL=fileSystemPersist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileSystemPersist.js","sourceRoot":"","sources":["../../../../../src/platform/nodejs/persist/fileSystemPersist.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { tmpdir } from \"node:os\";\nimport { basename, join } from \"node:path\";\nimport { diag } from \"@opentelemetry/api\";\nimport type { PersistentStorage } from \"../../../types.js\";\nimport { FileAccessControl } from \"./fileAccessControl.js\";\nimport { confirmDirExists, getShallowDirectorySize } from \"./fileSystemHelpers.js\";\nimport type { AzureMonitorExporterOptions } from \"../../../config.js\";\nimport { readdir, readFile, stat, unlink, writeFile } from \"node:fs/promises\";\n\n/**\n * File system persist class.\n * @internal\n */\nexport class FileSystemPersist implements PersistentStorage {\n static TEMPDIR_PREFIX = \"ot-azure-exporter-\";\n static FILENAME_SUFFIX = \".ai.json\";\n\n fileRetemptionPeriod = 2 * 24 * 60 * 60 * 1000; // 2 days\n cleanupTimeOut = 60 * 60 * 1000; // 1 hour\n maxBytesOnDisk: number = 50_000_000; // ~50MB\n\n private _enabled: boolean;\n private _tempDirectory: string = \"\";\n private _fileCleanupTimer: NodeJS.Timeout | null = null;\n private _instrumentationKey: string;\n\n constructor(\n instrumentationKey: string,\n private _options?: AzureMonitorExporterOptions,\n ) {\n this._instrumentationKey = instrumentationKey;\n if (this._options?.disableOfflineStorage) {\n this._enabled = false;\n return;\n }\n this._enabled = true;\n FileAccessControl.checkFileProtection();\n\n if (!FileAccessControl.OS_PROVIDES_FILE_PROTECTION) {\n this._enabled = false;\n diag.error(\n \"Sufficient file protection capabilities were not detected. Files will not be persisted\",\n );\n }\n\n if (!this._instrumentationKey) {\n this._enabled = false;\n diag.error(\n `No instrumentation key was provided to FileSystemPersister. Files will not be persisted`,\n );\n }\n if (this._enabled) {\n this._tempDirectory = join(\n this._options?.storageDirectory || tmpdir(),\n \"Microsoft\",\n \"AzureMonitor\",\n FileSystemPersist.TEMPDIR_PREFIX + this._instrumentationKey,\n );\n\n // Starts file cleanup task\n if (!this._fileCleanupTimer) {\n this._fileCleanupTimer = setTimeout(() => {\n this._fileCleanupTask();\n }, this.cleanupTimeOut);\n this._fileCleanupTimer.unref();\n }\n }\n }\n\n push(value: unknown[]): Promise<boolean> {\n if (this._enabled) {\n diag.debug(\"Pushing value to persistent storage\", value.toString());\n return this._storeToDisk(JSON.stringify(value));\n }\n // Only return a false promise if the SDK isn't set to disable offline storage\n if (!this._options?.disableOfflineStorage) {\n return new Promise((resolve) => {\n resolve(false);\n });\n }\n return new Promise((resolve) => {\n resolve(true);\n });\n }\n\n async shift(): Promise<unknown> {\n if (this._enabled) {\n diag.debug(\"Searching for filesystem persisted files\");\n try {\n const buffer = await this._getFirstFileOnDisk();\n if (buffer) {\n return JSON.parse(buffer.toString(\"utf8\"));\n }\n } catch (e: any) {\n diag.debug(\"Failed to read persisted file\", e);\n }\n return null;\n }\n return new Promise((resolve) => {\n resolve(null);\n });\n }\n\n /**\n * Check for temp telemetry files\n * reads the first file if exist, deletes it and tries to send its load\n */\n private async _getFirstFileOnDisk(): Promise<Buffer | null> {\n try {\n const stats = await stat(this._tempDirectory);\n if (stats.isDirectory()) {\n const origFiles = await readdir(this._tempDirectory);\n const files = origFiles.filter((f) =>\n basename(f).includes(FileSystemPersist.FILENAME_SUFFIX),\n );\n if (files.length === 0) {\n return null;\n } else {\n const firstFile = files[0];\n const filePath = join(this._tempDirectory, firstFile);\n const payload = await readFile(filePath);\n // delete the file first to prevent double sending\n await unlink(filePath);\n return payload;\n }\n }\n return null;\n } catch (e: any) {\n if (e.code === \"ENOENT\") {\n // File does not exist -- return null instead of throwing\n return null;\n } else {\n throw e;\n }\n }\n }\n\n private async _storeToDisk(payload: string): Promise<boolean> {\n try {\n await confirmDirExists(this._tempDirectory);\n } catch (error: any) {\n diag.warn(`Error while checking/creating directory: `, error && error.message);\n return false;\n }\n\n try {\n const size = await getShallowDirectorySize(this._tempDirectory);\n if (size > this.maxBytesOnDisk) {\n diag.warn(\n `Not saving data due to max size limit being met. Directory size in bytes is: ${size}`,\n );\n return false;\n }\n } catch (error: any) {\n diag.warn(`Error while checking size of persistence directory: `, error && error.message);\n return false;\n }\n\n const fileName = `${new Date().getTime()}${FileSystemPersist.FILENAME_SUFFIX}`;\n const fileFullPath = join(this._tempDirectory, fileName);\n\n // Mode 600 is w/r for creator and no read access for others\n diag.info(`saving data to disk at: ${fileFullPath}`);\n try {\n await writeFile(fileFullPath, payload, { mode: 0o600 });\n } catch (writeError: any) {\n diag.warn(`Error writing file to persistent file storage`, writeError);\n return false;\n }\n return true;\n }\n\n private async _fileCleanupTask(): Promise<boolean> {\n try {\n const stats = await stat(this._tempDirectory);\n if (stats.isDirectory()) {\n const origFiles = await readdir(this._tempDirectory);\n const files = origFiles.filter((f) =>\n basename(f).includes(FileSystemPersist.FILENAME_SUFFIX),\n );\n if (files.length === 0) {\n return false;\n } else {\n files.forEach(async (file) => {\n // Check expiration\n const fileCreationDate: Date = new Date(\n parseInt(file.split(FileSystemPersist.FILENAME_SUFFIX)[0]),\n );\n const expired = new Date(+new Date() - this.fileRetemptionPeriod) > fileCreationDate;\n if (expired) {\n const filePath = join(this._tempDirectory, file);\n await unlink(filePath);\n }\n });\n return true;\n }\n }\n return false;\n } catch (error: any) {\n diag.info(`Failed cleanup of persistent file storage expired files`, error);\n return false;\n }\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/platform/nodejs/persist/index.ts"],"names":[],"mappings":"AAGA,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
tslib_1.__exportStar(require("./fileSystemPersist.js"), exports);
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/platform/nodejs/persist/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAElC,iEAAuC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nexport * from \"./fileSystemPersist.js\";\n"]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { Link, Attributes, SpanKind, Context } from "@opentelemetry/api";
|
|
2
|
+
import type { Sampler, SamplingResult } from "@opentelemetry/sdk-trace-base";
|
|
3
|
+
/**
|
|
4
|
+
* ApplicationInsightsSampler is responsible for the following:
|
|
5
|
+
* Implements same trace id hashing algorithm so that traces are sampled the same across multiple nodes
|
|
6
|
+
* Adds item count to span attribute if span is sampled (needed for ingestion service)
|
|
7
|
+
* @param samplingRatio - 0 to 1 value.
|
|
8
|
+
*/
|
|
9
|
+
export declare class ApplicationInsightsSampler implements Sampler {
|
|
10
|
+
private readonly _sampleRate;
|
|
11
|
+
private readonly samplingRatio;
|
|
12
|
+
/**
|
|
13
|
+
* Initializes a new instance of the ApplicationInsightsSampler class.
|
|
14
|
+
* @param samplingRatio - Value in the range [0,1], 1 meaning all data will sampled and 0 all Tracing data will be sampled out.
|
|
15
|
+
*/
|
|
16
|
+
constructor(samplingRatio?: number);
|
|
17
|
+
/**
|
|
18
|
+
* Checks whether span needs to be created and tracked.
|
|
19
|
+
*
|
|
20
|
+
* @param context - Parent Context which may contain a span.
|
|
21
|
+
* @param traceId - traceif of the span to be created. It can be different from the
|
|
22
|
+
* traceId in the {@link SpanContext}. Typically in situations when the
|
|
23
|
+
* span to be created starts a new trace.
|
|
24
|
+
* @param spanName - Name of the span to be created.
|
|
25
|
+
* @param spanKind - Kind of the span to be created.
|
|
26
|
+
* @param attributes - Initial set of SpanAttributes for the Span being constructed.
|
|
27
|
+
* @param links - Collection of links that will be associated with the Span to
|
|
28
|
+
* be created. Typically useful for batch operations.
|
|
29
|
+
* @returns a {@link SamplingResult}.
|
|
30
|
+
*/
|
|
31
|
+
shouldSample(context: Context, traceId: string, spanName: string, spanKind: SpanKind, attributes: Attributes, links: Link[]): SamplingResult;
|
|
32
|
+
/**
|
|
33
|
+
* Return Sampler description
|
|
34
|
+
*/
|
|
35
|
+
toString(): string;
|
|
36
|
+
private _getSamplingHashCode;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=sampling.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sampling.d.ts","sourceRoot":"","sources":["../../src/sampling.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAI7E;;;;;GAKG;AACH,qBAAa,0BAA2B,YAAW,OAAO;IACxD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAEvC;;;OAGG;gBACS,aAAa,GAAE,MAAU;IAQrC;;;;;;;;;;;;;OAaG;IACI,YAAY,CAEjB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EAEf,QAAQ,EAAE,MAAM,EAEhB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EAEtB,KAAK,EAAE,IAAI,EAAE,GACZ,cAAc;IAqBjB;;OAEG;IACI,QAAQ,IAAI,MAAM;IAIzB,OAAO,CAAC,oBAAoB;CAqB7B"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ApplicationInsightsSampler = void 0;
|
|
4
|
+
const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base");
|
|
5
|
+
const applicationinsights_js_1 = require("./utils/constants/applicationinsights.js");
|
|
6
|
+
/**
|
|
7
|
+
* ApplicationInsightsSampler is responsible for the following:
|
|
8
|
+
* Implements same trace id hashing algorithm so that traces are sampled the same across multiple nodes
|
|
9
|
+
* Adds item count to span attribute if span is sampled (needed for ingestion service)
|
|
10
|
+
* @param samplingRatio - 0 to 1 value.
|
|
11
|
+
*/
|
|
12
|
+
class ApplicationInsightsSampler {
|
|
13
|
+
/**
|
|
14
|
+
* Initializes a new instance of the ApplicationInsightsSampler class.
|
|
15
|
+
* @param samplingRatio - Value in the range [0,1], 1 meaning all data will sampled and 0 all Tracing data will be sampled out.
|
|
16
|
+
*/
|
|
17
|
+
constructor(samplingRatio = 1) {
|
|
18
|
+
this.samplingRatio = samplingRatio;
|
|
19
|
+
if (this.samplingRatio > 1 || this.samplingRatio < 0 || !Number.isFinite(this.samplingRatio)) {
|
|
20
|
+
throw new Error("Wrong sampling rate, data will not be sampled out");
|
|
21
|
+
}
|
|
22
|
+
this._sampleRate = Math.round(this.samplingRatio * 100);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Checks whether span needs to be created and tracked.
|
|
26
|
+
*
|
|
27
|
+
* @param context - Parent Context which may contain a span.
|
|
28
|
+
* @param traceId - traceif of the span to be created. It can be different from the
|
|
29
|
+
* traceId in the {@link SpanContext}. Typically in situations when the
|
|
30
|
+
* span to be created starts a new trace.
|
|
31
|
+
* @param spanName - Name of the span to be created.
|
|
32
|
+
* @param spanKind - Kind of the span to be created.
|
|
33
|
+
* @param attributes - Initial set of SpanAttributes for the Span being constructed.
|
|
34
|
+
* @param links - Collection of links that will be associated with the Span to
|
|
35
|
+
* be created. Typically useful for batch operations.
|
|
36
|
+
* @returns a {@link SamplingResult}.
|
|
37
|
+
*/
|
|
38
|
+
shouldSample(
|
|
39
|
+
// @ts-expect-error unused argument
|
|
40
|
+
context, traceId,
|
|
41
|
+
// @ts-expect-error unused argument
|
|
42
|
+
spanName,
|
|
43
|
+
// @ts-expect-error unused argument
|
|
44
|
+
spanKind, attributes,
|
|
45
|
+
// @ts-expect-error unused argument
|
|
46
|
+
links) {
|
|
47
|
+
let isSampledIn = false;
|
|
48
|
+
if (this._sampleRate === 100) {
|
|
49
|
+
isSampledIn = true;
|
|
50
|
+
}
|
|
51
|
+
else if (this._sampleRate === 0) {
|
|
52
|
+
isSampledIn = false;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
isSampledIn = this._getSamplingHashCode(traceId) < this._sampleRate;
|
|
56
|
+
}
|
|
57
|
+
// Add sample rate as span attribute
|
|
58
|
+
attributes = attributes || {};
|
|
59
|
+
// Only send the sample rate if it's not 100
|
|
60
|
+
if (this._sampleRate !== 100) {
|
|
61
|
+
attributes[applicationinsights_js_1.AzureMonitorSampleRate] = this._sampleRate;
|
|
62
|
+
}
|
|
63
|
+
return isSampledIn
|
|
64
|
+
? { decision: sdk_trace_base_1.SamplingDecision.RECORD_AND_SAMPLED, attributes: attributes }
|
|
65
|
+
: { decision: sdk_trace_base_1.SamplingDecision.NOT_RECORD, attributes: attributes };
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Return Sampler description
|
|
69
|
+
*/
|
|
70
|
+
toString() {
|
|
71
|
+
return `ApplicationInsightsSampler{${this.samplingRatio}}`;
|
|
72
|
+
}
|
|
73
|
+
_getSamplingHashCode(input) {
|
|
74
|
+
const csharpMin = -2147483648;
|
|
75
|
+
const csharpMax = 2147483647;
|
|
76
|
+
let hash = 5381;
|
|
77
|
+
if (!input) {
|
|
78
|
+
return 0;
|
|
79
|
+
}
|
|
80
|
+
while (input.length < 8) {
|
|
81
|
+
input = input + input;
|
|
82
|
+
}
|
|
83
|
+
for (let i = 0; i < input.length; i++) {
|
|
84
|
+
// JS doesn't respond to integer overflow by wrapping around. Simulate it with bitwise operators ( | 0)
|
|
85
|
+
hash = ((((hash << 5) + hash) | 0) + input.charCodeAt(i)) | 0;
|
|
86
|
+
}
|
|
87
|
+
hash = hash <= csharpMin ? csharpMax : Math.abs(hash);
|
|
88
|
+
return (hash / csharpMax) * 100;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
exports.ApplicationInsightsSampler = ApplicationInsightsSampler;
|
|
92
|
+
//# sourceMappingURL=sampling.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sampling.js","sourceRoot":"","sources":["../../src/sampling.ts"],"names":[],"mappings":";;;AAIA,kEAAiE;AACjE,qFAAkF;AAElF;;;;;GAKG;AACH,MAAa,0BAA0B;IAIrC;;;OAGG;IACH,YAAY,gBAAwB,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YAC7F,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;;;;;;;OAaG;IACI,YAAY;IACjB,mCAAmC;IACnC,OAAgB,EAChB,OAAe;IACf,mCAAmC;IACnC,QAAgB;IAChB,mCAAmC;IACnC,QAAkB,EAClB,UAAsB;IACtB,mCAAmC;IACnC,KAAa;QAEb,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,IAAI,CAAC,WAAW,KAAK,GAAG,EAAE,CAAC;YAC7B,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;YAClC,WAAW,GAAG,KAAK,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QACtE,CAAC;QACD,oCAAoC;QACpC,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;QAE9B,4CAA4C;QAC5C,IAAI,IAAI,CAAC,WAAW,KAAK,GAAG,EAAE,CAAC;YAC7B,UAAU,CAAC,+CAAsB,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QACxD,CAAC;QACD,OAAO,WAAW;YAChB,CAAC,CAAC,EAAE,QAAQ,EAAE,iCAAgB,CAAC,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAE;YAC3E,CAAC,CAAC,EAAE,QAAQ,EAAE,iCAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;IACxE,CAAC;IAED;;OAEG;IACI,QAAQ;QACb,OAAO,8BAA8B,IAAI,CAAC,aAAa,GAAG,CAAC;IAC7D,CAAC;IAEO,oBAAoB,CAAC,KAAa;QACxC,MAAM,SAAS,GAAG,CAAC,UAAU,CAAC;QAC9B,MAAM,SAAS,GAAG,UAAU,CAAC;QAC7B,IAAI,IAAI,GAAG,IAAI,CAAC;QAEhB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,CAAC;QACX,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;QACxB,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,uGAAuG;YACvG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,GAAG,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC;IAClC,CAAC;CACF;AA1FD,gEA0FC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { Link, Attributes, SpanKind, Context } from \"@opentelemetry/api\";\nimport type { Sampler, SamplingResult } from \"@opentelemetry/sdk-trace-base\";\nimport { SamplingDecision } from \"@opentelemetry/sdk-trace-base\";\nimport { AzureMonitorSampleRate } from \"./utils/constants/applicationinsights.js\";\n\n/**\n * ApplicationInsightsSampler is responsible for the following:\n * Implements same trace id hashing algorithm so that traces are sampled the same across multiple nodes\n * Adds item count to span attribute if span is sampled (needed for ingestion service)\n * @param samplingRatio - 0 to 1 value.\n */\nexport class ApplicationInsightsSampler implements Sampler {\n private readonly _sampleRate: number;\n private readonly samplingRatio: number;\n\n /**\n * Initializes a new instance of the ApplicationInsightsSampler class.\n * @param samplingRatio - Value in the range [0,1], 1 meaning all data will sampled and 0 all Tracing data will be sampled out.\n */\n constructor(samplingRatio: number = 1) {\n this.samplingRatio = samplingRatio;\n if (this.samplingRatio > 1 || this.samplingRatio < 0 || !Number.isFinite(this.samplingRatio)) {\n throw new Error(\"Wrong sampling rate, data will not be sampled out\");\n }\n this._sampleRate = Math.round(this.samplingRatio * 100);\n }\n\n /**\n * Checks whether span needs to be created and tracked.\n *\n * @param context - Parent Context which may contain a span.\n * @param traceId - traceif of the span to be created. It can be different from the\n * traceId in the {@link SpanContext}. Typically in situations when the\n * span to be created starts a new trace.\n * @param spanName - Name of the span to be created.\n * @param spanKind - Kind of the span to be created.\n * @param attributes - Initial set of SpanAttributes for the Span being constructed.\n * @param links - Collection of links that will be associated with the Span to\n * be created. Typically useful for batch operations.\n * @returns a {@link SamplingResult}.\n */\n public shouldSample(\n // @ts-expect-error unused argument\n context: Context,\n traceId: string,\n // @ts-expect-error unused argument\n spanName: string,\n // @ts-expect-error unused argument\n spanKind: SpanKind,\n attributes: Attributes,\n // @ts-expect-error unused argument\n links: Link[],\n ): SamplingResult {\n let isSampledIn = false;\n if (this._sampleRate === 100) {\n isSampledIn = true;\n } else if (this._sampleRate === 0) {\n isSampledIn = false;\n } else {\n isSampledIn = this._getSamplingHashCode(traceId) < this._sampleRate;\n }\n // Add sample rate as span attribute\n attributes = attributes || {};\n\n // Only send the sample rate if it's not 100\n if (this._sampleRate !== 100) {\n attributes[AzureMonitorSampleRate] = this._sampleRate;\n }\n return isSampledIn\n ? { decision: SamplingDecision.RECORD_AND_SAMPLED, attributes: attributes }\n : { decision: SamplingDecision.NOT_RECORD, attributes: attributes };\n }\n\n /**\n * Return Sampler description\n */\n public toString(): string {\n return `ApplicationInsightsSampler{${this.samplingRatio}}`;\n }\n\n private _getSamplingHashCode(input: string): number {\n const csharpMin = -2147483648;\n const csharpMax = 2147483647;\n let hash = 5381;\n\n if (!input) {\n return 0;\n }\n\n while (input.length < 8) {\n input = input + input;\n }\n\n for (let i = 0; i < input.length; i++) {\n // JS doesn't respond to integer overflow by wrapping around. Simulate it with bitwise operators ( | 0)\n hash = ((((hash << 5) + hash) | 0) + input.charCodeAt(i)) | 0;\n }\n\n hash = hash <= csharpMin ? csharpMax : Math.abs(hash);\n return (hash / csharpMax) * 100;\n }\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// This file is read by tools that parse documentation comments conforming to the TSDoc standard.
|
|
2
|
+
// It should be published with your NPM package. It should not be tracked by Git.
|
|
3
|
+
{
|
|
4
|
+
"tsdocVersion": "0.12",
|
|
5
|
+
"toolPackages": [
|
|
6
|
+
{
|
|
7
|
+
"packageName": "@microsoft/api-extractor",
|
|
8
|
+
"packageVersion": "7.49.1"
|
|
9
|
+
}
|
|
10
|
+
]
|
|
11
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import type { ContextTagKeys } from "./generated/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Azure Monitor envelope tags.
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
export type Tags = {
|
|
7
|
+
[key in ContextTagKeys]: string;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Azure Monitor envelope property type.
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export type PropertyType = string | number | boolean | object | Array<PropertyType>;
|
|
14
|
+
/**
|
|
15
|
+
* Azure Monitor envelope properties.
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
export type Properties = {
|
|
19
|
+
[key: string]: Properties | PropertyType;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Azure Monitor envelope links.
|
|
23
|
+
* @internal
|
|
24
|
+
*/
|
|
25
|
+
export interface MSLink {
|
|
26
|
+
operation_Id: string;
|
|
27
|
+
id: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Azure Monitor envelope measurements.
|
|
31
|
+
* @internal
|
|
32
|
+
*/
|
|
33
|
+
export type Measurements = {
|
|
34
|
+
[key: string]: number;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Exporter sender result.
|
|
38
|
+
* @internal
|
|
39
|
+
*/
|
|
40
|
+
export type SenderResult = {
|
|
41
|
+
statusCode: number | undefined;
|
|
42
|
+
result: string;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Exporter persistent storage.
|
|
46
|
+
* @internal
|
|
47
|
+
*/
|
|
48
|
+
export interface PersistentStorage {
|
|
49
|
+
shift(): Promise<unknown>;
|
|
50
|
+
push(value: unknown[]): Promise<boolean>;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Performance Counter OpenTelemetry compliant names.
|
|
54
|
+
* @internal
|
|
55
|
+
*/
|
|
56
|
+
export declare enum OTelPerformanceCounterNames {
|
|
57
|
+
PRIVATE_BYTES = "Private_Bytes",
|
|
58
|
+
AVAILABLE_BYTES = "Available_Bytes",
|
|
59
|
+
PROCESSOR_TIME = "Processor_Time",
|
|
60
|
+
PROCESS_TIME = "Process_Time",
|
|
61
|
+
REQUEST_RATE = "Request_Rate",
|
|
62
|
+
REQUEST_DURATION = "Request_Execution_Time"
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Breeze Performance Counter names.
|
|
66
|
+
* @internal
|
|
67
|
+
*/
|
|
68
|
+
export declare enum BreezePerformanceCounterNames {
|
|
69
|
+
PRIVATE_BYTES = "\\Process(??APP_WIN32_PROC??)\\Private Bytes",
|
|
70
|
+
AVAILABLE_BYTES = "\\Memory\\Available Bytes",
|
|
71
|
+
PROCESSOR_TIME = "\\Processor(_Total)\\% Processor Time",
|
|
72
|
+
PROCESS_TIME = "\\Process(??APP_WIN32_PROC??)\\% Processor Time",
|
|
73
|
+
REQUEST_RATE = "\\ASP.NET Applications(??APP_W3SVC_PROC??)\\Requests/Sec",
|
|
74
|
+
REQUEST_DURATION = "\\ASP.NET Applications(??APP_W3SVC_PROC??)\\Request Execution Time"
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Property Max Lengths
|
|
78
|
+
* @internal
|
|
79
|
+
*/
|
|
80
|
+
export declare enum MaxPropertyLengths {
|
|
81
|
+
NINE_BIT = 512,
|
|
82
|
+
TEN_BIT = 1024,
|
|
83
|
+
THIRTEEN_BIT = 8192,
|
|
84
|
+
FIFTEEN_BIT = 32768
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;GAGG;AACH,MAAM,MAAM,IAAI,GAAG;KAAG,GAAG,IAAI,cAAc,GAAG,MAAM;CAAE,CAAC;AACvD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;AACpF;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,YAAY,CAAA;CAAE,CAAC;AACtE;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;CACZ;AACD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC;AACrD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IAAE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9E;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1C;AAED;;;GAGG;AACH,oBAAY,2BAA2B;IACrC,aAAa,kBAAkB;IAC/B,eAAe,oBAAoB;IACnC,cAAc,mBAAmB;IACjC,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,gBAAgB,2BAA2B;CAC5C;AAED;;;GAGG;AACH,oBAAY,6BAA6B;IACvC,aAAa,iDAAiD;IAC9D,eAAe,8BAA8B;IAC7C,cAAc,0CAA0C;IACxD,YAAY,oDAAoD;IAChE,YAAY,6DAA6D;IACzE,gBAAgB,uEAAuE;CACxF;AAED;;;GAGG;AACH,oBAAY,kBAAkB;IAC5B,QAAQ,MAAM;IACd,OAAO,OAAO;IACd,YAAY,OAAO;IACnB,WAAW,QAAQ;CACpB"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.MaxPropertyLengths = exports.BreezePerformanceCounterNames = exports.OTelPerformanceCounterNames = void 0;
|
|
6
|
+
/**
|
|
7
|
+
* Performance Counter OpenTelemetry compliant names.
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
var OTelPerformanceCounterNames;
|
|
11
|
+
(function (OTelPerformanceCounterNames) {
|
|
12
|
+
OTelPerformanceCounterNames["PRIVATE_BYTES"] = "Private_Bytes";
|
|
13
|
+
OTelPerformanceCounterNames["AVAILABLE_BYTES"] = "Available_Bytes";
|
|
14
|
+
OTelPerformanceCounterNames["PROCESSOR_TIME"] = "Processor_Time";
|
|
15
|
+
OTelPerformanceCounterNames["PROCESS_TIME"] = "Process_Time";
|
|
16
|
+
OTelPerformanceCounterNames["REQUEST_RATE"] = "Request_Rate";
|
|
17
|
+
OTelPerformanceCounterNames["REQUEST_DURATION"] = "Request_Execution_Time";
|
|
18
|
+
})(OTelPerformanceCounterNames || (exports.OTelPerformanceCounterNames = OTelPerformanceCounterNames = {}));
|
|
19
|
+
/**
|
|
20
|
+
* Breeze Performance Counter names.
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
var BreezePerformanceCounterNames;
|
|
24
|
+
(function (BreezePerformanceCounterNames) {
|
|
25
|
+
BreezePerformanceCounterNames["PRIVATE_BYTES"] = "\\Process(??APP_WIN32_PROC??)\\Private Bytes";
|
|
26
|
+
BreezePerformanceCounterNames["AVAILABLE_BYTES"] = "\\Memory\\Available Bytes";
|
|
27
|
+
BreezePerformanceCounterNames["PROCESSOR_TIME"] = "\\Processor(_Total)\\% Processor Time";
|
|
28
|
+
BreezePerformanceCounterNames["PROCESS_TIME"] = "\\Process(??APP_WIN32_PROC??)\\% Processor Time";
|
|
29
|
+
BreezePerformanceCounterNames["REQUEST_RATE"] = "\\ASP.NET Applications(??APP_W3SVC_PROC??)\\Requests/Sec";
|
|
30
|
+
BreezePerformanceCounterNames["REQUEST_DURATION"] = "\\ASP.NET Applications(??APP_W3SVC_PROC??)\\Request Execution Time";
|
|
31
|
+
})(BreezePerformanceCounterNames || (exports.BreezePerformanceCounterNames = BreezePerformanceCounterNames = {}));
|
|
32
|
+
/**
|
|
33
|
+
* Property Max Lengths
|
|
34
|
+
* @internal
|
|
35
|
+
*/
|
|
36
|
+
var MaxPropertyLengths;
|
|
37
|
+
(function (MaxPropertyLengths) {
|
|
38
|
+
MaxPropertyLengths[MaxPropertyLengths["NINE_BIT"] = 512] = "NINE_BIT";
|
|
39
|
+
MaxPropertyLengths[MaxPropertyLengths["TEN_BIT"] = 1024] = "TEN_BIT";
|
|
40
|
+
MaxPropertyLengths[MaxPropertyLengths["THIRTEEN_BIT"] = 8192] = "THIRTEEN_BIT";
|
|
41
|
+
MaxPropertyLengths[MaxPropertyLengths["FIFTEEN_BIT"] = 32768] = "FIFTEEN_BIT";
|
|
42
|
+
})(MaxPropertyLengths || (exports.MaxPropertyLengths = MaxPropertyLengths = {}));
|
|
43
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AA+ClC;;;GAGG;AACH,IAAY,2BAOX;AAPD,WAAY,2BAA2B;IACrC,8DAA+B,CAAA;IAC/B,kEAAmC,CAAA;IACnC,gEAAiC,CAAA;IACjC,4DAA6B,CAAA;IAC7B,4DAA6B,CAAA;IAC7B,0EAA2C,CAAA;AAC7C,CAAC,EAPW,2BAA2B,2CAA3B,2BAA2B,QAOtC;AAED;;;GAGG;AACH,IAAY,6BAOX;AAPD,WAAY,6BAA6B;IACvC,+FAA8D,CAAA;IAC9D,8EAA6C,CAAA;IAC7C,yFAAwD,CAAA;IACxD,iGAAgE,CAAA;IAChE,0GAAyE,CAAA;IACzE,wHAAuF,CAAA;AACzF,CAAC,EAPW,6BAA6B,6CAA7B,6BAA6B,QAOxC;AAED;;;GAGG;AACH,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,qEAAc,CAAA;IACd,oEAAc,CAAA;IACd,8EAAmB,CAAA;IACnB,6EAAmB,CAAA;AACrB,CAAC,EALW,kBAAkB,kCAAlB,kBAAkB,QAK7B","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { ContextTagKeys } from \"./generated/index.js\";\n\n/**\n * Azure Monitor envelope tags.\n * @internal\n */\nexport type Tags = { [key in ContextTagKeys]: string };\n/**\n * Azure Monitor envelope property type.\n * @internal\n */\nexport type PropertyType = string | number | boolean | object | Array<PropertyType>;\n/**\n * Azure Monitor envelope properties.\n * @internal\n */\nexport type Properties = { [key: string]: Properties | PropertyType };\n/**\n * Azure Monitor envelope links.\n * @internal\n */\nexport interface MSLink {\n operation_Id: string;\n id: string;\n}\n/**\n * Azure Monitor envelope measurements.\n * @internal\n */\nexport type Measurements = { [key: string]: number };\n/**\n * Exporter sender result.\n * @internal\n */\nexport type SenderResult = { statusCode: number | undefined; result: string };\n\n/**\n * Exporter persistent storage.\n * @internal\n */\nexport interface PersistentStorage {\n shift(): Promise<unknown>;\n push(value: unknown[]): Promise<boolean>;\n}\n\n/**\n * Performance Counter OpenTelemetry compliant names.\n * @internal\n */\nexport enum OTelPerformanceCounterNames {\n PRIVATE_BYTES = \"Private_Bytes\",\n AVAILABLE_BYTES = \"Available_Bytes\",\n PROCESSOR_TIME = \"Processor_Time\",\n PROCESS_TIME = \"Process_Time\",\n REQUEST_RATE = \"Request_Rate\",\n REQUEST_DURATION = \"Request_Execution_Time\",\n}\n\n/**\n * Breeze Performance Counter names.\n * @internal\n */\nexport enum BreezePerformanceCounterNames {\n PRIVATE_BYTES = \"\\\\Process(??APP_WIN32_PROC??)\\\\Private Bytes\",\n AVAILABLE_BYTES = \"\\\\Memory\\\\Available Bytes\",\n PROCESSOR_TIME = \"\\\\Processor(_Total)\\\\% Processor Time\",\n PROCESS_TIME = \"\\\\Process(??APP_WIN32_PROC??)\\\\% Processor Time\",\n REQUEST_RATE = \"\\\\ASP.NET Applications(??APP_W3SVC_PROC??)\\\\Requests/Sec\",\n REQUEST_DURATION = \"\\\\ASP.NET Applications(??APP_W3SVC_PROC??)\\\\Request Execution Time\",\n}\n\n/**\n * Property Max Lengths\n * @internal\n */\nexport enum MaxPropertyLengths {\n NINE_BIT = 512,\n TEN_BIT = 1024,\n THIRTEEN_BIT = 8192,\n FIFTEEN_BIT = 32768,\n}\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Breeze errors.
|
|
3
|
+
* @internal
|
|
4
|
+
*/
|
|
5
|
+
export interface BreezeError {
|
|
6
|
+
index: number;
|
|
7
|
+
statusCode: number;
|
|
8
|
+
message: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Breeze response definition.
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
export interface BreezeResponse {
|
|
15
|
+
itemsReceived: number;
|
|
16
|
+
itemsAccepted: number;
|
|
17
|
+
errors: BreezeError[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Breeze retriable status codes.
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export declare function isRetriable(statusCode: number): boolean;
|
|
24
|
+
export declare function msToTimeSpan(totalms: number): string;
|
|
25
|
+
//# sourceMappingURL=breezeUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"breezeUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/breezeUtils.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAavD;AAGD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAcpD"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) Microsoft Corporation.
|
|
3
|
+
// Licensed under the MIT License.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.isRetriable = isRetriable;
|
|
6
|
+
exports.msToTimeSpan = msToTimeSpan;
|
|
7
|
+
/**
|
|
8
|
+
* Breeze retriable status codes.
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
function isRetriable(statusCode) {
|
|
12
|
+
return (statusCode === 206 || // Partial Accept
|
|
13
|
+
statusCode === 401 || // Unauthorized
|
|
14
|
+
statusCode === 403 || // Forbidden
|
|
15
|
+
statusCode === 408 || // Timeout
|
|
16
|
+
statusCode === 429 || // Too many requests
|
|
17
|
+
statusCode === 439 || // Daily quota exceeded (legacy)
|
|
18
|
+
statusCode === 500 || // Server Error
|
|
19
|
+
statusCode === 502 || // Bad Gateway
|
|
20
|
+
statusCode === 503 || // Server Unavailable
|
|
21
|
+
statusCode === 504 // Gateway Timeout
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
// Convert ms to c# time span format DD.HH:MM:SS.MMMMMM
|
|
25
|
+
function msToTimeSpan(totalms) {
|
|
26
|
+
if (isNaN(totalms) || totalms < 0) {
|
|
27
|
+
totalms = 0;
|
|
28
|
+
}
|
|
29
|
+
let sec = ((totalms / 1000) % 60).toFixed(7).replace(/0{0,4}$/, "");
|
|
30
|
+
let min = "" + (Math.floor(totalms / (1000 * 60)) % 60);
|
|
31
|
+
let hour = "" + (Math.floor(totalms / (1000 * 60 * 60)) % 24);
|
|
32
|
+
const days = Math.floor(totalms / (1000 * 60 * 60 * 24));
|
|
33
|
+
sec = sec.indexOf(".") < 2 ? "0" + sec : sec;
|
|
34
|
+
min = min.length < 2 ? "0" + min : min;
|
|
35
|
+
hour = hour.length < 2 ? "0" + hour : hour;
|
|
36
|
+
const daysText = days > 0 ? days + "." : "";
|
|
37
|
+
return daysText + hour + ":" + min + ":" + sec;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=breezeUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"breezeUtils.js","sourceRoot":"","sources":["../../../src/utils/breezeUtils.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AA0BlC,kCAaC;AAGD,oCAcC;AAlCD;;;GAGG;AACH,SAAgB,WAAW,CAAC,UAAkB;IAC5C,OAAO,CACL,UAAU,KAAK,GAAG,IAAI,iBAAiB;QACvC,UAAU,KAAK,GAAG,IAAI,eAAe;QACrC,UAAU,KAAK,GAAG,IAAI,YAAY;QAClC,UAAU,KAAK,GAAG,IAAI,UAAU;QAChC,UAAU,KAAK,GAAG,IAAI,oBAAoB;QAC1C,UAAU,KAAK,GAAG,IAAI,gCAAgC;QACtD,UAAU,KAAK,GAAG,IAAI,eAAe;QACrC,UAAU,KAAK,GAAG,IAAI,cAAc;QACpC,UAAU,KAAK,GAAG,IAAI,qBAAqB;QAC3C,UAAU,KAAK,GAAG,CAAC,kBAAkB;KACtC,CAAC;AACJ,CAAC;AAED,wDAAwD;AACxD,SAAgB,YAAY,CAAC,OAAe;IAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAClC,OAAO,GAAG,CAAC,CAAC;IACd,CAAC;IACD,IAAI,GAAG,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACpE,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACxD,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAEzD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7C,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACvC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5C,OAAO,QAAQ,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACjD,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/**\n * Breeze errors.\n * @internal\n */\nexport interface BreezeError {\n index: number;\n statusCode: number;\n message: string;\n}\n\n/**\n * Breeze response definition.\n * @internal\n */\nexport interface BreezeResponse {\n itemsReceived: number;\n itemsAccepted: number;\n errors: BreezeError[];\n}\n\n/**\n * Breeze retriable status codes.\n * @internal\n */\nexport function isRetriable(statusCode: number): boolean {\n return (\n statusCode === 206 || // Partial Accept\n statusCode === 401 || // Unauthorized\n statusCode === 403 || // Forbidden\n statusCode === 408 || // Timeout\n statusCode === 429 || // Too many requests\n statusCode === 439 || // Daily quota exceeded (legacy)\n statusCode === 500 || // Server Error\n statusCode === 502 || // Bad Gateway\n statusCode === 503 || // Server Unavailable\n statusCode === 504 // Gateway Timeout\n );\n}\n\n// Convert ms to c# time span format DD.HH:MM:SS.MMMMMM\nexport function msToTimeSpan(totalms: number): string {\n if (isNaN(totalms) || totalms < 0) {\n totalms = 0;\n }\n let sec = ((totalms / 1000) % 60).toFixed(7).replace(/0{0,4}$/, \"\");\n let min = \"\" + (Math.floor(totalms / (1000 * 60)) % 60);\n let hour = \"\" + (Math.floor(totalms / (1000 * 60 * 60)) % 24);\n const days = Math.floor(totalms / (1000 * 60 * 60 * 24));\n\n sec = sec.indexOf(\".\") < 2 ? \"0\" + sec : sec;\n min = min.length < 2 ? \"0\" + min : min;\n hour = hour.length < 2 ? \"0\" + hour : hour;\n const daysText = days > 0 ? days + \".\" : \"\";\n return daysText + hour + \":\" + min + \":\" + sec;\n}\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Tags } from "../types.js";
|
|
2
|
+
import type { TelemetryItem as Envelope } from "../generated/index.js";
|
|
3
|
+
import type { Resource } from "@opentelemetry/resources";
|
|
4
|
+
import type { Attributes, HrTime } from "@opentelemetry/api";
|
|
5
|
+
import type { AnyValue } from "@opentelemetry/api-logs";
|
|
6
|
+
export declare function hrTimeToDate(hrTime: HrTime): Date;
|
|
7
|
+
export declare function createTagsFromResource(resource: Resource): Tags;
|
|
8
|
+
export declare function isSqlDB(dbSystem: string): boolean;
|
|
9
|
+
export declare function getUrl(attributes: Attributes): string;
|
|
10
|
+
export declare function getDependencyTarget(attributes: Attributes): string;
|
|
11
|
+
export declare function createResourceMetricEnvelope(resource: Resource, instrumentationKey: string): Envelope | undefined;
|
|
12
|
+
export declare function serializeAttribute(value: AnyValue): string;
|
|
13
|
+
export declare function shouldCreateResourceMetric(): boolean;
|
|
14
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/utils/common.ts"],"names":[],"mappings":"AAwCA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAe,MAAM,uBAAuB,CAAC;AAEpF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAEjD;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAqB/D;AAmED,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAYjD;AAED,wBAAgB,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAkCrD;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAqBlE;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,QAAQ,EAClB,kBAAkB,EAAE,MAAM,GACzB,QAAQ,GAAG,SAAS,CAwCtB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAsB1D;AAED,wBAAgB,0BAA0B,IAAI,OAAO,CAEpD"}
|