pandora-metrics
Version:
## Overview
58 lines (57 loc) • 1.98 kB
TypeScript
import { Metric, MetricName } from './common/index';
import { ProxyCreateMessage, ProxyUpdateMessage } from './domain';
import { Environment } from 'pandora-env';
import { MetricsMessengerClient } from './util/MessengerUtil';
import { Proxiable, Counter, Histogram, Meter, Timer } from './client/index';
import { AbstractIndicator } from './indicator/AbstractIndicator';
import { IMetricsRegistry } from './common/MetricsRegistry';
export declare class MetricsClient extends AbstractIndicator {
environment: Environment;
static getInstance(): MetricsClient;
appName: string;
allMetricsRegistry: IMetricsRegistry;
protected messengerClient: MetricsMessengerClient;
clientId: string;
group: string;
debug: any;
static instance: MetricsClient;
constructor();
/**
* 注册 Client
*/
protected registerClient(): void;
/**
* 注册一个 Metric
*
* @example
* let counter = new BaseCounter();
* MetricsClient.register('eagleeye', 'eagleeye.hsf.qps', counter);
* counter.inc(2);
*
* @param {string} group
* @param {} name
* @param {Proxiable} metric
*/
register(group: string, name: MetricName | string, metric: Proxiable | Metric): void;
reportMetric(name: MetricName, metric: Metric, group: string): void;
/**
* 发送上行消息
* @param data
*/
report(data: ProxyCreateMessage | ProxyUpdateMessage): void;
invoke(args: {
metricKey;
type;
}): Promise<any>;
/**
* 注册下行链路
*/
protected registerDownlink(): void;
protected getAppName(): any;
getCounter(group: string, name: MetricName | string): Counter;
getTimer(group: string, name: MetricName | string): Timer;
getMeter(group: string, name: MetricName | string): Meter;
getHistogram(group: string, name: MetricName | string): Histogram;
private buildName(name);
getNewMetricRegistry(): IMetricsRegistry;
}