UNPKG

@compas/stdlib

Version:

All kinds of utility functions

57 lines (56 loc) 2.27 kB
/** * Enable Sentry support. This comes with the following changes: * * Stdlib: * - Logger: both info and error logs are added as breadcrumbs to the current active * span. * - Event: Events are propagated to Sentry as (inactive) spans. * Meaning that further logs are not necessarily correlated to the correct event. * The final event callstack is not logged. * * Server: * - Starts a new root span for each incoming request. * - Tries to name it based on the finalized name of `ctx.event`. * This is most likely in the format `router.foo.bar` for matched routes by the * generated router. * - Uses the sentry-trace header when provided. * Note that if a custom list of `allowHeaders` is provided in the CORS options, * 'sentry-trace' and 'baggage' should be allowed as well. * - If the error handler retrieves an unknown or AppError.serverError, it is reported as * an uncaught exception. It is advised to set 'normalizeDepth' to '0' in your Sentry * config, and to enable the 'extraErrorDataIntegration' integration. * * Store: * - Starts a new root span for each handled Job in the QueueWorker * The span name is based on the job name. Unhandled errors are captured as * exceptions. * - Supports passing queries to Sentry as spans. Requires {@link * opts.sendQueriesAsSpans} to be set. * * All: * - All error logs in Compas package code are captured as exceptions. * * @param {typeof import("@sentry/node")} instance * @param {{ * sendQueriesAsSpans?: boolean * }} [opts] */ export function compasWithSentry(instance: typeof import("@sentry/node"), { sendQueriesAsSpans }?: { sendQueriesAsSpans?: boolean; }): void; /** * @see https://github.com/getsentry/sentry-javascript/blob/8bec42e0285ee301e8fc9bcaf02046daf48e0495/packages/core/src/utils/spanUtils.ts#L103 */ export function sentrySpanIsSampled(span: any): boolean; /** * The Sentry version that all Compas packages use if set via {@link compasWithSentry}. * * @type {undefined|typeof import("@sentry/node")} */ export let _compasSentryExport: undefined | typeof import("@sentry/node"); /** * Send queries executed via `query` from @compas/store as a sentry span. * * @type {boolean} */ export let _compasSentryEnableQuerySpans: boolean;