UNPKG

observ-metrics

Version:

Frontend monitoring library that eliminates noise and adds business context to OpenTelemetry data

65 lines 1.89 kB
/** * filtering system to eliminate noise and focus on business-critical events * Solves the "signal vs noise" problem in frontend monitoring */ import type { TelemetryEvent, UserContext, FilterConfig, FilterFunction } from '../types'; export declare class Filter { private config; private botPatterns; private extensionPatterns; private noisePatterns; constructor(config: FilterConfig); private initializePatterns; /** * Main filtering method - determines if event should be processed */ shouldProcess(event: TelemetryEvent, context: UserContext): boolean; /** * Detect bot traffic using multiple signals */ private isBotSession; private hasHeadlessIndicators; private hasAutomationIndicators; private hasUnusualSessionCharacteristics; /** * Check if domain is allowed */ private isDomainAllowed; /** * Check if event is noise (static assets, etc.) */ private isNoiseEvent; /** * Check if event is from browser extension */ private isExtensionEvent; /** * Determine if current session represents a real user */ isRealUserSession(context?: UserContext): boolean; private hasRealUserIndicators; private createDefaultContext; /** * Get filtering statistics */ getStats(): { botPatternsCount: number; extensionPatternsCount: number; noisePatternsCount: number; samplingRate: number; config: { enableBotDetection: boolean; domainWhitelist: string[]; excludeExtensions: boolean; }; }; /** * Add runtime custom filter */ addCustomFilter(filter: FilterFunction): void; /** * Update configuration */ updateConfig(newConfig: Partial<FilterConfig>): void; } //# sourceMappingURL=SmartFilter.d.ts.map