@nooks-ai/metrics
v1.0.2
Published
Node Metrics collection library for use by Nooks
Downloads
6,412
Readme
Metrics
The Metrics
class provides a simple interface for recording metrics using the StatsD protocol. It wraps the hot-shots
library and provides additional functionality for creating timers and shutting down the client.
Constructor
new Metrics(options?: HotShots.ClientOptions): Metrics
Creates a new Metrics
instance with the specified options.
Parameters
options
(optional): An object containing the following properties:host
(optional): The hostname or IP address of the StatsD server. Defaults to localhost.prefix
(optional): The prefix to use for all metric names. Defaults to an empty string.
Methods
createTimer(name: string, tags?: string[]): Timer
Creates a new Timer
instance with the specified name and tags.
Parameters
name
: The name of the timer.tags
(optional): An array of tags to apply to the timer.
Returns
A new Timer
instance.
shutdown(): void
Closes the underlying StatsD client.
Function Overloads
time<T>(name: string, fn: () => Promise<T>): Promise<T>
Records the execution time of a promise-returning function.
Parameters
name
: The name of the timer.fn
: A function that returns a promise.
Returns
A promise that resolves to the result of the input function.
time<T>(name: string, fn: () => T): T
Records the execution time of a synchronous function.
Parameters
name
: The name of the timer.fn
: A function that returns a value.
Returns
The result of the input function.
time<T>(name: string, tags: string[], fn: () => Promise<T>): Promise<T>
Records the execution time of a promise-returning function with additional tags.
Parameters
name
: The name of the timer.tags
: An array of tags to apply to the timer.fn
: A function that returns a promise.
Returns
A promise that resolves to the result of the input function.
time<T>(name: string, tags: string[], fn: () => T): T
Records the execution time of a synchronous function with additional tags.
Parameters
name
: The name of the timer.tags
: An array of tags to apply to the timer.fn
: A function that returns a value.
Returns
The result of the input function.
Timer
The Timer
class provides a simple interface for recording the execution time of a block of code.
Constructor
new Timer(name: string, tags?: string[], client?: StatsD, startTime?: number): Timer
Creates a new Timer
instance with the specified name and tags.
Parameters
name
: The name of the timer.tags
(optional): An array of tags to apply to the timer.client
(optional): The StatsD client to use for recording metrics. Defaults to a newhot-shots
client.startTime
(optional): The start time of the timer, in milliseconds since the Unix epoch. Defaults to the current time.
Methods
end(tags?: string[], sampleRate?: number, value?: number): void
Records the execution time of the timer.
Parameters
tags
(optional): An array of tags to apply to the timer.sampleRate
(optional): The sample rate to use for recording the metric. Defaults to 1.value
(optional): The value to use for recording the metric. Defaults to the elapsed time since the timer was created.
Properties
startTime
: The start time of the timer, in milliseconds since the Unix epoch.