Skip to content

Commit 3ffac03

Browse files
authored
Merge pull request #291 from Particular/critical-time-3.1
Critical time calculated using DeliverAt header - Release 3.1
2 parents 2b1f475 + 0d4a7e0 commit 3ffac03

File tree

5 files changed

+21
-6
lines changed

5 files changed

+21
-6
lines changed

src/NServiceBus.Metrics.Tests/NServiceBus.Metrics.Tests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<ItemGroup>
1515
<PackageReference Include="GitHubActionsTestLogger" Version="1.2.0" />
1616
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.9.4" />
17-
<PackageReference Include="NServiceBus" Version="7.2.3" />
17+
<PackageReference Include="NServiceBus" Version="7.7.0" />
1818
<PackageReference Include="NUnit" Version="3.12.0" />
1919
<PackageReference Include="NUnit3TestAdapter" Version="3.16.1" />
2020
<PackageReference Include="Particular.Approvals" Version="0.2.0" />

src/NServiceBus.Metrics/Extensions.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,18 @@ public static bool TryGetTimeSent(this ReceivePipelineCompleted completed, out D
1717
return false;
1818
}
1919

20+
public static bool TryGetDeliverAt(this ReceivePipelineCompleted completed, out DateTime deliverAt)
21+
{
22+
var headers = completed.ProcessedMessage.Headers;
23+
if (headers.TryGetValue(Headers.DeliverAt, out var deliverAtString))
24+
{
25+
deliverAt = DateTimeExtensions.ToUtcDateTime(deliverAtString);
26+
return true;
27+
}
28+
deliverAt = DateTime.MinValue;
29+
return false;
30+
}
31+
2032
public static bool TryGetMessageType(this ReceivePipelineCompleted completed, out string processedMessageType)
2133
{
2234
return completed.ProcessedMessage.Headers.TryGetMessageType(out processedMessageType);

src/NServiceBus.Metrics/NServiceBus.Metrics.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
</PropertyGroup>
1212

1313
<ItemGroup>
14-
<PackageReference Include="NServiceBus" Version="[7.0.0, 8.0.0)" />
14+
<PackageReference Include="NServiceBus" Version="[7.7.0, 8.0.0)" />
1515
<PackageReference Include="Particular.Packaging" Version="1.2.1" PrivateAssets="All" />
1616
</ItemGroup>
1717

18-
</Project>
18+
</Project>

src/NServiceBus.Metrics/ProbeBuilders/CriticalTimeProbeBuilder.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System;
12
using NServiceBus;
23
using NServiceBus.Features;
34
using NServiceBus.Metrics;
@@ -16,9 +17,9 @@ protected override void WireUp(DurationProbe probe)
1617
{
1718
context.Pipeline.OnReceivePipelineCompleted(e =>
1819
{
19-
if (e.TryGetTimeSent(out var timeSent))
20+
if (e.TryGetDeliverAt(out var startTime) || e.TryGetTimeSent(out startTime))
2021
{
21-
var endToEndTime = e.CompletedAt - timeSent;
22+
var endToEndTime = e.CompletedAt - startTime;
2223
e.TryGetMessageType(out var messageType);
2324

2425
var @event = new DurationEvent(endToEndTime, messageType);
@@ -30,4 +31,4 @@ protected override void WireUp(DurationProbe probe)
3031
}
3132

3233
readonly FeatureConfigurationContext context;
33-
}
34+
}

src/NServiceBus.Metrics/ProbeBuilders/RetriesProbeBuilder.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@ public RetriesProbeBuilder(FeatureConfigurationContext context)
1616
protected override void WireUp(SignalProbe probe)
1717
{
1818
var errors = notifications.Errors;
19+
#pragma warning disable CS0618 // Type or member is obsolete
1920
errors.MessageHasFailedAnImmediateRetryAttempt += (sender, message) => Signal(message.Headers, probe);
2021
errors.MessageHasBeenSentToDelayedRetries += (sender, message) => Signal(message.Headers, probe);
22+
#pragma warning restore CS0618 // Type or member is obsolete
2123
}
2224

2325
static void Signal(Dictionary<string, string> messageHeaders, SignalProbe probe)

0 commit comments

Comments
 (0)