refactor(core): Consolidate path-related errors in Sentry (no-changelog) (#7757)

Keep reporting [path-related
errors](https://n8nio.sentry.io/issues/4649493725) in Sentry but
consolidate them in a single error group.

Also, add `options.extra` as `meta` so they remain visible in debug
logs:

```
2023-11-24T11:50:54.852Z | error    | ReportableError: Something went wrong "{ test: 123, file: 'LoggerProxy.js', function: 'exports.error' }"
```

---------

Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
This commit is contained in:
Iván Ovejero
2023-11-24 14:42:46 +01:00
committed by GitHub
parent 5914e97e9a
commit eec2ec1ff8
9 changed files with 62 additions and 22 deletions

View File

@@ -1,6 +1,6 @@
import { createHash } from 'crypto';
import config from '@/config';
import { ErrorReporterProxy, ExecutionBaseError } from 'n8n-workflow';
import { ErrorReporterProxy, ExecutionBaseError, ReportableError } from 'n8n-workflow';
let initialized = false;
@@ -41,10 +41,19 @@ export const initErrorHandling = async () => {
addGlobalEventProcessor((event, { originalException }) => {
if (originalException instanceof ExecutionBaseError && originalException.severity === 'warning')
return null;
if (originalException instanceof ReportableError) {
const { level, extra } = originalException;
if (level === 'warning') return null;
event.level = level;
if (extra) event.extra = { ...event.extra, ...extra };
}
if (!event.exception) return null;
const eventHash = createHash('sha1').update(JSON.stringify(event.exception)).digest('base64');
if (seenErrors.has(eventHash)) return null;
seenErrors.add(eventHash);
return event;
});