add error reporting health check (#667)
This commit is contained in:
@@ -0,0 +1,5 @@
|
|||||||
|
namespace ErsatzTV.Core.Health.Checks;
|
||||||
|
|
||||||
|
public interface IErrorReportsHealthCheck : IHealthCheck
|
||||||
|
{
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
using System.Threading.Tasks;
|
||||||
|
using ErsatzTV.Core.Errors;
|
||||||
|
using ErsatzTV.Core.Health;
|
||||||
|
using ErsatzTV.Core.Health.Checks;
|
||||||
|
using LanguageExt;
|
||||||
|
using Microsoft.Extensions.Options;
|
||||||
|
|
||||||
|
namespace ErsatzTV.Infrastructure.Health.Checks;
|
||||||
|
|
||||||
|
public class ErrorReportsHealthCheck : BaseHealthCheck, IErrorReportsHealthCheck
|
||||||
|
{
|
||||||
|
private readonly IOptions<BugsnagConfiguration> _bugsnagConfiguration;
|
||||||
|
|
||||||
|
public ErrorReportsHealthCheck(IOptions<BugsnagConfiguration> bugsnagConfiguration)
|
||||||
|
{
|
||||||
|
_bugsnagConfiguration = bugsnagConfiguration;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override string Title => "Error Reports";
|
||||||
|
|
||||||
|
public Task<HealthCheckResult> Check()
|
||||||
|
{
|
||||||
|
if (_bugsnagConfiguration.Value.Enable)
|
||||||
|
{
|
||||||
|
return Result(
|
||||||
|
HealthCheckStatus.Pass,
|
||||||
|
"Automated error reporting is enabled, thank you! To disable, edit the file appsettings.json or set the Bugsnag:Enable environment variable to false")
|
||||||
|
.AsTask();
|
||||||
|
}
|
||||||
|
|
||||||
|
return InfoResult("Automated error reporting is disabled. Please enable to support bug fixing efforts!").AsTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -20,7 +20,8 @@ namespace ErsatzTV.Infrastructure.Health
|
|||||||
IEpisodeMetadataHealthCheck episodeMetadataHealthCheck,
|
IEpisodeMetadataHealthCheck episodeMetadataHealthCheck,
|
||||||
IZeroDurationHealthCheck zeroDurationHealthCheck,
|
IZeroDurationHealthCheck zeroDurationHealthCheck,
|
||||||
IFileNotFoundHealthCheck fileNotFoundHealthCheck,
|
IFileNotFoundHealthCheck fileNotFoundHealthCheck,
|
||||||
IVaapiDriverHealthCheck vaapiDriverHealthCheck)
|
IVaapiDriverHealthCheck vaapiDriverHealthCheck,
|
||||||
|
IErrorReportsHealthCheck errorReportsHealthCheck)
|
||||||
{
|
{
|
||||||
_checks = new List<IHealthCheck>
|
_checks = new List<IHealthCheck>
|
||||||
{
|
{
|
||||||
@@ -31,7 +32,8 @@ namespace ErsatzTV.Infrastructure.Health
|
|||||||
episodeMetadataHealthCheck,
|
episodeMetadataHealthCheck,
|
||||||
zeroDurationHealthCheck,
|
zeroDurationHealthCheck,
|
||||||
fileNotFoundHealthCheck,
|
fileNotFoundHealthCheck,
|
||||||
vaapiDriverHealthCheck
|
vaapiDriverHealthCheck,
|
||||||
|
errorReportsHealthCheck
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -83,6 +83,7 @@ namespace ErsatzTV
|
|||||||
public void ConfigureServices(IServiceCollection services)
|
public void ConfigureServices(IServiceCollection services)
|
||||||
{
|
{
|
||||||
BugsnagConfiguration bugsnagConfig = Configuration.GetSection("Bugsnag").Get<BugsnagConfiguration>();
|
BugsnagConfiguration bugsnagConfig = Configuration.GetSection("Bugsnag").Get<BugsnagConfiguration>();
|
||||||
|
services.Configure<BugsnagConfiguration>(Configuration.GetSection("Bugsnag"));
|
||||||
|
|
||||||
services.AddBugsnag(
|
services.AddBugsnag(
|
||||||
configuration =>
|
configuration =>
|
||||||
@@ -288,6 +289,7 @@ namespace ErsatzTV
|
|||||||
services.AddScoped<IZeroDurationHealthCheck, ZeroDurationHealthCheck>();
|
services.AddScoped<IZeroDurationHealthCheck, ZeroDurationHealthCheck>();
|
||||||
services.AddScoped<IFileNotFoundHealthCheck, FileNotFoundHealthCheck>();
|
services.AddScoped<IFileNotFoundHealthCheck, FileNotFoundHealthCheck>();
|
||||||
services.AddScoped<IVaapiDriverHealthCheck, VaapiDriverHealthCheck>();
|
services.AddScoped<IVaapiDriverHealthCheck, VaapiDriverHealthCheck>();
|
||||||
|
services.AddScoped<IErrorReportsHealthCheck, ErrorReportsHealthCheck>();
|
||||||
services.AddScoped<IHealthCheckService, HealthCheckService>();
|
services.AddScoped<IHealthCheckService, HealthCheckService>();
|
||||||
|
|
||||||
services.AddScoped<IChannelRepository, ChannelRepository>();
|
services.AddScoped<IChannelRepository, ChannelRepository>();
|
||||||
|
|||||||
Reference in New Issue
Block a user