Prometheus monitoring for nice-grpc. Uses prom-client. Metrics mostly mimic go-grpc-prometheus.
npm install nice-grpc-prometheus
Import nice-grpc-prometheus
metrics registry and
merge it with the global registry:
import {register as globalRegistry, Registry} from 'prom-client';
import {registry as niceGrpcRegistry} from 'nice-grpc-prometheus';
// use `await mergedRegistry.metrics()` to export all metrics
const mergedRegistry = Registry.merge([globalRegistry, niceGrpcRegistry]);
Attach middleware as the first one on the server:
import {createServer} from 'nice-grpc';
import {prometheusServerMiddleware} from 'nice-grpc-prometheus';
const server = createServer()
.use(prometheusServerMiddleware())
.use(/* ... other middleware */);
Attach middleware as the first one on the client:
import {createClientFactory} from 'nice-grpc';
import {prometheusClientMiddleware} from 'nice-grpc-prometheus';
const clientFactory = createClientFactory()
.use(prometheusClientMiddleware())
.use(/* ... other middleware */);
const client = clientFactory.create(/* ... */);
Following metrics are provided:
Name | Type | Description | Labels |
---|---|---|---|
grpc_server_started_total |
Counter | Total number of RPCs started on the server. | Common (see below) |
grpc_server_handled_total |
Counter | Total number of RPCs completed on the server, regardless of success or failure. | Common + grpc_code |
grpc_server_msg_received_total |
Counter | Total number of RPC stream messages received by the server. | Common |
grpc_server_msg_sent_total |
Counter | Total number of gRPC stream messages sent by the server. | Common |
grpc_server_handling_seconds |
Histogram | Histogram of response latency (seconds) of gRPC that had been application-level handled by the server. | Common + grpc_code |
Name | Type | Description | Labels |
---|---|---|---|
grpc_client_started_total |
Counter | Total number of RPCs started on the client. | Common |
grpc_client_handled_total |
Counter | Total number of RPCs completed on the client, regardless of success or failure. | Common + grpc_code |
grpc_client_msg_received_total |
Counter | Total number of RPC stream messages received by the client. | Common |
grpc_client_msg_sent_total |
Counter | Total number of gRPC stream messages sent by the client. | Common |
grpc_client_handling_seconds |
Histogram | Histogram of response latency (seconds) of the gRPC until it is finished by the application. | Common + grpc_code |
Common labels:
Name | Description | Examples |
---|---|---|
grpc_type |
Call type | unary , server_stream , client_stream , bidi_stream |
grpc_path |
Full path of a method | /my.package.MyService/MyMethod |
grpc_service |
Full service name with package | my.package.MyService |
grpc_method |
Method name | MyMethod |
Metrics that correspond to finished calls have extra label:
Name | Description | Examples |
---|---|---|
grpc_code |
Status code name | OK , CANCELLED , NOT_FOUND |