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

rpc: swap out timer metrics to histograms #25044

Merged
merged 1 commit into from Jun 8, 2022

Conversation

karalabe
Copy link
Member

@karalabe karalabe commented Jun 8, 2022

A while back we've added metrics to measure RPC serving times, but we used timers, which are not that useful since it's too 1 dimensional. This PR changes the timers to histograms, which allows us to have 2D heatmap plots: frequesncy of requests over time, groupped by serving times.

@karalabe karalabe added this to the 1.10.19 milestone Jun 8, 2022
@karalabe karalabe requested review from fjl and holiman as code owners June 8, 2022 13:27
Copy link
Contributor

@holiman holiman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@karalabe karalabe merged commit c4dab8c into ethereum:master Jun 8, 2022
sidhujag pushed a commit to syscoin/go-ethereum that referenced this pull request Jun 13, 2022
rpc: swap out timer metrics to histograms
abdulrabbani00 added a commit to cerc-io/go-ethereum that referenced this pull request Jun 15, 2022
commit 23bee16
Author: Péter Szilágyi <peterke@gmail.com>
Date:   Wed Jun 15 15:35:32 2022 +0300

    params: release Geth v1.10.19

commit d78d302
Author: Marius van der Wijden <m.vanderwijden@live.de>
Date:   Wed Jun 15 14:35:53 2022 +0200

    node: add info message when JWT secret is loaded (ethereum#25095)

    Co-authored-by: Felix Lange <fjl@twurst.com>

commit d8f9638
Author: Marius van der Wijden <m.vanderwijden@live.de>
Date:   Wed Jun 15 13:10:38 2022 +0200

    cmd, params: implement Gray Glacier hard-fork (EIP-5133) (ethereum#25088)

    * cmd/geth, params: implement Gray Glacier (EIP-5133)

    * cmd/evm: add gray glacier tests

    * params: nitpicks

    * params: fixes

commit 3060216
Author: rjl493456442 <garyrong0905@gmail.com>
Date:   Wed Jun 15 18:56:47 2022 +0800

    eth: introduce eth67 protocol (ethereum#24093)

    The new protocol version removes support for GetNodeData.
    See https://eips.ethereum.org/EIPS/eip-4938 for more information.

    Co-authored-by: Felix Lange <fjl@twurst.com>
    Co-authored-by: Martin Holst Swende <martin@swende.se>

commit 3273ad1
Author: lightclient <14004106+lightclient@users.noreply.github.com>
Date:   Wed Jun 15 09:29:23 2022 +0200

    eth: add missing period at end of sentences (ethereum#25058)

    eth: add missing periods on end of comments

commit bc013bc
Author: lmittmann <lmittmann@users.noreply.github.com>
Date:   Tue Jun 14 14:09:48 2022 +0200

    all: prefer `new(big.Int)` over `big.NewInt(0)` (ethereum#25087)

    minor performance improvement: `big.NewInt(0).Xxx` -> `new(big.Int).Xxx`

commit 8cfd121
Author: Marius van der Wijden <m.vanderwijden@live.de>
Date:   Tue Jun 14 14:08:43 2022 +0200

    common: improve pretty duration regex (ethereum#25073)

    * common: improve pretty duration regex

    * common: improve pretty duration regex

commit 6ad620d
Author: s7v7nislands <s7v7nislands@gmail.com>
Date:   Tue Jun 14 19:47:11 2022 +0800

    cmd/ethkey: use accounts.TextHash (ethereum#25069)

commit 1cf58c7
Author: lightclient <14004106+lightclient@users.noreply.github.com>
Date:   Tue Jun 14 12:59:05 2022 +0200

    readme,eth: remove references to eth.wiki (ethereum#25086)

commit f74bb3a
Author: Ivan Aracki <aracki.ivan@gmail.com>
Date:   Tue Jun 14 10:24:29 2022 +0200

    cmd/utils: update --ropsten description (ethereum#25078)

commit a907d7e
Author: Martin Holst Swende <martin@swende.se>
Date:   Mon Jun 13 16:24:45 2022 +0200

    all: more linters (ethereum#24783)

    This enables the following linters

    - typecheck
    - unused
    - staticcheck
    - bidichk
    - durationcheck
    - exportloopref
    - gosec

    WIth a few exceptions.

    - We use a deprecated protobuf in trezor. I didn't want to mess with that, since I cannot meaningfully test any changes there.
    - The deprecated TypeMux is used in a few places still, so the warning for it is silenced for now.
    - Using string type in context.WithValue is apparently wrong, one should use a custom type, to prevent collisions between different places in the hierarchy of callers. That should be fixed at some point, but may require some attention.
    - The warnings for using weak random generator are squashed, since we use a lot of random without need for cryptographic guarantees.

commit eb94896
Author: Gustavo Silva <GustavoRSSilva@users.noreply.github.com>
Date:   Fri Jun 10 16:47:06 2022 +0100

    Chore:  Minimal gramatical errors (signleton -> singleton) (ethereum#25057)

    core: fix typos

commit 3f5b5ec
Author: Luozhu <70309026+LuozhuZhang@users.noreply.github.com>
Date:   Fri Jun 10 16:57:32 2022 +0800

    internal/ethapi: fix typo in comment (ethereum#25056)

    typo error: keccack256 -> keccak256

commit 594e321
Author: int88 <106391185+int88@users.noreply.github.com>
Date:   Thu Jun 9 00:40:37 2022 +0800

    core/evm: fix error in comment (ethereum#25040)

    Co-authored-by: Martin Holst Swende <martin@swende.se>

commit f503718
Author: henridf <henri@dubfer.com>
Date:   Wed Jun 8 18:32:07 2022 +0200

    core/types: improve LogForStorage and ReceiptForStorage comments (ethereum#25032)

    Co-authored-by: Felix Lange <fjl@twurst.com>

commit 6160296
Author: Rajaram Gaunker <zimbabao@gmail.com>
Date:   Wed Jun 8 09:31:43 2022 -0700

    core/types: remove unused field 'td' in Block (ethereum#25010)

commit b60a08d
Author: Martin Holst Swende <martin@swende.se>
Date:   Wed Jun 8 15:36:25 2022 +0200

    eth/catalyst: remove unauthenticated 'engine' api (ethereum#24997)

    Removes engine from any unauthenticated RPC service.

commit c4dab8c
Merge: 138f0d7 106a162
Author: Péter Szilágyi <peterke@gmail.com>
Date:   Wed Jun 8 16:34:43 2022 +0300

    Merge pull request ethereum#25044 from karalabe/rpc-histograms

    rpc: swap out timer metrics to histograms

commit 106a162
Author: Péter Szilágyi <peterke@gmail.com>
Date:   Wed Jun 8 16:24:33 2022 +0300

    rpc: swap out timer metrics to histograms

commit 138f0d7
Author: Håvard Anda Estensen <haavard.ae@gmail.com>
Date:   Tue Jun 7 17:27:21 2022 +0200

    p2p: use errors.Is for error comparison (ethereum#24882)

    Co-authored-by: Felix Lange <fjl@twurst.com>

commit 41e7548
Author: Péter Szilágyi <peterke@gmail.com>
Date:   Tue Jun 7 13:49:07 2022 +0300

    eth, les, params: log chain config a bit saner (ethereum#24904)

    Previously on Geth startup we just logged the chain config is a semi-json-y format. Whilst that worked while we had a handful of hard-forks defined, currently it's kind of unwieldy.

    This PR converts that original data dump and converts it into a user friendly - alas multiline - log output.

commit 450f5da
Author: Seungbae.yu <72970043+dbadoy@users.noreply.github.com>
Date:   Tue Jun 7 19:46:27 2022 +0900

    accounts: increase parseURL test coverage (ethereum#25033)

    accounts/url: add test logic what check null string to parseURL()

commit 403624a
Author: Martin Holst Swende <martin@swende.se>
Date:   Tue Jun 7 12:15:22 2022 +0200

    p2p/discover: fix panicky test (ethereum#25038)

commit 5e8fa1d
Author: Marius van der Wijden <m.vanderwijden@live.de>
Date:   Tue Jun 7 09:06:34 2022 +0200

    tests/fuzzers/bls12381: fix blst pairing (ethereum#25037)

    * tests/fuzzers/bls12381: fix blst pairing

    * tests/fuzzers/bls12381: only build on gofuzz

    * tests/fuzzers/bls12381: remove unused code

    * tests/fuzzers/bls12381: remove unused code

commit 84b3272
Author: lwh <lwhile521@gmail.com>
Date:   Tue Jun 7 14:38:54 2022 +0800

    accounts/abi/bind: fix duplicate field names in the generated go struct (ethereum#24924)

    * accounts/abi/bind: fix duplicate field names in the generated go struct ethereum#24627

    * accounts, cmd/abigen: resolve name conflicts

    * ci lint, accounts/abi: remove unused function overloadedArgName

    Co-authored-by: Gary Rong <garyrong0905@gmail.com>

commit d9566e3
Author: Sina Mahmoodi <1591639+s1na@users.noreply.github.com>
Date:   Tue Jun 7 08:31:19 2022 +0200

    eth/filters: fix getLogs for pending block (ethereum#24949)

    * eth/filters: fix pending for getLogs

    * add pending method to test backend

    * fix block range validation

commit 7e9514b
Author: Martin Holst Swende <martin@swende.se>
Date:   Tue Jun 7 08:11:01 2022 +0200

    params: update ropsten terminal total difficulty block (ethereum#25018)

commit 6b3e6cb
Author: aaronbuchwald <aaron.buchwald56@gmail.com>
Date:   Tue Jun 7 02:02:04 2022 -0400

    trie: move locking into trieDB insert method (ethereum#25030)

    Move locking into trieDB insert function

commit 096daa9
Author: Ikko Ashimine <eltociear@gmail.com>
Date:   Tue Jun 7 00:55:16 2022 +0900

    eth/tracers: fix typo in 4byte_tracer_legacy.js (ethereum#25020)

    indentifier -> identifier

commit 10da980
Author: lightclient <14004106+lightclient@users.noreply.github.com>
Date:   Mon Jun 6 17:33:05 2022 +0200

    eth/api: use `hexutil.Bytes` for account range method (ethereum#25024)

    eth/api: use hexutil.Bytes for range at methods

commit 22defa5
Author: rjl493456442 <garyrong0905@gmail.com>
Date:   Mon Jun 6 23:14:55 2022 +0800

    all: introduce trie owner notion (ethereum#24750)

    * cmd, core/state, light, trie, eth: add trie owner notion

    * all: refactor

    * tests: fix goimports

    * core/state/snapshot: fix ineffasigns

    Co-authored-by: Martin Holst Swende <martin@swende.se>

commit c375ee9
Author: Martin Holst Swende <martin@swende.se>
Date:   Mon Jun 6 17:09:39 2022 +0200

    cmd/geth, core/state/snapshot: rework journal loading, implement account-check (ethereum#24765)

    * cmd/geth, core/state/snapshot: rework journal loading, implement account-check

    * core/state/snapshot, cmd/geth: polish code (#37)

    * core/state/snapshot: minor nits

    * core/state/snapshot: simplify error logic

    * cmd/geth: go format

    Co-authored-by: rjl493456442 <garyrong0905@gmail.com>

commit d6b5574
Author: Marius van der Wijden <m.vanderwijden@live.de>
Date:   Mon Jun 6 17:01:59 2022 +0200

    tests/fuzzers/bls12381: fix blst deserializing (ethereum#25036)

    * tests/fuzzers/bls12381: fix blst deserializing

    * tests/fuzzers/bls12381: fix blst deserializing

commit 997f1c4
Author: Paweł Bylica <chfast@gmail.com>
Date:   Fri Jun 3 10:40:14 2022 +0200

    core/vm: optimize jumpdest analysis (ethereum#23500)

    core/vm: optimize PUSH opcode discrimination

commit b453767
Author: s7v7nislands <s7v7nislands@gmail.com>
Date:   Fri Jun 3 15:25:25 2022 +0800

    go.mod: clean up (ethereum#25017)

commit 5bc4e8f
Author: Jonathan Le Brun <42697488+icyfry@users.noreply.github.com>
Date:   Thu Jun 2 20:26:44 2022 +0200

    go.mod: set go version to 1.17 (ethereum#24926)

    set go version to 1.17

commit 490c45c
Author: Ivan Kuznetsov <me@jeiwan.ru>
Date:   Fri Jun 3 01:25:12 2022 +0700

    consensus/misc: reduce allocations and improve comments in CalcBaseFee (ethereum#24958)

    * consensus/misc: reduce allocations in CalcBaseFee

    * consensus/misc: add formulas of CalcBaseFee

commit 6f075bf
Author: Martin Holst Swende <martin@swende.se>
Date:   Thu Jun 2 20:21:35 2022 +0200

    node: make jwt test less dependent on time (ethereum#25016)

commit 2227589
Author: Marius van der Wijden <m.vanderwijden@live.de>
Date:   Thu Jun 2 13:15:17 2022 +0200

    eth/catalyst: return 0x0 on Invalid block on top of pow block (ethereum#25006)

commit 3c6d6f7
Author: Marius van der Wijden <m.vanderwijden@live.de>
Date:   Thu Jun 2 13:13:28 2022 +0200

    tests/fuzzers/bls12381: Add BLST to fuzzing support (ethereum#24249)

    * tests/fuzzers/bls12381: added blst library

    * go.mod: added blst dependency

    * tests/fuzzers/bls12381: stuff

    * tests/fuzzers/bls12381: added blst to pairing fuzzer

commit d8a2305
Author: Martin Holst Swende <martin@swende.se>
Date:   Thu Jun 2 11:39:36 2022 +0200

    eth/tracers: add support for block overrides in debug_traceCall (ethereum#24871)

    This PR adds support for block overrides when doing debug_traceCall.

    - Previously, debug_traceCall against pending erroneously used a common.Hash{} stateroot when looking up the state, meaning that a totally empty state was used -- so it always failed,
    - With this change, we reject executing debug_traceCall against pending.
    - And we add ability to override all evm-visible header fields.

commit f9806dc
Author: rjl493456442 <garyrong0905@gmail.com>
Date:   Wed Jun 1 17:03:24 2022 +0800

    core: fix canonical hash marker update (ethereum#24996)

    * core: fix reorg

    * core: revert change for memory efficiency

    * core: revert changes

commit 8c0c043
Author: Marius van der Wijden <m.vanderwijden@live.de>
Date:   Tue May 31 11:11:50 2022 +0200

    core/beacon: prevent invalid logsBloom length panic (ethereum#24946)

    * core/beacon: prevent invalid logsBloom length panic

    * core/beacon: prevent negative baseFeePerGas

    * Update core/beacon/types.go

    Co-authored-by: Martin Holst Swende <martin@swende.se>

    * eth/catalys: go format

    Co-authored-by: Martin Holst Swende <martin@swende.se>

commit 03157b6
Author: Boqin Qin(秦 伯钦) <Bobbqqin@gmail.com>
Date:   Tue May 31 02:35:37 2022 +0800

    eth/filters: use buffered channel to avoid goroutine leak (ethereum#24928)

commit 2140aab
Author: Martin Holst Swende <martin@swende.se>
Date:   Mon May 30 14:45:27 2022 +0200

    contracs/checkpointoracle: fix directives (ethereum#24944)

    contracts/checkpointoracle: redefine go-generate logic

commit 93fe175
Author: Marius van der Wijden <m.vanderwijden@live.de>
Date:   Mon May 30 13:28:15 2022 +0200

    eth/catalyst: fix edge case in NewPayload (ethereum#24955)

    Fixes an issue where we would accept a NewPayload where the grandparent is already post ttd, and the parent still has a Difficulty

commit 8845227
Author: Harry Kalodner <harry.kalodner@gmail.com>
Date:   Mon May 30 07:00:23 2022 -0400

    consensus/clique: fix race condition (ethereum#24957)

    * consensus/clique: remove race condition

    * consensus/clique: fix one more signer data race

    Co-authored-by: Gary Rong <garyrong0905@gmail.com>

commit a10660b
Author: rjl493456442 <garyrong0905@gmail.com>
Date:   Mon May 30 18:37:42 2022 +0800

    cmd/geth: extend traverseRawState command (ethereum#24954)

    This PR adds node verification into traverseRawState command, so corrupted trie nodes can also be detected.

commit 86af788
Author: Marius van der Wijden <m.vanderwijden@live.de>
Date:   Mon May 30 08:42:06 2022 +0200

    core: use less memory during reorgs (ethereum#24616)

    This PR significantly reduces the memory consumption of a long reorg

commit be97427
Author: Marius van der Wijden <m.vanderwijden@live.de>
Date:   Fri May 27 08:23:55 2022 +0200

    params: set emergency ropsten TTD to 100_000_000_000_000_000_000_000 (ethereum#24975)

commit 0287e1a
Author: Martin Holst Swende <martin@swende.se>
Date:   Thu May 26 09:26:37 2022 +0200

    cmd/abigen: accept combined-json via stdin (ethereum#24960)

commit 0559a9a
Author: Sina Mahmoodi <1591639+s1na@users.noreply.github.com>
Date:   Thu May 26 09:22:10 2022 +0200

    cmd/geth: exit when freezer has legacy receipts (ethereum#24943)

    In ethereum#24028 we flagged a warning when finding legacy receipts in the freezer. This PR nudges users a bit more strongly by preventing geth from starting in this case until receipts have been migrated.

    It also adds a flag --ignore-legacy-receipts which when present allows geth to start normally.

commit d575a2d
Author: Felix Lange <fjl@twurst.com>
Date:   Wed May 25 14:44:52 2022 +0200

    params: begin v1.10.19 release cycle
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

2 participants