diff --git a/src/Thinktecture.Relay.Server/Middleware/RelayMiddleware.cs b/src/Thinktecture.Relay.Server/Middleware/RelayMiddleware.cs index 93010fd1..f1676556 100644 --- a/src/Thinktecture.Relay.Server/Middleware/RelayMiddleware.cs +++ b/src/Thinktecture.Relay.Server/Middleware/RelayMiddleware.cs @@ -360,7 +360,8 @@ private async Task WaitForConnectorResponseAsync(CancellationToken cancellationT { LogWaitForResponse(_relayContext.RequestId); - using var _ = RelayServerInstrumentation.ActivitySource.StartActivity("WaitForResponseFromConnector", ActivityKind.Client); + using var _ = + RelayServerInstrumentation.ActivitySource.StartActivity("WaitForResponseFromConnector", ActivityKind.Client); var context = await _responseCoordinator.GetResponseAsync(_relayContext.RequestId, cancellationToken); if (context is null) return; @@ -436,10 +437,7 @@ private async Task TryInlineBodyContentAsync(TRequest request, Cancellatio if (request.BodySize > _maximumBodySize) { LogOutsourcingRequestBody(request.BodySize, request.OriginalBodySize, _maximumBodySize, request.RequestId); - using (RelayServerInstrumentation.ActivitySource.StartActivity("OutsourceRequestBody", ActivityKind.Client)) - { - await _bodyStore.StoreRequestBodyAsync(request.RequestId, request.BodyContent, cancellationToken); - } + await _bodyStore.StoreRequestBodyAsync(request.RequestId, request.BodyContent, cancellationToken); request.BodyContent = null; LogOutsourcedRequestBody(request.BodySize, request.OriginalBodySize, request.RequestId); diff --git a/src/Thinktecture.Relay.Server/Transport/FileBodyStore.cs b/src/Thinktecture.Relay.Server/Transport/FileBodyStore.cs index 60d73f79..dd66299e 100644 --- a/src/Thinktecture.Relay.Server/Transport/FileBodyStore.cs +++ b/src/Thinktecture.Relay.Server/Transport/FileBodyStore.cs @@ -1,4 +1,5 @@ using System; +using System.Diagnostics; using System.IO; using System.Threading; using System.Threading.Tasks; @@ -43,110 +44,116 @@ public FileBodyStore(ILogger logger, IOptions StoreRequestBodyAsync(Guid requestId, Stream bodyStream, CancellationToken cancellationToken = default) { - try - { - LogOperation("Writing", "request", requestId); - var size = await StoreBodyAsync(BuildRequestFilePath(requestId), bodyStream, cancellationToken); + using (RelayServerInstrumentation.ActivitySource.StartActivity("StoreRequestBodyToFile", ActivityKind.Client)) + try + { + LogOperation("Writing", "request", requestId); + var size = await StoreBodyAsync(BuildRequestFilePath(requestId), bodyStream, cancellationToken); - LogWriting("request", requestId, size); - return size; - } - catch (OperationCanceledException) - { - await RemoveRequestBodyAsync(requestId, CancellationToken.None); - throw; - } - catch (Exception ex) - { - LogError(ex, "writing", "request", requestId); - throw; - } + LogWriting("request", requestId, size); + return size; + } + catch (OperationCanceledException) + { + await RemoveRequestBodyAsync(requestId, CancellationToken.None); + throw; + } + catch (Exception ex) + { + LogError(ex, "writing", "request", requestId); + throw; + } } /// public async Task StoreResponseBodyAsync(Guid requestId, Stream bodyStream, CancellationToken cancellationToken = default) { - try - { - LogOperation("Writing", "response", requestId); - var size = await StoreBodyAsync(BuildResponseFilePath(requestId), bodyStream, cancellationToken); + using (RelayServerInstrumentation.ActivitySource.StartActivity("StoreResponseBodyToFile", ActivityKind.Client)) + try + { + LogOperation("Writing", "response", requestId); + var size = await StoreBodyAsync(BuildResponseFilePath(requestId), bodyStream, cancellationToken); - LogWriting("response", requestId, size); - return size; - } - catch (OperationCanceledException) - { - await RemoveResponseBodyAsync(requestId, CancellationToken.None); - throw; - } - catch (Exception ex) - { - LogError(ex, "writing", "response", requestId); - throw; - } + LogWriting("response", requestId, size); + return size; + } + catch (OperationCanceledException) + { + await RemoveResponseBodyAsync(requestId, CancellationToken.None); + throw; + } + catch (Exception ex) + { + LogError(ex, "writing", "response", requestId); + throw; + } } /// public Task OpenRequestBodyAsync(Guid requestId, CancellationToken cancellationToken = default) { - try - { - LogOperation("Reading", "request", requestId); - return Task.FromResult(File.OpenRead(BuildRequestFilePath(requestId)) as Stream); - } - catch (Exception ex) - { - LogError(ex, "reading", "request", requestId); - throw; - } + using (RelayServerInstrumentation.ActivitySource.StartActivity("OpenRequestBodyFromFile", ActivityKind.Client)) + try + { + LogOperation("Reading", "request", requestId); + return Task.FromResult(File.OpenRead(BuildRequestFilePath(requestId)) as Stream); + } + catch (Exception ex) + { + LogError(ex, "reading", "request", requestId); + throw; + } } /// public Task OpenResponseBodyAsync(Guid requestId, CancellationToken cancellationToken = default) { - try - { - LogOperation("Reading", "response", requestId); - return Task.FromResult(File.OpenRead(BuildResponseFilePath(requestId)) as Stream); - } - catch (Exception ex) - { - LogError(ex, "reading", "response", requestId); - throw; - } + using (RelayServerInstrumentation.ActivitySource.StartActivity("OpenResponseBodyFromFile", ActivityKind.Client)) + try + { + LogOperation("Reading", "response", requestId); + return Task.FromResult(File.OpenRead(BuildResponseFilePath(requestId)) as Stream); + } + catch (Exception ex) + { + LogError(ex, "reading", "response", requestId); + throw; + } } /// public Task RemoveRequestBodyAsync(Guid requestId, CancellationToken cancellationToken = default) { - try - { - LogOperation("Deleting", "request", requestId); - File.Delete(BuildRequestFilePath(requestId)); - return Task.CompletedTask; - } - catch (Exception ex) - { - LogError(ex, "deleting", "request", requestId); - throw; - } + using (RelayServerInstrumentation.ActivitySource.StartActivity("RemoveRequestBodyFromFile", ActivityKind.Client)) + try + { + LogOperation("Deleting", "request", requestId); + File.Delete(BuildRequestFilePath(requestId)); + return Task.CompletedTask; + } + catch (Exception ex) + { + LogError(ex, "deleting", "request", requestId); + throw; + } } /// public Task RemoveResponseBodyAsync(Guid requestId, CancellationToken cancellationToken = default) { - try - { - LogOperation("Deleting", "response", requestId); - File.Delete(BuildResponseFilePath(requestId)); - return Task.CompletedTask; - } - catch (Exception ex) - { - LogError(ex, "deleting", "response", requestId); - throw; - } + using (RelayServerInstrumentation.ActivitySource.StartActivity("RemoveResponseBodyFromFile", ActivityKind.Client)) + try + { + LogOperation("Deleting", "response", requestId); + File.Delete(BuildResponseFilePath(requestId)); + return Task.CompletedTask; + } + catch (Exception ex) + { + LogError(ex, "deleting", "response", requestId); + throw; + } } ///