Skip to content

Commit 1cdf770

Browse files
committed
chore: clean up
1 parent 7b6a804 commit 1cdf770

95 files changed

Lines changed: 1070 additions & 3620 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/Servus.Akka.TestKit.Tests/TestPipelineSpec.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public async Task RunAsync_should_return_single_result()
2323
var result = await TestPipeline.RunAsync(
2424
stage.AsFlow(),
2525
new ConnectTransport(new TcpTransportOptions { Host = "localhost", Port = 80 }),
26-
_materializer, ct);
26+
_materializer, ct: ct);
2727

2828
Assert.IsType<TransportConnected>(result);
2929
}
@@ -46,11 +46,11 @@ public async Task RunManyAsync_should_collect_expected_count()
4646
};
4747

4848
var results = await TestPipeline.RunManyAsync(
49-
stage.AsFlow(), inputs, 3, _materializer, ct);
49+
stage.AsFlow(), inputs, 3, _materializer, ct: ct);
5050

5151
Assert.Equal(3, results.Count);
5252
Assert.IsType<TransportConnected>(results[0]);
5353
Assert.IsType<TransportData>(results[1]);
5454
Assert.IsType<TransportData>(results[2]);
5555
}
56-
}
56+
}

src/Servus.Akka.TestKit/TestConnectionStageBuilder.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ public TestConnectionStageBuilder AutoConnect(ConnectionInfo? info = null)
1818

1919
public TestConnectionStageBuilder AutoDisconnect()
2020
{
21-
return OnOutbound<DisconnectTransport>((msg, ctx) =>
22-
ctx.Push(new TransportDisconnected(msg.Reason)));
21+
return OnOutbound<DisconnectTransport>((msg, ctx)
22+
=> ctx.Push(new TransportDisconnected(msg.Reason)));
2323
}
2424

2525
public TestConnectionStageBuilder OnOutbound<T>(Action<T, IStageContext> handler)
@@ -39,9 +39,7 @@ public TestConnectionStageBuilder WithActivityLog(ActivityLog log)
3939

4040
public TestConnectionStage Build()
4141
{
42-
var stage = new TestConnectionStage(
43-
new List<TestConnectionStage.OutboundHandler>(_handlers),
44-
_activityLog);
42+
var stage = new TestConnectionStage([.._handlers], _activityLog);
4543

4644
if (_autoConnect)
4745
{

src/Servus.Akka.TestKit/TestPipeline.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ public static async Task<TOut> RunAsync<TIn, TOut>(
1212
Flow<TIn, TOut, NotUsed> flow,
1313
TIn input,
1414
IMaterializer materializer,
15-
CancellationToken ct = default,
16-
TimeSpan? timeout = null)
15+
TimeSpan? timeout = null,
16+
CancellationToken ct = default)
1717
{
1818
var result = Source.Single(input)
1919
.Via(flow)
@@ -27,8 +27,8 @@ public static async Task<IReadOnlyList<TOut>> RunManyAsync<TIn, TOut>(
2727
IEnumerable<TIn> inputs,
2828
int expectedCount,
2929
IMaterializer materializer,
30-
CancellationToken ct = default,
31-
TimeSpan? timeout = null)
30+
TimeSpan? timeout = null,
31+
CancellationToken ct = default)
3232
{
3333
var result = Source.From(inputs)
3434
.Via(flow)

src/Servus.Akka.Tests/Transport/Quic/Client/QuicClientProviderSpec.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
namespace Servus.Akka.Tests.Transport.Quic.Client;
1010

11-
[Collection("TransportBuffer")]
11+
[Collection("ClientProvider")]
1212
public sealed class QuicClientProviderSpec
1313
{
1414
private static async Task<Stream> GetStreamOrSkipAsync(QuicClientProvider provider, CancellationToken ct)

src/Servus.Akka.Tests/Transport/Quic/QuicMultiStreamSpec.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using Servus.Akka.Tests.Utils;
1+
using Servus.Akka.Tests.Utils;
22
using Servus.Akka.Transport;
33
using Servus.Akka.Transport.Quic;
44
using Servus.Akka.Transport.Quic.Client;

src/Servus.Akka.Tests/Transport/Tcp/Client/TcpClientProviderSpec.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@
66

77
namespace Servus.Akka.Tests.Transport.Tcp.Client;
88

9+
[CollectionDefinition("ClientProvider", DisableParallelization = true)]
10+
public class ClientProviderCollection;
11+
12+
[Collection("ClientProvider")]
913
public sealed class TcpClientProviderSpec
1014
{
1115
[Fact(Timeout = 5000)]

src/Servus.Akka.Tests/Transport/Tcp/Client/TlsClientProviderSpec.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
namespace Servus.Akka.Tests.Transport.Tcp.Client;
1010

11+
[Collection("ClientProvider")]
1112
public sealed class TlsClientProviderSpec
1213
{
1314
[Fact(Timeout = 5000)]

src/Servus.Akka.Tests/Transport/TransportBufferSpec.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
namespace Servus.Akka.Tests.Transport;
44

5+
[CollectionDefinition("TransportBuffer", DisableParallelization = true)]
6+
public class TransportBufferCollection;
7+
58
[Collection("TransportBuffer")]
69
public sealed class TransportBufferSpec
710
{

src/Servus.Akka/Servus.Akka.csproj

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
44
<TargetFramework>net10.0</TargetFramework>
55
<ImplicitUsings>enable</ImplicitUsings>
66
<Nullable>enable</Nullable>
77
<IsPackable>false</IsPackable>
8+
<!-- slopwatch-ignore: SW005 QUIC APIs are platform-guarded at runtime; CA1416 false-positives on conditional usage -->
89
<NoWarn>CA1416</NoWarn>
910
</PropertyGroup>
1011

1112
<ItemGroup>
12-
<PackageReference Include="Akka.Hosting"/>
13+
<PackageReference Include="Akka.Hosting" />
1314
<PackageReference Include="Servus.Core" />
1415
</ItemGroup>
1516

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
using System.Diagnostics;
2+
using System.Diagnostics.Metrics;
3+
using Servus.Core.Diagnostics;
4+
5+
namespace Servus.Akka.Transport;
6+
7+
internal static class ServusExtensions
8+
{
9+
private static Histogram<double>? _dnsLookupDuration;
10+
private static Histogram<double>? _socketConnectDuration;
11+
12+
public static Histogram<double> DnsLookupDuration(this ServusMetrics metrics)
13+
{
14+
return _dnsLookupDuration ??= metrics.Meter.CreateHistogram<double>(
15+
"dns.lookup.duration",
16+
unit: "s",
17+
description: "Duration of DNS lookups in seconds");
18+
}
19+
20+
public static Histogram<double> SocketConnectDuration(this ServusMetrics metrics)
21+
{
22+
return _socketConnectDuration ??= metrics.Meter.CreateHistogram<double>(
23+
"network.socket.connect.duration",
24+
unit: "s",
25+
description: "Duration of socket connect operations in seconds");
26+
}
27+
}
28+
29+
internal static class ServusTraceExtensions
30+
{
31+
public static Activity? StartDnsLookup(this ServusTrace trace, string hostname)
32+
{
33+
if (!trace.Source.HasListeners())
34+
{
35+
return null;
36+
}
37+
38+
var activity = trace.Source.StartActivity("dns.lookup", ActivityKind.Client);
39+
activity?.SetTag("dns.question.name", hostname);
40+
return activity;
41+
}
42+
43+
public static void SetDnsAnswers(this ServusTrace _, Activity activity, string[] answers)
44+
{
45+
activity.SetTag("dns.answers", string.Join(",", answers));
46+
activity.SetTag("dns.answer.count", answers.Length);
47+
}
48+
49+
public static Activity? StartSocketConnect(this ServusTrace trace, string address, int port, string transport, string networkType)
50+
{
51+
if (!trace.Source.HasListeners())
52+
{
53+
return null;
54+
}
55+
56+
var activity = trace.Source.StartActivity("network.socket.connect", ActivityKind.Client);
57+
if (activity is null)
58+
{
59+
return null;
60+
}
61+
62+
activity.SetTag("network.peer.address", address);
63+
activity.SetTag("network.peer.port", port);
64+
activity.SetTag("network.transport", transport);
65+
activity.SetTag("network.type", networkType);
66+
return activity;
67+
}
68+
69+
public static void SetError(this ServusTrace _, Activity activity, Exception exception)
70+
{
71+
activity.SetStatus(ActivityStatusCode.Error, exception.Message);
72+
activity.SetTag("error.type", exception.GetType().FullName);
73+
activity.SetTag("exception.message", exception.Message);
74+
}
75+
}

0 commit comments

Comments
 (0)