
Security News
Bun 1.2.19 Adds Isolated Installs for Better Monorepo Support
Bun 1.2.19 introduces isolated installs for smoother monorepo workflows, along with performance boosts, new tooling, and key compatibility fixes.
nestjs-hot-shots
Advanced tools
Hot-shots Module for Nest.js Framework. A Node.js client for Etsy's StatsD server, Datadog's DogStatsD server, and InfluxDB's Telegraf StatsD server.
Features
For questions and support please use the Issues.
$ npm i nestjs-hot-shots hot-shots
$ yarn add nestjs-hot-shots hot-shots
$ pnpm add nestjs-hot-shots hot-shots
Once the installation process is complete, we can import the HotShotsModule
into the root AppModule
:
import { Module } from '@nestjs/common'
import { HotShotsModule } from 'nestjs-hot-shots';
@Module({
imports: [
HotShotsModule.forRoot({
port: 8020,
globalTags: { env: process.env.NODE_ENV }
})
]
})
export class AppModule {
}
Then inject StatsD
provider for use hot-shots
:
import { Injectable } from '@nestjs/common';
import { StatsD } from 'hot-shots';
@Injectable()
export class AppMetrics {
public constructor(private readonly metrics: StatsD) {
}
public metricStuff() {
this.metrics.increment('somecounter');
}
}
You can use the MetricsService
for metrics collection. It`s factory for creating metrics. It provides a set of methods to create different
types of metrics, such as counters, gauges, and histograms.
import { Controller, Post } from '@nestjs/common';
import { MetricsService } from 'nestjs-hot-shots';
import { StatsD } from 'hot-shots';
@Controller
export class BooksController {
private readonly booksAdded = this.metricsService.getCounter('books.added.count');
public constructor(private readonly metricsService: MetricsService) {
}
@Post()
public async addBook() {
// some logic
this.booksAdded.add();
}
}
Method | Description |
---|---|
getCounter(name: string) | Returns a counter metric with the given name. |
getGauge(name: string) | Returns a gauge metric with the given name. |
getHistogram(name: string) | Returns a histogram metric with the given name. |
getTimer(name: string) | Returns a timer metric with the given name. |
getUpDownCounter(name: string) | Returns an up-down counter metric with the given name. |
You can use the HttpMetricsMiddleware
to collect HTTP metrics. It will automatically collect metrics for all incoming requests and
outgoing responses.
import { Module } from '@nestjs/common';
import { HotShotsModule } from 'nestjs-hot-shots';
import { HttpMetricsMiddleware } from 'nestjs-hot-shots';
@Module({
imports: [
HotShotsModule.forRoot({
...
})
]
})
export class AppModule {
public configure(consumer: MiddlewareConsumer) {
consumer
.apply(HttpMetricsMiddleware)
.forRoutes('*');
}
}
Metric | Description | Type |
---|---|---|
http_server_request_count | Total number of requests received by the server | Counter |
http_server_response_count | Total number of responses sent by the server | Counter |
http_server_duration | Total time taken to process requests | Histogram |
http_server_request_size | Size of incoming bytes. | Histogram |
http_server_response_size | Size of outgoing bytes. | Histogram |
http_server_response_success_count | Total number of all successful responses. | Counter |
http_server_response_error_count | Total number of server error responses. | Counter |
http_client_request_error_count | Total number of client error requests. | Counter |
http_server_abort_count | Total number of aborted requests | Counter |
Inspired by nestjs-otel
See the hot-shots module for more details.
FAQs
Hot-shots Module for Nest.js Framework
The npm package nestjs-hot-shots receives a total of 7,092 weekly downloads. As such, nestjs-hot-shots popularity was classified as popular.
We found that nestjs-hot-shots demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Bun 1.2.19 introduces isolated installs for smoother monorepo workflows, along with performance boosts, new tooling, and key compatibility fixes.
Security News
Popular npm packages like eslint-config-prettier were compromised after a phishing attack stole a maintainer’s token, spreading malicious updates.
Security News
/Research
A phishing attack targeted developers using a typosquatted npm domain (npnjs.com) to steal credentials via fake login pages - watch out for similar scams.