go-ethereum/p2p
Daniel Liu 6beee27886 metrics, cmd/XDC: change init-process of metrics (#30814)
This PR modifies how the metrics library handles `Enabled`: previously,
the package `init` decided whether to serve real metrics or just
dummy-types.

This has several drawbacks:
- During pkg init, we need to determine whether metrics are enabled or
not. So we first hacked in a check if certain geth-specific
commandline-flags were enabled. Then we added a similar check for
geth-env-vars. Then we almost added a very elaborate check for
toml-config-file, plus toml parsing.

- Using "real" types and dummy types interchangeably means that
everything is hidden behind interfaces. This has a performance penalty,
and also it just adds a lot of code.

This PR removes the interface stuff, uses concrete types, and allows for
the setting of Enabled to happen later. It is still assumed that
`metrics.Enable()` is invoked early on.

The somewhat 'heavy' operations, such as ticking meters and exp-decay,
now checks the enable-flag to prevent resource leak.

The change may be large, but it's mostly pretty trivial, and from the
last time I gutted the metrics, I ensured that we have fairly good test
coverage.

---------

Co-authored-by: Felix Lange <fjl@twurst.com>
2024-12-13 14:00:14 +08:00
..
discover log: remove lazy, remove unused interfaces, unexport methods (#28622) 2024-11-15 10:02:42 +08:00
discv5 crypto: switch over to upstream sha3 package (#18390) 2024-12-09 17:48:59 +08:00
enr crypto: switch over to upstream sha3 package (#18390) 2024-12-09 17:48:59 +08:00
nat all: replace strings.Replace with string.ReplaceAll (#24835) 2024-12-08 11:51:14 +08:00
netutil p2p/netutil: fix staticcheck warning SA1021: not use bytes.Equal to compare net.IPs 2024-11-01 11:35:42 +08:00
protocols Revert EIP-2464 2024-08-24 02:31:27 +07:00
simulations all: ensure resp.body closed (#26969) 2024-12-13 14:00:13 +08:00
testing all: fix staticcheck warning ST1006: don't use generic name self 2024-10-25 21:30:54 +08:00
dial.go Revert EIP-2464 2024-08-24 02:31:27 +07:00
dial_test.go Revert EIP-2464 2024-08-24 02:31:27 +07:00
message.go all: fix staticcheck warning ST1006: don't use generic name self 2024-10-25 21:30:54 +08:00
message_test.go all: fix go vet warnings 2016-04-15 11:17:27 +02:00
metrics.go metrics, cmd/XDC: change init-process of metrics (#30814) 2024-12-13 14:00:14 +08:00
peer.go rpc: Add admin_addTrustedPeer and admin_removeTrustedPeer. (#16333) 2024-11-13 09:33:18 +08:00
peer_error.go all: fix staticcheck warning ST1006: don't use generic name self 2024-10-25 21:30:54 +08:00
peer_test.go p2p: fix staticcheck warning SA4030: rand.Intn(1) always returns 0 2024-11-01 11:32:56 +08:00
protocol.go Revert EIP-2464 2024-08-24 02:31:27 +07:00
rlpx.go crypto: add SignatureLength constant and use it everywhere (#19996) 2024-12-09 17:48:59 +08:00
rlpx_test.go crypto: switch over to upstream sha3 package (#18390) 2024-12-09 17:48:59 +08:00
server.go core, metrics, p2p: expose various counter metrics for grafana (#19692) 2024-12-13 14:00:11 +08:00
server_test.go crypto: switch over to upstream sha3 package (#18390) 2024-12-09 17:48:59 +08:00