From 3b32f43453eba8edf03bebb9d893af59ada0e431 Mon Sep 17 00:00:00 2001 From: Stafford Williams Date: Wed, 10 Apr 2019 17:36:18 +1000 Subject: [PATCH] Crankier: Log connection exceptions (#9045) --- .../perf/benchmarkapps/Crankier/Client.cs | 19 +++++++++++++++++-- .../perf/benchmarkapps/Crankier/Worker.cs | 2 +- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/SignalR/perf/benchmarkapps/Crankier/Client.cs b/src/SignalR/perf/benchmarkapps/Crankier/Client.cs index f78c509b77..6ef5946037 100644 --- a/src/SignalR/perf/benchmarkapps/Crankier/Client.cs +++ b/src/SignalR/perf/benchmarkapps/Crankier/Client.cs @@ -12,12 +12,27 @@ namespace Microsoft.AspNetCore.SignalR.Crankier { public class Client { + private readonly int _processId; + private readonly IAgent _agent; private HubConnection _connection; private CancellationTokenSource _sendCts; private bool _sendInProgress; private volatile ConnectionState _connectionState = ConnectionState.Connecting; public ConnectionState State => _connectionState; + public Client(int processId, IAgent agent) + { + _processId = processId; + _agent = agent; + } + + private void LogFault(string description, Exception exception) + { + var message = $"{description}: {exception.GetType()}: {exception.Message}"; + Trace.WriteLine(message); + _agent.LogAsync(_processId, message); + } + public async Task CreateAndStartConnectionAsync(string url, HttpTransportType transportType) { _connection = new HubConnectionBuilder() @@ -33,7 +48,7 @@ namespace Microsoft.AspNetCore.SignalR.Crankier } else { - Trace.WriteLine($"Connection terminated with error: {ex.GetType()}: {ex.Message}"); + LogFault("Connection terminated with error", ex); _connectionState = ConnectionState.Faulted; } @@ -57,7 +72,7 @@ namespace Microsoft.AspNetCore.SignalR.Crankier } catch (Exception ex) { - Trace.WriteLine($"Connection.Start Failed: {ex.GetType()}: {ex.Message}"); + LogFault("Connection.Start Failed", ex); if (connectCount == 3) { diff --git a/src/SignalR/perf/benchmarkapps/Crankier/Worker.cs b/src/SignalR/perf/benchmarkapps/Crankier/Worker.cs index 6a39616574..06409418d6 100644 --- a/src/SignalR/perf/benchmarkapps/Crankier/Worker.cs +++ b/src/SignalR/perf/benchmarkapps/Crankier/Worker.cs @@ -62,7 +62,7 @@ namespace Microsoft.AspNetCore.SignalR.Crankier _targetConnectionCount += numberOfConnections; for (var count = 0; count < numberOfConnections; count++) { - var client = new Client(); + var client = new Client(_processId, _agent); _clients.Add(client); await client.CreateAndStartConnectionAsync(targetAddress, transportType);