UNPKG

toto-agent

Version:

Chatbot agent and reusable components for Toto platform

80 lines (79 loc) 2.29 kB
/** * Monitoring and Observability Service for toto-agent * Handles error tracking, performance monitoring, and structured logging */ import { UserAction, AgentType } from '../../shared/AgentTypes'; export interface MonitoringConfig { sentryDsn?: string; environment: string; release: string; enablePerformanceMonitoring: boolean; enableErrorTracking: boolean; logLevel: 'debug' | 'info' | 'warn' | 'error'; } export interface PerformanceMetrics { requestId: string; startTime: number; endTime: number; duration: number; operation: string; success: boolean; error?: string; metadata?: Record<string, any>; } export interface BusinessMetrics { sessionId: string; userId?: string; caseId?: string; intent: UserAction; agentType: AgentType; responseTime: number; userSatisfaction?: number; conversion?: boolean; dropoff?: boolean; } export declare class MonitoringService { private config; private isInitialized; constructor(config: MonitoringConfig); private initialize; /** * Track performance metrics */ trackPerformance(metrics: PerformanceMetrics): void; /** * Track business metrics */ trackBusinessMetrics(metrics: BusinessMetrics): void; /** * Capture and report errors */ captureError(error: Error, context?: Record<string, any>): void; /** * Set user context for error tracking */ setUserContext(userId: string, userData?: Record<string, any>): void; /** * Add breadcrumb for debugging */ addBreadcrumb(message: string, category: string, data?: Record<string, any>): void; /** * Start performance transaction */ startTransaction(operation: string, requestId: string): PerformanceMetrics; /** * End performance transaction */ endTransaction(metrics: PerformanceMetrics, success: boolean, error?: string): void; /** * Structured logging with different levels */ log(level: 'debug' | 'info' | 'warn' | 'error', message: string, data?: Record<string, any>): void; /** * Health check for monitoring service */ getHealthStatus(): { status: 'healthy' | 'unhealthy'; details: Record<string, any>; }; }