diff --git a/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/BlobStorageDependencyTests.cs b/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/BlobStorageDependencyTests.cs index c51e222d..b4d12f89 100644 --- a/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/BlobStorageDependencyTests.cs +++ b/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/BlobStorageDependencyTests.cs @@ -45,7 +45,7 @@ await RetryAssertUntilTelemetryShouldBeAvailableAsync(async client => Assert.Equal(dependencyType, result.Dependency.Type); Assert.Equal(accountName, result.Dependency.Target); Assert.Equal(containerName, result.Dependency.Data); - Assert.Equal(componentName, result.RoleName); + Assert.Equal(componentName, result.Cloud.RoleName); Assert.Equal(dependencyName, result.Dependency.Name); Assert.Equal(dependencyId, result.Dependency.Id); }); diff --git a/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/CosmosSqlDependencyTests.cs b/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/CosmosSqlDependencyTests.cs index 3d650970..05fbcc0b 100644 --- a/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/CosmosSqlDependencyTests.cs +++ b/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/CosmosSqlDependencyTests.cs @@ -47,7 +47,7 @@ await RetryAssertUntilTelemetryShouldBeAvailableAsync(async client => Assert.Equal(dependencyType, result.Dependency.Type); Assert.Equal(accountName, result.Dependency.Target); Assert.Equal(dependencyName, result.Dependency.Data); - Assert.Equal(componentName, result.RoleName); + Assert.Equal(componentName, result.Cloud.RoleName); Assert.Equal(dependencyName, result.Dependency.Name); }); }); diff --git a/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/CustomRequestTests.cs b/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/CustomRequestTests.cs index 672ce8d6..147133df 100644 --- a/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/CustomRequestTests.cs +++ b/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/CustomRequestTests.cs @@ -44,7 +44,7 @@ await RetryAssertUntilTelemetryShouldBeAvailableAsync(async client => Assert.True(string.IsNullOrWhiteSpace(result.Request.Url), "request URL should be blank"); Assert.Equal(operationName, result.Operation.Name); Assert.Equal(isSuccessful, result.Success); - Assert.Equal(componentName, result.RoleName); + Assert.Equal(componentName, result.Cloud.RoleName); }); }); } diff --git a/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/EventHubsDependencyTests.cs b/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/EventHubsDependencyTests.cs index b8cb3276..d1570dfa 100644 --- a/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/EventHubsDependencyTests.cs +++ b/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/EventHubsDependencyTests.cs @@ -45,7 +45,7 @@ await RetryAssertUntilTelemetryShouldBeAvailableAsync(async client => Assert.Equal(dependencyType, result.Dependency.Type); Assert.Equal(eventHubName, result.Dependency.Target); Assert.Equal(namespaceName, result.Dependency.Data); - Assert.Equal(componentName, result.RoleName); + Assert.Equal(componentName, result.Cloud.RoleName); Assert.Equal(dependencyName, result.Dependency.Name); Assert.Equal(dependencyId, result.Dependency.Id); }); diff --git a/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/EventHubsRequestTests.cs b/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/EventHubsRequestTests.cs index 6d1ed36e..f481dc99 100644 --- a/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/EventHubsRequestTests.cs +++ b/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/EventHubsRequestTests.cs @@ -48,7 +48,7 @@ await RetryAssertUntilTelemetryShouldBeAvailableAsync(async client => Assert.True(string.IsNullOrWhiteSpace(result.Request.Url), "request URL should be blank"); Assert.Equal(operationName, result.Operation.Name); Assert.Equal(isSuccessful, result.Success); - Assert.Equal(componentName, result.RoleName); + Assert.Equal(componentName, result.Cloud.RoleName); AssertContainsCustomDimension(result.CustomDimensions, EventHubs.Namespace, eventHubsNamespace); AssertContainsCustomDimension(result.CustomDimensions, EventHubs.ConsumerGroup, eventHubsConsumerGroup); diff --git a/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/EventTests.cs b/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/EventTests.cs index c693cab2..332a882f 100644 --- a/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/EventTests.cs +++ b/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/EventTests.cs @@ -58,7 +58,7 @@ await RetryAssertUntilTelemetryShouldBeAvailableAsync(async client => AssertX.Any(results, trace => { Assert.Equal(message, trace.Trace.Message); - Assert.Equal(componentName, trace.RoleName); + Assert.Equal(componentName, trace.Cloud.RoleName); }); }); } diff --git a/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/ExceptionTests.cs b/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/ExceptionTests.cs index e22dd7c2..d8848925 100644 --- a/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/ExceptionTests.cs +++ b/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/ExceptionTests.cs @@ -112,7 +112,7 @@ await RetryAssertUntilTelemetryShouldBeAvailableAsync(async client => AssertX.Any(results, result => { Assert.Equal(exception.Message, result.Exception.OuterMessage); - Assert.Equal(componentName, result.RoleName); + Assert.Equal(componentName, result.Cloud.RoleName); }); }); } diff --git a/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/Fixture/ITelemetryQueryClient.cs b/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/Fixture/ITelemetryQueryClient.cs index 7a158a20..2df55cd9 100644 --- a/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/Fixture/ITelemetryQueryClient.cs +++ b/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/Fixture/ITelemetryQueryClient.cs @@ -2,6 +2,7 @@ using System.Collections.ObjectModel; using System.Threading.Tasks; +// ReSharper disable once CheckNamespace namespace Microsoft.Azure.ApplicationInsights.Query.Models { /// @@ -40,38 +41,18 @@ public interface ITelemetryQueryClient Task GetExceptionsAsync(); } - public class OperationResult - { - public OperationResult(string id, string parentId) - { - Id = id; - ParentId = parentId; - } - - public OperationResult(string id, string parentId, string name) - { - Id = id; - ParentId = parentId; - Name = name; - } - - public string Id { get; } - public string Name { get; } - public string ParentId { get; } - } - public class EventsTraceResult { public EventsTraceResult(string message, string roleName, OperationResult operation, IDictionary customDimensions) { Trace = new TraceResult(message); - RoleName = roleName; + Cloud = new CloudResult(roleName); Operation = operation; CustomDimensions = customDimensions; } public TraceResult Trace { get; } - public string RoleName { get; } + public CloudResult Cloud { get; } public OperationResult Operation { get; } public IDictionary CustomDimensions { get; } @@ -97,12 +78,12 @@ public class EventsCustomEventResult public EventsCustomEventResult(string name, string roleName, IDictionary customDimensions) { Name = name; - RoleName = roleName; + Cloud = new CloudResult(roleName); CustomDimensions = new ReadOnlyDictionary(customDimensions); } public string Name { get; } - public string RoleName { get; } + public CloudResult Cloud { get; } public IReadOnlyDictionary CustomDimensions { get; } } @@ -134,17 +115,17 @@ public EventsRequestResult( IDictionary customDimensions) { Request = new RequestResult(id, name, source, url); + Cloud = new CloudResult(roleName); Success = success; ResultCode = resultCode; - RoleName = roleName; Operation = operation; CustomDimensions = customDimensions; } public RequestResult Request { get; } + public CloudResult Cloud { get; } public bool Success { get; } public string ResultCode { get; } - public string RoleName { get; } public OperationResult Operation { get; } public IDictionary CustomDimensions { get; } @@ -183,17 +164,17 @@ public EventsDependencyResult( IDictionary customDimensions) { Dependency = new DependencyResult(id, name, type, target, data); + Cloud = new CloudResult(roleName); Success = success; ResultCode = resultCode; - RoleName = roleName; Operation = operation; CustomDimensions = customDimensions; } public DependencyResult Dependency { get; } + public CloudResult Cloud { get; } public bool Success { get; } public int ResultCode { get; } - public string RoleName { get; } public OperationResult Operation { get; } public IDictionary CustomDimensions { get; } @@ -227,14 +208,14 @@ public class EventsExceptionResult public EventsExceptionResult(string message, OperationResult operation, string roleName, IDictionary customDimensions) { Exception = new ExceptionResult(message); + Cloud = new CloudResult(roleName); Operation = operation; - RoleName = roleName; CustomDimensions = customDimensions; } public ExceptionResult Exception { get; } public OperationResult Operation { get; } - public string RoleName { get; } + public CloudResult Cloud { get; } public IDictionary CustomDimensions { get; } public class ExceptionResult @@ -250,4 +231,34 @@ public ExceptionResult(string message) public string OuterMessage { get; } } } + + public class CloudResult + { + public CloudResult(string roleName) + { + RoleName = roleName; + } + + public string RoleName { get; } + } + + public class OperationResult + { + public OperationResult(string id, string parentId) + { + Id = id; + ParentId = parentId; + } + + public OperationResult(string id, string parentId, string name) + { + Id = id; + ParentId = parentId; + Name = name; + } + + public string Id { get; } + public string Name { get; } + public string ParentId { get; } + } } \ No newline at end of file diff --git a/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/HttpDependencyTests.cs b/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/HttpDependencyTests.cs index cfea9f7f..f8f51051 100644 --- a/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/HttpDependencyTests.cs +++ b/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/HttpDependencyTests.cs @@ -57,7 +57,7 @@ await RetryAssertUntilTelemetryShouldBeAvailableAsync(async client => Assert.Equal(requestUri.Host, result.Dependency.Target); Assert.Equal($"{httpMethod} {requestUri.AbsolutePath}", result.Dependency.Name); Assert.Equal(dependencyId, result.Dependency.Id); - Assert.Equal(componentName, result.RoleName); + Assert.Equal(componentName, result.Cloud.RoleName); Assert.Equal(correlation.OperationId, result.Operation.ParentId); Assert.Equal(correlation.TransactionId, result.Operation.Id); @@ -96,7 +96,7 @@ await RetryAssertUntilTelemetryShouldBeAvailableAsync(async client => Assert.Equal(requestUri.Host, result.Dependency.Target); Assert.Equal($"{httpMethod} {requestUri.AbsolutePath}", result.Dependency.Name); Assert.Equal(dependencyId, result.Dependency.Id); - Assert.Equal(componentName, result.RoleName); + Assert.Equal(componentName, result.Cloud.RoleName); }); }); } diff --git a/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/IoTHubTests.cs b/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/IoTHubTests.cs index 4b7f7f74..853a6e96 100644 --- a/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/IoTHubTests.cs +++ b/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/IoTHubTests.cs @@ -42,7 +42,7 @@ await RetryAssertUntilTelemetryShouldBeAvailableAsync(async client => { Assert.Equal("Azure IoT Hub", result.Dependency.Type); Assert.Equal(iotHubName, result.Dependency.Target); - Assert.Equal(componentName, result.RoleName); + Assert.Equal(componentName, result.Cloud.RoleName); Assert.Equal(dependencyName, result.Dependency.Name); Assert.Equal(dependencyId, result.Dependency.Id); }); @@ -77,7 +77,7 @@ await RetryAssertUntilTelemetryShouldBeAvailableAsync(async client => { Assert.Equal("Azure IoT Hub", result.Dependency.Type); Assert.Equal(hostName, result.Dependency.Target); - Assert.Equal(componentName, result.RoleName); + Assert.Equal(componentName, result.Cloud.RoleName); Assert.Equal(dependencyName, result.Dependency.Name); Assert.Equal(dependencyId, result.Dependency.Id); }); diff --git a/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/TableStorageDependencyTests.cs b/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/TableStorageDependencyTests.cs index b6a53fcd..eb1c2e79 100644 --- a/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/TableStorageDependencyTests.cs +++ b/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/TableStorageDependencyTests.cs @@ -45,7 +45,7 @@ await RetryAssertUntilTelemetryShouldBeAvailableAsync(async client => Assert.Equal(dependencyType, result.Dependency.Type); Assert.Equal(accountName, result.Dependency.Target); Assert.Equal(tableName, result.Dependency.Data); - Assert.Equal(componentName, result.RoleName); + Assert.Equal(componentName, result.Cloud.RoleName); Assert.Equal(dependencyName, result.Dependency.Name); Assert.Equal(dependencyId, result.Dependency.Id); }); diff --git a/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/TraceTests.cs b/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/TraceTests.cs index 47889629..6b407cc8 100644 --- a/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/TraceTests.cs +++ b/src/Arcus.Observability.Tests.Integration/Serilog/Sinks/ApplicationInsights/TraceTests.cs @@ -2,6 +2,7 @@ using System.Threading.Tasks; using Microsoft.Azure.ApplicationInsights.Query.Models; using Microsoft.Extensions.Logging; +using Serilog.Events; using Xunit; using Xunit.Abstractions;