pandora-metrics
Version: 
## Overview
84 lines (83 loc) • 3.48 kB
TypeScript
import { MessengerClient } from 'pandora-messenger';
import { MetricsMessengerServer } from './util/MessengerUtil';
import { Metric, MetricFilter, MetricsManager, MetricName, BaseGauge, ICounter } from './common/index';
import { ProxyCreateMessage, ProxyUpdateMessage } from './domain';
import { AbstractIndicator } from './indicator/AbstractIndicator';
import { IMeter } from './common/metrics/Meter';
import { IHistogram } from './common/metrics/Histogram';
import { ITimer } from './common/metrics/Timer';
import { IMetricsRegistry } from './common/MetricsRegistry';
export declare class MetricsServerManager extends AbstractIndicator implements MetricsManager {
    messengerServer: MetricsMessengerServer;
    metricsClients: Map<string, MessengerClient>;
    allMetricsRegistry: IMetricsRegistry;
    metricRegistryMap: Map<string, IMetricsRegistry>;
    metricsAndClientMap: Map<string, Array<string>>;
    clientId: string;
    logger: any;
    enabled: boolean;
    group: string;
    debug: any;
    static instance: any;
    static getInstance(): any;
    constructor();
    /**
     * 注册客户端
     * @param data
     * @param reply
     * @param client
     */
    protected registerClient(data: {
        appName;
        clientId;
    }, reply: any, client: any): void;
    protected buildReportLink(client: any): void;
    protected bindRemove(client: any): void;
    private removeMetricInRegistry(registry, storeMetricsArr);
    /**
     * 注册一个 metric
     *
     * @param data
     */
    protected registerMetric(data: ProxyCreateMessage): any;
    protected updateMetric(data: ProxyUpdateMessage): void;
    /**
     * 创建一个 Gauge 类型的代理实例
     * @param metricName
     * @returns {any}
     */
    protected createGaugeProxy(metricName: any): BaseGauge<any>;
    /**
     * 对客户端的调用,现在用于 Gauge 类型的获取值
     * @param args
     * @returns {Promise<void>}
     */
    invoke(args?: any): Promise<{}>;
    getClients(): Array<MessengerClient>;
    getClient(clientId: string): MessengerClient;
    getMetric(name: MetricName): Metric;
    getAllMetricsRegistry(): IMetricsRegistry;
    destroy(): void;
    register(group: string, name: MetricName | string, metric: Metric): void;
    getMetricRegistryByGroup(group: string): IMetricsRegistry;
    hasMetricRegistryByGroup(group: string): boolean;
    getGauges(group: string, filter?: MetricFilter): Map<string, BaseGauge<any>>;
    getCounters(group: string, filter?: MetricFilter): Map<string, ICounter>;
    getHistograms(group: string, filter?: MetricFilter): Map<string, IHistogram>;
    getMeters(group: string, filter?: MetricFilter): Map<string, IMeter>;
    getTimers(group: string, filter?: MetricFilter): Map<string, ITimer>;
    getMetrics(group: string): Map<string, Metric>;
    getCategoryMetrics(group: string, filter?: MetricFilter): Map<string, Map<string, Metric>>;
    getAllCategoryMetrics(filter?: MetricFilter): Map<string, Map<string, Metric>>;
    listMetricGroups(): string[];
    isEnabled(): boolean;
    setEnabled(enabled: any): void;
    setLogger(logger: any): void;
    listMetricNamesByGroup(): Map<any, any>;
    getMeter(group: string, name: MetricName): IMeter;
    getCounter(group: string, name: MetricName): ICounter;
    getHistogram(group: string, name: MetricName): IHistogram;
    getTimer(group: string, name: MetricName): ITimer;
    destory(): void;
    getNewMetricRegistry(): IMetricsRegistry;
}