Skip to content

Commit e14fea6

Browse files
authored
metrics: collect total netdev sent/received bytes (algorand#6108)
1 parent 8d678c3 commit e14fea6

File tree

19 files changed

+475
-67
lines changed

19 files changed

+475
-67
lines changed

config/localTemplate.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,9 @@ type Local struct {
357357
// EnableRuntimeMetrics exposes Go runtime metrics in /metrics and via node_exporter.
358358
EnableRuntimeMetrics bool `version[22]:"false"`
359359

360+
// EnableNetDevMetrics exposes network interface total bytes sent/received metrics in /metrics
361+
EnableNetDevMetrics bool `version[34]:"false"`
362+
360363
// TelemetryToLog configures whether to record messages to node.log that are normally only sent to remote event monitoring.
361364
TelemetryToLog bool `version[5]:"true"`
362365

config/local_defaults.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ var defaultLocal = Local{
7373
EnableIncomingMessageFilter: false,
7474
EnableLedgerService: false,
7575
EnableMetricReporting: false,
76+
EnableNetDevMetrics: false,
7677
EnableOutgoingNetworkMessageFiltering: true,
7778
EnableP2P: false,
7879
EnableP2PHybridMode: false,

daemon/algod/server.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,10 @@ func (s *Server) Start() {
330330
metrics.DefaultRegistry().Register(metrics.NewRuntimeMetrics())
331331
}
332332

333+
if cfg.EnableNetDevMetrics {
334+
metrics.DefaultRegistry().Register(metrics.NetDevMetrics)
335+
}
336+
333337
if cfg.EnableMetricReporting {
334338
if err := s.metricCollector.Start(context.Background()); err != nil {
335339
// log this error

go.mod

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ require (
3131
github.com/ipfs/go-log v1.0.5
3232
github.com/ipfs/go-log/v2 v2.5.1
3333
github.com/jmoiron/sqlx v1.2.0
34+
github.com/jsimonetti/rtnetlink v1.4.2
3435
github.com/karalabe/usb v0.0.3-0.20230711191512-61db3e06439c
3536
github.com/labstack/echo/v4 v4.9.1
3637
github.com/libp2p/go-libp2p v0.33.2
@@ -52,7 +53,7 @@ require (
5253
golang.org/x/crypto v0.21.0
5354
golang.org/x/exp v0.0.0-20240213143201-ec583247a57a
5455
golang.org/x/sync v0.6.0
55-
golang.org/x/sys v0.18.0
56+
golang.org/x/sys v0.20.0
5657
golang.org/x/text v0.14.0
5758
gopkg.in/sohlich/elogrus.v3 v3.0.0-20180410122755-1fa29e2f2009
5859
pgregory.net/rapid v0.6.2
@@ -109,6 +110,7 @@ require (
109110
github.com/jbenet/goprocess v0.1.4 // indirect
110111
github.com/jmespath/go-jmespath v0.3.0 // indirect
111112
github.com/josharian/intern v1.0.0 // indirect
113+
github.com/josharian/native v1.1.0 // indirect
112114
github.com/klauspost/compress v1.17.6 // indirect
113115
github.com/klauspost/cpuid/v2 v2.2.7 // indirect
114116
github.com/koron/go-ssdp v0.0.4 // indirect
@@ -129,6 +131,8 @@ require (
129131
github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd // indirect
130132
github.com/mattn/go-colorable v0.1.12 // indirect
131133
github.com/mattn/go-isatty v0.0.20 // indirect
134+
github.com/mdlayher/netlink v1.7.2 // indirect
135+
github.com/mdlayher/socket v0.4.1 // indirect
132136
github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b // indirect
133137
github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc // indirect
134138
github.com/minio/sha256-simd v1.0.1 // indirect

go.sum

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL
6363
github.com/chrismcguire/gobberish v0.0.0-20150821175641-1d8adb509a0e h1:CHPYEbz71w8DqJ7DRIq+MXyCQsdibK08vdcQTY4ufas=
6464
github.com/chrismcguire/gobberish v0.0.0-20150821175641-1d8adb509a0e/go.mod h1:6Xhs0ZlsRjXLIiSMLKafbZxML/j30pg9Z1priLuha5s=
6565
github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs=
66+
github.com/cilium/ebpf v0.12.3 h1:8ht6F9MquybnY97at+VDZb3eQQr8ev79RueWeVaEcG4=
67+
github.com/cilium/ebpf v0.12.3/go.mod h1:TctK1ivibvI3znr66ljgi4hqOT8EYQjz1KWBfb1UVgM=
6668
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
6769
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
6870
github.com/cockroachdb/datadriven v1.0.0/go.mod h1:5Ib8Meh+jk1RlHIXej6Pzevx/NLlNvQB9pmSBZErGA4=
@@ -304,6 +306,10 @@ github.com/jmoiron/sqlx v1.2.0 h1:41Ip0zITnmWNR/vHV+S4m+VoUivnWY5E4OJfLZjCJMA=
304306
github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks=
305307
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
306308
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
309+
github.com/josharian/native v1.1.0 h1:uuaP0hAbW7Y4l0ZRQ6C9zfb7Mg1mbFKry/xzDAfmtLA=
310+
github.com/josharian/native v1.1.0/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w=
311+
github.com/jsimonetti/rtnetlink v1.4.2 h1:Df9w9TZ3npHTyDn0Ev9e1uzmN2odmXd0QX+J5GTEn90=
312+
github.com/jsimonetti/rtnetlink v1.4.2/go.mod h1:92s6LJdE+1iOrw+F2/RO7LYI2Qd8pPpFNNUYW06gcoM=
307313
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
308314
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
309315
github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
@@ -406,6 +412,10 @@ github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwp
406412
github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
407413
github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw=
408414
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
415+
github.com/mdlayher/netlink v1.7.2 h1:/UtM3ofJap7Vl4QWCPDGXY8d3GIY2UGSDbK+QWmY8/g=
416+
github.com/mdlayher/netlink v1.7.2/go.mod h1:xraEF7uJbxLhc5fpHL4cPe221LI2bdttWlU+ZGLfQSw=
417+
github.com/mdlayher/socket v0.4.1 h1:eM9y2/jlbs1M615oshPQOHZzj6R6wMT7bX5NPiQvn2U=
418+
github.com/mdlayher/socket v0.4.1/go.mod h1:cAqeGjoufqdxWkD7DkpyS+wcefOtmu5OQ8KuoJGIReA=
409419
github.com/mediocregopher/mediocre-go-lib v0.0.0-20181029021733-cb65787f37ed/go.mod h1:dSsfyI2zABAdhcbvkXqgxOxrCsbYeHCPgrZkku60dSg=
410420
github.com/mediocregopher/radix/v3 v3.3.0/go.mod h1:EmfVyvspXz1uZEyPBMyGK+kjWiKQGvsUt6O3Pj+LDCQ=
411421
github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4=
@@ -763,8 +773,8 @@ golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBc
763773
golang.org/x/sys v0.0.0-20211103235746-7861aae1554b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
764774
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
765775
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
766-
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
767-
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
776+
golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
777+
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
768778
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
769779
golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8=
770780
golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58=

installer/config.json.example

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
"EnableIncomingMessageFilter": false,
5353
"EnableLedgerService": false,
5454
"EnableMetricReporting": false,
55+
"EnableNetDevMetrics": false,
5556
"EnableOutgoingNetworkMessageFiltering": true,
5657
"EnableP2P": false,
5758
"EnableP2PHybridMode": false,

test/testdata/configs/config-v34.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
"EnableIncomingMessageFilter": false,
5353
"EnableLedgerService": false,
5454
"EnableMetricReporting": false,
55+
"EnableNetDevMetrics": false,
5556
"EnableOutgoingNetworkMessageFiltering": true,
5657
"EnableP2P": false,
5758
"EnableP2PHybridMode": false,

test/testdata/deployednettemplates/recipes/scenario1s/genesis.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"VersionModifier": "",
44
"ConsensusProtocol": "future",
55
"FirstPartKeyRound": 0,
6-
"LastPartKeyRound": 22000,
6+
"LastPartKeyRound": 5000,
77
"PartKeyDilution": 0,
88
"Wallets": [
99
{

0 commit comments

Comments
 (0)