UNPKG

@varia-bly/variably-sdk

Version:

Official JavaScript/TypeScript SDK for Variably feature flags, experimentation, and real-time dynamic configurations

107 lines 2.38 kB
/** * Metrics collection for Variably SDK */ import { SDKMetrics } from './types'; export declare class MetricsCollector { private startTime; private apiCalls; private cacheHits; private cacheMisses; private errors; private latencies; private flagsEvaluated; private gatesEvaluated; private eventsTracked; private maxLatencyHistory; constructor(); /** * Record an API call */ recordApiCall(): void; /** * Record a cache hit */ recordCacheHit(): void; /** * Record a cache miss */ recordCacheMiss(): void; /** * Record an error */ recordError(): void; /** * Record request latency */ recordLatency(latencyMs: number): void; /** * Record a flag evaluation */ recordFlagEvaluation(): void; /** * Record a gate evaluation */ recordGateEvaluation(): void; /** * Record an event being tracked */ recordEventTracked(): void; /** * Get current metrics snapshot */ getMetrics(): SDKMetrics; /** * Get detailed latency statistics */ getLatencyStats(): { min: number; max: number; average: number; median: number; p95: number; p99: number; count: number; }; /** * Reset all metrics */ reset(): void; /** * Export metrics in a format suitable for external monitoring systems */ exportMetrics(): Record<string, number>; /** * Calculate average latency */ private calculateAverageLatency; /** * Calculate percentile from sorted array */ private calculatePercentile; } /** * No-op metrics collector for when metrics are disabled */ export declare class NoOpMetricsCollector { recordApiCall(): void; recordCacheHit(): void; recordCacheMiss(): void; recordError(): void; recordLatency(): void; recordFlagEvaluation(): void; recordGateEvaluation(): void; recordEventTracked(): void; getMetrics(): SDKMetrics; getLatencyStats(): { min: number; max: number; average: number; median: number; p95: number; p99: number; count: number; }; reset(): void; exportMetrics(): Record<string, number>; } //# sourceMappingURL=metrics.d.ts.map