public Task StartAsync(CancellationToken cancellationToken) { _scheduler = new Timer(Callback, null, TimeSpan.FromSeconds(5), _captureInterval); return(Task.CompletedTask); async void Callback(object state) { var counter = new PerformanceMetrics { Processor = _processorMetricsCollector.GetUsage(), Memory = _memoryMetricsCollector.GetUsage(), Network = _networkMetricsCollector.GetThroughput() }; await _metricsDeliverer.DeliverAsync(counter); } }
static void Callback(object state) { Console.WriteLine($"[{DateTimeOffset.Now}]{PerformanceMetrics.Create()}"); }
public Task DeliverAsync(PerformanceMetrics counter) { _logForDelivery(_logger, DateTimeOffset.Now, counter, _deliverTo, _transport, null); return(Task.CompletedTask); }
public Task DeliverAsync(PerformanceMetrics counter) { Console.WriteLine($"[{DateTimeOffset.UtcNow}]{counter}"); return(Task.CompletedTask); }
public Task DeliverAsync(PerformanceMetrics counter) { Console.WriteLine($"[{DateTimeOffset.Now}]Deliver performance counter {counter} to { _deliverTo} via { _transport}"); return(Task.CompletedTask); }
long INetworkMetricsCollector.GetThroughput() => PerformanceMetrics.Create().Network;
long IMemoryMetricsCollector.GetUsage() => PerformanceMetrics.Create().Memory;
int IProcessorMetricsCollector.GetUsage() => PerformanceMetrics.Create().Processor;