Skip to content

Commit fcdbd0c

Browse files
Merge pull request #574 from shutter-network/feat/boot-no-limits
Remove limits on boot nodes
2 parents 836ed13 + eb4fe5a commit fcdbd0c

File tree

4 files changed

+45
-1
lines changed

4 files changed

+45
-1
lines changed

.circleci/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ jobs:
247247
docker buildx build \
248248
--push \
249249
--progress plain \
250-
--platform linux/arm64,linux/amd64 \
250+
--platform linux/amd64 \
251251
-f docker/build-src/rolling-shutter/Dockerfile \
252252
-t "${DOCKER_TAG}" \
253253
.

rolling-shutter/medley/metricsserver/metricsserver.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import (
1414
"github.com/shutter-network/rolling-shutter/rolling-shutter/medley/service"
1515
)
1616

17+
var startTime = time.Now()
18+
1719
var metricsGoBuildInfo = prometheus.NewGauge(
1820
prometheus.GaugeOpts{
1921
Namespace: "go",
@@ -26,9 +28,22 @@ var metricsGoBuildInfo = prometheus.NewGauge(
2628
},
2729
)
2830

31+
var metricsUptime = prometheus.NewGaugeFunc(
32+
prometheus.GaugeOpts{
33+
Namespace: "",
34+
Subsystem: "",
35+
Name: "uptime_seconds",
36+
Help: "Number of seconds the Node has been running",
37+
},
38+
func() float64 {
39+
return float64(time.Since(startTime).Milliseconds()) / 1000
40+
},
41+
)
42+
2943
func init() {
3044
metricsGoBuildInfo.Set(1)
3145
prometheus.MustRegister(metricsGoBuildInfo)
46+
prometheus.MustRegister(metricsUptime)
3247
}
3348

3449
type MetricsServer struct {

rolling-shutter/p2p/metrics.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"github.com/libp2p/go-libp2p/core/host"
66
"github.com/libp2p/go-libp2p/core/peer"
77
"github.com/prometheus/client_golang/prometheus"
8+
"github.com/rs/zerolog/log"
89
)
910

1011
var metricsP2PMessageValidationTime = prometheus.NewHistogramVec(
@@ -57,6 +58,16 @@ var metricsP2PPeerPing = prometheus.NewGaugeVec(
5758
[]string{"our_id", "peer_id"},
5859
)
5960

61+
var metricsP2PPeerUserAgent = prometheus.NewGaugeVec(
62+
prometheus.GaugeOpts{
63+
Namespace: "shutter",
64+
Subsystem: "p2p",
65+
Name: "peer_user_agent",
66+
Help: "Collection of the user agent of a peer ID.",
67+
},
68+
[]string{"peer_id", "user_agent"},
69+
)
70+
6071
func collectPeerAddresses(p peer.AddrInfo) {
6172
for _, multiAddr := range p.Addrs {
6273
metricsP2PPeerTuples.WithLabelValues(p.ID.String(), multiAddr.String()).Set(1)
@@ -69,6 +80,7 @@ func init() {
6980
prometheus.MustRegister(metricsP2PPeerTuples)
7081
prometheus.MustRegister(metricsP2PPeerConnectedness)
7182
prometheus.MustRegister(metricsP2PPeerPing)
83+
prometheus.MustRegister(metricsP2PPeerUserAgent)
7284
}
7385

7486
func updatePeersMetrics(h host.Host, peerIds mapset.Set[peer.ID]) {
@@ -80,5 +92,13 @@ func updatePeersMetrics(h host.Host, peerIds mapset.Set[peer.ID]) {
8092
if peerPing != 0 {
8193
metricsP2PPeerPing.WithLabelValues(ourID, p.String()).Set(peerPing.Seconds())
8294
}
95+
ua, err := h.Peerstore().Get(p, "AgentVersion")
96+
if err != nil {
97+
log.Warn().Str("peer", p.String()).Msg("Can't get user agent for peer")
98+
continue
99+
}
100+
if ua != nil {
101+
metricsP2PPeerUserAgent.WithLabelValues(p.String(), ua.(string)).Set(1)
102+
}
83103
}
84104
}

rolling-shutter/p2p/p2p.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"github.com/libp2p/go-libp2p/core/peer"
1313
"github.com/libp2p/go-libp2p/p2p/discovery/routing"
1414
"github.com/libp2p/go-libp2p/p2p/discovery/util"
15+
rcmgr "github.com/libp2p/go-libp2p/p2p/host/resource-manager"
1516
rhost "github.com/libp2p/go-libp2p/p2p/host/routed"
1617
"github.com/libp2p/go-libp2p/p2p/net/connmgr"
1718
"github.com/multiformats/go-multiaddr"
@@ -268,6 +269,14 @@ func createHost(
268269
libp2p.EnableRelayService(),
269270
)
270271
}
272+
if config.IsBootstrapNode || config.IsAccessNode {
273+
// No resource limits on boot and access nodes for now
274+
mgr, err := rcmgr.NewResourceManager(rcmgr.NewFixedLimiter(rcmgr.InfiniteLimits))
275+
if err != nil {
276+
return nil, nil, err
277+
}
278+
options = append(options, libp2p.ResourceManager(mgr))
279+
}
271280
}
272281

273282
p2pHost, err := libp2p.New(options...)

0 commit comments

Comments
 (0)