Registry / observability / nice-grpc-prometheus

nice-grpc-prometheus

JSON →
library0.2.11jsnpmunverified

Prometheus monitoring middleware for nice-grpc (version 0.2.11). Provides client and server interceptors to collect gRPC metrics (latency, request/response counts, active streams) using Prometheus default metrics. Integrates seamlessly with nice-grpc's interceptor pattern. No external dependencies beyond peer grpc-js and nice-grpc. Limited release cadence; last update in 2022. Differentiator: zero-config, opinionated Prometheus metrics for gRPC with nice-grpc.

npm install nice-grpc-prometheus
INSTALL
IMPORT
SIG · NICE-GRPC-PROMETHE
N
nice-grpc-prometheus
observabilityjavascriptv0.2.11
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

monitoringMiddleware
import { monitoringMiddleware } from 'nice-grpc-prometheus'
import monitoringMiddleware from 'nice-grpc-prometheus'
Named export, not default. Use curly braces.
createMonitoringClientInterceptors
import { createMonitoringClientInterceptors } from 'nice-grpc-prometheus/client'
import { createMonitoringClientInterceptors } from 'nice-grpc-prometheus/client'
Subpath export; ensure installing package supports subpath exports.
createMonitoringServerInterceptors
import { createMonitoringServerInterceptors } from 'nice-grpc-prometheus/server'
import { createMonitoringServerInterceptors } from 'nice-grpc-prometheus/server'
Subpath export for server interceptor.

Shows how to set up nice-grpc server with Prometheus monitoring middleware and expose metrics endpoint.

const GRPC = require('@grpc/grpc-js'); const { createServer, createClient } = require('nice-grpc'); const { monitoringMiddleware } = require('nice-grpc-prometheus'); const { register } = require('prom-client'); // Create server with middleware const server = createServer() .use(monitoringMiddleware()) .withMiddleware(monitoringMiddleware()); // Start server and register metrics endpoint const http = require('http'); http.createServer((req, res) => { if (req.url === '/metrics') { res.setHeader('Content-Type', register.contentType); res.end(register.metrics()); } }).listen(9090);
Debug
Known issues
gotchaEnsure prom-client is installed as a peer dependency.
fix
npm install prom-client
affects: *
deprecatedSubpath exports may not work with older TypeScript versions.
fix
Update TypeScript or use moduleResolution node16.
affects: <=4.1
gotchaMiddleware must be added to both server and client to collect full metrics.
fix
Apply monitoringMiddleware() to both server and client.
affects: >=0.2.0
Errors
Common errors & fixes
Cannot find module 'nice-grpc-prometheus/client' or its corresponding type declarations.
TypeScript not resolving subpath exports due to moduleResolution setting.
fix
Set moduleResolution to 'node16' or 'bundler' in tsconfig.json.
Error: No schema defined for service
Missing protobuf schema when creating gRPC server.
fix
Define service schema from .proto file using nice-grpc's loadPackageDefinition.
TypeError: monitoringMiddleware is not a function
Default import used instead of named import.
fix
Use { monitoringMiddleware } named import.
Upgrade
Version history
0.2.11latest on npm
Audit
Dependencies
@grpc/grpc-jsrequiredpeer dependency required by nice-grpc
nice-grpcrequiredpeer dependency; provides interceptor interface
prom-clientrequiredpeer dependency for Prometheus client
Agent activity
10 hits · last 30 days
node
8
OpenAI (training)
2
Resources
nice-grpc-prometheus — npm install nice-grpc-prometheus · libregistry