mirror of https://github.com/Radarr/Radarr
Filter useless PG Errors from coming to Sentry
This commit is contained in:
parent
fb25e5d577
commit
04185d6839
|
@ -8,6 +8,7 @@ using System.Threading;
|
||||||
using NLog;
|
using NLog;
|
||||||
using NLog.Common;
|
using NLog.Common;
|
||||||
using NLog.Targets;
|
using NLog.Targets;
|
||||||
|
using Npgsql;
|
||||||
using NzbDrone.Common.EnvironmentInfo;
|
using NzbDrone.Common.EnvironmentInfo;
|
||||||
using NzbDrone.Common.Extensions;
|
using NzbDrone.Common.Extensions;
|
||||||
using Sentry;
|
using Sentry;
|
||||||
|
@ -34,6 +35,14 @@ namespace NzbDrone.Common.Instrumentation.Sentry
|
||||||
SQLiteErrorCode.Auth
|
SQLiteErrorCode.Auth
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private static readonly HashSet<string> FilteredPostgresErrorCodes = new HashSet<string>
|
||||||
|
{
|
||||||
|
PostgresErrorCodes.OutOfMemory,
|
||||||
|
PostgresErrorCodes.TooManyConnections,
|
||||||
|
PostgresErrorCodes.DiskFull,
|
||||||
|
PostgresErrorCodes.ProgramLimitExceeded
|
||||||
|
};
|
||||||
|
|
||||||
// use string and not Type so we don't need a reference to the project
|
// use string and not Type so we don't need a reference to the project
|
||||||
// where these are defined
|
// where these are defined
|
||||||
private static readonly HashSet<string> FilteredExceptionTypeNames = new HashSet<string>
|
private static readonly HashSet<string> FilteredExceptionTypeNames = new HashSet<string>
|
||||||
|
@ -250,6 +259,19 @@ namespace NzbDrone.Common.Instrumentation.Sentry
|
||||||
isSentry = false;
|
isSentry = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var pgEx = logEvent.Exception as PostgresException;
|
||||||
|
if (pgEx != null && FilteredPostgresErrorCodes.Contains(pgEx.SqlState))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// We don't care about transient network and timeout errors
|
||||||
|
var npgEx = logEvent.Exception as NpgsqlException;
|
||||||
|
if (npgEx != null && npgEx.IsTransient)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (FilteredExceptionTypeNames.Contains(ex.GetType().Name))
|
if (FilteredExceptionTypeNames.Contains(ex.GetType().Name))
|
||||||
{
|
{
|
||||||
isSentry = false;
|
isSentry = false;
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
|
||||||
<PackageReference Include="NLog" Version="5.0.1" />
|
<PackageReference Include="NLog" Version="5.0.1" />
|
||||||
<PackageReference Include="NLog.Extensions.Logging" Version="5.0.0" />
|
<PackageReference Include="NLog.Extensions.Logging" Version="5.0.0" />
|
||||||
|
<PackageReference Include="Npgsql" Version="5.0.11" />
|
||||||
<PackageReference Include="Sentry" Version="3.23.1" />
|
<PackageReference Include="Sentry" Version="3.23.1" />
|
||||||
<PackageReference Include="NLog.Targets.Syslog" Version="7.0.0" />
|
<PackageReference Include="NLog.Targets.Syslog" Version="7.0.0" />
|
||||||
<PackageReference Include="SharpZipLib" Version="1.3.3" />
|
<PackageReference Include="SharpZipLib" Version="1.3.3" />
|
||||||
|
|
Loading…
Reference in New Issue