Skip to content

Commit

Permalink
les/vflux/server: moved related metrics to vfs package
Browse files Browse the repository at this point in the history
  • Loading branch information
zsfelfoldi committed Mar 29, 2021
1 parent f1000d6 commit 4a56ebe
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 35 deletions.
17 changes: 5 additions & 12 deletions les/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,12 +73,9 @@ var (
serverConnectionGauge = metrics.NewRegisteredGauge("les/connection/server", nil)
clientConnectionGauge = metrics.NewRegisteredGauge("les/connection/client", nil)

totalCapacityGauge = metrics.NewRegisteredGauge("les/server/totalCapacity", nil)
totalRechargeGauge = metrics.NewRegisteredGauge("les/server/totalRecharge", nil)
totalConnectedGauge = metrics.NewRegisteredGauge("les/server/totalConnected", nil)
blockProcessingTimer = metrics.NewRegisteredTimer("les/server/blockProcessingTime", nil)
capacityQueryZeroMeter = metrics.NewRegisteredMeter("les/server/capQueryZero", nil)
capacityQueryNonZeroMeter = metrics.NewRegisteredMeter("les/server/capQueryNonZero", nil)
totalCapacityGauge = metrics.NewRegisteredGauge("les/server/totalCapacity", nil)
totalRechargeGauge = metrics.NewRegisteredGauge("les/server/totalRecharge", nil)
blockProcessingTimer = metrics.NewRegisteredTimer("les/server/blockProcessingTime", nil)

requestServedMeter = metrics.NewRegisteredMeter("les/server/req/avgServedTime", nil)
requestServedTimer = metrics.NewRegisteredTimer("les/server/req/servedTime", nil)
Expand All @@ -100,12 +97,8 @@ var (
sqServedGauge = metrics.NewRegisteredGauge("les/server/servingQueue/served", nil)
sqQueuedGauge = metrics.NewRegisteredGauge("les/server/servingQueue/queued", nil)

clientConnectedMeter = metrics.NewRegisteredMeter("les/server/clientEvent/connected", nil)
clientActivatedMeter = metrics.NewRegisteredMeter("les/server/clientEvent/activated", nil)
clientDeactivatedMeter = metrics.NewRegisteredMeter("les/server/clientEvent/deactivated", nil)
clientDisconnectedMeter = metrics.NewRegisteredMeter("les/server/clientEvent/disconnected", nil)
clientFreezeMeter = metrics.NewRegisteredMeter("les/server/clientEvent/freeze", nil)
clientErrorMeter = metrics.NewRegisteredMeter("les/server/clientEvent/error", nil)
clientFreezeMeter = metrics.NewRegisteredMeter("les/server/clientEvent/freeze", nil)
clientErrorMeter = metrics.NewRegisteredMeter("les/server/clientEvent/error", nil)

requestRTT = metrics.NewRegisteredTimer("les/client/req/rtt", nil)
requestSendDelay = metrics.NewRegisteredTimer("les/client/req/sendDelay", nil)
Expand Down
2 changes: 0 additions & 2 deletions les/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -138,8 +138,6 @@ func NewLesServer(node *node.Node, e ethBackend, config *ethconfig.Config) (*Les
}
srv.fcManager.SetCapacityLimits(srv.minCapacity, srv.maxCapacity, srv.minCapacity*2)
srv.clientPool = vfs.NewClientPool(lesDb, srv.minCapacity, defaultConnectedBias, mclock.System{}, issync)
srv.clientPool.AddMetrics(totalConnectedGauge, clientConnectedMeter, clientDisconnectedMeter,
clientActivatedMeter, clientDeactivatedMeter, capacityQueryZeroMeter, capacityQueryNonZeroMeter)
srv.clientPool.Start()
srv.clientPool.SetDefaultFactors(defaultPosFactors, defaultNegFactors)
srv.vfluxServer.Register(srv.clientPool, "les", "Ethereum light client service")
Expand Down
26 changes: 5 additions & 21 deletions les/vflux/server/clientpool.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ import (
"github.com/ethereum/go-ethereum/les/utils"
"github.com/ethereum/go-ethereum/les/vflux"
"github.com/ethereum/go-ethereum/log"
"github.com/ethereum/go-ethereum/metrics"
"github.com/ethereum/go-ethereum/p2p/enode"
"github.com/ethereum/go-ethereum/p2p/nodestate"
"github.com/ethereum/go-ethereum/rlp"
Expand Down Expand Up @@ -71,8 +70,6 @@ type ClientPool struct {

minCap uint64 // the minimal capacity value allowed for any client
capReqNode *enode.Node // node that is requesting capacity change; only used inside NSM operation

capacityQueryZeroMeter, capacityQueryNonZeroMeter metrics.Meter
}

// clientPeer represents a peer in the client pool. None of the callbacks should block.
Expand Down Expand Up @@ -138,14 +135,8 @@ func NewClientPool(balanceDb ethdb.KeyValueStore, minCap uint64, connectedBias t
c.UpdateCapacity(newCap, node == cp.capReqNode)
}
})
return cp
}

// AddMetrics adds metrics to the client pool. Should be called before Start().
func (cp *ClientPool) AddMetrics(totalConnectedGauge metrics.Gauge,
clientConnectedMeter, clientDisconnectedMeter, clientActivatedMeter, clientDeactivatedMeter,
capacityQueryZeroMeter, capacityQueryNonZeroMeter metrics.Meter) {

// add metrics
cp.ns.SubscribeState(nodestate.MergeFlags(cp.setup.activeFlag, cp.setup.inactiveFlag), func(node *enode.Node, oldState, newState nodestate.Flags) {
if oldState.IsEmpty() && !newState.IsEmpty() {
clientConnectedMeter.Mark(1)
Expand All @@ -162,8 +153,7 @@ func (cp *ClientPool) AddMetrics(totalConnectedGauge metrics.Gauge,
_, connected := cp.Active()
totalConnectedGauge.Update(int64(connected))
})
cp.capacityQueryZeroMeter = capacityQueryZeroMeter
cp.capacityQueryNonZeroMeter = capacityQueryNonZeroMeter
return cp
}

// Start starts the client pool. Should be called before Register/Unregister.
Expand Down Expand Up @@ -295,9 +285,7 @@ func (cp *ClientPool) serveCapQuery(id enode.ID, freeID string, data []byte) []b
}
result := make(vflux.CapacityQueryReply, len(req.AddTokens))
if !cp.synced() {
if cp.capacityQueryZeroMeter != nil {
cp.capacityQueryZeroMeter.Mark(1)
}
capacityQueryZeroMeter.Mark(1)
reply, _ := rlp.EncodeToBytes(&result)
return reply
}
Expand Down Expand Up @@ -328,13 +316,9 @@ func (cp *ClientPool) serveCapQuery(id enode.ID, freeID string, data []byte) []b
})
// add first result to metrics (don't care about priority client multi-queries yet)
if result[0] == 0 {
if cp.capacityQueryZeroMeter != nil {
cp.capacityQueryZeroMeter.Mark(1)
}
capacityQueryZeroMeter.Mark(1)
} else {
if cp.capacityQueryNonZeroMeter != nil {
cp.capacityQueryNonZeroMeter.Mark(1)
}
capacityQueryNonZeroMeter.Mark(1)
}
reply, _ := rlp.EncodeToBytes(&result)
return reply
Expand Down
33 changes: 33 additions & 0 deletions les/vflux/server/metrics.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// Copyright 2021 The go-ethereum Authors
// This file is part of the go-ethereum library.
//
// The go-ethereum library is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// The go-ethereum library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.

package server

import (
"github.com/ethereum/go-ethereum/metrics"
)

var (
totalConnectedGauge = metrics.NewRegisteredGauge("vflux/server/totalConnected", nil)

clientConnectedMeter = metrics.NewRegisteredMeter("vflux/server/clientEvent/connected", nil)
clientActivatedMeter = metrics.NewRegisteredMeter("vflux/server/clientEvent/activated", nil)
clientDeactivatedMeter = metrics.NewRegisteredMeter("vflux/server/clientEvent/deactivated", nil)
clientDisconnectedMeter = metrics.NewRegisteredMeter("vflux/server/clientEvent/disconnected", nil)

capacityQueryZeroMeter = metrics.NewRegisteredMeter("vflux/server/capQueryZero", nil)
capacityQueryNonZeroMeter = metrics.NewRegisteredMeter("vflux/server/capQueryNonZero", nil)
)

0 comments on commit 4a56ebe

Please sign in to comment.