@varia-bly/variably-sdk
Version:
Official JavaScript/TypeScript SDK for Variably feature flags, experimentation, and real-time dynamic configurations
107 lines • 2.38 kB
TypeScript
/**
* 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