Skip to content

Commit 01d6bd8

Browse files
committed
Added logging for Getting Queue stats
1 parent 75ecdf3 commit 01d6bd8

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

src/Foundatio/Queues/QueueBase.cs

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using System;
1+
using System;
22
using System.Collections.Concurrent;
33
using System.Collections.Generic;
44
using System.Diagnostics;
@@ -69,18 +69,27 @@ protected QueueBase(TOptions options) : base(options?.TimeProvider, options?.Log
6969
{
7070
if (options.MetricsPollingInterval > TimeSpan.Zero && _nextQueueStatsUpdate >= _timeProvider.GetUtcNow())
7171
{
72-
return _queueStats is not null ? (_queueStats.Queued, _queueStats.Working, _queueStats.Deadletter) : (0, 0, 0);
72+
if (_queueStats is not null)
73+
{
74+
_logger.LogTrace("Using cached queue stats for {QueueName} ({QueueId})", _options.Name, QueueId);
75+
return (_queueStats.Queued, _queueStats.Working, _queueStats.Deadletter);
76+
}
77+
78+
_logger.LogTrace("Returning default queue stats for {QueueName} ({QueueId})", _options.Name, QueueId);
79+
return (0, 0, 0);
7380
}
7481

7582
_nextQueueStatsUpdate = _timeProvider.GetUtcNow().UtcDateTime.Add(_options.MetricsPollingInterval);
83+
_logger.LogTrace("Getting metrics queue stats for {QueueName} ({QueueId}): Next update scheduled for {NextQueueStatsUpdate:O}", _options.Name, QueueId, _nextQueueStatsUpdate);
7684
try
7785
{
7886
using var _ = FoundatioDiagnostics.ActivitySource.StartActivity("Queue Stats: " + _options.Name);
7987
_queueStats = GetMetricsQueueStats();
8088
return (_queueStats.Queued, _queueStats.Working, _queueStats.Deadletter);
8189
}
82-
catch
90+
catch (Exception ex)
8391
{
92+
_logger.LogError(ex, "Error getting queue metrics for {QueueName} ({QueueId}): {Message}", _options.Name, QueueId, ex.Message);
8493
return (0, 0, 0);
8594
}
8695
}, _logger);
@@ -157,13 +166,14 @@ public async Task<IEnumerable<T>> GetDeadletterItemsAsync(CancellationToken canc
157166

158167
public async Task<QueueStats> GetQueueStatsAsync()
159168
{
160-
_queueStats = await GetQueueStatsImplAsync();
169+
_logger.LogTrace("Getting queue stats for {QueueName} ({QueueId})", _options.Name, QueueId);
170+
_queueStats = await GetQueueStatsImplAsync().AnyContext();
161171
return _queueStats;
162172
}
163173

164174
protected virtual QueueStats GetMetricsQueueStats()
165175
{
166-
return GetQueueStatsAsync().GetAwaiter().GetResult();
176+
return GetQueueStatsAsync().AnyContext().GetAwaiter().GetResult();
167177
}
168178

169179
public abstract Task DeleteQueueAsync();

0 commit comments

Comments
 (0)