strogger
Version:
📊 A modern structured logging library with functional programming, duck-typing, and comprehensive third-party integrations
56 lines • 1.49 kB
TypeScript
import type { LoggerConfig } from "../types";
export interface RateLimiterState {
tokens: number;
lastRefill: number;
maxTokens: number;
refillRate: number;
}
export interface SamplingState {
totalLogs: number;
sampledLogs: number;
}
/**
* Creates a rate limiter using token bucket algorithm
*/
export declare const createRateLimiter: (maxLogsPerSecond: number, burstSize: number) => {
tryConsume: (tokens?: number) => boolean;
getState: () => {
tokens: number;
lastRefill: number;
maxTokens: number;
refillRate: number;
};
};
/**
* Creates a sampling function that respects the sampling rate
*/
export declare const createSampler: (samplingRate: number) => {
shouldSample: () => boolean;
getStats: () => {
totalLogs: number;
sampledLogs: number;
samplingRate: number;
configuredRate: number;
};
};
/**
* Creates a combined sampling and rate limiting function
*/
export declare const createLogFilter: (config: LoggerConfig) => {
shouldLog: () => boolean;
getStats: () => {
rateLimit: {
tokens: number;
lastRefill: number;
maxTokens: number;
refillRate: number;
} | undefined;
sampling: {
totalLogs: number;
sampledLogs: number;
samplingRate: number;
configuredRate: number;
} | undefined;
};
};
//# sourceMappingURL=sampling.d.ts.map