observ-metrics
Version:
Frontend monitoring library that eliminates noise and adds business context to OpenTelemetry data
65 lines • 1.89 kB
TypeScript
/**
* 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