Skip to content

Commit

Permalink
PR feedback - utilize metricsString() function on NodeStateType to si…
Browse files Browse the repository at this point in the history
…mplify code.
  • Loading branch information
jmurret committed Aug 30, 2022
1 parent 9400939 commit eaed0c4
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 25 deletions.
26 changes: 5 additions & 21 deletions net.go
Original file line number Diff line number Diff line change
Expand Up @@ -87,13 +87,6 @@ const (
maxPushPullRequests = 128 // Maximum number of concurrent push/pull requests
)

const (
nodeStateAlive = "alive"
nodeStateDead = "dead"
nodeStateLeft = "left"
nodeStateSuspect = "suspect"
)

// ping request sent directly to node
type ping struct {
SeqNo uint32
Expand Down Expand Up @@ -1015,22 +1008,13 @@ func (m *Memberlist) sendLocalState(conn net.Conn, join bool, streamLabel string
m.nodeLock.RUnlock()

nodeStateCounts := make(map[string]int)
nodeStateCounts[nodeStateAlive] = 0
nodeStateCounts[nodeStateLeft] = 0
nodeStateCounts[nodeStateDead] = 0
nodeStateCounts[nodeStateSuspect] = 0
nodeStateCounts[StateAlive.metricsString()] = 0
nodeStateCounts[StateLeft.metricsString()] = 0
nodeStateCounts[StateDead.metricsString()] = 0
nodeStateCounts[StateSuspect.metricsString()] = 0

for _, n := range localNodes {
switch n.State {
case StateAlive:
nodeStateCounts[nodeStateAlive]++
case StateDead:
nodeStateCounts[nodeStateDead]++
case StateSuspect:
nodeStateCounts[nodeStateSuspect]++
case StateLeft:
nodeStateCounts[nodeStateLeft]++
}
nodeStateCounts[n.State.metricsString()]++
}

for nodeState, cnt := range nodeStateCounts {
Expand Down
15 changes: 15 additions & 0 deletions state.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,21 @@ import (

type NodeStateType int

func (t NodeStateType) metricsString() string {
switch t {
case StateAlive:
return "alive"
case StateDead:
return "dead"
case StateSuspect:
return "suspect"
case StateLeft:
return "left"
default:
return ""
}
}

const (
StateAlive NodeStateType = iota
StateSuspect
Expand Down
8 changes: 4 additions & 4 deletions state_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2275,10 +2275,10 @@ func TestMemberlist_PushPull(t *testing.T) {

instancesMetricName := "consul.usage.test.memberlist.node.instances"
verifyGaugeExists(t, "consul.usage.test.memberlist.size.local", sink)
verifyGaugeExists(t, fmt.Sprintf("%s;node_state=%s", instancesMetricName, nodeStateAlive), sink)
verifyGaugeExists(t, fmt.Sprintf("%s;node_state=%s", instancesMetricName, nodeStateDead), sink)
verifyGaugeExists(t, fmt.Sprintf("%s;node_state=%s", instancesMetricName, nodeStateLeft), sink)
verifyGaugeExists(t, fmt.Sprintf("%s;node_state=%s", instancesMetricName, nodeStateSuspect), sink)
verifyGaugeExists(t, fmt.Sprintf("%s;node_state=%s", instancesMetricName, StateAlive.metricsString()), sink)
verifyGaugeExists(t, fmt.Sprintf("%s;node_state=%s", instancesMetricName, StateDead.metricsString()), sink)
verifyGaugeExists(t, fmt.Sprintf("%s;node_state=%s", instancesMetricName, StateLeft.metricsString()), sink)
verifyGaugeExists(t, fmt.Sprintf("%s;node_state=%s", instancesMetricName, StateSuspect.metricsString()), sink)
})
}

Expand Down

0 comments on commit eaed0c4

Please sign in to comment.