diff --git a/src/HealthChecks/HealthChecks/src/DefaultHealthCheckService.cs b/src/HealthChecks/HealthChecks/src/DefaultHealthCheckService.cs index 7805292486fb..a8abfdbcd5ab 100644 --- a/src/HealthChecks/HealthChecks/src/DefaultHealthCheckService.cs +++ b/src/HealthChecks/HealthChecks/src/DefaultHealthCheckService.cs @@ -15,7 +15,7 @@ namespace Microsoft.Extensions.Diagnostics.HealthChecks { - internal class DefaultHealthCheckService : HealthCheckService + internal partial class DefaultHealthCheckService : HealthCheckService { private readonly IServiceScopeFactory _scopeFactory; private readonly IOptions _options; @@ -87,7 +87,7 @@ private async Task RunCheckAsync(HealthCheckRegistration regi var stopwatch = ValueStopwatch.StartNew(); var context = new HealthCheckContext { Registration = registration }; - Log.HealthCheckBegin(_logger, registration); + Log.HealthCheckBegin(_logger, registration.Name); HealthReportEntry entry; CancellationTokenSource? timeoutCancellationTokenSource = null; @@ -182,92 +182,75 @@ private static void ValidateRegistrations(IEnumerable r internal static class EventIds { - public static readonly EventId HealthCheckProcessingBegin = new EventId(100, "HealthCheckProcessingBegin"); - public static readonly EventId HealthCheckProcessingEnd = new EventId(101, "HealthCheckProcessingEnd"); - - public static readonly EventId HealthCheckBegin = new EventId(102, "HealthCheckBegin"); - public static readonly EventId HealthCheckEnd = new EventId(103, "HealthCheckEnd"); - public static readonly EventId HealthCheckError = new EventId(104, "HealthCheckError"); - public static readonly EventId HealthCheckData = new EventId(105, "HealthCheckData"); + public const int HealthCheckProcessingBeginId = 100; + public const int HealthCheckProcessingEndId = 101; + public const int HealthCheckBeginId = 102; + public const int HealthCheckEndId = 103; + public const int HealthCheckErrorId = 104; + public const int HealthCheckDataId = 105; + + // Hard code the event names to avoid breaking changes. Even if the methods are renamed, these hard-coded names shouldn't change. + public const string HealthCheckProcessingBeginName = "HealthCheckProcessingBegin"; + public const string HealthCheckProcessingEndName = "HealthCheckProcessingEnd"; + public const string HealthCheckBeginName = "HealthCheckBegin"; + public const string HealthCheckEndName = "HealthCheckEnd"; + public const string HealthCheckErrorName = "HealthCheckError"; + public const string HealthCheckDataName = "HealthCheckData"; + + public static readonly EventId HealthCheckData = new EventId(HealthCheckDataId, HealthCheckDataName); } - private static class Log + private static partial class Log { - private static readonly Action _healthCheckProcessingBegin = LoggerMessage.Define( - LogLevel.Debug, - EventIds.HealthCheckProcessingBegin, - "Running health checks"); + [LoggerMessage(EventIds.HealthCheckProcessingBeginId, LogLevel.Debug, "Running health checks", EventName = EventIds.HealthCheckProcessingBeginName)] + public static partial void HealthCheckProcessingBegin(ILogger logger); + + public static void HealthCheckProcessingEnd(ILogger logger, HealthStatus status, TimeSpan duration) => + HealthCheckProcessingEnd(logger, status, duration.TotalMilliseconds); - private static readonly Action _healthCheckProcessingEnd = LoggerMessage.Define( - LogLevel.Debug, - EventIds.HealthCheckProcessingEnd, - "Health check processing with combined status {HealthStatus} completed after {ElapsedMilliseconds}ms"); + [LoggerMessage(EventIds.HealthCheckProcessingEndId, LogLevel.Debug, "Health check processing with combined status {HealthStatus} completed after {ElapsedMilliseconds}ms", EventName = EventIds.HealthCheckProcessingEndName)] + private static partial void HealthCheckProcessingEnd(ILogger logger, HealthStatus HealthStatus, double ElapsedMilliseconds); - private static readonly Action _healthCheckBegin = LoggerMessage.Define( - LogLevel.Debug, - EventIds.HealthCheckBegin, - "Running health check {HealthCheckName}"); + [LoggerMessage(EventIds.HealthCheckBeginId, LogLevel.Debug, "Running health check {HealthCheckName}", EventName = EventIds.HealthCheckBeginName)] + public static partial void HealthCheckBegin(ILogger logger, string HealthCheckName); // These are separate so they can have different log levels private const string HealthCheckEndText = "Health check {HealthCheckName} with status {HealthStatus} completed after {ElapsedMilliseconds}ms with message '{HealthCheckDescription}'"; - private static readonly Action _healthCheckEndHealthy = LoggerMessage.Define( - LogLevel.Debug, - EventIds.HealthCheckEnd, - HealthCheckEndText); - - private static readonly Action _healthCheckEndDegraded = LoggerMessage.Define( - LogLevel.Warning, - EventIds.HealthCheckEnd, - HealthCheckEndText); - - private static readonly Action _healthCheckEndUnhealthy = LoggerMessage.Define( - LogLevel.Error, - EventIds.HealthCheckEnd, - HealthCheckEndText); +#pragma warning disable SYSLIB1006 + [LoggerMessage(EventIds.HealthCheckEndId, LogLevel.Debug, HealthCheckEndText, EventName = EventIds.HealthCheckEndName)] + private static partial void HealthCheckEndHealthy(ILogger logger, string HealthCheckName, HealthStatus HealthStatus, double ElapsedMilliseconds, string? HealthCheckDescription); - private static readonly Action _healthCheckError = LoggerMessage.Define( - LogLevel.Error, - EventIds.HealthCheckError, - "Health check {HealthCheckName} threw an unhandled exception after {ElapsedMilliseconds}ms"); + [LoggerMessage(EventIds.HealthCheckEndId, LogLevel.Warning, HealthCheckEndText, EventName = EventIds.HealthCheckEndName)] + private static partial void HealthCheckEndDegraded(ILogger logger, string HealthCheckName, HealthStatus HealthStatus, double ElapsedMilliseconds, string? HealthCheckDescription); - public static void HealthCheckProcessingBegin(ILogger logger) - { - _healthCheckProcessingBegin(logger, null); - } - - public static void HealthCheckProcessingEnd(ILogger logger, HealthStatus status, TimeSpan duration) - { - _healthCheckProcessingEnd(logger, duration.TotalMilliseconds, status, null); - } - - public static void HealthCheckBegin(ILogger logger, HealthCheckRegistration registration) - { - _healthCheckBegin(logger, registration.Name, null); - } + [LoggerMessage(EventIds.HealthCheckEndId, LogLevel.Error, HealthCheckEndText, EventName = EventIds.HealthCheckEndName)] + private static partial void HealthCheckEndUnhealthy(ILogger logger, string HealthCheckName, HealthStatus HealthStatus, double ElapsedMilliseconds, string? HealthCheckDescription, Exception? exception); +#pragma warning restore SYSLIB1006 public static void HealthCheckEnd(ILogger logger, HealthCheckRegistration registration, HealthReportEntry entry, TimeSpan duration) { switch (entry.Status) { case HealthStatus.Healthy: - _healthCheckEndHealthy(logger, registration.Name, duration.TotalMilliseconds, entry.Status, entry.Description, null); + HealthCheckEndHealthy(logger, registration.Name, entry.Status, duration.TotalMilliseconds, entry.Description); break; case HealthStatus.Degraded: - _healthCheckEndDegraded(logger, registration.Name, duration.TotalMilliseconds, entry.Status, entry.Description, null); + HealthCheckEndDegraded(logger, registration.Name, entry.Status, duration.TotalMilliseconds, entry.Description); break; case HealthStatus.Unhealthy: - _healthCheckEndUnhealthy(logger, registration.Name, duration.TotalMilliseconds, entry.Status, entry.Description, entry.Exception); + HealthCheckEndUnhealthy(logger, registration.Name, entry.Status, duration.TotalMilliseconds, entry.Description, entry.Exception); break; } } - public static void HealthCheckError(ILogger logger, HealthCheckRegistration registration, Exception exception, TimeSpan duration) - { - _healthCheckError(logger, registration.Name, duration.TotalMilliseconds, exception); - } + [LoggerMessage(EventIds.HealthCheckErrorId, LogLevel.Error, "Health check {HealthCheckName} threw an unhandled exception after {ElapsedMilliseconds}ms", EventName = EventIds.HealthCheckErrorName)] + private static partial void HealthCheckError(ILogger logger, string HealthCheckName, double ElapsedMilliseconds, Exception exception); + + public static void HealthCheckError(ILogger logger, HealthCheckRegistration registration, Exception exception, TimeSpan duration) => + HealthCheckError(logger, registration.Name, duration.TotalMilliseconds, exception); public static void HealthCheckData(ILogger logger, HealthCheckRegistration registration, HealthReportEntry entry) { diff --git a/src/HealthChecks/HealthChecks/src/HealthCheckPublisherHostedService.cs b/src/HealthChecks/HealthChecks/src/HealthCheckPublisherHostedService.cs index 423c4e9fa74c..4f5aa29c2779 100644 --- a/src/HealthChecks/HealthChecks/src/HealthCheckPublisherHostedService.cs +++ b/src/HealthChecks/HealthChecks/src/HealthCheckPublisherHostedService.cs @@ -13,14 +13,14 @@ namespace Microsoft.Extensions.Diagnostics.HealthChecks { - internal sealed class HealthCheckPublisherHostedService : IHostedService + internal sealed partial class HealthCheckPublisherHostedService : IHostedService { private readonly HealthCheckService _healthCheckService; private readonly IOptions _options; private readonly ILogger _logger; private readonly IHealthCheckPublisher[] _publishers; - private CancellationTokenSource _stopping; + private readonly CancellationTokenSource _stopping; private Timer? _timer; private CancellationTokenSource? _runTokenSource; @@ -194,77 +194,55 @@ private async Task RunPublisherAsync(IHealthCheckPublisher publisher, HealthRepo internal static class EventIds { - public static readonly EventId HealthCheckPublisherProcessingBegin = new EventId(100, "HealthCheckPublisherProcessingBegin"); - public static readonly EventId HealthCheckPublisherProcessingEnd = new EventId(101, "HealthCheckPublisherProcessingEnd"); - public static readonly EventId HealthCheckPublisherProcessingError = new EventId(101, "HealthCheckPublisherProcessingError"); - - public static readonly EventId HealthCheckPublisherBegin = new EventId(102, "HealthCheckPublisherBegin"); - public static readonly EventId HealthCheckPublisherEnd = new EventId(103, "HealthCheckPublisherEnd"); - public static readonly EventId HealthCheckPublisherError = new EventId(104, "HealthCheckPublisherError"); - public static readonly EventId HealthCheckPublisherTimeout = new EventId(104, "HealthCheckPublisherTimeout"); + public const int HealthCheckPublisherProcessingBeginId = 100; + public const int HealthCheckPublisherProcessingEndId = 101; + public const int HealthCheckPublisherBeginId = 102; + public const int HealthCheckPublisherEndId = 103; + public const int HealthCheckPublisherErrorId = 104; + public const int HealthCheckPublisherTimeoutId = 104; + + // Hard code the event names to avoid breaking changes. Even if the methods are renamed, these hard-coded names shouldn't change. + public const string HealthCheckPublisherProcessingBeginName = "HealthCheckPublisherProcessingBegin"; + public const string HealthCheckPublisherProcessingEndName = "HealthCheckPublisherProcessingEnd"; + public const string HealthCheckPublisherBeginName = "HealthCheckPublisherBegin"; + public const string HealthCheckPublisherEndName = "HealthCheckPublisherEnd"; + public const string HealthCheckPublisherErrorName = "HealthCheckPublisherError"; + public const string HealthCheckPublisherTimeoutName = "HealthCheckPublisherTimeout"; } - private static class Logger + private static partial class Logger { - private static readonly Action _healthCheckPublisherProcessingBegin = LoggerMessage.Define( - LogLevel.Debug, - EventIds.HealthCheckPublisherProcessingBegin, - "Running health check publishers"); - - private static readonly Action _healthCheckPublisherProcessingEnd = LoggerMessage.Define( - LogLevel.Debug, - EventIds.HealthCheckPublisherProcessingEnd, - "Health check publisher processing completed after {ElapsedMilliseconds}ms"); - - private static readonly Action _healthCheckPublisherBegin = LoggerMessage.Define( - LogLevel.Debug, - EventIds.HealthCheckPublisherBegin, - "Running health check publisher '{HealthCheckPublisher}'"); - - private static readonly Action _healthCheckPublisherEnd = LoggerMessage.Define( - LogLevel.Debug, - EventIds.HealthCheckPublisherEnd, - "Health check '{HealthCheckPublisher}' completed after {ElapsedMilliseconds}ms"); - - private static readonly Action _healthCheckPublisherError = LoggerMessage.Define( - LogLevel.Error, - EventIds.HealthCheckPublisherError, - "Health check {HealthCheckPublisher} threw an unhandled exception after {ElapsedMilliseconds}ms"); - - private static readonly Action _healthCheckPublisherTimeout = LoggerMessage.Define( - LogLevel.Error, - EventIds.HealthCheckPublisherTimeout, - "Health check {HealthCheckPublisher} was canceled after {ElapsedMilliseconds}ms"); - - public static void HealthCheckPublisherProcessingBegin(ILogger logger) - { - _healthCheckPublisherProcessingBegin(logger, null); - } + [LoggerMessage(EventIds.HealthCheckPublisherProcessingBeginId, LogLevel.Debug, "Running health check publishers", EventName = EventIds.HealthCheckPublisherProcessingBeginName)] + public static partial void HealthCheckPublisherProcessingBegin(ILogger logger); - public static void HealthCheckPublisherProcessingEnd(ILogger logger, TimeSpan duration, Exception? exception = null) - { - _healthCheckPublisherProcessingEnd(logger, duration.TotalMilliseconds, exception); - } + public static void HealthCheckPublisherProcessingEnd(ILogger logger, TimeSpan duration, Exception? exception = null) => + HealthCheckPublisherProcessingEnd(logger, duration.TotalMilliseconds, exception); - public static void HealthCheckPublisherBegin(ILogger logger, IHealthCheckPublisher publisher) - { - _healthCheckPublisherBegin(logger, publisher, null); - } + [LoggerMessage(EventIds.HealthCheckPublisherProcessingEndId, LogLevel.Debug, "Health check publisher processing completed after {ElapsedMilliseconds}ms", EventName = EventIds.HealthCheckPublisherProcessingEndName)] + private static partial void HealthCheckPublisherProcessingEnd(ILogger logger, double ElapsedMilliseconds, Exception? exception = null); - public static void HealthCheckPublisherEnd(ILogger logger, IHealthCheckPublisher publisher, TimeSpan duration) - { - _healthCheckPublisherEnd(logger, publisher, duration.TotalMilliseconds, null); - } + [LoggerMessage(EventIds.HealthCheckPublisherBeginId, LogLevel.Debug, "Running health check publisher '{HealthCheckPublisher}'", EventName = EventIds.HealthCheckPublisherBeginName)] + public static partial void HealthCheckPublisherBegin(ILogger logger, IHealthCheckPublisher HealthCheckPublisher); - public static void HealthCheckPublisherError(ILogger logger, IHealthCheckPublisher publisher, TimeSpan duration, Exception exception) - { - _healthCheckPublisherError(logger, publisher, duration.TotalMilliseconds, exception); - } + public static void HealthCheckPublisherEnd(ILogger logger, IHealthCheckPublisher HealthCheckPublisher, TimeSpan duration) => + HealthCheckPublisherEnd(logger, HealthCheckPublisher, duration.TotalMilliseconds); - public static void HealthCheckPublisherTimeout(ILogger logger, IHealthCheckPublisher publisher, TimeSpan duration) - { - _healthCheckPublisherTimeout(logger, publisher, duration.TotalMilliseconds, null); - } + [LoggerMessage(EventIds.HealthCheckPublisherEndId, LogLevel.Debug, "Health check '{HealthCheckPublisher}' completed after {ElapsedMilliseconds}ms", EventName = EventIds.HealthCheckPublisherEndName)] + private static partial void HealthCheckPublisherEnd(ILogger logger, IHealthCheckPublisher HealthCheckPublisher, double ElapsedMilliseconds); + + public static void HealthCheckPublisherError(ILogger logger, IHealthCheckPublisher publisher, TimeSpan duration, Exception exception) => + HealthCheckPublisherError(logger, publisher, duration.TotalMilliseconds, exception); + +#pragma warning disable SYSLIB1006 + [LoggerMessage(EventIds.HealthCheckPublisherErrorId, LogLevel.Error, "Health check {HealthCheckPublisher} threw an unhandled exception after {ElapsedMilliseconds}ms", EventName = EventIds.HealthCheckPublisherErrorName)] + private static partial void HealthCheckPublisherError(ILogger logger, IHealthCheckPublisher HealthCheckPublisher, double ElapsedMilliseconds, Exception exception); + + public static void HealthCheckPublisherTimeout(ILogger logger, IHealthCheckPublisher publisher, TimeSpan duration) => + HealthCheckPublisherTimeout(logger, publisher, duration.TotalMilliseconds); + + [LoggerMessage(EventIds.HealthCheckPublisherTimeoutId, LogLevel.Error, "Health check {HealthCheckPublisher} was canceled after {ElapsedMilliseconds}ms", EventName = EventIds.HealthCheckPublisherTimeoutName)] + private static partial void HealthCheckPublisherTimeout(ILogger logger, IHealthCheckPublisher HealthCheckPublisher, double ElapsedMilliseconds); +#pragma warning restore SYSLIB1006 } } } diff --git a/src/HealthChecks/HealthChecks/src/Microsoft.Extensions.Diagnostics.HealthChecks.csproj b/src/HealthChecks/HealthChecks/src/Microsoft.Extensions.Diagnostics.HealthChecks.csproj index b7b1240c77dc..8cb2a979d8ab 100644 --- a/src/HealthChecks/HealthChecks/src/Microsoft.Extensions.Diagnostics.HealthChecks.csproj +++ b/src/HealthChecks/HealthChecks/src/Microsoft.Extensions.Diagnostics.HealthChecks.csproj @@ -12,6 +12,8 @@ Microsoft.Extensions.Diagnostics.HealthChecks.IHealthChecksBuilder diagnostics;healthchecks true enable + + $(NoWarn);SYSLIB1006 diff --git a/src/HealthChecks/HealthChecks/test/HealthCheckPublisherHostedServiceTest.cs b/src/HealthChecks/HealthChecks/test/HealthCheckPublisherHostedServiceTest.cs index c5da4caac52c..9182da6ffe65 100644 --- a/src/HealthChecks/HealthChecks/test/HealthCheckPublisherHostedServiceTest.cs +++ b/src/HealthChecks/HealthChecks/test/HealthCheckPublisherHostedServiceTest.cs @@ -19,6 +19,23 @@ namespace Microsoft.Extensions.Diagnostics.HealthChecks { public class HealthCheckPublisherHostedServiceTest { + private static class DefaultHealthCheckEventIds + { + public static readonly EventId HealthCheckProcessingBegin = new EventId(DefaultHealthCheckService.EventIds.HealthCheckProcessingBeginId, DefaultHealthCheckService.EventIds.HealthCheckProcessingBeginName); + public static readonly EventId HealthCheckProcessingEnd = new EventId(DefaultHealthCheckService.EventIds.HealthCheckProcessingEndId, DefaultHealthCheckService.EventIds.HealthCheckProcessingEndName); + public static readonly EventId HealthCheckBegin = new EventId(DefaultHealthCheckService.EventIds.HealthCheckBeginId, DefaultHealthCheckService.EventIds.HealthCheckBeginName); + public static readonly EventId HealthCheckEnd = new EventId(DefaultHealthCheckService.EventIds.HealthCheckEndId, DefaultHealthCheckService.EventIds.HealthCheckEndName); + } + private static class HealthCheckPublisherEventIds + { + public static readonly EventId HealthCheckPublisherProcessingBegin = new EventId(HealthCheckPublisherHostedService.EventIds.HealthCheckPublisherProcessingBeginId, HealthCheckPublisherHostedService.EventIds.HealthCheckPublisherProcessingBeginName); + public static readonly EventId HealthCheckPublisherProcessingEnd = new EventId(HealthCheckPublisherHostedService.EventIds.HealthCheckPublisherProcessingEndId, HealthCheckPublisherHostedService.EventIds.HealthCheckPublisherProcessingEndName); + public static readonly EventId HealthCheckPublisherBegin = new EventId(HealthCheckPublisherHostedService.EventIds.HealthCheckPublisherBeginId, HealthCheckPublisherHostedService.EventIds.HealthCheckPublisherBeginName); + public static readonly EventId HealthCheckPublisherEnd = new EventId(HealthCheckPublisherHostedService.EventIds.HealthCheckPublisherEndId, HealthCheckPublisherHostedService.EventIds.HealthCheckPublisherEndName); + public static readonly EventId HealthCheckPublisherError = new EventId(HealthCheckPublisherHostedService.EventIds.HealthCheckPublisherErrorId, HealthCheckPublisherHostedService.EventIds.HealthCheckPublisherErrorName); + public static readonly EventId HealthCheckPublisherTimeout = new EventId(HealthCheckPublisherHostedService.EventIds.HealthCheckPublisherTimeoutId, HealthCheckPublisherHostedService.EventIds.HealthCheckPublisherTimeoutName); + } + [Fact] public async Task StartAsync_WithoutPublishers_DoesNotStartTimer() { @@ -210,16 +227,16 @@ public async Task RunAsync_WaitsForCompletion_Single() Assert.Collection( sink.Writes, - entry => { Assert.Equal(HealthCheckPublisherHostedService.EventIds.HealthCheckPublisherProcessingBegin, entry.EventId); }, - entry => { Assert.Equal(DefaultHealthCheckService.EventIds.HealthCheckProcessingBegin, entry.EventId); }, - entry => { Assert.Equal(DefaultHealthCheckService.EventIds.HealthCheckBegin, entry.EventId); }, - entry => { Assert.Contains(entry.EventId, new[] { DefaultHealthCheckService.EventIds.HealthCheckBegin, DefaultHealthCheckService.EventIds.HealthCheckEnd }); }, - entry => { Assert.Contains(entry.EventId, new[] { DefaultHealthCheckService.EventIds.HealthCheckBegin, DefaultHealthCheckService.EventIds.HealthCheckEnd }); }, - entry => { Assert.Equal(DefaultHealthCheckService.EventIds.HealthCheckEnd, entry.EventId); }, - entry => { Assert.Equal(DefaultHealthCheckService.EventIds.HealthCheckProcessingEnd, entry.EventId); }, - entry => { Assert.Equal(HealthCheckPublisherHostedService.EventIds.HealthCheckPublisherBegin, entry.EventId); }, - entry => { Assert.Equal(HealthCheckPublisherHostedService.EventIds.HealthCheckPublisherEnd, entry.EventId); }, - entry => { Assert.Equal(HealthCheckPublisherHostedService.EventIds.HealthCheckPublisherProcessingEnd, entry.EventId); }); + entry => { Assert.Equal(HealthCheckPublisherEventIds.HealthCheckPublisherProcessingBegin, entry.EventId); }, + entry => { Assert.Equal(DefaultHealthCheckEventIds.HealthCheckProcessingBegin, entry.EventId); }, + entry => { Assert.Equal(DefaultHealthCheckEventIds.HealthCheckBegin, entry.EventId); }, + entry => { Assert.Contains(entry.EventId, new[] { DefaultHealthCheckEventIds.HealthCheckBegin, DefaultHealthCheckEventIds.HealthCheckEnd }); }, + entry => { Assert.Contains(entry.EventId, new[] { DefaultHealthCheckEventIds.HealthCheckBegin, DefaultHealthCheckEventIds.HealthCheckEnd }); }, + entry => { Assert.Equal(DefaultHealthCheckEventIds.HealthCheckEnd, entry.EventId); }, + entry => { Assert.Equal(DefaultHealthCheckEventIds.HealthCheckProcessingEnd, entry.EventId); }, + entry => { Assert.Equal(HealthCheckPublisherEventIds.HealthCheckPublisherBegin, entry.EventId); }, + entry => { Assert.Equal(HealthCheckPublisherEventIds.HealthCheckPublisherEnd, entry.EventId); }, + entry => { Assert.Equal(HealthCheckPublisherEventIds.HealthCheckPublisherProcessingEnd, entry.EventId); }); } // Not testing logs here to avoid differences in logging order @@ -319,16 +336,16 @@ public async Task RunAsync_PublishersCanTimeout() Assert.Collection( sink.Writes, - entry => { Assert.Equal(HealthCheckPublisherHostedService.EventIds.HealthCheckPublisherProcessingBegin, entry.EventId); }, - entry => { Assert.Equal(DefaultHealthCheckService.EventIds.HealthCheckProcessingBegin, entry.EventId); }, - entry => { Assert.Equal(DefaultHealthCheckService.EventIds.HealthCheckBegin, entry.EventId); }, - entry => { Assert.Contains(entry.EventId, new[] { DefaultHealthCheckService.EventIds.HealthCheckBegin, DefaultHealthCheckService.EventIds.HealthCheckEnd }); }, - entry => { Assert.Contains(entry.EventId, new[] { DefaultHealthCheckService.EventIds.HealthCheckBegin, DefaultHealthCheckService.EventIds.HealthCheckEnd }); }, - entry => { Assert.Equal(DefaultHealthCheckService.EventIds.HealthCheckEnd, entry.EventId); }, - entry => { Assert.Equal(DefaultHealthCheckService.EventIds.HealthCheckProcessingEnd, entry.EventId); }, - entry => { Assert.Equal(HealthCheckPublisherHostedService.EventIds.HealthCheckPublisherBegin, entry.EventId); }, - entry => { Assert.Equal(HealthCheckPublisherHostedService.EventIds.HealthCheckPublisherTimeout, entry.EventId); }, - entry => { Assert.Equal(HealthCheckPublisherHostedService.EventIds.HealthCheckPublisherProcessingEnd, entry.EventId); }); + entry => { Assert.Equal(HealthCheckPublisherEventIds.HealthCheckPublisherProcessingBegin, entry.EventId); }, + entry => { Assert.Equal(DefaultHealthCheckEventIds.HealthCheckProcessingBegin, entry.EventId); }, + entry => { Assert.Equal(DefaultHealthCheckEventIds.HealthCheckBegin, entry.EventId); }, + entry => { Assert.Contains(entry.EventId, new[] { DefaultHealthCheckEventIds.HealthCheckBegin, DefaultHealthCheckEventIds.HealthCheckEnd }); }, + entry => { Assert.Contains(entry.EventId, new[] { DefaultHealthCheckEventIds.HealthCheckBegin, DefaultHealthCheckEventIds.HealthCheckEnd }); }, + entry => { Assert.Equal(DefaultHealthCheckEventIds.HealthCheckEnd, entry.EventId); }, + entry => { Assert.Equal(DefaultHealthCheckEventIds.HealthCheckProcessingEnd, entry.EventId); }, + entry => { Assert.Equal(HealthCheckPublisherEventIds.HealthCheckPublisherBegin, entry.EventId); }, + entry => { Assert.Equal(HealthCheckPublisherEventIds.HealthCheckPublisherTimeout, entry.EventId); }, + entry => { Assert.Equal(HealthCheckPublisherEventIds.HealthCheckPublisherProcessingEnd, entry.EventId); }); } [Fact] @@ -397,16 +414,16 @@ public async Task RunAsync_HandlesExceptions() Assert.Collection( sink.Writes, - entry => { Assert.Equal(HealthCheckPublisherHostedService.EventIds.HealthCheckPublisherProcessingBegin, entry.EventId); }, - entry => { Assert.Equal(DefaultHealthCheckService.EventIds.HealthCheckProcessingBegin, entry.EventId); }, - entry => { Assert.Equal(DefaultHealthCheckService.EventIds.HealthCheckBegin, entry.EventId); }, - entry => { Assert.Contains(entry.EventId, new[] { DefaultHealthCheckService.EventIds.HealthCheckBegin, DefaultHealthCheckService.EventIds.HealthCheckEnd }); }, - entry => { Assert.Contains(entry.EventId, new[] { DefaultHealthCheckService.EventIds.HealthCheckBegin, DefaultHealthCheckService.EventIds.HealthCheckEnd }); }, - entry => { Assert.Equal(DefaultHealthCheckService.EventIds.HealthCheckEnd, entry.EventId); }, - entry => { Assert.Equal(DefaultHealthCheckService.EventIds.HealthCheckProcessingEnd, entry.EventId); }, - entry => { Assert.Equal(HealthCheckPublisherHostedService.EventIds.HealthCheckPublisherBegin, entry.EventId); }, - entry => { Assert.Equal(HealthCheckPublisherHostedService.EventIds.HealthCheckPublisherError, entry.EventId); }, - entry => { Assert.Equal(HealthCheckPublisherHostedService.EventIds.HealthCheckPublisherProcessingEnd, entry.EventId); }); + entry => { Assert.Equal(HealthCheckPublisherEventIds.HealthCheckPublisherProcessingBegin, entry.EventId); }, + entry => { Assert.Equal(DefaultHealthCheckEventIds.HealthCheckProcessingBegin, entry.EventId); }, + entry => { Assert.Equal(DefaultHealthCheckEventIds.HealthCheckBegin, entry.EventId); }, + entry => { Assert.Contains(entry.EventId, new[] { DefaultHealthCheckEventIds.HealthCheckBegin, DefaultHealthCheckEventIds.HealthCheckEnd }); }, + entry => { Assert.Contains(entry.EventId, new[] { DefaultHealthCheckEventIds.HealthCheckBegin, DefaultHealthCheckEventIds.HealthCheckEnd }); }, + entry => { Assert.Equal(DefaultHealthCheckEventIds.HealthCheckEnd, entry.EventId); }, + entry => { Assert.Equal(DefaultHealthCheckEventIds.HealthCheckProcessingEnd, entry.EventId); }, + entry => { Assert.Equal(HealthCheckPublisherEventIds.HealthCheckPublisherBegin, entry.EventId); }, + entry => { Assert.Equal(HealthCheckPublisherEventIds.HealthCheckPublisherError, entry.EventId); }, + entry => { Assert.Equal(HealthCheckPublisherEventIds.HealthCheckPublisherProcessingEnd, entry.EventId); }); } // Not testing logging here to avoid flaky ordering issues