node-universe
Version:
基于 Nodejs 环境的一款微服务框架,原理来自于宇宙中的恒星,行星,卫星等系统。
71 lines (70 loc) • 1.88 kB
TypeScript
import { GenericObject } from '..';
export interface MetricRegistryOptions {
enabled?: boolean;
collectProcessMetrics?: boolean;
collectInterval?: number;
reporter?: string | MetricsReporterOptions | (MetricsReporterOptions | string)[] | null;
defaultBuckets?: number[];
defaultQuantiles?: number[];
defaultMaxAgeSeconds?: number;
defaultAgeBuckets?: number;
defaultAggregator?: string;
}
export interface MetricsReporterOptions {
type: string;
options?: MetricReporterOptions;
}
export interface MetricReporterOptions {
includes?: string | string[];
excludes?: string | string[];
metricNamePrefix?: string;
metricNameSuffix?: string;
metricNameFormatter?: (name: string) => string;
labelNameFormatter?: (name: string) => string;
[key: string]: any;
}
export interface BaseMetricOptions {
type: string;
name: string;
description?: string;
labelNames?: string[];
unit?: string;
aggregator?: string;
[key: string]: any;
}
export interface GaugeMetricSnapshot {
value: number;
labels: GenericObject;
timestamp: number;
}
export interface InfoMetricSnapshot {
value: number;
labels: GenericObject;
timestamp: number;
}
export interface HistogramMetricSnapshot {
labels: GenericObject;
count: number;
sum: number;
timestamp: number;
buckets?: {
[key: string]: number;
};
min?: number | null;
mean?: number | null;
variance?: number | null;
stdDev?: number | null;
max?: number | null;
quantiles?: {
[key: string]: number;
};
}
export type MetricSnapshot = GaugeMetricSnapshot | InfoMetricSnapshot | HistogramMetricSnapshot;
export interface BaseMetricPOJO {
type: string;
name: string;
description?: string;
labelNames: string[];
unit?: string;
values: MetricSnapshot[];
}