UNPKG

1.35 kBTypeScriptView Raw
1import { SystemLogLevel } from './Types';
2export declare type MetricScopeMap = Map<string, number>;
3export declare type MetricLabelMap = Map<string, number>;
4export declare type MetricResult = {
5 scope_id: number;
6 label_id: number;
7 start: number;
8 end: number;
9};
10export declare type SessionResult = {
11 metricLabels: string[];
12 metricScopes: string[];
13 results: MetricResult[];
14 sessionName: string;
15 sessionStart: number;
16 sessionEnd: number;
17};
18export declare type StartSessionOptions = {
19 keepLabels?: boolean;
20 keepScopes?: boolean;
21 keepResults?: boolean;
22};
23export declare type NewMeticOptions = {
24 label?: string;
25 scope?: string;
26};
27/**
28 * Used to collect metrics during runtime
29 */
30export interface Instrumentor {
31 beginSession(name: string, options?: StartSessionOptions): void;
32 endSession(): SessionResult;
33 newLabel(name: string): number;
34 newScope(name: string): number;
35 metric(options?: NewMeticOptions): MetricCollector;
36}
37interface InstrumentorConstructor {
38 new (): Instrumentor;
39 prototype: Instrumentor;
40}
41export interface MetricCollector {
42 start(): () => void;
43}
44declare const Instrumentor: InstrumentorConstructor;
45export default Instrumentor;
46export declare function SetInstrumentorLogger(newLogger: (level: SystemLogLevel, message: any) => void): void;