UNPKG

performance-monitor-logger

Version:
192 lines 6.76 kB
/** * 📊 SISTEMA DE LOGS DE PERFORMANCE * * Sistema completo de monitoramento de performance para aplicações Angular * com feedback visual através de emojis e relatórios automáticos. * * Características: * - 📈 Monitoramento em Tempo Real * - 🟢🟡🔴 Classificação Visual por Performance * - ⏰ Relatórios Automáticos após Inatividade * - 📊 Análise Detalhada com Recomendações * - 🛠️ API Pública para Controle Manual * * @author Pedro Henrique dos Santos Leuchs * @version 1.0.19 * @since 2025-07-11 */ export interface PerformanceStats { count: number; totalTime: number; minTime: number; maxTime: number; customThresholds?: { ok?: number; lento?: number; critico?: number; }; } export interface DynamicThresholds { ok: number; lento: number; critico: number; } export declare class LogsPerformatico { private monitoramentoAtivo; private performanceTimers; private performanceSummary; private serviceName; private httpRequests; private functionContextStack; constructor(serviceName?: string); /** * Registra requisição HTTP associando à função monitorada ativa (se houver) * @param payload Dados da requisição */ registerHttpRequest(authReq: any, tempo: number, error?: boolean): void; private extrairNomeDeSQL; /** * 🚀 Mensagem de boas-vindas do sistema */ showWelcomeMessage(): void; /** * ⏱️ Inicia cronômetro para uma operação * @param operationName Nome da operação a ser monitorada */ startTimer(operationName: string): void; /** * 🏁 Finaliza cronômetro e exibe resultado com emoji * @param operationName Nome da operação * @param customMessage Mensagem customizada opcional (ex: para erros) * @param customThresholds Thresholds customizados para esta operação específica */ endTimer(operationName: string, customMessage?: string, customThresholds?: { ok?: number; lento?: number; critico?: number; }): void; /** * 🎨 Determina status de performance baseado no tempo * @param elapsedTime Tempo decorrido em milissegundos * @param customThresholds Thresholds customizados para esta operação específica * @param operationName Nome da operação (para calcular thresholds dinâmicos) * @returns Objeto com emoji, status e cor */ private getPerformanceStatus; /** * 📈 Atualiza estatísticas de performance para o sumário * @param operationName Nome da operação * @param elapsedTime Tempo decorrido em milissegundos * @param customThresholds Thresholds customizados para armazenar (opcional) */ private updatePerformanceSummary; /** * 📊 Exibe relatório resumido de todas as operações (compactado) */ showPerformanceSummary(showFullDetails?: boolean): void; /** * 📑 Exibe relatório detalhado de requisições HTTP agrupadas por função */ showHttpRequestsReport(): void; /** * 🔍 Gera análise detalhada de performance */ generateDetailedAnalysis(): void; /** * 📋 Categoriza operações por performance * @returns Objeto com arrays de operações categorizadas */ private categorizeOperations; /** * 💡 Exibe recomendações baseadas na análise * @param criticalOperations Array de operações críticas * @param slowOperations Array de operações lentas */ private showRecommendations; /** * 📊 Exibe score de performance * @param fastOperationsCount Número de operações rápidas */ private showPerformanceScore; /** * 📊 Método público para exibir relatório de performance * Pode ser chamado no console do navegador para análise */ getPerformanceReport(): void; /** * 🧹 Método público para limpar dados de performance * Útil para resetar estatísticas e começar nova análise */ resetPerformanceData(): void; /** * ⏰ Configura o delay para relatório por inatividade * @param seconds Número de segundos de inatividade para mostrar relatório */ setInactivityDelay(seconds: number): void; /** * 🔇 Desabilita relatório automático por inatividade */ disableInactivityReport(): void; /** * ⚙️ Configura o threshold para relatório automático * @param threshold Número de operações para mostrar relatório automaticamente */ setAutoReportThreshold(threshold: number): void; /** * 🔇 Desabilita relatório automático */ disableAutoReport(): void; /** * 📈 Obtém estatísticas resumidas sem exibir no console * @returns Objeto com estatísticas de performance */ getStatistics(): { totalOperations: number; averageTime: number; fastOperations: number; slowOperations: number; criticalOperations: number; performanceScore: number; }; /** * 🎯 Obtém dados de uma operação específica * @param operationName Nome da operação * @returns Estatísticas da operação ou null se não encontrada */ getOperationStats(operationName: string): (PerformanceStats & { httpCalls: string[]; }) | null; /** * 📋 Lista todas as operações monitoradas * @returns Array com nomes das operações */ getMonitoredOperations(): string[]; /** * 🔄 Verifica se há timers ativos * @returns true se há timers em execução */ hasActiveTimers(): boolean; /** * 🗑️ Limpa apenas os timers ativos (não as estatísticas) */ clearActiveTimers(): void; /** * 💾 Exporta dados de performance para JSON * @returns String JSON com todos os dados */ exportData(): string; /** * 🎯 Calcula thresholds dinâmicos baseados na quantidade de execuções * @param executionCount Número de execuções da operação * @returns Objeto com thresholds calculados dinamicamente */ private calculateDynamicThresholds; injectMonitorButton(): void; } /** * 🏭 Factory function para criar instância do LogsPerformatico * @param serviceName Nome do serviço (para logs personalizados) * @returns Nova instância de LogsPerformatico */ export declare function createPerformanceLogger(serviceName?: string): LogsPerformatico; //# sourceMappingURL=log-performatico.d.ts.map