@vector-im/matrix-bot-sdk
Version:
TypeScript/JavaScript SDK for Matrix bots and appservices
67 lines (66 loc) • 2.51 kB
TypeScript
import { IMetricListener } from "./IMetricListener";
import { IMetricContext } from "./contexts";
/**
* Tracks metrics.
* @category Metrics
*/
export declare class Metrics {
private listeners;
private requestStartTimes;
private uid;
/**
* Creates a new Metrics handler with optional parent handler. When
* a parent handler is defined, metrics will be automatically published
* upwards to the parent.
* @param {Metrics} parent Optional parent for upstream metrics.
*/
constructor(parent?: Metrics);
/**
* Registers a metric listener.
* @param {IMetricListener} listener The listener.
*/
registerListener(listener: IMetricListener): void;
/**
* De-registers a metric listener.
* @param {IMetricListener} listener The listener.
*/
unregisterListener(listener: IMetricListener): void;
/**
* Starts a timer on a metric.
* @param {string} metricName The metric name.
* @param {IMetricContext} context The metric context. Expected to have a unique ID.
*/
start(metricName: string, context: IMetricContext): void;
/**
* Ends a timer on a metric.
* @param {string} metricName The metric name.
* @param {IMetricContext} context The metric context. Expected to have a unique ID.
*/
end(metricName: string, context: IMetricContext): void;
/**
* Increments a metric.
* @param {string} metricName The metric name.
* @param {IMetricContext} context The metric context. Expected to have a unique ID.
* @param {number} amount The amount.
*/
increment(metricName: string, context: IMetricContext, amount: number): void;
/**
* Decrements a metric.
* @param {string} metricName The metric name.
* @param {IMetricContext} context The metric context. Expected to have a unique ID.
* @param {number} amount The amount.
*/
decrement(metricName: string, context: IMetricContext, amount: number): void;
/**
* Resets a metric.
* @param {string} metricName The metric name.
* @param {IMetricContext} context The metric context. Expected to have a unique ID.
*/
reset(metricName: string, context: IMetricContext): void;
/**
* Assigns a unique ID to the context object, returning it back.
* @param {IMetricContext} context The context to modify.
* @returns {IMetricContext} The provided context.
*/
assignUniqueContextId(context: IMetricContext): IMetricContext;
}