An open-source entry in TopGit's GitHub warehouse: grpc-ecosystem/java-grpc-prometheus, 236 stars, Java. Java interceptors which can be used to monitor Grpc services using Prometheus.
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
Java interceptors which can be used to monitor Grpc services using Prometheus.
Features
The features of this library include two monitoring grpc interceptors, MonitoringServerInterceptor and MonitoringClientInterceptor. These interceptors can be attached separately to grpc servers and client stubs respectively. For each RPC, the interceptors increment the following Prometheus metrics, broken down by method type, service name, method name, and response code:
Server
grpc_server_started_total: Total number of RPCs started on the server.
grpc_server_handled_total: Total number of RPCs completed on the server, regardless of success or failure.
grpc_server_handled_latency_seconds: (Optional) Histogram of response latency of rpcs handled by the server, in seconds.
grpc_server_msg_received_total: Total number of stream messages received from the client.
grpc_server_msg_sent_total: Total number of stream messages sent by the server.
Client
grpc_client_started_total: Total number of RPCs started on the client.
grpc_client_completed: Total number of RPCs completed on the client, regardless of success or failure.
grpc_client_completed_latency_seconds: (Optional) Histogram of rpc response latency for completed rpcs, in seconds.
grpc_client_msg_received_total: Total number of stream messages received from the server.
grpc_client_msg_sent_total: Total number of stream messages sent by the client.
Note that by passing a Configuration instance to the interceptors, it is possible to configure the following:
Whether or not a latency histogram is recorded for RPCs.
Which histogram buckets to use for the latency metrics.
Which Prometheus CollectorRegistry the metrics get registered with.
(Optional) Which headers you want to be applied to metrics as added labels.
The server interceptors have an identical implementation in Golang, go-grpc-prometheus, brought to you by @MWitkow.
Usage
This library is made available on the dinowernli GitHub Maven repository.
Once the repository is set up, the library can be included using the following artifact id:
me.dinowernli:java-grpc-prometheus:0.3.0
In order to attach the monitoring server interceptor to your gRPC server, you can do the following:
If you want to instruct the interceptor to use a specific header of interest, for example "header-1" as a label on all
produced metrics, you can do the following, which will cause the metrics to carry an extra label "header_1" whose
value is filled from the header value on each request:
If you're using Spring Boot 2 with micrometer-registry-prometheus you should inject the CollectorRegistry that is already provided in the application context:
@Autowired
private CollectorRegistry collectorRegistry;
// use the provided registry
MonitoringServerInterceptor monitoringInterceptor =
MonitoringServerInterceptor.create(Configuration.cheapMetricsOnly().withCollectorRegistry(collectorRegistry));
Does grpc-ecosystem/java-grpc-prometheus have any tags?
TopGit's last sync did not record any GitHub topics for grpc-ecosystem/java-grpc-prometheus. GitHub topics appear in the right sidebar of a repository page; that's the authoritative place to check.
How active is development on grpc-ecosystem/java-grpc-prometheus?
The most recent commit recorded on grpc-ecosystem/java-grpc-prometheus was 3.5 years ago, based on the GitHub push timestamp. The repository has 80 forks — one of the better signals of community interest.
How many stars does grpc-ecosystem/java-grpc-prometheus have?
grpc-ecosystem/java-grpc-prometheus has 236 GitHub stars — refresh the page for the live number, or check github.com/grpc-ecosystem/java-grpc-prometheus. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
What is grpc-ecosystem/java-grpc-prometheus?
grpc-ecosystem/java-grpc-prometheus (grpc-ecosystem/java-grpc-prometheus) is a Java project on GitHub. From the project's own README: Java interceptors which can be used to monitor Grpc services using Prometheus.
What language is grpc-ecosystem/java-grpc-prometheus written in?
grpc-ecosystem/java-grpc-prometheus is written primarily in Java. GitHub's language field is based on the largest share of bytes in the default branch.
Read full README in the tab above.
Want a second opinion on java-grpc-prometheus?
Ask an AI that can read this page — one click and you get its take on java-grpc-prometheus.