@zumito-team/sentry

@zumito-team/sentry

Integración de Sentry para reporte centralizado de todos los errores del framework Zumito.

Captura automáticamente errores de comandos (prefix/slash), rutas API, carga de módulos y cualquier otro error que pase por el ErrorHandler del framework.

Instalación

npm install @zumito-team/sentry

Uso

Como módulo de Zumito

// zumito.config.ts
import { SentryModule } from '@zumito-team/sentry';

export const config = {
    bundles: [
        {
            path: 'node_modules/@zumito-team/sentry',
            options: {
                dsn: 'https://<key>@sentry.io/<project>',
                environment: 'production',
                release: '1.0.0',
                sampleRate: 1.0,
                tracesSampleRate: 0.2,
            },
        },
    ],
};

Configuración directa

import { SentryModule, SentryService, ServiceContainer } from '@zumito-team/sentry';

new SentryModule({
    dsn: 'https://<key>@sentry.io/<project>',
    environment: 'production',
});

const sentry = ServiceContainer.getService(SentryService);

Envío manual de errores

import * as Sentry from '@sentry/node';

Sentry.captureException(new Error('Custom error'));
Sentry.captureMessage('Something happened', 'warning');

Contexto capturado automáticamente

El módulo enriquece cada error con:

Contexto Datos
Tags errorType, command, source (slash/prefix), guildId, channelId, endpoint, method, module, routePath
User ID y username del usuario de Discord que ejecutó el comando
Extra Nombre y tipo del comando, ID de interacción/mensaje, contenido del mensaje (primeros 200 chars)
API errors Endpoint y método HTTP
Module errors Nombre del módulo que falló al cargar

Configuración

Campo Tipo Requerido Descripción
dsn string DSN del proyecto en Sentry
environment string no Entorno (default: NODE_ENV o development)
release string no Versión del release
sampleRate number no Tasa de muestreo de errores (0-1, default: 1.0)
tracesSampleRate number no Tasa de muestreo de trazas (0-1)
debug boolean no Modo debug de Sentry (default: false)

Cambios requeridos en zumito-framework

Este módulo necesita que CommandErrorOptions incluya interaction/message para extraer el contexto completo (guild, usuario, canal). Asegúrate de usar una versión del framework que incluya estos campos.

0