public MqttService( SystemCancellationToken systemCancellationToken, DiagnosticsService diagnosticsService, StorageService storageService, SystemStatusService systemStatusService, ILogger <MqttService> logger) { _systemCancellationToken = systemCancellationToken ?? throw new ArgumentNullException(nameof(systemCancellationToken)); _storageService = storageService ?? throw new ArgumentNullException(nameof(storageService)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); if (diagnosticsService == null) { throw new ArgumentNullException(nameof(diagnosticsService)); } _inboundCounter = diagnosticsService.CreateOperationsPerSecondCounter("mqtt.inbound_rate"); _outboundCounter = diagnosticsService.CreateOperationsPerSecondCounter("mqtt.outbound_rate"); if (systemStatusService is null) { throw new ArgumentNullException(nameof(systemStatusService)); } systemStatusService.Set("mqtt.subscribers_count", () => _subscribers.Count); systemStatusService.Set("mqtt.incoming_messages_count", () => _incomingMessages.Count); systemStatusService.Set("mqtt.inbound_rate", () => _inboundCounter.Count); systemStatusService.Set("mqtt.outbound_rate", () => _outboundCounter.Count); systemStatusService.Set("mqtt.connected_clients_count", () => _mqttServer.GetClientStatusAsync().GetAwaiter().GetResult().Count); _topicImportManager = new MqttTopicImportManager(this, _logger); }
public MqttService( SystemCancellationToken systemCancellationToken, DiagnosticsService diagnosticsService, StorageService storageService, SystemStatusService systemStatusService, ILoggerFactory loggerFactory) { _systemCancellationToken = systemCancellationToken ?? throw new ArgumentNullException(nameof(systemCancellationToken)); _storageService = storageService ?? throw new ArgumentNullException(nameof(storageService)); if (loggerFactory == null) { throw new ArgumentNullException(nameof(loggerFactory)); } _logger = loggerFactory.CreateLogger <MqttService>(); if (diagnosticsService == null) { throw new ArgumentNullException(nameof(diagnosticsService)); } _inboundCounter = diagnosticsService.CreateOperationsPerSecondCounter("mqtt.inbound_rate"); _outboundCounter = diagnosticsService.CreateOperationsPerSecondCounter("mqtt.outbound_rate"); systemStatusService.Set("mqtt.subscribers_count", () => _subscribers.Count); systemStatusService.Set("mqtt.incoming_messages_count", () => _incomingMessages.Count); systemStatusService.Set("mqtt.inbound_rate", () => _inboundCounter.Count); systemStatusService.Set("mqtt.outbound_rate", () => _outboundCounter.Count); }
public HistoryService( ComponentRegistryService componentRegistryService, StorageService storageService, MessageBusService messageBusService, SystemStatusService systemStatusService, SystemCancellationToken systemCancellationToken, DiagnosticsService diagnosticsService, ILogger <HistoryService> logger) { _componentRegistryService = componentRegistryService ?? throw new ArgumentNullException(nameof(componentRegistryService)); _storageService = storageService ?? throw new ArgumentNullException(nameof(storageService)); _messageBusService = messageBusService ?? throw new ArgumentNullException(nameof(messageBusService)); _systemCancellationToken = systemCancellationToken ?? throw new ArgumentNullException(nameof(systemCancellationToken)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); if (diagnosticsService == null) { throw new ArgumentNullException(nameof(diagnosticsService)); } _updateRateCounter = diagnosticsService.CreateOperationsPerSecondCounter("history.update_rate"); if (systemStatusService == null) { throw new ArgumentNullException(nameof(systemStatusService)); } systemStatusService.Set("history.component_status.pending_updates_count", _pendingComponentStatusValues.Count); systemStatusService.Set("history.component_status.update_rate", () => _updateRateCounter.Count); systemStatusService.Set("history.component_status.update_duration", () => _componentStatusUpdateDuration); }
public MessageBusService( StorageService storageService, SystemStatusService systemStatusService, DiagnosticsService diagnosticsService, SystemCancellationToken systemCancellationToken, ILogger <MessageBusService> logger) { _systemCancellationToken = systemCancellationToken ?? throw new ArgumentNullException(nameof(systemCancellationToken)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); if (storageService == null) { throw new ArgumentNullException(nameof(storageService)); } storageService.SafeReadSerializedValue(out _options, DefaultDirectoryNames.Configuration, MessageBusServiceOptions.Filename); if (diagnosticsService == null) { throw new ArgumentNullException(nameof(diagnosticsService)); } _inboundCounter = diagnosticsService.CreateOperationsPerSecondCounter("message_bus.inbound_rate"); _processingRateCounter = diagnosticsService.CreateOperationsPerSecondCounter("message_bus.processing_rate"); if (systemStatusService == null) { throw new ArgumentNullException(nameof(systemStatusService)); } systemStatusService.Set("message_bus.queued_messages_count", () => _messageQueue.Count); systemStatusService.Set("message_bus.subscribers_count", () => _subscribers.Count); systemStatusService.Set("message_bus.inbound_rate", () => _inboundCounter.Count); systemStatusService.Set("message_bus.processing_rate", () => _processingRateCounter.Count); _options.ToString(); // TODO: Remove or add new settings. }
public MqttService( PythonEngineService pythonEngineService, SystemService systemService, DiagnosticsService diagnosticsService, StorageService storageService, SystemStatusService systemStatusService, ILoggerFactory loggerFactory) { _systemService = systemService ?? throw new ArgumentNullException(nameof(systemService)); _storageService = storageService ?? throw new ArgumentNullException(nameof(storageService)); if (loggerFactory == null) { throw new ArgumentNullException(nameof(loggerFactory)); } _logger = loggerFactory.CreateLogger <MqttService>(); if (pythonEngineService == null) { throw new ArgumentNullException(nameof(pythonEngineService)); } pythonEngineService.RegisterSingletonProxy(new MqttPythonProxy(this)); if (diagnosticsService == null) { throw new ArgumentNullException(nameof(diagnosticsService)); } _inboundCounter = diagnosticsService.CreateOperationsPerSecondCounter("mqtt.inbound_rate"); _outboundCounter = diagnosticsService.CreateOperationsPerSecondCounter("mqtt.outbound_rate"); systemStatusService.Set("mqtt.subscribers_count", () => _subscribers.Count); systemStatusService.Set("mqtt.incoming_messages_count", () => _incomingMessages.Count); systemStatusService.Set("mqtt.inbound_rate", () => _inboundCounter.Count); systemStatusService.Set("mqtt.outbound_rate", () => _outboundCounter.Count); }
public MessageBusService( StorageService storageService, SystemStatusService systemStatusService, DiagnosticsService diagnosticsService, SystemCancellationToken systemCancellationToken, ILogger <MessageBusService> logger) { _systemCancellationToken = systemCancellationToken ?? throw new ArgumentNullException(nameof(systemCancellationToken)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); if (storageService == null) { throw new ArgumentNullException(nameof(storageService)); } storageService.TryReadOrCreate(out _options, MessageBusServiceOptions.Filename); if (diagnosticsService == null) { throw new ArgumentNullException(nameof(diagnosticsService)); } _inboundCounter = diagnosticsService.CreateOperationsPerSecondCounter("message_bus.inbound_rate"); _processingRateCounter = diagnosticsService.CreateOperationsPerSecondCounter("message_bus.processing_rate"); if (systemStatusService == null) { throw new ArgumentNullException(nameof(systemStatusService)); } systemStatusService.Set("message_bus.queued_messages_count", () => _messageQueue.Count); systemStatusService.Set("message_bus.subscribers_count", () => _subscribers.Count); systemStatusService.Set("message_bus.inbound_rate", () => _inboundCounter.Count); systemStatusService.Set("message_bus.processing_rate", () => _processingRateCounter.Count); }
public MessageBusService( PythonEngineService pythonEngineService, SystemStatusService systemStatusService, DiagnosticsService diagnosticsService, SystemService systemService, ILoggerFactory loggerFactory) { _systemService = systemService ?? throw new ArgumentNullException(nameof(systemService)); if (loggerFactory == null) { throw new ArgumentNullException(nameof(loggerFactory)); } _logger = loggerFactory.CreateLogger <MessageBusService>(); if (pythonEngineService == null) { throw new ArgumentNullException(nameof(pythonEngineService)); } pythonEngineService.RegisterSingletonProxy(new MessageBusPythonProxy(this)); if (diagnosticsService == null) { throw new ArgumentNullException(nameof(diagnosticsService)); } _inboundCounter = diagnosticsService.CreateOperationsPerSecondCounter("message_bus.inbound_rate"); _processingRateCounter = diagnosticsService.CreateOperationsPerSecondCounter("message_bus.processing_rate"); if (systemStatusService == null) { throw new ArgumentNullException(nameof(systemStatusService)); } systemStatusService.Set("message_bus.queued_messages_count", () => _messageQueue.Count); systemStatusService.Set("message_bus.subscribers_count", () => _subscribers.Count); systemStatusService.Set("message_bus.inbound_rate", () => _inboundCounter.Count); systemStatusService.Set("message_bus.processing_rate", () => _processingRateCounter.Count); }
public HistoryService( StorageService storageService, SystemStatusService systemStatusService, DiagnosticsService diagnosticsService, ILogger <HistoryService> logger) { _storageService = storageService ?? throw new ArgumentNullException(nameof(storageService)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _historyRepository = new HistoryRepository(); if (diagnosticsService == null) { throw new ArgumentNullException(nameof(diagnosticsService)); } _updateRateCounter = diagnosticsService.CreateOperationsPerSecondCounter("history.update_rate"); if (systemStatusService == null) { throw new ArgumentNullException(nameof(systemStatusService)); } systemStatusService.Set("history.update_rate", () => _updateRateCounter.Count); systemStatusService.Set("history.updates_count", () => _updatesCount); systemStatusService.Set("history.last_update_duration", () => _lastUpdateDuration); systemStatusService.Set("history.max_update_duration", () => _maxUpdateDuration); systemStatusService.Set("history.min_update_duration", () => _minUpdateDuration); systemStatusService.Set("history.average_update_duration", () => { if (_updatesCount == 0) { return(double.NaN); } return(_totalUpdateDuration / (decimal)_updatesCount); }); }