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);
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.
fixSet moduleResolution to 'node16' or 'bundler' in tsconfig.json.
Error: No schema defined for service
Missing protobuf schema when creating gRPC server.
fixDefine service schema from .proto file using nice-grpc's loadPackageDefinition.
TypeError: monitoringMiddleware is not a function
Default import used instead of named import.
fixUse { monitoringMiddleware } named import. Audit
Dependencies
@grpc/grpc-jsrequiredpeer dependency required by nice-grpc
nice-grpcrequiredpeer dependency; provides interceptor interface
prom-clientrequiredpeer dependency for Prometheus client