UNPKG

6.52 kBTypeScriptView Raw
1import dgram = require("dgram");
2
3declare module "hot-shots" {
4 export type Tags = { [key: string]: string } | string[];
5 export interface ClientOptions {
6 bufferFlushInterval?: number;
7 bufferHolder?: { buffer: string };
8 cacheDns?: boolean;
9 errorHandler?: (err: Error) => void;
10 globalTags?: Tags;
11 globalize?: boolean;
12 host?: string;
13 isChild?: boolean;
14 maxBufferSize?: number;
15 mock?: boolean;
16 port?: number;
17 prefix?: string;
18 sampleRate?: number;
19 socket?: dgram.Socket;
20 suffix?: string;
21 telegraf?: boolean;
22 useDefaultRoute?: boolean;
23 }
24
25 export interface ChildClientOptions {
26 globalTags?: Tags;
27 prefix?: string;
28 suffix?: string;
29 }
30
31 export interface CheckOptions {
32 date_happened?: Date;
33 hostname?: string;
34 message?: string;
35 }
36
37 export interface DatadogChecks {
38 OK: 0;
39 WARNING: 1;
40 CRITICAL: 2;
41 UNKNOWN: 3;
42 }
43
44 type unionFromInterfaceValues4<
45 T,
46 K1 extends keyof T,
47 K2 extends keyof T,
48 K3 extends keyof T,
49 K4 extends keyof T,
50 > = T[K1] | T[K2] | T[K3] | T[K4];
51
52 export type DatadogChecksValues = unionFromInterfaceValues4<DatadogChecks, "OK", "WARNING", "CRITICAL", "UNKNOWN">;
53
54 export interface EventOptions {
55 aggregation_key?: string;
56 alert_type?: "info" | "warning" | "success" | "error";
57 date_happened?: Date;
58 hostname?: string;
59 priority?: "low" | "normal";
60 source_type_name?: string;
61 }
62
63 export type StatsCb = (error: Error | undefined, bytes: any) => void;
64
65 export class StatsD {
66 constructor(options?: ClientOptions);
67 childClient(options?: ChildClientOptions): StatsD;
68
69 increment(stat: string, tags?: Tags): void;
70 increment(stat: string | string[], value: number, sampleRate?: number, tags?: Tags, callback?: StatsCb): void;
71 increment(stat: string | string[], value: number, tags?: Tags, callback?: StatsCb): void;
72 increment(stat: string | string[], value: number, callback?: StatsCb): void;
73 increment(stat: string | string[], value: number, sampleRate?: number, callback?: StatsCb): void;
74
75 decrement(stat: string): void;
76 decrement(stat: string | string[], value: number, sampleRate?: number, tags?: Tags, callback?: StatsCb): void;
77 decrement(stat: string | string[], value: number, tags?: Tags, callback?: StatsCb): void;
78 decrement(stat: string | string[], value: number, callback?: StatsCb): void;
79 decrement(stat: string | string[], value: number, sampleRate?: number, callback?: StatsCb): void;
80
81 timing(stat: string | string[], value: number, sampleRate?: number, tags?: Tags, callback?: StatsCb): void;
82 timing(stat: string | string[], value: number, tags?: Tags, callback?: StatsCb): void;
83 timing(stat: string | string[], value: number, callback?: StatsCb): void;
84 timing(stat: string | string[], value: number, sampleRate?: number, callback?: StatsCb): void;
85
86 timer(func: (...args: any[]) => any, stat: string | string[], value: number, sampleRate?: number, tags?: Tags, callback?: StatsCb): (...args: any[]) => any;
87 timer(func: (...args: any[]) => any, stat: string | string[], value: number, tags?: Tags, callback?: StatsCb): (...args: any[]) => any;
88 timer(func: (...args: any[]) => any, stat: string | string[], value: number, callback?: StatsCb): (...args: any[]) => any;
89 timer(func: (...args: any[]) => any, stat: string | string[], value: number, sampleRate?: number, callback?: StatsCb): (...args: any[]) => any;
90
91 asyncTimer<T>(func: (...args: any[]) => Promise<T>, stat: string | string[], sampleRate?: number, tags?: Tags, callback?: StatsCb): (...args: any[]) => Promise<T>;
92 asyncTimer<T>(func: (...args: any[]) => Promise<T>, stat: string | string[], tags?: Tags, callback?: StatsCb): (...args: any[]) => Promise<T>;
93 asyncTimer<T>(func: (...args: any[]) => Promise<T>, stat: string | string[], callback?: StatsCb): (...args: any[]) => Promise<T>;
94 asyncTimer<T>(func: (...args: any[]) => Promise<T>, stat: string | string[], sampleRate?: number, callback?: StatsCb): (...args: any[]) => Promise<T>;
95
96 histogram(stat: string | string[], value: number, sampleRate?: number, tags?: Tags, callback?: StatsCb): void;
97 histogram(stat: string | string[], value: number, tags?: Tags, callback?: StatsCb): void;
98 histogram(stat: string | string[], value: number, callback?: StatsCb): void;
99 histogram(stat: string | string[], value: number, sampleRate?: number, callback?: StatsCb): void;
100
101 distribution(stat: string | string[], value: number, sampleRate?: number, tags?: Tags, callback?: StatsCb): void;
102 distribution(stat: string | string[], value: number, tags?: Tags, callback?: StatsCb): void;
103 distribution(stat: string | string[], value: number, callback?: StatsCb): void;
104 distribution(stat: string | string[], value: number, sampleRate?: number, callback?: StatsCb): void;
105
106 gauge(stat: string | string[], value: number, sampleRate?: number, tags?: Tags, callback?: StatsCb): void;
107 gauge(stat: string | string[], value: number, tags?: Tags, callback?: StatsCb): void;
108 gauge(stat: string | string[], value: number, callback?: StatsCb): void;
109 gauge(stat: string | string[], value: number, sampleRate?: number, callback?: StatsCb): void;
110
111 set(stat: string | string[], value: number, sampleRate?: number, tags?: Tags, callback?: StatsCb): void;
112 set(stat: string | string[], value: number, tags?: Tags, callback?: StatsCb): void;
113 set(stat: string | string[], value: number, callback?: StatsCb): void;
114 set(stat: string | string[], value: number, sampleRate?: number, callback?: StatsCb): void;
115
116 unique(stat: string | string[], value: number, sampleRate?: number, tags?: Tags, callback?: StatsCb): void;
117 unique(stat: string | string[], value: number, tags?: Tags, callback?: StatsCb): void;
118 unique(stat: string | string[], value: number, callback?: StatsCb): void;
119 unique(stat: string | string[], value: number, sampleRate?: number, callback?: StatsCb): void;
120
121 close(callback: (error?: Error) => void): void;
122
123 event(title: string, text?: string, options?: EventOptions, tags?: Tags, callback?: StatsCb): void;
124 event(title: string, text?: string, options?: EventOptions, callback?: StatsCb): void;
125 check(name: string, status: DatadogChecksValues, options?: CheckOptions, tags?: Tags, callback?: StatsCb): void;
126
127 public CHECKS: DatadogChecks;
128 public socket: dgram.Socket;
129 }
130}
131
132declare const StatsDClient: StatsD;
133export default StatsDClient;