metrics.d.ts 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import Meter from '../utils/metrics/meter';
  2. import Counter from '../utils/metrics/counter';
  3. import Histogram from '../utils/metrics/histogram';
  4. import { Service } from '../serviceManager';
  5. import Gauge from '../utils/metrics/gauge';
  6. export declare enum MetricType {
  7. 'meter' = "meter",
  8. 'histogram' = "histogram",
  9. 'counter' = "counter",
  10. 'gauge' = "gauge",
  11. 'metric' = "metric"
  12. }
  13. export declare enum MetricMeasurements {
  14. 'min' = "min",
  15. 'max' = "max",
  16. 'sum' = "sum",
  17. 'count' = "count",
  18. 'variance' = "variance",
  19. 'mean' = "mean",
  20. 'stddev' = "stddev",
  21. 'median' = "median",
  22. 'p75' = "p75",
  23. 'p95' = "p95",
  24. 'p99' = "p99",
  25. 'p999' = "p999"
  26. }
  27. export interface InternalMetric {
  28. name?: string;
  29. type?: MetricType;
  30. id?: string;
  31. historic?: boolean;
  32. unit?: string;
  33. handler: Function;
  34. implementation: any;
  35. value?: number;
  36. }
  37. export declare class Metric {
  38. name?: string;
  39. id?: string;
  40. historic?: boolean;
  41. unit?: string;
  42. value?: () => number;
  43. }
  44. export declare class MetricBulk extends Metric {
  45. type: MetricType;
  46. }
  47. export declare class HistogramOptions extends Metric {
  48. measurement: MetricMeasurements;
  49. }
  50. export declare class MetricService implements Service {
  51. private metrics;
  52. private timer;
  53. private transport;
  54. private logger;
  55. init(): void;
  56. registerMetric(metric: InternalMetric): void;
  57. meter(opts: Metric): Meter;
  58. counter(opts: Metric): Counter;
  59. histogram(opts: HistogramOptions): Histogram;
  60. metric(opts: Metric): Gauge;
  61. deleteMetric(name: string): boolean;
  62. destroy(): void;
  63. }