import { MetricName } from './MetricName' ; import { IMeter } from './metrics/Meter' ; import { ICounter } from './metrics/Counter' ; import { IHistogram } from './metrics/Histogram' ; import { ITimer } from './metrics/Timer' ; import { IMetricsRegistry } from './MetricsRegistry' ; import { MetricFilter } from './MetricFilter' ; import { BaseGauge } from './metrics/Gauge' ; import { Metric } from './domain' ; import { IFastCompass } from './metrics/FastCompass' ; export interface MetricsManager { /**
     * Create a  BaseMeter metric in given group, and name.
     * if not exist, an instance will be created.
     *
     *  param group param name return getMeter ( group , name ) : IMeter ; /**
     * Create a  ICounter metric in given group, and name.
     * if not exist, an instance will be created.
     *
     *  param group param name return getCounter ( group , name ) : ICounter ; /**
     * Create a  BaseHistogram metric in given group, and name.
     * if not exist, an instance will be created.
     *
     *  param group param name return getHistogram ( group , name ) : IHistogram ; /**
     * Create a  BaseTimer metric in given group, and name.
     * if not exist, an instance will be created.
     *
     *  param group param name return getTimer ( group , name ) : ITimer ; getFastCompasses ( group , filter ? ) : Map < string , IFastCompass > ; param group param metric register ( group , name , metric ) ; return listMetricGroups ( ) : Array < string > ; return isEnabled ( ) : boolean ; /**
     * A global flag to complete disable the metrics feature
     */ setEnabled ( enabled ) ; return listMetricNamesByGroup ( ) : Map < string , Array < MetricName > > ; param group return getMetricRegistryByGroup ( group ) : IMetricsRegistry ; getGauges ( group , filter ? ) : Map < string , BaseGauge < any > > ; getCounters ( group , filter ? ) : Map < string , ICounter > ; getHistograms ( group , filter ? ) : Map < string , IHistogram > ; getMeters ( group , filter ? ) : Map < string , IMeter > ; getTimers ( group , filter ? ) : Map < string , ITimer > ; /**
     * Create a  BaseFastCompass metric in give group, name, and type
     * if not exist, an instance will be created.
     *  param group param name return an instance of  BaseFastCompass getFastCompass ( group , name ) : IFastCompass ; return getMetrics ( group ) : Map < string , Metric > ; param group param filter return getCategoryMetrics ( group , filter ? ) : Map < string , Map < string , Metric > > ; param filter return getAllCategoryMetrics ( filter ? ) : Map < string , Map < string , Metric > > ; getNewMetricRegistry ( ) : IMetricsRegistry ; }