Skip to content

Conversation

trinhdn2
Copy link

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:

@trinhdn2 trinhdn2 closed this by deleting the head repository Jun 3, 2024
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.

2 participants