UNPKG

@ajaltech/monitrace

Version:

Librería de monitoreo de errores frontend creada por Ajal Technology

147 lines (110 loc) 4.41 kB
# Monitrace **Monitrace** es una librería agnóstica para el registro, seguimiento y visualización de errores en aplicaciones web frontend. Captura errores globales y de red (`axios`, `fetch`, `xhr`) y los envía a un backend centralizado para su análisis y visualización, con soporte de fallback offline (almacenamiento local en caso de desconexión). --- ## 🧠 ¿Qué es Monitrace? Monitrace es parte de la solución de trazabilidad de errores frontend desarrollada por **Ajal Technology**, que incluye: - Un SDK ligero multiplataforma (compatible con Angular, Vue, React y Vanilla JS). - Un backend REST para almacenar errores. - Un **portal administrativo** para visualizar errores por aplicación, ruta, tipo, fecha y usuario. Esta herramienta permite detectar rápidamente errores en producción y mejorar la experiencia del usuario con análisis visuales. --- ## 🚀 Instalación ```bash npm install @ajaltech/monitrace ``` ## 🛠️ Uso básico ```javascript import { initMonitrace } from "@ajaltech/monitrace"; initMonitrace({ client: "axios", // o 'fetch' o 'xhr' endpoint: "https://api.midominio.com/errores", appName: "mi-app-frontend", localFallback: true, userContext: () => ({ userId: getUserId(), sessionId: getSessionId(), }), }); ``` ## 🔍 Visualización de errores El backend de Monitrace incluye un portal de administración que permite: - Consultar errores del día. - Ver rutas más problemáticas. - Filtrar por usuario, tipo de error o componente. - Exportar logs o integrarlos con otras herramientas. > **Nota:** El backend está incluido como parte de la solución Monitrace y puede ser desplegado en un entorno privado o en la nube. --- ## ⚙️ Tecnologías utilizadas Monitrace utiliza las siguientes tecnologías: - **TypeScript** - **tsup** (compilador) - **Axios / Fetch interceptors** - **localStorage / IndexedDB** (soporte offline) - **MongoDB backend** (parte de la solución completa) --- ## 🛠️ Uso con Angular (HttpClient) Monitrace no intercepta directamente las llamadas realizadas con `HttpClient` de Angular, ya que este no utiliza `fetch` ni `axios`. Para capturar errores HTTP en Angular, es necesario instalar un interceptor dentro del proyecto Angular que envíe los errores a Monitrace. ### 🔧 Paso 1: Crear un interceptor en tu proyecto Angular ```typescript // monitrace-http.interceptor.ts import { Injectable } from "@angular/core"; import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpErrorResponse, } from "@angular/common/http"; import { Observable, throwError } from "rxjs"; import { catchError } from "rxjs/operators"; import { sendError } from "@ajaltech/monitrace"; @Injectable() export class MonitraceHttpInterceptor implements HttpInterceptor { intercept( req: HttpRequest<any>, next: HttpHandler ): Observable<HttpEvent<any>> { return next.handle(req).pipe( catchError((err: HttpErrorResponse) => { sendError( { message: err.message, stack: "", // Angular no expone stack, puede dejarse vacío route: window.location.href, type: "http", }, { endpoint: "https://TU_BACKEND/errores", appName: "MiAngularApp", } ); return throwError(() => err); }) ); } } ``` > Reemplaza `endpoint` y `appName` con los datos reales de tu proyecto. --- ### 🧩 Paso 2: Registrar el interceptor en `AppModule` ```typescript import { HTTP_INTERCEPTORS } from "@angular/common/http"; import { MonitraceHttpInterceptor } from "./monitrace-http.interceptor"; @NgModule({ providers: [ { provide: HTTP_INTERCEPTORS, useClass: MonitraceHttpInterceptor, multi: true, }, ], }) export class AppModule {} ``` > 💡 Este paso es opcional si tu proyecto Angular utiliza `axios` o `fetch`, ya que Monitrace puede interceptarlos automáticamente desde la librería. ## 🏷️ Licencia y atribución Monitrace es una herramienta desarrollada y mantenida por **Ajal Technology**. Su uso está permitido bajo términos privados o de distribución empresarial. Para más información, visita [https://ajaltechnology.com](https://ajaltechnology.com). Su uso está permitido bajo términos privados o de distribución empresarial. Para más información, visita https://ajaltechnology.com