Skip to content

Commit 3c07c4f

Browse files
authored
[WebJobs][EventHubsExtension] Fix metrics when azure checkpoint container does not exist (#43213)
1 parent 944e29d commit 3c07c4f

2 files changed

Lines changed: 8 additions & 5 deletions

File tree

sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/src/Listeners/EventHubMetricsProvider.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ public async Task<EventHubsTriggerMetrics> GetMetricsAsync()
7272
}
7373

7474
await Task.WhenAll(partitionPropertiesTasks).ConfigureAwait(false);
75-
EventProcessorCheckpoint[] checkpoints;
75+
EventProcessorCheckpoint[] checkpoints = null;
7676

7777
try
7878
{
@@ -81,7 +81,6 @@ public async Task<EventHubsTriggerMetrics> GetMetricsAsync()
8181
catch
8282
{
8383
// GetCheckpointsAsync would log
84-
return metrics;
8584
}
8685

8786
return CreateTriggerMetrics(partitionPropertiesTasks.Select(t => t.Result).ToList(), checkpoints);
@@ -103,7 +102,11 @@ private EventHubsTriggerMetrics CreateTriggerMetrics(List<PartitionProperties> p
103102
{
104103
var partitionProperties = partitionRuntimeInfo[i];
105104

106-
var checkpoint = (BlobCheckpointStoreInternal.BlobStorageCheckpoint)checkpoints.SingleOrDefault(c => c?.PartitionId == partitionProperties.Id);
105+
BlobCheckpointStoreInternal.BlobStorageCheckpoint checkpoint = null;
106+
if (checkpoints != null)
107+
{
108+
checkpoint = (BlobCheckpointStoreInternal.BlobStorageCheckpoint)checkpoints.SingleOrDefault(c => c?.PartitionId == partitionProperties.Id);
109+
}
107110

108111
// Check for the unprocessed messages when there are messages on the Event Hub partition
109112
// In that case, LastEnqueuedSequenceNumber will be >= 0

sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/tests/EventHubsMetricsProviderTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ public async Task CreateTriggerMetrics_HandlesExceptions()
206206
var metrics = await _metricsProvider.GetMetricsAsync();
207207

208208
Assert.AreEqual(1, metrics.PartitionCount);
209-
Assert.AreEqual(0, metrics.EventCount);
209+
Assert.AreEqual(1, metrics.EventCount);
210210
Assert.AreNotEqual(default(DateTime), metrics.Timestamp);
211211

212212
// Generic Exception
@@ -222,7 +222,7 @@ public async Task CreateTriggerMetrics_HandlesExceptions()
222222
metrics = await _metricsProvider.GetMetricsAsync();
223223

224224
Assert.AreEqual(1, metrics.PartitionCount);
225-
Assert.AreEqual(0, metrics.EventCount);
225+
Assert.AreEqual(1, metrics.EventCount);
226226
Assert.AreNotEqual(default(DateTime), metrics.Timestamp);
227227

228228
_loggerProvider.ClearAllLogMessages();

0 commit comments

Comments
 (0)