From 33746391a4779268bcebf692183bb68ec1c7b6e7 Mon Sep 17 00:00:00 2001
From: capossele <angelocapossele@gmail.com>
Date: Wed, 17 Jun 2020 19:00:01 +0100
Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Refactor=20FPC=20metric=20?=
 =?UTF-8?q?events?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 dapps/valuetransfers/fpc.go |  8 ++++---
 packages/vote/net/server.go | 46 ++++++++++++++++++-------------------
 2 files changed, 27 insertions(+), 27 deletions(-)

diff --git a/dapps/valuetransfers/fpc.go b/dapps/valuetransfers/fpc.go
index d48bcd71..850202eb 100644
--- a/dapps/valuetransfers/fpc.go
+++ b/dapps/valuetransfers/fpc.go
@@ -125,7 +125,8 @@ func runFPC() {
 			return vote.Like
 		}, config.Node.GetString(CfgFPCBindAddress),
 			metrics.Events().FPCInboundBytes,
-			metrics.Events().FPCOutboundBytes)
+			metrics.Events().FPCOutboundBytes,
+			metrics.Events().QueryReceived)
 
 		go func() {
 			if err := voterServer.Run(); err != nil {
@@ -194,8 +195,9 @@ func (pog *PeerOpinionGiver) Query(ctx context.Context, ids []string) (vote.Opin
 		return nil, fmt.Errorf("unable to query opinions: %w", err)
 	}
 
-	metrics.Events().FPCInboundBytes.Trigger(proto.Size(reply))
-	metrics.Events().FPCOutboundBytes.Trigger(proto.Size(query))
+	metrics.Events().FPCInboundBytes.Trigger(uint64(proto.Size(reply)))
+	metrics.Events().FPCOutboundBytes.Trigger(uint64(proto.Size(query)))
+
 	// convert int32s in reply to opinions
 	opinions := make(vote.Opinions, len(reply.Opinion))
 	for i, intOpn := range reply.Opinion {
diff --git a/packages/vote/net/server.go b/packages/vote/net/server.go
index 3b8672d6..d6207a73 100644
--- a/packages/vote/net/server.go
+++ b/packages/vote/net/server.go
@@ -16,30 +16,26 @@ import (
 type OpinionRetriever func(id string) vote.Opinion
 
 // New creates a new VoterServer.
-func New(voter vote.Voter, opnRetriever OpinionRetriever, bindAddr string, netEvents ...*events.Event) *VoterServer {
-	vs := &VoterServer{
-		voter:        voter,
-		opnRetriever: opnRetriever,
-		bindAddr:     bindAddr,
+func New(voter vote.Voter, opnRetriever OpinionRetriever, bindAddr string, netRxEvent, netTxEvent, queryReceivedEvent *events.Event) *VoterServer {
+	return &VoterServer{
+		voter:              voter,
+		opnRetriever:       opnRetriever,
+		bindAddr:           bindAddr,
+		netRxEvent:         netRxEvent,
+		netTxEvent:         netTxEvent,
+		queryReceivedEvent: queryReceivedEvent,
 	}
-	if netEvents == nil && len(netEvents) < 2 {
-		return vs
-	}
-
-	vs.netEventRX = netEvents[0]
-	vs.netEventTX = netEvents[1]
-
-	return vs
 }
 
 // VoterServer is a server which responds to opinion queries.
 type VoterServer struct {
-	voter        vote.Voter
-	opnRetriever OpinionRetriever
-	bindAddr     string
-	grpcServer   *grpc.Server
-	netEventRX   *events.Event
-	netEventTX   *events.Event
+	voter              vote.Voter
+	opnRetriever       OpinionRetriever
+	bindAddr           string
+	grpcServer         *grpc.Server
+	netRxEvent         *events.Event
+	netTxEvent         *events.Event
+	queryReceivedEvent *events.Event
 }
 
 func (vs *VoterServer) Opinion(ctx context.Context, req *QueryRequest) (*QueryReply, error) {
@@ -56,14 +52,16 @@ func (vs *VoterServer) Opinion(ctx context.Context, req *QueryRequest) (*QueryRe
 		reply.Opinion[i] = int32(vs.opnRetriever(id))
 	}
 
-	if vs.netEventRX != nil {
-		vs.netEventRX.Trigger(proto.Size(req))
+	if vs.netRxEvent != nil {
+		vs.netRxEvent.Trigger(uint64(proto.Size(req)))
+	}
+	if vs.netTxEvent != nil {
+		vs.netTxEvent.Trigger(uint64(proto.Size(reply)))
 	}
-	if vs.netEventTX != nil {
-		vs.netEventTX.Trigger(proto.Size(reply))
+	if vs.queryReceivedEvent != nil {
+		vs.queryReceivedEvent.Trigger(&metrics.QueryReceivedEvent{OpinionCount: len(req.Id)})
 	}
 
-	metrics.Events().QueryReceived.Trigger(&metrics.QueryReceivedEvent{OpinionCount: len(req.Id)})
 	return reply, nil
 }
 
-- 
GitLab