@signageos/lib 23.8.1 → 23.8.2-master.4405
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/dist/AMQP/CQRS/ICommand.d.ts +38 -0
- package/dist/AMQP/CQRS/ICommand.js +3 -0
- package/dist/AMQP/CQRS/ICommand.js.map +1 -0
- package/dist/AMQP/CQRS/ICommandError.d.ts +4 -0
- package/dist/AMQP/CQRS/ICommandError.js +3 -0
- package/dist/AMQP/CQRS/ICommandError.js.map +1 -0
- package/dist/AMQP/CQRS/commandQueue.d.ts +59 -0
- package/dist/AMQP/CQRS/commandQueue.js +313 -0
- package/dist/AMQP/CQRS/commandQueue.js.map +1 -0
- package/dist/AMQP/CQRS/commandResponseHelper.d.ts +3 -0
- package/dist/AMQP/CQRS/commandResponseHelper.js +8 -0
- package/dist/AMQP/CQRS/commandResponseHelper.js.map +1 -0
- package/dist/AMQP/CQRS/storedCommandQueue.d.ts +27 -0
- package/dist/AMQP/CQRS/storedCommandQueue.js +301 -0
- package/dist/AMQP/CQRS/storedCommandQueue.js.map +1 -0
- package/dist/AMQP/ChannelProvider.d.ts +37 -0
- package/dist/AMQP/ChannelProvider.js +886 -0
- package/dist/AMQP/ChannelProvider.js.map +1 -0
- package/dist/AMQP/DeviceActions/Bridge/deviceActionBridgeFactory.d.ts +39 -0
- package/dist/AMQP/DeviceActions/Bridge/deviceActionBridgeFactory.js +292 -0
- package/dist/AMQP/DeviceActions/Bridge/deviceActionBridgeFactory.js.map +1 -0
- package/dist/AMQP/DeviceActions/IDeviceAction.d.ts +4 -0
- package/dist/AMQP/DeviceActions/IDeviceAction.js +3 -0
- package/dist/AMQP/DeviceActions/IDeviceAction.js.map +1 -0
- package/dist/AMQP/DeviceActions/deviceActionsQueue.d.ts +83 -0
- package/dist/AMQP/DeviceActions/deviceActionsQueue.js +538 -0
- package/dist/AMQP/DeviceActions/deviceActionsQueue.js.map +1 -0
- package/dist/AMQP/EventSourcing/EventConsumer/AmqpEventConsumer.d.ts +47 -0
- package/dist/AMQP/EventSourcing/EventConsumer/AmqpEventConsumer.js +218 -0
- package/dist/AMQP/EventSourcing/EventConsumer/AmqpEventConsumer.js.map +1 -0
- package/dist/AMQP/EventSourcing/EventConsumer/IEventConsumer.d.ts +13 -0
- package/dist/AMQP/EventSourcing/EventConsumer/IEventConsumer.js +3 -0
- package/dist/AMQP/EventSourcing/EventConsumer/IEventConsumer.js.map +1 -0
- package/dist/AMQP/EventSourcing/EventConsumer/InMemoryEventConsumer.d.ts +15 -0
- package/dist/AMQP/EventSourcing/EventConsumer/InMemoryEventConsumer.js +76 -0
- package/dist/AMQP/EventSourcing/EventConsumer/InMemoryEventConsumer.js.map +1 -0
- package/dist/AMQP/EventSourcing/IEvent.d.ts +72 -0
- package/dist/AMQP/EventSourcing/IEvent.js +3 -0
- package/dist/AMQP/EventSourcing/IEvent.js.map +1 -0
- package/dist/AMQP/EventSourcing/Locked/deferredState.d.ts +21 -0
- package/dist/AMQP/EventSourcing/Locked/deferredState.js +72 -0
- package/dist/AMQP/EventSourcing/Locked/deferredState.js.map +1 -0
- package/dist/AMQP/EventSourcing/Locked/lockedEventConsumer.d.ts +63 -0
- package/dist/AMQP/EventSourcing/Locked/lockedEventConsumer.js +261 -0
- package/dist/AMQP/EventSourcing/Locked/lockedEventConsumer.js.map +1 -0
- package/dist/AMQP/EventSourcing/Locked/rejectedTimestamps.d.ts +24 -0
- package/dist/AMQP/EventSourcing/Locked/rejectedTimestamps.js +64 -0
- package/dist/AMQP/EventSourcing/Locked/rejectedTimestamps.js.map +1 -0
- package/dist/AMQP/EventSourcing/Locked/withLock.d.ts +42 -0
- package/dist/AMQP/EventSourcing/Locked/withLock.js +141 -0
- package/dist/AMQP/EventSourcing/Locked/withLock.js.map +1 -0
- package/dist/AMQP/EventSourcing/eventQueue.d.ts +87 -0
- package/dist/AMQP/EventSourcing/eventQueue.js +139 -0
- package/dist/AMQP/EventSourcing/eventQueue.js.map +1 -0
- package/dist/AMQP/EventSourcing/eventQueue.utils.d.ts +73 -0
- package/dist/AMQP/EventSourcing/eventQueue.utils.js +157 -0
- package/dist/AMQP/EventSourcing/eventQueue.utils.js.map +1 -0
- package/dist/AMQP/EventSourcing/eventQueueDetached.d.ts +49 -0
- package/dist/AMQP/EventSourcing/eventQueueDetached.js +428 -0
- package/dist/AMQP/EventSourcing/eventQueueDetached.js.map +1 -0
- package/dist/AMQP/EventSourcing/eventQueueDomain.d.ts +42 -0
- package/dist/AMQP/EventSourcing/eventQueueDomain.js +371 -0
- package/dist/AMQP/EventSourcing/eventQueueDomain.js.map +1 -0
- package/dist/AMQP/EventSourcing/eventQueuePublish.d.ts +19 -0
- package/dist/AMQP/EventSourcing/eventQueuePublish.js +209 -0
- package/dist/AMQP/EventSourcing/eventQueuePublish.js.map +1 -0
- package/dist/AMQP/EventSourcing/synchronization.d.ts +39 -0
- package/dist/AMQP/EventSourcing/synchronization.js +12 -0
- package/dist/AMQP/EventSourcing/synchronization.js.map +1 -0
- package/dist/AMQP/Exchange.d.ts +1 -0
- package/dist/AMQP/Exchange.js +3 -0
- package/dist/AMQP/Exchange.js.map +1 -0
- package/dist/AMQP/IAMQPPool.d.ts +5 -0
- package/dist/AMQP/IAMQPPool.js +3 -0
- package/dist/AMQP/IAMQPPool.js.map +1 -0
- package/dist/AMQP/IAsyncGotMessage.d.ts +15 -0
- package/dist/AMQP/IAsyncGotMessage.js +3 -0
- package/dist/AMQP/IAsyncGotMessage.js.map +1 -0
- package/dist/AMQP/IChannel.d.ts +43 -0
- package/dist/AMQP/IChannel.js +3 -0
- package/dist/AMQP/IChannel.js.map +1 -0
- package/dist/AMQP/IConsumeOptions.d.ts +106 -0
- package/dist/AMQP/IConsumeOptions.js +3 -0
- package/dist/AMQP/IConsumeOptions.js.map +1 -0
- package/dist/AMQP/IMessageOptions.d.ts +6 -0
- package/dist/AMQP/IMessageOptions.js +3 -0
- package/dist/AMQP/IMessageOptions.js.map +1 -0
- package/dist/AMQP/INackOptions.d.ts +4 -0
- package/dist/AMQP/INackOptions.js +3 -0
- package/dist/AMQP/INackOptions.js.map +1 -0
- package/dist/AMQP/IQueueOptions.d.ts +8 -0
- package/dist/AMQP/IQueueOptions.js +3 -0
- package/dist/AMQP/IQueueOptions.js.map +1 -0
- package/dist/AMQP/Logging/IDeviceLog.d.ts +15 -0
- package/dist/AMQP/Logging/IDeviceLog.js +10 -0
- package/dist/AMQP/Logging/IDeviceLog.js.map +1 -0
- package/dist/AMQP/Logging/logDeviceQueue.d.ts +12 -0
- package/dist/AMQP/Logging/logDeviceQueue.js +107 -0
- package/dist/AMQP/Logging/logDeviceQueue.js.map +1 -0
- package/dist/AMQP/QueueFetcher.d.ts +13 -0
- package/dist/AMQP/QueueFetcher.js +166 -0
- package/dist/AMQP/QueueFetcher.js.map +1 -0
- package/dist/AMQP/QueuePublisher.d.ts +7 -0
- package/dist/AMQP/QueuePublisher.js +135 -0
- package/dist/AMQP/QueuePublisher.js.map +1 -0
- package/dist/AMQP/QueueRepeatableSubscription.d.ts +14 -0
- package/dist/AMQP/QueueRepeatableSubscription.js +162 -0
- package/dist/AMQP/QueueRepeatableSubscription.js.map +1 -0
- package/dist/AMQP/QueueSubscriber.d.ts +11 -0
- package/dist/AMQP/QueueSubscriber.js +163 -0
- package/dist/AMQP/QueueSubscriber.js.map +1 -0
- package/dist/AMQP/ResponseProvider.d.ts +20 -0
- package/dist/AMQP/ResponseProvider.js +193 -0
- package/dist/AMQP/ResponseProvider.js.map +1 -0
- package/dist/AMQP/Static/filesQueue.d.ts +12 -0
- package/dist/AMQP/Static/filesQueue.js +220 -0
- package/dist/AMQP/Static/filesQueue.js.map +1 -0
- package/dist/AMQP/amqpConnectionFactory.d.ts +27 -0
- package/dist/AMQP/amqpConnectionFactory.js +236 -0
- package/dist/AMQP/amqpConnectionFactory.js.map +1 -0
- package/dist/AMQP/amqpErrors.d.ts +5 -0
- package/dist/AMQP/amqpErrors.js +30 -0
- package/dist/AMQP/amqpErrors.js.map +1 -0
- package/dist/AMQP/errors.d.ts +3 -0
- package/dist/AMQP/errors.js +30 -0
- package/dist/AMQP/errors.js.map +1 -0
- package/dist/AMQP/fetchNextMessage.d.ts +14 -0
- package/dist/AMQP/fetchNextMessage.js +118 -0
- package/dist/AMQP/fetchNextMessage.js.map +1 -0
- package/dist/AMQP/queueConfigurator.d.ts +5 -0
- package/dist/AMQP/queueConfigurator.js +78 -0
- package/dist/AMQP/queueConfigurator.js.map +1 -0
- package/dist/AWS/S3.d.ts +95 -0
- package/dist/AWS/S3.js +448 -0
- package/dist/AWS/S3.js.map +1 -0
- package/dist/AWS/S3Types.d.ts +113 -0
- package/dist/AWS/S3Types.js +3 -0
- package/dist/AWS/S3Types.js.map +1 -0
- package/dist/AWS/config.d.ts +2 -0
- package/dist/AWS/config.js +23 -0
- package/dist/AWS/config.js.map +1 -0
- package/dist/Auth0/AuthenticationClient/Auth0AuthenticationClient.d.ts +30 -0
- package/dist/Auth0/AuthenticationClient/Auth0AuthenticationClient.js +81 -0
- package/dist/Auth0/AuthenticationClient/Auth0AuthenticationClient.js.map +1 -0
- package/dist/Auth0/AuthenticationClient/Auth0AuthenticationClient.utils.d.ts +5 -0
- package/dist/Auth0/AuthenticationClient/Auth0AuthenticationClient.utils.js +33 -0
- package/dist/Auth0/AuthenticationClient/Auth0AuthenticationClient.utils.js.map +1 -0
- package/dist/Auth0/ManagementClient/Auth0ManagementClient.d.ts +41 -0
- package/dist/Auth0/ManagementClient/Auth0ManagementClient.js +137 -0
- package/dist/Auth0/ManagementClient/Auth0ManagementClient.js.map +1 -0
- package/dist/Auth0/ManagementClient/auth0ManagementClient.utils.d.ts +8 -0
- package/dist/Auth0/ManagementClient/auth0ManagementClient.utils.js +37 -0
- package/dist/Auth0/ManagementClient/auth0ManagementClient.utils.js.map +1 -0
- package/dist/Auth0/UserInfoClient/Auth0UserInfoClient.d.ts +14 -0
- package/dist/Auth0/UserInfoClient/Auth0UserInfoClient.js +58 -0
- package/dist/Auth0/UserInfoClient/Auth0UserInfoClient.js.map +1 -0
- package/dist/Auth0/auth0.types.d.ts +4 -0
- package/dist/Auth0/auth0.types.js +10 -0
- package/dist/Auth0/auth0.types.js.map +1 -0
- package/dist/Cache/lruCache.d.ts +22 -0
- package/dist/Cache/lruCache.js +42 -0
- package/dist/Cache/lruCache.js.map +1 -0
- package/dist/Cache/memoryCache.d.ts +7 -0
- package/dist/Cache/memoryCache.js +80 -0
- package/dist/Cache/memoryCache.js.map +1 -0
- package/dist/Config/config.d.ts +81 -0
- package/dist/Config/config.js +119 -0
- package/dist/Config/config.js.map +1 -0
- package/dist/Config/environment.d.ts +8 -0
- package/dist/Config/environment.js +13 -0
- package/dist/Config/environment.js.map +1 -0
- package/dist/Config/validation.d.ts +61 -0
- package/dist/Config/validation.js +56 -0
- package/dist/Config/validation.js.map +1 -0
- package/dist/DateTime/dateMonkeyPatch.d.ts +15 -0
- package/dist/DateTime/dateMonkeyPatch.js +149 -0
- package/dist/DateTime/dateMonkeyPatch.js.map +1 -0
- package/dist/DateTime/dateTimeFactory.d.ts +4 -0
- package/dist/DateTime/dateTimeFactory.js +22 -0
- package/dist/DateTime/dateTimeFactory.js.map +1 -0
- package/dist/DateTime/millisecondConstants.d.ts +7 -0
- package/dist/DateTime/millisecondConstants.js +11 -0
- package/dist/DateTime/millisecondConstants.js.map +1 -0
- package/dist/DateTime/posixTimezone.d.ts +1 -0
- package/dist/DateTime/posixTimezone.js +54 -0
- package/dist/DateTime/posixTimezone.js.map +1 -0
- package/dist/DateTime/statistics.d.ts +6 -0
- package/dist/DateTime/statistics.js +30 -0
- package/dist/DateTime/statistics.js.map +1 -0
- package/dist/DateTime/timeConverter.d.ts +1 -0
- package/dist/DateTime/timeConverter.js +11 -0
- package/dist/DateTime/timeConverter.js.map +1 -0
- package/dist/DateTime/timer.d.ts +10 -0
- package/dist/DateTime/timer.js +18 -0
- package/dist/DateTime/timer.js.map +1 -0
- package/dist/DateTime/timestamp.d.ts +2 -0
- package/dist/DateTime/timestamp.js +16 -0
- package/dist/DateTime/timestamp.js.map +1 -0
- package/dist/DateTime/waitUntil.d.ts +20 -0
- package/dist/DateTime/waitUntil.js +148 -0
- package/dist/DateTime/waitUntil.js.map +1 -0
- package/dist/Debug/debugClassDecorator.d.ts +13 -0
- package/dist/Debug/debugClassDecorator.js +63 -0
- package/dist/Debug/debugClassDecorator.js.map +1 -0
- package/dist/Debug/debugDecorator.d.ts +24 -0
- package/dist/Debug/debugDecorator.js +107 -0
- package/dist/Debug/debugDecorator.js.map +1 -0
- package/dist/Encryption/passwordEncryption.d.ts +4 -0
- package/dist/Encryption/passwordEncryption.js +29 -0
- package/dist/Encryption/passwordEncryption.js.map +1 -0
- package/dist/Encryption/tokenEncryption.d.ts +14 -0
- package/dist/Encryption/tokenEncryption.js +32 -0
- package/dist/Encryption/tokenEncryption.js.map +1 -0
- package/dist/Events/AsyncEventEmitter.d.ts +31 -0
- package/dist/Events/AsyncEventEmitter.js +125 -0
- package/dist/Events/AsyncEventEmitter.js.map +1 -0
- package/dist/Events/eventsHelpers.d.ts +3 -0
- package/dist/Events/eventsHelpers.js +24 -0
- package/dist/Events/eventsHelpers.js.map +1 -0
- package/dist/Events/genericGracefulExit.d.ts +11 -0
- package/dist/Events/genericGracefulExit.js +90 -0
- package/dist/Events/genericGracefulExit.js.map +1 -0
- package/dist/FileSystem/moduleDiscoverer.d.ts +7 -0
- package/dist/FileSystem/moduleDiscoverer.js +88 -0
- package/dist/FileSystem/moduleDiscoverer.js.map +1 -0
- package/dist/FileSystem/tmpDir.d.ts +9 -0
- package/dist/FileSystem/tmpDir.js +64 -0
- package/dist/FileSystem/tmpDir.js.map +1 -0
- package/dist/Functional/compose.d.ts +22 -0
- package/dist/Functional/compose.js +44 -0
- package/dist/Functional/compose.js.map +1 -0
- package/dist/GenericPool/options.d.ts +63 -0
- package/dist/GenericPool/options.js +3 -0
- package/dist/GenericPool/options.js.map +1 -0
- package/dist/Hash/checksum.d.ts +5 -0
- package/dist/Hash/checksum.js +20 -0
- package/dist/Hash/checksum.js.map +1 -0
- package/dist/Hash/checksumFile.d.ts +4 -0
- package/dist/Hash/checksumFile.js +82 -0
- package/dist/Hash/checksumFile.js.map +1 -0
- package/dist/Hash/generator.d.ts +2 -0
- package/dist/Hash/generator.js +15 -0
- package/dist/Hash/generator.js.map +1 -0
- package/dist/Http/download.d.ts +1 -0
- package/dist/Http/download.js +91 -0
- package/dist/Http/download.js.map +1 -0
- package/dist/HttpStatus/checks/amqpStatusCheck.d.ts +3 -0
- package/dist/HttpStatus/checks/amqpStatusCheck.js +98 -0
- package/dist/HttpStatus/checks/amqpStatusCheck.js.map +1 -0
- package/dist/HttpStatus/checks/mongoDBStatusCheck.d.ts +3 -0
- package/dist/HttpStatus/checks/mongoDBStatusCheck.js +60 -0
- package/dist/HttpStatus/checks/mongoDBStatusCheck.js.map +1 -0
- package/dist/HttpStatus/checks/redisStatusCheck.d.ts +3 -0
- package/dist/HttpStatus/checks/redisStatusCheck.js +94 -0
- package/dist/HttpStatus/checks/redisStatusCheck.js.map +1 -0
- package/dist/HttpStatus/createHttpStatusMiddleware.d.ts +9 -0
- package/dist/HttpStatus/createHttpStatusMiddleware.js +109 -0
- package/dist/HttpStatus/createHttpStatusMiddleware.js.map +1 -0
- package/dist/HttpStatus/enrichHttpServerWithStatus.d.ts +15 -0
- package/dist/HttpStatus/enrichHttpServerWithStatus.js +114 -0
- package/dist/HttpStatus/enrichHttpServerWithStatus.js.map +1 -0
- package/dist/HttpStatus/sendStatusResponse.d.ts +5 -0
- package/dist/HttpStatus/sendStatusResponse.js +71 -0
- package/dist/HttpStatus/sendStatusResponse.js.map +1 -0
- package/dist/HttpStatus/status.d.ts +19 -0
- package/dist/HttpStatus/status.js +132 -0
- package/dist/HttpStatus/status.js.map +1 -0
- package/dist/HttpStatus/statuses/amqpStatus.d.ts +3 -0
- package/dist/HttpStatus/statuses/amqpStatus.js +35 -0
- package/dist/HttpStatus/statuses/amqpStatus.js.map +1 -0
- package/dist/HttpStatus/statuses/mongoStatus.d.ts +3 -0
- package/dist/HttpStatus/statuses/mongoStatus.js +35 -0
- package/dist/HttpStatus/statuses/mongoStatus.js.map +1 -0
- package/dist/HttpStatus/statuses/redisStatus.d.ts +3 -0
- package/dist/HttpStatus/statuses/redisStatus.js +35 -0
- package/dist/HttpStatus/statuses/redisStatus.js.map +1 -0
- package/dist/InfluxDB/IInfluxDB.d.ts +5 -0
- package/dist/InfluxDB/IInfluxDB.js +3 -0
- package/dist/InfluxDB/IInfluxDB.js.map +1 -0
- package/dist/InfluxDB/influxDBConnectionFactory.d.ts +9 -0
- package/dist/InfluxDB/influxDBConnectionFactory.js +83 -0
- package/dist/InfluxDB/influxDBConnectionFactory.js.map +1 -0
- package/dist/JSON/jsonHelper.d.ts +4 -0
- package/dist/JSON/jsonHelper.js +21 -0
- package/dist/JSON/jsonHelper.js.map +1 -0
- package/dist/Lib/Redis/connection.utils.d.ts +22 -0
- package/dist/Lib/Redis/connection.utils.js +95 -0
- package/dist/Lib/Redis/connection.utils.js.map +1 -0
- package/dist/Lib/String/string.d.ts +1 -0
- package/dist/Lib/String/string.js +6 -0
- package/dist/Lib/String/string.js.map +1 -0
- package/dist/Lock/lockedDecorator.d.ts +12 -0
- package/dist/Lock/lockedDecorator.js +150 -0
- package/dist/Lock/lockedDecorator.js.map +1 -0
- package/dist/Logging/console.d.ts +8 -0
- package/dist/Logging/console.js +50 -0
- package/dist/Logging/console.js.map +1 -0
- package/dist/Logging/debug.d.ts +10 -0
- package/dist/Logging/debug.js +61 -0
- package/dist/Logging/debug.js.map +1 -0
- package/dist/Logging/format.d.ts +10 -0
- package/dist/Logging/format.js +79 -0
- package/dist/Logging/format.js.map +1 -0
- package/dist/Logging/logger.d.ts +53 -0
- package/dist/Logging/logger.js +63 -0
- package/dist/Logging/logger.js.map +1 -0
- package/dist/Logging/logging.d.ts +12 -0
- package/dist/Logging/logging.js +113 -0
- package/dist/Logging/logging.js.map +1 -0
- package/dist/Metrics/MetricsClient.d.ts +46 -0
- package/dist/Metrics/MetricsClient.js +101 -0
- package/dist/Metrics/MetricsClient.js.map +1 -0
- package/dist/Metrics/deviceConsumerMetrics.d.ts +6 -0
- package/dist/Metrics/deviceConsumerMetrics.js +59 -0
- package/dist/Metrics/deviceConsumerMetrics.js.map +1 -0
- package/dist/Metrics/eventConsumerMetrics.d.ts +19 -0
- package/dist/Metrics/eventConsumerMetrics.js +52 -0
- package/dist/Metrics/eventConsumerMetrics.js.map +1 -0
- package/dist/Metrics/eventQueueMetrics.d.ts +7 -0
- package/dist/Metrics/eventQueueMetrics.js +19 -0
- package/dist/Metrics/eventQueueMetrics.js.map +1 -0
- package/dist/Metrics/logMetrics.d.ts +4 -0
- package/dist/Metrics/logMetrics.js +20 -0
- package/dist/Metrics/logMetrics.js.map +1 -0
- package/dist/Metrics/metrics.d.ts +84 -0
- package/dist/Metrics/metrics.js +255 -0
- package/dist/Metrics/metrics.js.map +1 -0
- package/dist/Metrics/mongoDBMetrics.d.ts +35 -0
- package/dist/Metrics/mongoDBMetrics.js +162 -0
- package/dist/Metrics/mongoDBMetrics.js.map +1 -0
- package/dist/Metrics/processSocketsMetrics.d.ts +10 -0
- package/dist/Metrics/processSocketsMetrics.js +92 -0
- package/dist/Metrics/processSocketsMetrics.js.map +1 -0
- package/dist/Metrics/redisMetrics.d.ts +13 -0
- package/dist/Metrics/redisMetrics.js +60 -0
- package/dist/Metrics/redisMetrics.js.map +1 -0
- package/dist/MongoDB/MongoDBConnection.d.ts +19 -0
- package/dist/MongoDB/MongoDBConnection.js +185 -0
- package/dist/MongoDB/MongoDBConnection.js.map +1 -0
- package/dist/MongoDB/ProprietaryCluster/SelectionStrategy/dynamicPriority.d.ts +2 -0
- package/dist/MongoDB/ProprietaryCluster/SelectionStrategy/dynamicPriority.js +106 -0
- package/dist/MongoDB/ProprietaryCluster/SelectionStrategy/dynamicPriority.js.map +1 -0
- package/dist/MongoDB/ProprietaryCluster/SelectionStrategy/lowReadLatency.d.ts +2 -0
- package/dist/MongoDB/ProprietaryCluster/SelectionStrategy/lowReadLatency.js +94 -0
- package/dist/MongoDB/ProprietaryCluster/SelectionStrategy/lowReadLatency.js.map +1 -0
- package/dist/MongoDB/ProprietaryCluster/SelectionStrategy/ordinary.d.ts +2 -0
- package/dist/MongoDB/ProprietaryCluster/SelectionStrategy/ordinary.js +80 -0
- package/dist/MongoDB/ProprietaryCluster/SelectionStrategy/ordinary.js.map +1 -0
- package/dist/MongoDB/ProprietaryCluster/SelectionStrategy/random.d.ts +2 -0
- package/dist/MongoDB/ProprietaryCluster/SelectionStrategy/random.js +51 -0
- package/dist/MongoDB/ProprietaryCluster/SelectionStrategy/random.js.map +1 -0
- package/dist/MongoDB/ProprietaryCluster/helper.d.ts +13 -0
- package/dist/MongoDB/ProprietaryCluster/helper.js +147 -0
- package/dist/MongoDB/ProprietaryCluster/helper.js.map +1 -0
- package/dist/MongoDB/cursorIterator.d.ts +5 -0
- package/dist/MongoDB/cursorIterator.js +63 -0
- package/dist/MongoDB/cursorIterator.js.map +1 -0
- package/dist/MongoDB/escape.d.ts +4 -0
- package/dist/MongoDB/escape.js +54 -0
- package/dist/MongoDB/escape.js.map +1 -0
- package/dist/MongoDB/mongoDBConnectionFactory.d.ts +13 -0
- package/dist/MongoDB/mongoDBConnectionFactory.js +11 -0
- package/dist/MongoDB/mongoDBConnectionFactory.js.map +1 -0
- package/dist/MongoDB/proprietaryCluster.d.ts +1 -0
- package/dist/MongoDB/proprietaryCluster.js +76 -0
- package/dist/MongoDB/proprietaryCluster.js.map +1 -0
- package/dist/Npm/INpmClient.d.ts +25 -0
- package/dist/Npm/INpmClient.js +3 -0
- package/dist/Npm/INpmClient.js.map +1 -0
- package/dist/Npm/MockNpmClient.d.ts +17 -0
- package/dist/Npm/MockNpmClient.js +124 -0
- package/dist/Npm/MockNpmClient.js.map +1 -0
- package/dist/Npm/NpmClient.d.ts +14 -0
- package/dist/Npm/NpmClient.js +212 -0
- package/dist/Npm/NpmClient.js.map +1 -0
- package/dist/Npm/NpmCredentialsProvider.d.ts +18 -0
- package/dist/Npm/NpmCredentialsProvider.js +111 -0
- package/dist/Npm/NpmCredentialsProvider.js.map +1 -0
- package/dist/Observable/helpers.d.ts +3 -0
- package/dist/Observable/helpers.js +117 -0
- package/dist/Observable/helpers.js.map +1 -0
- package/dist/Parsers/parsers.d.ts +1 -0
- package/dist/Parsers/parsers.js +17 -0
- package/dist/Parsers/parsers.js.map +1 -0
- package/dist/Path/detector.d.ts +9 -0
- package/dist/Path/detector.js +78 -0
- package/dist/Path/detector.js.map +1 -0
- package/dist/Pool/IBasePool.d.ts +6 -0
- package/dist/Pool/IBasePool.js +3 -0
- package/dist/Pool/IBasePool.js.map +1 -0
- package/dist/Promise/cancelable.d.ts +4 -0
- package/dist/Promise/cancelable.js +21 -0
- package/dist/Promise/cancelable.js.map +1 -0
- package/dist/Promise/deferred.d.ts +4 -0
- package/dist/Promise/deferred.js +21 -0
- package/dist/Promise/deferred.js.map +1 -0
- package/dist/Promise/deferredStream.d.ts +4 -0
- package/dist/Promise/deferredStream.js +21 -0
- package/dist/Promise/deferredStream.js.map +1 -0
- package/dist/Promise/lock.d.ts +4 -0
- package/dist/Promise/lock.js +21 -0
- package/dist/Promise/lock.js.map +1 -0
- package/dist/Promise/timeoutable.d.ts +4 -0
- package/dist/Promise/timeoutable.js +21 -0
- package/dist/Promise/timeoutable.js.map +1 -0
- package/dist/Redis/DeviceActions/PostponedAction.d.ts +4 -0
- package/dist/Redis/DeviceActions/PostponedAction.js +3 -0
- package/dist/Redis/DeviceActions/PostponedAction.js.map +1 -0
- package/dist/Redis/DeviceActions/postponedDeviceActions.d.ts +8 -0
- package/dist/Redis/DeviceActions/postponedDeviceActions.js +333 -0
- package/dist/Redis/DeviceActions/postponedDeviceActions.js.map +1 -0
- package/dist/Redis/redisConnectionFactory.d.ts +41 -0
- package/dist/Redis/redisConnectionFactory.js +158 -0
- package/dist/Redis/redisConnectionFactory.js.map +1 -0
- package/dist/Redis/redisLock.d.ts +11 -0
- package/dist/Redis/redisLock.js +213 -0
- package/dist/Redis/redisLock.js.map +1 -0
- package/dist/Retry/retry.d.ts +28 -0
- package/dist/Retry/retry.js +154 -0
- package/dist/Retry/retry.js.map +1 -0
- package/dist/Rsync/copier.d.ts +1 -0
- package/dist/Rsync/copier.js +123 -0
- package/dist/Rsync/copier.js.map +1 -0
- package/dist/SemVer/SemVerLevel.d.ts +6 -0
- package/dist/SemVer/SemVerLevel.js +10 -0
- package/dist/SemVer/SemVerLevel.js.map +1 -0
- package/dist/SemVer/semVerConstants.d.ts +2 -0
- package/dist/SemVer/semVerConstants.js +9 -0
- package/dist/SemVer/semVerConstants.js.map +1 -0
- package/dist/SemVer/semVerHelper.d.ts +7 -0
- package/dist/SemVer/semVerHelper.js +82 -0
- package/dist/SemVer/semVerHelper.js.map +1 -0
- package/dist/Service/HTTP/express/app.d.ts +33 -0
- package/dist/Service/HTTP/express/app.js +82 -0
- package/dist/Service/HTTP/express/app.js.map +1 -0
- package/dist/Service/HTTP/express/expressFactory.d.ts +4 -0
- package/dist/Service/HTTP/express/expressFactory.js +22 -0
- package/dist/Service/HTTP/express/expressFactory.js.map +1 -0
- package/dist/Service/HTTP/express/monitoring.d.ts +8 -0
- package/dist/Service/HTTP/express/monitoring.js +25 -0
- package/dist/Service/HTTP/express/monitoring.js.map +1 -0
- package/dist/Service/HTTP/httpServerFactory.d.ts +54 -0
- package/dist/Service/HTTP/httpServerFactory.js +104 -0
- package/dist/Service/HTTP/httpServerFactory.js.map +1 -0
- package/dist/Service/HTTP/middleware/accessLogMiddleware.d.ts +20 -0
- package/dist/Service/HTTP/middleware/accessLogMiddleware.js +90 -0
- package/dist/Service/HTTP/middleware/accessLogMiddleware.js.map +1 -0
- package/dist/Service/HTTP/middleware/headersMiddleware.d.ts +2 -0
- package/dist/Service/HTTP/middleware/headersMiddleware.js +18 -0
- package/dist/Service/HTTP/middleware/headersMiddleware.js.map +1 -0
- package/dist/Service/HTTP/routes/app/indexPage.d.ts +7 -0
- package/dist/Service/HTTP/routes/app/indexPage.js +12 -0
- package/dist/Service/HTTP/routes/app/indexPage.js.map +1 -0
- package/dist/Service/HTTP/routes/app/router.d.ts +14 -0
- package/dist/Service/HTTP/routes/app/router.js +12 -0
- package/dist/Service/HTTP/routes/app/router.js.map +1 -0
- package/dist/Service/HTTP/routes/app/status.d.ts +13 -0
- package/dist/Service/HTTP/routes/app/status.js +44 -0
- package/dist/Service/HTTP/routes/app/status.js.map +1 -0
- package/dist/Service/HTTP/routes/monitoring/aliveness.d.ts +20 -0
- package/dist/Service/HTTP/routes/monitoring/aliveness.js +75 -0
- package/dist/Service/HTTP/routes/monitoring/aliveness.js.map +1 -0
- package/dist/Service/HTTP/routes/monitoring/metrics.d.ts +9 -0
- package/dist/Service/HTTP/routes/monitoring/metrics.js +59 -0
- package/dist/Service/HTTP/routes/monitoring/metrics.js.map +1 -0
- package/dist/Service/HTTP/routes/monitoring/readniness.d.ts +18 -0
- package/dist/Service/HTTP/routes/monitoring/readniness.js +80 -0
- package/dist/Service/HTTP/routes/monitoring/readniness.js.map +1 -0
- package/dist/Service/HTTP/routes/monitoring/router.d.ts +10 -0
- package/dist/Service/HTTP/routes/monitoring/router.js +12 -0
- package/dist/Service/HTTP/routes/monitoring/router.js.map +1 -0
- package/dist/Service/HTTP/server/serverFactory.d.ts +10 -0
- package/dist/Service/HTTP/server/serverFactory.js +133 -0
- package/dist/Service/HTTP/server/serverFactory.js.map +1 -0
- package/dist/Service/Service.d.ts +17 -0
- package/dist/Service/Service.js +97 -0
- package/dist/Service/Service.js.map +1 -0
- package/dist/Service/dbConnections.d.ts +8 -0
- package/dist/Service/dbConnections.js +3 -0
- package/dist/Service/dbConnections.js.map +1 -0
- package/dist/Service/metrics/connections.d.ts +3 -0
- package/dist/Service/metrics/connections.js +47 -0
- package/dist/Service/metrics/connections.js.map +1 -0
- package/dist/Service/metrics/mongodb.d.ts +2 -0
- package/dist/Service/metrics/mongodb.js +13 -0
- package/dist/Service/metrics/mongodb.js.map +1 -0
- package/dist/Service/metrics/redis.d.ts +2 -0
- package/dist/Service/metrics/redis.js +11 -0
- package/dist/Service/metrics/redis.js.map +1 -0
- package/dist/Service/process.d.ts +11 -0
- package/dist/Service/process.js +88 -0
- package/dist/Service/process.js.map +1 -0
- package/dist/Service/serviceFactory.d.ts +115 -0
- package/dist/Service/serviceFactory.js +118 -0
- package/dist/Service/serviceFactory.js.map +1 -0
- package/dist/Service/types.d.ts +55 -0
- package/dist/Service/types.js +3 -0
- package/dist/Service/types.js.map +1 -0
- package/dist/Storage/IArrayStorage.d.ts +7 -0
- package/dist/Storage/IArrayStorage.js +3 -0
- package/dist/Storage/IArrayStorage.js.map +1 -0
- package/dist/Storage/MemoryArrayStorage.d.ts +9 -0
- package/dist/Storage/MemoryArrayStorage.js +22 -0
- package/dist/Storage/MemoryArrayStorage.js.map +1 -0
- package/dist/String/pad.d.ts +1 -0
- package/dist/String/pad.js +7 -0
- package/dist/String/pad.js.map +1 -0
- package/dist/String/string.d.ts +3 -0
- package/dist/String/string.js +17 -0
- package/dist/String/string.js.map +1 -0
- package/dist/String/webalize.d.ts +1 -0
- package/dist/String/webalize.js +15 -0
- package/dist/String/webalize.js.map +1 -0
- package/dist/String/word.d.ts +32 -0
- package/dist/String/word.js +97 -0
- package/dist/String/word.js.map +1 -0
- package/dist/System/signalSender.d.ts +1 -0
- package/dist/System/signalSender.js +7 -0
- package/dist/System/signalSender.js.map +1 -0
- package/dist/ThirdParty/connection.d.ts +28 -0
- package/dist/ThirdParty/connection.js +9 -0
- package/dist/ThirdParty/connection.js.map +1 -0
- package/dist/Timer/Power/PowerTimerSettings.d.ts +29 -0
- package/dist/Timer/Power/PowerTimerSettings.js +3 -0
- package/dist/Timer/Power/PowerTimerSettings.js.map +1 -0
- package/dist/Timer/Power/PowerTimerType.d.ts +2 -0
- package/dist/Timer/Power/PowerTimerType.js +3 -0
- package/dist/Timer/Power/PowerTimerType.js.map +1 -0
- package/dist/Timer/Power/PowerTimerWeekday.d.ts +18 -0
- package/dist/Timer/Power/PowerTimerWeekday.js +18 -0
- package/dist/Timer/Power/PowerTimerWeekday.js.map +1 -0
- package/dist/Timer/Power/PowerTimerWeekdayEnum.d.ts +28 -0
- package/dist/Timer/Power/PowerTimerWeekdayEnum.js +32 -0
- package/dist/Timer/Power/PowerTimerWeekdayEnum.js.map +1 -0
- package/dist/Timer/Power/TimerEventWeekdayNumber.d.ts +9 -0
- package/dist/Timer/Power/TimerEventWeekdayNumber.js +14 -0
- package/dist/Timer/Power/TimerEventWeekdayNumber.js.map +1 -0
- package/dist/Timer/Power/powerTimerComputer.d.ts +36 -0
- package/dist/Timer/Power/powerTimerComputer.js +141 -0
- package/dist/Timer/Power/powerTimerComputer.js.map +1 -0
- package/dist/Timer/convertWeekday.d.ts +25 -0
- package/dist/Timer/convertWeekday.js +211 -0
- package/dist/Timer/convertWeekday.js.map +1 -0
- package/dist/Timer/converters.d.ts +44 -0
- package/dist/Timer/converters.js +72 -0
- package/dist/Timer/converters.js.map +1 -0
- package/dist/Timer/increasingInterval.d.ts +2 -0
- package/dist/Timer/increasingInterval.js +108 -0
- package/dist/Timer/increasingInterval.js.map +1 -0
- package/dist/Timer/nonConcurrentInterval.d.ts +4 -0
- package/dist/Timer/nonConcurrentInterval.js +73 -0
- package/dist/Timer/nonConcurrentInterval.js.map +1 -0
- package/dist/Timer/progressiveWait.d.ts +40 -0
- package/dist/Timer/progressiveWait.js +96 -0
- package/dist/Timer/progressiveWait.js.map +1 -0
- package/dist/Timer/timeout.d.ts +4 -0
- package/dist/Timer/timeout.js +21 -0
- package/dist/Timer/timeout.js.map +1 -0
- package/dist/Timer/wait.d.ts +5 -0
- package/dist/Timer/wait.js +27 -0
- package/dist/Timer/wait.js.map +1 -0
- package/dist/TypeScript/asyncIterator.d.ts +1 -0
- package/dist/TypeScript/asyncIterator.js +76 -0
- package/dist/TypeScript/asyncIterator.js.map +1 -0
- package/dist/TypeScript/expect.d.ts +6 -0
- package/dist/TypeScript/expect.js +12 -0
- package/dist/TypeScript/expect.js.map +1 -0
- package/dist/TypeScript/generator.d.ts +1 -0
- package/dist/TypeScript/generator.js +20 -0
- package/dist/TypeScript/generator.js.map +1 -0
- package/dist/TypeScript/object.d.ts +12 -0
- package/dist/TypeScript/object.js +3 -0
- package/dist/TypeScript/object.js.map +1 -0
- package/dist/TypeScript/observable-polyfill.d.ts +1 -0
- package/dist/TypeScript/observable-polyfill.js +33 -0
- package/dist/TypeScript/observable-polyfill.js.map +1 -0
- package/dist/Utils/array.d.ts +2 -0
- package/dist/Utils/array.js +23 -0
- package/dist/Utils/array.js.map +1 -0
- package/dist/Utils/enum.d.ts +24 -0
- package/dist/Utils/enum.js +35 -0
- package/dist/Utils/enum.js.map +1 -0
- package/dist/Utils/file.d.ts +1 -0
- package/dist/Utils/file.js +55 -0
- package/dist/Utils/file.js.map +1 -0
- package/dist/Utils/http.d.ts +23 -0
- package/dist/Utils/http.js +68 -0
- package/dist/Utils/http.js.map +1 -0
- package/dist/Utils/object.d.ts +22 -0
- package/dist/Utils/object.js +112 -0
- package/dist/Utils/object.js.map +1 -0
- package/dist/Utils/sorting.d.ts +1 -0
- package/dist/Utils/sorting.js +33 -0
- package/dist/Utils/sorting.js.map +1 -0
- package/dist/WebSocket/Client/ISocket.d.ts +55 -0
- package/dist/WebSocket/Client/ISocket.js +46 -0
- package/dist/WebSocket/Client/ISocket.js.map +1 -0
- package/dist/WebSocket/Client/SocketIO/createSocketIOSocket.d.ts +8 -0
- package/dist/WebSocket/Client/SocketIO/createSocketIOSocket.js +81 -0
- package/dist/WebSocket/Client/SocketIO/createSocketIOSocket.js.map +1 -0
- package/dist/WebSocket/Client/WS/AutoReconnectingWSSocket.d.ts +25 -0
- package/dist/WebSocket/Client/WS/AutoReconnectingWSSocket.js +174 -0
- package/dist/WebSocket/Client/WS/AutoReconnectingWSSocket.js.map +1 -0
- package/dist/WebSocket/Client/WS/createWSSocket.d.ts +8 -0
- package/dist/WebSocket/Client/WS/createWSSocket.js +155 -0
- package/dist/WebSocket/Client/WS/createWSSocket.js.map +1 -0
- package/dist/WebSocket/autoWsServerFactory.d.ts +4 -0
- package/dist/WebSocket/autoWsServerFactory.js +334 -0
- package/dist/WebSocket/autoWsServerFactory.js.map +1 -0
- package/dist/WebSocket/perMessageDeflate.d.ts +14 -0
- package/dist/WebSocket/perMessageDeflate.js +3 -0
- package/dist/WebSocket/perMessageDeflate.js.map +1 -0
- package/dist/WebSocket/socketIOServerFactory.d.ts +6 -0
- package/dist/WebSocket/socketIOServerFactory.js +124 -0
- package/dist/WebSocket/socketIOServerFactory.js.map +1 -0
- package/dist/WebSocket/socketServer.d.ts +30 -0
- package/dist/WebSocket/socketServer.js +3 -0
- package/dist/WebSocket/socketServer.js.map +1 -0
- package/dist/WebSocket/wsServerFactory.d.ts +8 -0
- package/dist/WebSocket/wsServerFactory.js +272 -0
- package/dist/WebSocket/wsServerFactory.js.map +1 -0
- package/dist/Webpack/NpmPackPlugin.d.ts +14 -0
- package/dist/Webpack/NpmPackPlugin.js +90 -0
- package/dist/Webpack/NpmPackPlugin.js.map +1 -0
- package/dist/Zod/zod.d.ts +2 -0
- package/dist/Zod/zod.js +7 -0
- package/dist/Zod/zod.js.map +1 -0
- package/dist/Zod/zodError.d.ts +40 -0
- package/dist/Zod/zodError.js +76 -0
- package/dist/Zod/zodError.js.map +1 -0
- package/package.json +36 -2
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.collectSocketMetrics = exports.metricNames = void 0;
|
|
15
|
+
var http_1 = require("http");
|
|
16
|
+
var prom_client_1 = require("prom-client");
|
|
17
|
+
var NODEJS_ACTIVE_SOCKETS = 'nodejs_active_sockets';
|
|
18
|
+
var defaultConfig = {
|
|
19
|
+
prefix: 'sos_',
|
|
20
|
+
registry: undefined,
|
|
21
|
+
process: process,
|
|
22
|
+
};
|
|
23
|
+
exports.metricNames = [NODEJS_ACTIVE_SOCKETS];
|
|
24
|
+
var collectSocketMetrics = function (cfg) {
|
|
25
|
+
if (cfg === void 0) { cfg = {}; }
|
|
26
|
+
var config = __assign(__assign({}, defaultConfig), cfg);
|
|
27
|
+
if (typeof config.process._getActiveHandles !== 'function') {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
var processExt = process;
|
|
31
|
+
var registers = config.registry ? [config.registry] : undefined;
|
|
32
|
+
var namePrefix = config.prefix ? config.prefix : '';
|
|
33
|
+
var localServerPorts = new Set();
|
|
34
|
+
var socketMapper = function (socket) {
|
|
35
|
+
var _a;
|
|
36
|
+
return socket.localPort
|
|
37
|
+
? localServerPorts.has((_a = socket.localPort) !== null && _a !== void 0 ? _a : 0)
|
|
38
|
+
? "local:".concat(socket === null || socket === void 0 ? void 0 : socket.localPort)
|
|
39
|
+
: (socket === null || socket === void 0 ? void 0 : socket.remotePort)
|
|
40
|
+
? "remote:".concat(socket === null || socket === void 0 ? void 0 : socket.remotePort)
|
|
41
|
+
: null
|
|
42
|
+
: null;
|
|
43
|
+
};
|
|
44
|
+
var mappers = {
|
|
45
|
+
TCP: socketMapper,
|
|
46
|
+
TLSSocket: socketMapper,
|
|
47
|
+
Socket: socketMapper,
|
|
48
|
+
Server: function (server) {
|
|
49
|
+
if (server instanceof http_1.Server) {
|
|
50
|
+
var address = server.address();
|
|
51
|
+
if (address && typeof address === 'object') {
|
|
52
|
+
localServerPorts.add(address.port);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// Server will be not accounted in resulted metrics
|
|
56
|
+
return null;
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
function collect() {
|
|
60
|
+
// prepare
|
|
61
|
+
this.reset();
|
|
62
|
+
localServerPorts.clear();
|
|
63
|
+
// fetch handles
|
|
64
|
+
var activeHandles = processExt._getActiveHandles();
|
|
65
|
+
var sockets = activeHandles.reduce(function (acc, handle) {
|
|
66
|
+
var _a, _b, _c, _d;
|
|
67
|
+
var name = (_b = (_a = handle === null || handle === void 0 ? void 0 : handle.constructor) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : 'unknown';
|
|
68
|
+
var label = (_c = mappers[name]) === null || _c === void 0 ? void 0 : _c.call(mappers, handle);
|
|
69
|
+
// output only socket-like handles, for the rest class name based accumulator present
|
|
70
|
+
// in default prom metrics will suffice
|
|
71
|
+
// we want this extra information (IPs) from socket handles, so we could easyly identify
|
|
72
|
+
// which kind of connection is hanging
|
|
73
|
+
if (label) {
|
|
74
|
+
var key = "".concat(name, ":").concat(label);
|
|
75
|
+
acc[key] = ((_d = acc[key]) !== null && _d !== void 0 ? _d : 0) + 1;
|
|
76
|
+
}
|
|
77
|
+
return acc;
|
|
78
|
+
}, {});
|
|
79
|
+
for (var key in sockets) {
|
|
80
|
+
this.labels({ socket: key }).set(sockets[key]);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
new prom_client_1.Gauge({
|
|
84
|
+
name: namePrefix + NODEJS_ACTIVE_SOCKETS,
|
|
85
|
+
help: 'curent counts of sockets by local/remote ports',
|
|
86
|
+
labelNames: ['socket'],
|
|
87
|
+
registers: registers,
|
|
88
|
+
collect: collect,
|
|
89
|
+
});
|
|
90
|
+
};
|
|
91
|
+
exports.collectSocketMetrics = collectSocketMetrics;
|
|
92
|
+
//# sourceMappingURL=processSocketsMetrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processSocketsMetrics.js","sourceRoot":"","sources":["../../src/Metrics/processSocketsMetrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as redis from 'redis';
|
|
2
|
+
export interface IRedisDBDriverExporter extends RedisDBDriverExporter {
|
|
3
|
+
}
|
|
4
|
+
export declare class RedisDBDriverExporter {
|
|
5
|
+
/**
|
|
6
|
+
* Start monitoring the given redis client instance
|
|
7
|
+
*
|
|
8
|
+
* @param redisClient mongo client instance
|
|
9
|
+
* @param name unique name for the client that will be used as a label to differentiate between multiple clients
|
|
10
|
+
*/
|
|
11
|
+
monitorRedisClient(redisClient: redis.RedisClient, name: string): void;
|
|
12
|
+
private onError;
|
|
13
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RedisDBDriverExporter = void 0;
|
|
4
|
+
var metrics_1 = require("./metrics");
|
|
5
|
+
var prefix = 'sos_';
|
|
6
|
+
var redisMetricsConfig = {
|
|
7
|
+
redis_driver_errors: {
|
|
8
|
+
metric: 'Counter',
|
|
9
|
+
help: 'Counter of redis errors',
|
|
10
|
+
method: 'inc',
|
|
11
|
+
labels: {
|
|
12
|
+
name: 'NOT_PREDEFINED_VALUE',
|
|
13
|
+
error_type: 'NOT_PREDEFINED_VALUE',
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
redis_driver_connection_ready: {
|
|
17
|
+
metric: 'Counter',
|
|
18
|
+
help: 'Counter of redis successful connections',
|
|
19
|
+
method: 'inc',
|
|
20
|
+
labels: {
|
|
21
|
+
name: 'NOT_PREDEFINED_VALUE',
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
redis_driver_connection_end: {
|
|
25
|
+
metric: 'Counter',
|
|
26
|
+
help: 'Counter of redis ended connections',
|
|
27
|
+
method: 'inc',
|
|
28
|
+
labels: {
|
|
29
|
+
name: 'NOT_PREDEFINED_VALUE',
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
var metrics = new metrics_1.Metrics({
|
|
34
|
+
metricsConfig: redisMetricsConfig,
|
|
35
|
+
prefix: prefix,
|
|
36
|
+
});
|
|
37
|
+
var RedisDBDriverExporter = /** @class */ (function () {
|
|
38
|
+
function RedisDBDriverExporter() {
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Start monitoring the given redis client instance
|
|
42
|
+
*
|
|
43
|
+
* @param redisClient mongo client instance
|
|
44
|
+
* @param name unique name for the client that will be used as a label to differentiate between multiple clients
|
|
45
|
+
*/
|
|
46
|
+
RedisDBDriverExporter.prototype.monitorRedisClient = function (redisClient, name) {
|
|
47
|
+
var _this = this;
|
|
48
|
+
var labels = { name: name };
|
|
49
|
+
redisClient.on('error', function (event) { return _this.onError(labels, event); });
|
|
50
|
+
redisClient.on('end', function () { return metrics.emit('redis_driver_connection_end', labels, 1, 'inc'); });
|
|
51
|
+
redisClient.on('ready', function () { return metrics.emit('redis_driver_connection_ready', labels, 1, 'inc'); });
|
|
52
|
+
};
|
|
53
|
+
RedisDBDriverExporter.prototype.onError = function (labels, event) {
|
|
54
|
+
labels.error_type = event.code ? event.code : 'UNKNOWN_ERROR';
|
|
55
|
+
metrics.emit('redis_driver_errors', labels, 1, 'inc');
|
|
56
|
+
};
|
|
57
|
+
return RedisDBDriverExporter;
|
|
58
|
+
}());
|
|
59
|
+
exports.RedisDBDriverExporter = RedisDBDriverExporter;
|
|
60
|
+
//# sourceMappingURL=redisMetrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redisMetrics.js","sourceRoot":"","sources":["../../src/Metrics/redisMetrics.ts"],"names":[],"mappings":";;;AAEA,qCAAoD;AAUpD,IAAM,MAAM,GAAG,MAAM,CAAC;AAEtB,IAAM,kBAAkB,GAAgD;IACvE,mBAAmB,EAAE;QACpB,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,yBAAyB;QAC/B,MAAM,EAAE,KAAK;QACb,MAAM,EAAE;YACP,IAAI,EAAE,sBAAsB;YAC5B,UAAU,EAAE,sBAAsB;SAClC;KACD;IACD,6BAA6B,EAAE;QAC9B,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,yCAAyC;QAC/C,MAAM,EAAE,KAAK;QACb,MAAM,EAAE;YACP,IAAI,EAAE,sBAAsB;SAC5B;KACD;IACD,2BAA2B,EAAE;QAC5B,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,oCAAoC;QAC1C,MAAM,EAAE,KAAK;QACb,MAAM,EAAE;YACP,IAAI,EAAE,sBAAsB;SAC5B;KACD;CACD,CAAC;AAEF,IAAI,OAAO,GAAG,IAAI,iBAAO,CAA8B;IACtD,aAAa,EAAE,kBAAkB;IACjC,MAAM,QAAA;CACN,CAAC,CAAC;AAEH;IAAA;IAkBA,CAAC;IAjBA;;;;;OAKG;IACI,kDAAkB,GAAzB,UAA0B,WAA8B,EAAE,IAAY;QAAtE,iBAKC;QAJA,IAAM,MAAM,GAAG,EAAE,IAAI,MAAA,EAAE,CAAC;QACxB,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,EAA3B,CAA2B,CAAC,CAAC;QAChE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,cAAM,OAAA,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,EAA7D,CAA6D,CAAC,CAAC;QAC3F,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,cAAM,OAAA,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,EAA/D,CAA+D,CAAC,CAAC;IAChG,CAAC;IAEO,uCAAO,GAAf,UAAgB,MAA8B,EAAE,KAAU;QACzD,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IACF,4BAAC;AAAD,CAAC,AAlBD,IAkBC;AAlBY,sDAAqB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import mongoose from 'mongoose';
|
|
2
|
+
import { IMongoDBDriverExporter } from '../Metrics/mongoDBMetrics';
|
|
3
|
+
import { IMongodbConnection } from './mongoDBConnectionFactory';
|
|
4
|
+
export declare class MongoDBConnection implements IMongodbConnection {
|
|
5
|
+
private mongoDbDsn;
|
|
6
|
+
connection: mongoose.Connection | null;
|
|
7
|
+
private options;
|
|
8
|
+
private metrics;
|
|
9
|
+
constructor(mongoDbDsn: string, options?: mongoose.ConnectOptions);
|
|
10
|
+
connect(): Promise<void>;
|
|
11
|
+
close(): Promise<void>;
|
|
12
|
+
monitor(connectionName: string, exporter: IMongoDBDriverExporter): void;
|
|
13
|
+
/**
|
|
14
|
+
* @see https://www.mongodb.com/docs/drivers/node/current/fundamentals/monitoring/command-monitoring/#command-monitoring
|
|
15
|
+
*/
|
|
16
|
+
private monitorConnection;
|
|
17
|
+
private logConnectionEvent;
|
|
18
|
+
private logMongoClient;
|
|
19
|
+
}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
|
+
};
|
|
52
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
+
exports.MongoDBConnection = void 0;
|
|
54
|
+
var mongoose_1 = __importDefault(require("mongoose"));
|
|
55
|
+
var debug_1 = __importDefault(require("debug"));
|
|
56
|
+
var proprietaryCluster_1 = require("./proprietaryCluster");
|
|
57
|
+
var logging_1 = require("../Logging/logging");
|
|
58
|
+
mongoose_1.default.Promise = Promise;
|
|
59
|
+
var debug = (0, debug_1.default)('@signageos/lib:MongoDB:mongoDBConnectionFactory');
|
|
60
|
+
var logger = logging_1.logger.createNamespace('MongoDBConnection');
|
|
61
|
+
var defaultOptions = {
|
|
62
|
+
autoIndex: false,
|
|
63
|
+
connectTimeoutMS: 10 * 60 * 1e3, // 10m
|
|
64
|
+
socketTimeoutMS: 3 * 60 * 60 * 1e3, // 3h
|
|
65
|
+
monitorCommands: true,
|
|
66
|
+
};
|
|
67
|
+
var MongoDBConnection = /** @class */ (function () {
|
|
68
|
+
function MongoDBConnection(mongoDbDsn, options) {
|
|
69
|
+
if (options === void 0) { options = {}; }
|
|
70
|
+
this.mongoDbDsn = mongoDbDsn;
|
|
71
|
+
this.connection = null;
|
|
72
|
+
this.metrics = null;
|
|
73
|
+
this.options = __assign(__assign({}, defaultOptions), options);
|
|
74
|
+
}
|
|
75
|
+
MongoDBConnection.prototype.connect = function () {
|
|
76
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
77
|
+
var updatedMongDbDsn, connection;
|
|
78
|
+
return __generator(this, function (_a) {
|
|
79
|
+
switch (_a.label) {
|
|
80
|
+
case 0:
|
|
81
|
+
debug('connect');
|
|
82
|
+
return [4 /*yield*/, (0, proprietaryCluster_1.updateDsnIfProprietaryCluster)(this.mongoDbDsn)];
|
|
83
|
+
case 1:
|
|
84
|
+
updatedMongDbDsn = _a.sent();
|
|
85
|
+
connection = mongoose_1.default.createConnection(updatedMongDbDsn, this.options);
|
|
86
|
+
this.logMongoClient(connection.getClient());
|
|
87
|
+
if (this.metrics) {
|
|
88
|
+
this.monitorConnection(connection, this.metrics.exporter, this.metrics.connectionName);
|
|
89
|
+
}
|
|
90
|
+
return [4 /*yield*/, connection.asPromise()];
|
|
91
|
+
case 2:
|
|
92
|
+
_a.sent();
|
|
93
|
+
debug('connected');
|
|
94
|
+
this.connection = connection;
|
|
95
|
+
return [2 /*return*/];
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
MongoDBConnection.prototype.close = function () {
|
|
101
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
102
|
+
return __generator(this, function (_a) {
|
|
103
|
+
switch (_a.label) {
|
|
104
|
+
case 0:
|
|
105
|
+
if (!this.connection) return [3 /*break*/, 2];
|
|
106
|
+
return [4 /*yield*/, this.connection.close()];
|
|
107
|
+
case 1:
|
|
108
|
+
_a.sent();
|
|
109
|
+
_a.label = 2;
|
|
110
|
+
case 2: return [2 /*return*/];
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
MongoDBConnection.prototype.monitor = function (connectionName, exporter) {
|
|
116
|
+
if (this.connection) {
|
|
117
|
+
debug("monitor connection ".concat(connectionName, " now"));
|
|
118
|
+
this.monitorConnection(this.connection, exporter, connectionName);
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
debug("monitor connection ".concat(connectionName, ", once it connects"));
|
|
122
|
+
// if connection is not yet established, store the exporter and name for later use
|
|
123
|
+
this.metrics = {
|
|
124
|
+
exporter: exporter,
|
|
125
|
+
connectionName: connectionName,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
/**
|
|
130
|
+
* @see https://www.mongodb.com/docs/drivers/node/current/fundamentals/monitoring/command-monitoring/#command-monitoring
|
|
131
|
+
*/
|
|
132
|
+
MongoDBConnection.prototype.monitorConnection = function (connection, exporter, connectionName) {
|
|
133
|
+
debug("monitor connection ".concat(connectionName));
|
|
134
|
+
connection.on('connected', function () { return logger.info('connected', { connectionName: connectionName }); });
|
|
135
|
+
connection.on('disconnected', function () { return logger.error('disconnected', { connectionName: connectionName }); });
|
|
136
|
+
connection.on('error', function (error) { return logger.error('error', { connectionName: connectionName, error: error }); });
|
|
137
|
+
connection.on('close', function () { return logger.error('closed', { connectionName: connectionName }); });
|
|
138
|
+
var mongoClient = connection.getClient();
|
|
139
|
+
exporter.monitorMongoClient(mongoClient, connectionName);
|
|
140
|
+
var eventNames = ['commandStarted', 'commandSucceeded', 'commandFailed'];
|
|
141
|
+
var _loop_1 = function (eventName) {
|
|
142
|
+
mongoClient.addListener(eventName, function (event) {
|
|
143
|
+
debug(eventName,
|
|
144
|
+
// https://github.com/GoogleChromeLabs/jsbi/issues/30
|
|
145
|
+
JSON.stringify(event, function (_key, value) { return (typeof value === 'bigint' ? value.toString() : value); }));
|
|
146
|
+
});
|
|
147
|
+
};
|
|
148
|
+
for (var _i = 0, eventNames_1 = eventNames; _i < eventNames_1.length; _i++) {
|
|
149
|
+
var eventName = eventNames_1[_i];
|
|
150
|
+
_loop_1(eventName);
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
MongoDBConnection.prototype.logConnectionEvent = function (event, level) {
|
|
154
|
+
var _a;
|
|
155
|
+
if (level === void 0) { level = 'debug'; }
|
|
156
|
+
// name is not defined in interface, but it is there in most cases
|
|
157
|
+
var logMessage = "MongoDB event".concat(event.name ? ": '".concat(event.name, "'") : '');
|
|
158
|
+
var connectionName = (_a = this.metrics) === null || _a === void 0 ? void 0 : _a.connectionName;
|
|
159
|
+
if (level === 'debug') {
|
|
160
|
+
debug(logMessage, { event: event, connectionName: connectionName });
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
logger[level](logMessage, { event: event, connectionName: connectionName });
|
|
164
|
+
};
|
|
165
|
+
MongoDBConnection.prototype.logMongoClient = function (mongoClient) {
|
|
166
|
+
var _this = this;
|
|
167
|
+
mongoClient.on('connectionPoolCreated', function (event) { return _this.logConnectionEvent(event); });
|
|
168
|
+
mongoClient.on('connectionPoolClosed', function (event) { return _this.logConnectionEvent(event, 'error'); });
|
|
169
|
+
mongoClient.on('connectionCreated', function (event) { return _this.logConnectionEvent(event); });
|
|
170
|
+
mongoClient.on('connectionClosed', function (event) { return _this.logConnectionEvent(event, 'error'); });
|
|
171
|
+
mongoClient.on('connectionCheckOutStarted', function (event) { return _this.logConnectionEvent(event); });
|
|
172
|
+
mongoClient.on('connectionCheckedOut', function (event) { return _this.logConnectionEvent(event); });
|
|
173
|
+
mongoClient.on('connectionCheckOutFailed', function (event) { return _this.logConnectionEvent(event, 'error'); });
|
|
174
|
+
mongoClient.on('connectionCheckedIn', function (event) { return _this.logConnectionEvent(event); });
|
|
175
|
+
mongoClient.on('commandSucceeded', function (event) { return _this.logConnectionEvent(event); });
|
|
176
|
+
mongoClient.on('commandFailed', function (event) { return _this.logConnectionEvent(event, 'debug'); });
|
|
177
|
+
mongoClient.on('serverClosed', function (event) { return _this.logConnectionEvent(event, 'error'); });
|
|
178
|
+
mongoClient.on('serverOpening', function (event) { return _this.logConnectionEvent(event); });
|
|
179
|
+
mongoClient.on('serverHeartbeatFailed', function (event) { return _this.logConnectionEvent(event, 'error'); });
|
|
180
|
+
mongoClient.on('topologyDescriptionChanged', function (event) { return _this.logConnectionEvent(event, 'error'); });
|
|
181
|
+
};
|
|
182
|
+
return MongoDBConnection;
|
|
183
|
+
}());
|
|
184
|
+
exports.MongoDBConnection = MongoDBConnection;
|
|
185
|
+
//# sourceMappingURL=MongoDBConnection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MongoDBConnection.js","sourceRoot":"","sources":["../../src/MongoDB/MongoDBConnection.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAgC;AAiBhC,gDAA0B;AAC1B,2DAAqE;AACrE,8CAA0D;AAKzD,kBAAgB,CAAC,OAAO,GAAG,OAAO,CAAC;AAEpC,IAAM,KAAK,GAAG,IAAA,eAAK,EAAC,iDAAiD,CAAC,CAAC;AACvE,IAAM,MAAM,GAAG,gBAAU,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;AAE/D,IAAM,cAAc,GAAG;IACtB,SAAS,EAAE,KAAK;IAChB,gBAAgB,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,MAAM;IACvC,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,KAAK;IACzC,eAAe,EAAE,IAAI;CACrB,CAAC;AAEF;IAUC,2BACS,UAAkB,EAC1B,OAAqC;QAArC,wBAAA,EAAA,YAAqC;QAD7B,eAAU,GAAV,UAAU,CAAQ;QAVpB,eAAU,GAA+B,IAAI,CAAC;QAI7C,YAAO,GAGJ,IAAI,CAAC;QAMf,IAAI,CAAC,OAAO,yBACR,cAAc,GACd,OAAO,CACV,CAAC;IACH,CAAC;IAEY,mCAAO,GAApB;;;;;;wBACC,KAAK,CAAC,SAAS,CAAC,CAAC;wBACQ,qBAAM,IAAA,kDAA6B,EAAC,IAAI,CAAC,UAAU,CAAC,EAAA;;wBAAvE,gBAAgB,GAAG,SAAoD;wBACvE,UAAU,GAAG,kBAAQ,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;wBAE7E,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;wBAE5C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;4BAClB,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;wBACxF,CAAC;wBAED,qBAAM,UAAU,CAAC,SAAS,EAAE,EAAA;;wBAA5B,SAA4B,CAAC;wBAC7B,KAAK,CAAC,WAAW,CAAC,CAAC;wBAEnB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;;;;;KAC7B;IAEY,iCAAK,GAAlB;;;;;6BACK,IAAI,CAAC,UAAU,EAAf,wBAAe;wBAClB,qBAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAA;;wBAA7B,SAA6B,CAAC;;;;;;KAE/B;IAEM,mCAAO,GAAd,UAAe,cAAsB,EAAE,QAAgC;QACtE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,KAAK,CAAC,6BAAsB,cAAc,SAAM,CAAC,CAAC;YAClD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACP,KAAK,CAAC,6BAAsB,cAAc,uBAAoB,CAAC,CAAC;YAChE,kFAAkF;YAClF,IAAI,CAAC,OAAO,GAAG;gBACd,QAAQ,UAAA;gBACR,cAAc,gBAAA;aACd,CAAC;QACH,CAAC;IACF,CAAC;IAED;;OAEG;IACK,6CAAiB,GAAzB,UAA0B,UAA+B,EAAE,QAAgC,EAAE,cAAsB;QAClH,KAAK,CAAC,6BAAsB,cAAc,CAAE,CAAC,CAAC;QAE9C,UAAU,CAAC,EAAE,CAAC,WAAW,EAAE,cAAM,OAAA,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,cAAc,gBAAA,EAAE,CAAC,EAA5C,CAA4C,CAAC,CAAC;QAC/E,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,cAAM,OAAA,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,cAAc,gBAAA,EAAE,CAAC,EAAhD,CAAgD,CAAC,CAAC;QACtF,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,KAAK,IAAK,OAAA,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,cAAc,gBAAA,EAAE,KAAK,OAAA,EAAE,CAAC,EAAhD,CAAgD,CAAC,CAAC;QACpF,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,cAAM,OAAA,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,cAAc,gBAAA,EAAE,CAAC,EAA1C,CAA0C,CAAC,CAAC;QAEzE,IAAM,WAAW,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;QAE3C,QAAQ,CAAC,kBAAkB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAEzD,IAAM,UAAU,GAAG,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,CAAC,CAAC;gCAChE,SAAS;YACnB,WAAW,CAAC,WAAW,CAAC,SAAS,EAAE,UAAC,KAAc;gBACjD,KAAK,CACJ,SAAS;gBACT,qDAAqD;gBACrD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,UAAC,IAAI,EAAE,KAAK,IAAK,OAAA,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAtD,CAAsD,CAAC,CAC9F,CAAC;YACH,CAAC,CAAC,CAAC;;QAPJ,KAAwB,UAAU,EAAV,yBAAU,EAAV,wBAAU,EAAV,IAAU;YAA7B,IAAM,SAAS,mBAAA;oBAAT,SAAS;SAQnB;IACF,CAAC;IAEO,8CAAkB,GAA1B,UACC,KAakC,EAClC,KAA8B;;QAA9B,sBAAA,EAAA,eAA8B;QAE9B,kEAAkE;QAClE,IAAM,UAAU,GAAG,uBAAiB,KAAa,CAAC,IAAI,CAAC,CAAC,CAAC,aAAO,KAAa,CAAC,IAAI,MAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC;QAC7F,IAAM,cAAc,GAAG,MAAA,IAAI,CAAC,OAAO,0CAAE,cAAc,CAAC;QAEpD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACvB,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,OAAA,EAAE,cAAc,gBAAA,EAAE,CAAC,CAAC;YAC7C,OAAO;QACR,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,EAAE,KAAK,OAAA,EAAE,cAAc,gBAAA,EAAE,CAAC,CAAC;IACtD,CAAC;IAEO,0CAAc,GAAtB,UAAuB,WAAwB;QAA/C,iBAeC;QAdA,WAAW,CAAC,EAAE,CAAC,uBAAuB,EAAE,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAA9B,CAA8B,CAAC,CAAC;QACnF,WAAW,CAAC,EAAE,CAAC,sBAAsB,EAAE,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAvC,CAAuC,CAAC,CAAC;QAC3F,WAAW,CAAC,EAAE,CAAC,mBAAmB,EAAE,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAA9B,CAA8B,CAAC,CAAC;QAC/E,WAAW,CAAC,EAAE,CAAC,kBAAkB,EAAE,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAvC,CAAuC,CAAC,CAAC;QACvF,WAAW,CAAC,EAAE,CAAC,2BAA2B,EAAE,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAA9B,CAA8B,CAAC,CAAC;QACvF,WAAW,CAAC,EAAE,CAAC,sBAAsB,EAAE,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAA9B,CAA8B,CAAC,CAAC;QAClF,WAAW,CAAC,EAAE,CAAC,0BAA0B,EAAE,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAvC,CAAuC,CAAC,CAAC;QAC/F,WAAW,CAAC,EAAE,CAAC,qBAAqB,EAAE,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAA9B,CAA8B,CAAC,CAAC;QACjF,WAAW,CAAC,EAAE,CAAC,kBAAkB,EAAE,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAA9B,CAA8B,CAAC,CAAC;QAC9E,WAAW,CAAC,EAAE,CAAC,eAAe,EAAE,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAvC,CAAuC,CAAC,CAAC;QACpF,WAAW,CAAC,EAAE,CAAC,cAAc,EAAE,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAvC,CAAuC,CAAC,CAAC;QACnF,WAAW,CAAC,EAAE,CAAC,eAAe,EAAE,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAA9B,CAA8B,CAAC,CAAC;QAC3E,WAAW,CAAC,EAAE,CAAC,uBAAuB,EAAE,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAvC,CAAuC,CAAC,CAAC;QAC5F,WAAW,CAAC,EAAE,CAAC,4BAA4B,EAAE,UAAC,KAAK,IAAK,OAAA,KAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAvC,CAAuC,CAAC,CAAC;IAClG,CAAC;IACF,wBAAC;AAAD,CAAC,AAjID,IAiIC;AAjIY,8CAAiB"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.dynamicPriority = dynamicPriority;
|
|
40
|
+
var helper_1 = require("../helper");
|
|
41
|
+
var timeout_1 = require("../../../Timer/timeout");
|
|
42
|
+
var GET_PRIORITY_TIMEOUT = 5e3;
|
|
43
|
+
var EXTRA_OPTIONS = ['proprietaryPriorityPath'];
|
|
44
|
+
function dynamicPriority(parsedDsn, originalDsn) {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
46
|
+
var items, _i, _a, host, priority, error_1, priorityItem, selectedDsn;
|
|
47
|
+
return __generator(this, function (_b) {
|
|
48
|
+
switch (_b.label) {
|
|
49
|
+
case 0:
|
|
50
|
+
items = [];
|
|
51
|
+
_i = 0, _a = parsedDsn.hosts;
|
|
52
|
+
_b.label = 1;
|
|
53
|
+
case 1:
|
|
54
|
+
if (!(_i < _a.length)) return [3 /*break*/, 6];
|
|
55
|
+
host = _a[_i];
|
|
56
|
+
_b.label = 2;
|
|
57
|
+
case 2:
|
|
58
|
+
_b.trys.push([2, 4, , 5]);
|
|
59
|
+
return [4 /*yield*/, (0, timeout_1.withTimeout)(getPriority(host, parsedDsn), GET_PRIORITY_TIMEOUT)];
|
|
60
|
+
case 3:
|
|
61
|
+
priority = _b.sent();
|
|
62
|
+
items.push({ host: host, priority: priority });
|
|
63
|
+
return [3 /*break*/, 5];
|
|
64
|
+
case 4:
|
|
65
|
+
error_1 = _b.sent();
|
|
66
|
+
console.error('Not available host', host, error_1);
|
|
67
|
+
return [3 /*break*/, 5];
|
|
68
|
+
case 5:
|
|
69
|
+
_i++;
|
|
70
|
+
return [3 /*break*/, 1];
|
|
71
|
+
case 6:
|
|
72
|
+
priorityItem = items.reduce(function (acc, item) { return (!acc || item.priority > acc.priority ? item : acc); }, null);
|
|
73
|
+
if (!priorityItem) {
|
|
74
|
+
throw new Error("No available connection string (DSN) found: ".concat(originalDsn));
|
|
75
|
+
}
|
|
76
|
+
selectedDsn = (0, helper_1.getDsn)(priorityItem.host, parsedDsn, EXTRA_OPTIONS);
|
|
77
|
+
return [2 /*return*/, selectedDsn];
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
function getPriority(host, parameters) {
|
|
83
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
84
|
+
var simplifiedParameters;
|
|
85
|
+
var _this = this;
|
|
86
|
+
return __generator(this, function (_a) {
|
|
87
|
+
simplifiedParameters = (0, helper_1.withoutOptions)(parameters, EXTRA_OPTIONS);
|
|
88
|
+
return [2 /*return*/, (0, helper_1.doConnectionCallback)(host, simplifiedParameters, function (connection) { return __awaiter(_this, void 0, void 0, function () {
|
|
89
|
+
var proprietaryPriorityPath, _a, collectionName, key, settings;
|
|
90
|
+
var _b, _c, _d;
|
|
91
|
+
return __generator(this, function (_e) {
|
|
92
|
+
switch (_e.label) {
|
|
93
|
+
case 0:
|
|
94
|
+
proprietaryPriorityPath = (_c = (_b = parameters.options) === null || _b === void 0 ? void 0 : _b.proprietaryPriorityPath) !== null && _c !== void 0 ? _c : 'proprietaryClusterSettings.priority';
|
|
95
|
+
_a = proprietaryPriorityPath.split('.'), collectionName = _a[0], key = _a[1];
|
|
96
|
+
return [4 /*yield*/, connection.db(parameters.endpoint).collection(collectionName).findOne({})];
|
|
97
|
+
case 1:
|
|
98
|
+
settings = _e.sent();
|
|
99
|
+
return [2 /*return*/, (_d = settings === null || settings === void 0 ? void 0 : settings[key]) !== null && _d !== void 0 ? _d : 0];
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
}); })];
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=dynamicPriority.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamicPriority.js","sourceRoot":"","sources":["../../../../src/MongoDB/ProprietaryCluster/SelectionStrategy/dynamicPriority.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,0CAuBC;AA7BD,oCAAyE;AACzE,kDAAqD;AAErD,IAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,IAAM,aAAa,GAAG,CAAC,yBAAyB,CAAC,CAAC;AAElD,SAAsB,eAAe,CAAC,SAAsC,EAAE,WAAmB;;;;;;oBAM1F,KAAK,GAAW,EAAE,CAAC;0BACS,EAAf,KAAA,SAAS,CAAC,KAAK;;;yBAAf,CAAA,cAAe,CAAA;oBAAvB,IAAI;;;;oBAEI,qBAAM,IAAA,qBAAW,EAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,oBAAoB,CAAC,EAAA;;oBAAhF,QAAQ,GAAG,SAAqE;oBACtF,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,MAAA,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;;;;oBAE/B,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,IAAI,EAAE,OAAK,CAAC,CAAC;;;oBALhC,IAAe,CAAA;;;oBAS5B,YAAY,GAAG,KAAK,CAAC,MAAM,CAAc,UAAC,GAAG,EAAE,IAAI,IAAK,OAAA,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAnD,CAAmD,EAAE,IAAI,CAAC,CAAC;oBACzH,IAAI,CAAC,YAAY,EAAE,CAAC;wBACnB,MAAM,IAAI,KAAK,CAAC,sDAA+C,WAAW,CAAE,CAAC,CAAC;oBAC/E,CAAC;oBAEK,WAAW,GAAG,IAAA,eAAM,EAAC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;oBACxE,sBAAO,WAAW,EAAC;;;;CACnB;AAED,SAAe,WAAW,CAAC,IAA2B,EAAE,UAAuC;;;;;YACxF,oBAAoB,GAAG,IAAA,uBAAc,EAAC,UAAU,EAAE,aAAa,CAAC,CAAC;YACvE,sBAAO,IAAA,6BAAoB,EAAC,IAAI,EAAE,oBAAoB,EAAE,UAAO,UAAU;;;;;;gCAClE,uBAAuB,GAAW,MAAA,MAAA,UAAU,CAAC,OAAO,0CAAE,uBAAuB,mCAAI,qCAAqC,CAAC;gCACvH,KAAwB,uBAAuB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAzD,cAAc,QAAA,EAAE,GAAG,QAAA,CAAuC;gCAChD,qBAAM,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAA;;gCAA1F,QAAQ,GAAG,SAA+E;gCAChG,sBAAO,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,GAAG,CAAC,mCAAI,CAAC,EAAC;;;qBAC5B,CAAC,EAAC;;;CACH"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.lowReadLatency = lowReadLatency;
|
|
40
|
+
var helper_1 = require("../helper");
|
|
41
|
+
var timeout_1 = require("../../../Timer/timeout");
|
|
42
|
+
var READ_LATENCY_TIMEOUT = 5e3;
|
|
43
|
+
function lowReadLatency(parsedDsn, _originalDsn) {
|
|
44
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
45
|
+
var nodeLatencies, succeededLatencies, minLatency, selectedDsn;
|
|
46
|
+
var _this = this;
|
|
47
|
+
return __generator(this, function (_a) {
|
|
48
|
+
switch (_a.label) {
|
|
49
|
+
case 0: return [4 /*yield*/, Promise.allSettled(parsedDsn.hosts.map(function (host) { return __awaiter(_this, void 0, void 0, function () {
|
|
50
|
+
var _a;
|
|
51
|
+
return __generator(this, function (_b) {
|
|
52
|
+
switch (_b.label) {
|
|
53
|
+
case 0:
|
|
54
|
+
_a = {
|
|
55
|
+
host: host
|
|
56
|
+
};
|
|
57
|
+
return [4 /*yield*/, (0, timeout_1.withTimeout)(getNodeReadsLatency(host, parsedDsn), READ_LATENCY_TIMEOUT)];
|
|
58
|
+
case 1: return [2 /*return*/, (_a.latency = _b.sent(),
|
|
59
|
+
_a)];
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}); }))];
|
|
63
|
+
case 1:
|
|
64
|
+
nodeLatencies = _a.sent();
|
|
65
|
+
succeededLatencies = nodeLatencies
|
|
66
|
+
.filter(function (latency) { return latency.status === 'fulfilled'; })
|
|
67
|
+
.map(function (latency) { return latency.value; });
|
|
68
|
+
succeededLatencies.sort(function (a, b) { return a.latency - b.latency; }); // mutable sort
|
|
69
|
+
minLatency = succeededLatencies[0];
|
|
70
|
+
selectedDsn = (0, helper_1.getDsn)(minLatency.host, parsedDsn);
|
|
71
|
+
return [2 /*return*/, selectedDsn];
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
function getNodeReadsLatency(host, parameters) {
|
|
77
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
78
|
+
var _this = this;
|
|
79
|
+
return __generator(this, function (_a) {
|
|
80
|
+
return [2 /*return*/, (0, helper_1.doConnectionCallback)(host, parameters, function (connection) { return __awaiter(_this, void 0, void 0, function () {
|
|
81
|
+
var status;
|
|
82
|
+
return __generator(this, function (_a) {
|
|
83
|
+
switch (_a.label) {
|
|
84
|
+
case 0: return [4 /*yield*/, connection.db(parameters.endpoint).admin().serverStatus()];
|
|
85
|
+
case 1:
|
|
86
|
+
status = _a.sent();
|
|
87
|
+
return [2 /*return*/, status.opLatencies.reads.latency];
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}); })];
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=lowReadLatency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lowReadLatency.js","sourceRoot":"","sources":["../../../../src/MongoDB/ProprietaryCluster/SelectionStrategy/lowReadLatency.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,wCAgBC;AArBD,oCAAyD;AACzD,kDAAqD;AAErD,IAAM,oBAAoB,GAAG,GAAG,CAAC;AAEjC,SAAsB,cAAc,CAAC,SAAsC,EAAE,YAAoB;;;;;;wBAC1E,qBAAM,OAAO,CAAC,UAAU,CAC7C,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,UAAO,IAA2B;;;;;;wCACrD,IAAI,MAAA;;oCACK,qBAAM,IAAA,qBAAW,EAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,oBAAoB,CAAC,EAAA;wCAF5B,sBAAA,CAE1D,UAAO,GAAE,SAA6E;2CACrF,EAAA;;;yBAAA,CAAC,CACH,EAAA;;oBALK,aAAa,GAAG,SAKrB;oBACK,kBAAkB,GAAG,aAAa;yBACtC,MAAM,CAAC,UAAC,OAAO,IAAK,OAAA,OAAO,CAAC,MAAM,KAAK,WAAW,EAA9B,CAA8B,CAAC;yBACnD,GAAG,CAAC,UAAC,OAAO,IAAK,OAAC,OAAmD,CAAC,KAAK,EAA1D,CAA0D,CAAC,CAAC;oBAE/E,kBAAkB,CAAC,IAAI,CAAC,UAAC,CAAkB,EAAE,CAAkB,IAAK,OAAA,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,EAArB,CAAqB,CAAC,CAAC,CAAC,eAAe;oBAErG,UAAU,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;oBACnC,WAAW,GAAG,IAAA,eAAM,EAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;oBACvD,sBAAO,WAAW,EAAC;;;;CACnB;AAOD,SAAe,mBAAmB,CAAC,IAA2B,EAAE,UAAuC;;;;YACtG,sBAAO,IAAA,6BAAoB,EAAC,IAAI,EAAE,UAAU,EAAE,UAAO,UAAU;;;;oCAC/C,qBAAM,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC,YAAY,EAAE,EAAA;;gCAAxE,MAAM,GAAG,SAA+D;gCAC9E,sBAAO,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAiB,EAAC;;;qBAClD,CAAC,EAAC;;;CACH"}
|