consul-resolver
Version:
A load balancer for Consul services with Redis-based metrics
12 lines (11 loc) • 753 B
TypeScript
import { DEFAULT_WEIGHTS, ServiceHealth, ServiceMetrics } from "../types";
export declare function calculateHealthScore(service: ServiceHealth): number;
export declare function calculateResourceScore(metrics: ServiceMetrics): number;
export declare function calculateDistributionScore(lastSelectedTime?: number): number;
export declare function normalizeScore(value: number, max: number, inverse?: boolean): number;
export declare function rankServices(services: ServiceHealth[], metrics: Map<string, ServiceMetrics>, weights?: typeof DEFAULT_WEIGHTS): Array<{
score: number;
id: string;
service: ServiceHealth;
}>;
export declare function combineHealthAndDNSWeights(service: ServiceHealth, dnsWeight: number, maxDNSWeight: number): number;