1.0.2 • Published 10 months ago

@nooks-ai/metrics v1.0.2

Weekly downloads
-
License
ISC
Repository
github
Last release
10 months ago

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 new hot-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.
1.0.2

10 months ago

1.0.1

10 months ago

1.0.0

10 months ago