[Bug] No rpc metrics for non-`eth_getLogs` calls

未關閉
#4,690 1 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

評估

難度
4/5
預估耗時
3-5 天
新手友好度
30/100
Issue 類型
缺陷
描述清晰度
需要釐清
活躍度
停滯
技術堆疊
rust
領域
observability

研究方向

先閱讀 docs/metrics.md,並使用 metrics endpoint 重現報告,將 eth_rpc_request_duration 與此處顯示的 endpoint_request samples 進行比較。追蹤這些指標如何表示非 eth_getLogs 的 RPC 呼叫;當相關的 RPC 活動得到一致的公開,且文件中的指標與 endpoint 輸出相符時,即表示完成。

由索引模型根據 Issue 內容生成。

描述

bug Stale
Bug report

I'm running graph node version 0.31.0 (recently upgraded from 0.29.0) and I don't see any metrics for rpc calls other than getLogs over the past month

image

I'm running 15+ indexers with ~3k subgraphs.

I tried checking my datadog agent to see if there's some rate limiting happening at the agent level and nothing stood out to me. I tried curl-ing the metrics endpoints for a few of my graph nodes, and none of them had non-eth_getLogs values. I see the following when I curl the metrics endpoint

# HELP eth_rpc_request_duration Measures eth rpc request duration
# TYPE eth_rpc_request_duration histogram
eth_rpc_request_duration_bucket{method="eth_getLogs",provider="arbitrum-one-default",le="0.05"} 597
eth_rpc_request_duration_bucket{method="eth_getLogs",provider="arbitrum-one-default",le="0.1"} 1224
eth_rpc_request_duration_bucket{method="eth_getLogs",provider="arbitrum-one-default",le="0.2"} 3323
eth_rpc_request_duration_bucket{method="eth_getLogs",provider="arbitrum-one-default",le="0.4"} 3506
eth_rpc_request_duration_bucket{method="eth_getLogs",provider="arbitrum-one-default",le="0.8"} 3631
eth_rpc_request_duration_bucket{method="eth_getLogs",provider="arbitrum-one-default",le="1.6"} 3634
eth_rpc_request_duration_bucket{method="eth_getLogs",provider="arbitrum-one-default",le="3.2"} 3634
eth_rpc_request_duration_bucket{method="eth_getLogs",provider="arbitrum-one-default",le="6.4"} 3634
eth_rpc_request_duration_bucket{method="eth_getLogs",provider="arbitrum-one-default",le="12.8"} 3634
eth_rpc_request_duration_bucket{method="eth_getLogs",provider="arbitrum-one-default",le="25.6"} 3634
eth_rpc_request_duration_bucket{method="eth_getLogs",provider="arbitrum-one-default",le="+Inf"} 3634
eth_rpc_request_duration_sum{method="eth_getLogs",provider="arbitrum-one-default"} 472.76402704999924
eth_rpc_request_duration_count{method="eth_getLogs",provider="arbitrum-one-default"} 3634

I did more digging and I found another metric, endpoint_request which isn't documented in the metrics doc which seems to have more up to date info like the following

# HELP endpoint_request successfull request
# TYPE endpoint_request counter
endpoint_request{conn_type="firehose",provider="goldsky-firehose-goerli",req_type="unknown",result="success"} 1859
endpoint_request{conn_type="firehose",provider="goldsky-firehose-mainnet",req_type="unknown",result="success"} 141
endpoint_request{conn_type="firehose",provider="streamingfast-firehose-bsc",req_type="unknown",result="success"} 23
endpoint_request{conn_type="firehose",provider="streamingfast-firehose-goerli",req_type="unknown",result="success"} 20
endpoint_request{conn_type="firehose",provider="streamingfast-firehose-mainnet",req_type="unknown",result="failure"} 1
endpoint_request{conn_type="firehose",provider="streamingfast-firehose-mainnet",req_type="unknown",result="success"} 228
endpoint_request{conn_type="firehose",provider="streamingfast-firehose-matic",req_type="unknown",result="success"} 25
endpoint_request{conn_type="rpc",provider="arbitrum-goerli-archive",req_type="eth_getBlockByNumber",result="success"} 1
endpoint_request{conn_type="rpc",provider="arbitrum-goerli-archive",req_type="net_version",result="success"} 1
endpoint_request{conn_type="rpc",provider="arbitrum-goerli-archive",req_type="web3_clientVersion",result="success"} 1
endpoint_request{conn_type="rpc",provider="arbitrum-goerli-default",req_type="eth_chainId",result="success"} 2
endpoint_request{conn_type="rpc",provider="arbitrum-goerli-default",req_type="eth_getBlockByHash",result="failure"} 68
endpoint_request{conn_type="rpc",provider="arbitrum-goerli-default",req_type="eth_getBlockByHash",result="success"} 9582
endpoint_request{conn_type="rpc",provider="arbitrum-goerli-default",req_type="eth_getBlockByNumber",result="failure"} 26
endpoint_request{conn_type="rpc",provider="arbitrum-goerli-default",req_type="eth_getBlockByNumber",result="success"} 3420
endpoint_request{conn_type="rpc",provider="arbitrum-goerli-default",req_type="eth_getTransactionReceipt",result="failure"} 100
endpoint_request{conn_type="rpc",provider="arbitrum-goerli-default",req_type="eth_getTransactionReceipt",result="success"} 24571
endpoint_request{conn_type="rpc",provider="arbitrum-goerli-default",req_type="net_version",result="success"} 1
endpoint_request{conn_type="rpc",provider="arbitrum-goerli-default",req_type="web3_clientVersion",result="success"} 1
endpoint_request{conn_type="rpc",provider="arbitrum-goerli-traces",req_type="eth_getBlockByNumber",result="success"} 1
endpoint_request{conn_type="rpc",provider="arbitrum-goerli-traces",req_type="net_version",result="success"} 1
endpoint_request{conn_type="rpc",provider="arbitrum-goerli-traces",req_type="web3_clientVersion",result="success"} 1
endpoint_request{conn_type="rpc",provider="arbitrum-nova",req_type="eth_getBlockByHash",result="success"} 8394
endpoint_request{conn_type="rpc",provider="arbitrum-nova",req_type="eth_getBlockByNumber",result="success"} 4065
endpoint_request{conn_type="rpc",provider="arbitrum-nova",req_type="eth_getTransactionReceipt",result="success"} 17247
endpoint_request{conn_type="rpc",provider="arbitrum-nova",req_type="net_version",result="success"} 1
endpoint_request{conn_type="rpc",provider="arbitrum-nova",req_type="web3_clientVersion",result="success"} 1
endpoint_request{conn_type="rpc",provider="arbitrum-nova-archive",req_type="eth_getBlockByNumber",result="success"} 1
endpoint_request{conn_type="rpc",provider="arbitrum-nova-archive",req_type="net_version",result="success"} 1
endpoint_request{conn_type="rpc",provider="arbitrum-nova-archive",req_type="web3_clientVersion",result="success"} 1
Relevant log output

No response

IPFS hash

No response

Subgraph name or link to explorer

No response

Some information to help us out
  • Tick this box if this bug is caused by a regression found in the latest release.
  • Tick this box if this bug is specific to the hosted service.
  • I have searched the issue tracker to make sure this issue is not a duplicate.
OS information

None

主要語言
Rust
星號
3.2k
分支
1.1k
平均合併
4 天 1 小時
30 天內合併 PR
1

貢獻指南

開啟貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

graphprotocol/graph-node 的其他 Issue

查看 graphprotocol/graph-node 的全部 Issue

相似的 Issue

更多 Rust Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。