using System.Collections.Concurrent; namespace JMonAgent; public class MetricsQueue { private readonly ConcurrentQueue _queue = new(); private readonly ILogger _logger; public MetricsQueue(ILogger logger) { _logger = logger; } public void Enqueue(JMon.Protos.DeltaMetrics metrics) { _queue.Enqueue(metrics); _logger.LogWarning("Metrics queued (total: {count})", _queue.Count); } public List DequeueAll() { var items = new List(); while (_queue.TryDequeue(out var item)) { items.Add(item); } return items; } public int Count => _queue.Count; }