Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apply metrics in rpc package #436

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

trinhdn2
Copy link
Contributor

Prerequisite

Checklist

  • Adds JSON RPC call metrics.
  • Implement serve time histograms, which allows us to have 2D heatmap plots: frequency of requests over time, groupped by serving times.

Added metrics:

  • rpc_duration_all_count - all RPC methods serving timer
  • rpc_duration_{method}_{success|failure} - RPC method level histogram metrics, separated by RPC method and execution status
  • rpc_duration_{method}_{success|failure}_count - serving timer of a specific RPC method
  • rpc_requests - total RPC requests served gauge
  • rpc_success - total RPC success requests served gauge
  • rpc_failure - total RPC failed requests served gauge

Example of new metrics under prometheus format:

# TYPE rpc_duration_GetBlockByHash_success_count counter
rpc_duration_GetBlockByHash_success_count 4

# TYPE rpc_duration_GetBlockByHash_success summary
rpc_duration_GetBlockByHash_success {quantile="0.5"} 74.5
rpc_duration_GetBlockByHash_success {quantile="0.75"} 162.25
rpc_duration_GetBlockByHash_success {quantile="0.95"} 181
rpc_duration_GetBlockByHash_success {quantile="0.99"} 181
rpc_duration_GetBlockByHash_success {quantile="0.999"} 181
rpc_duration_GetBlockByHash_success {quantile="0.9999"} 181

# TYPE rpc_duration_GetBlockByNumber_success_count counter
rpc_duration_GetBlockByNumber_success_count 7

# TYPE rpc_duration_GetBlockByNumber_success summary
rpc_duration_GetBlockByNumber_success {quantile="0.5"} 112
rpc_duration_GetBlockByNumber_success {quantile="0.75"} 127
rpc_duration_GetBlockByNumber_success {quantile="0.95"} 128
rpc_duration_GetBlockByNumber_success {quantile="0.99"} 128
rpc_duration_GetBlockByNumber_success {quantile="0.999"} 128
rpc_duration_GetBlockByNumber_success {quantile="0.9999"} 128

# TYPE rpc_duration_all_count counter
rpc_duration_all_count 26

# TYPE rpc_duration_all summary
rpc_duration_all {quantile="0.5"} 73416.5
rpc_duration_all {quantile="0.75"} 116281.5
rpc_duration_all {quantile="0.95"} 1.0382708499999982e+06
rpc_duration_all {quantile="0.99"} 1.468333e+06
rpc_duration_all {quantile="0.999"} 1.468333e+06
rpc_duration_all {quantile="0.9999"} 1.468333e+06

# TYPE rpc_failure gauge
rpc_failure 0

# TYPE rpc_requests gauge
rpc_requests 26

# TYPE rpc_success gauge
rpc_success 26

References:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant