Add 'encrypted' label to connections metric
Extend tests to check it shows up. Tests assume that metrics are published with metrics in alphabetical order, which appears to be the case for now.
This commit is contained in:
1 parent
865e2b726f
commit
2cc5c635c9
5 files changed
+17
-6
No files matched your search
+12
-5
@@ -44,22 +44,29 @@ func uint64Counter(desc *prometheus.Desc, val uint64, labels ...string) promethe
|
||||
}
|
||||
|
||||
var metrics = []metric{
|
||||
{desc("weave_connections", "Number of peer-to-peer connections.", "state", "type"),
|
||||
{desc("weave_connections", "Number of peer-to-peer connections.", "state", "type", "encryption"),
|
||||
func(s WeaveStatus, desc *prometheus.Desc, ch chan<- prometheus.Metric) {
|
||||
counts := make(map[ /*state*/ string]map[ /*type*/ string]int)
|
||||
counts := make(map[ /*state*/ string]map[ /*type*/ string]struct{ encrypted, unencrypted int })
|
||||
for _, state := range allConnectionStates {
|
||||
counts[state] = make(map[string]int)
|
||||
counts[state] = make(map[string]struct{ encrypted, unencrypted int })
|
||||
}
|
||||
for _, conn := range s.Router.Connections {
|
||||
typeName := "unknown"
|
||||
if t, ok := conn.Attrs["name"]; ok {
|
||||
typeName = t.(string)
|
||||
}
|
||||
counts[conn.State][typeName]++
|
||||
c := counts[conn.State][typeName]
|
||||
if e, ok := conn.Attrs["encrypted"]; ok && e.(bool) {
|
||||
c.encrypted++
|
||||
} else {
|
||||
c.unencrypted++
|
||||
}
|
||||
counts[conn.State][typeName] = c
|
||||
}
|
||||
for state, stateCounts := range counts {
|
||||
for connType, count := range stateCounts {
|
||||
ch <- intGauge(desc, count, state, connType)
|
||||
ch <- intGauge(desc, count.encrypted, state, connType, "yes")
|
||||
ch <- intGauge(desc, count.unencrypted, state, connType, "")
|
||||
}
|
||||
}
|
||||
}},
|
||||
|
||||
@@ -24,6 +24,6 @@ weave_on $HOST2 attach $C2/24 c2
|
||||
|
||||
wait_for_x network_tester_status "network tester status"
|
||||
assert "echo $status" "pass"
|
||||
assert "connections_metric $HOST1 state=\\\"established\\\"" "1"
|
||||
assert "connections_metric $HOST1 encryption=\\\"\\\",state=\\\"established\\\"" "1"
|
||||
|
||||
end_suite
|
||||
@@ -16,5 +16,6 @@ assert_raises "exec_on $HOST1 c1 $PING $C2"
|
||||
|
||||
assert_raises "weave_on $HOST1 status connections | grep -P 'encrypted *sleeve'"
|
||||
assert_raises "weave_on $HOST2 status connections | grep -P 'encrypted *sleeve'"
|
||||
assert "connections_metric $HOST1 encryption=\\\"yes\\\"",state=\\\"established\\\" "1"
|
||||
|
||||
end_suite
|
||||
@@ -44,6 +44,7 @@ weave_on $HOST2 launch --password wfvAwt7sj $HOST1
|
||||
|
||||
assert_raises "weave_on $HOST1 status connections | grep -P 'encrypted *fastdp'"
|
||||
assert_raises "weave_on $HOST2 status connections | grep -P 'encrypted *fastdp'"
|
||||
assert "connections_metric $HOST1 encryption=\\\"yes\\\"",state=\\\"established\\\" "1"
|
||||
|
||||
PCAP1=$(mktemp)
|
||||
PCAP2=$(mktemp)
|
||||
|
||||
@@ -17,6 +17,7 @@ weave_on $HOST1 launch --password wfvAwt7sj --trusted-subnets $HOST2_CIDR
|
||||
weave_on $HOST2 launch --password wfvAwt7sj $HOST1
|
||||
assert_raises "weave_on $HOST1 status connections | grep encrypted"
|
||||
assert_raises "weave_on $HOST2 status connections | grep encrypted"
|
||||
assert "connections_metric $HOST1 encryption=\\\"yes\\\"",state=\\\"established\\\" "1"
|
||||
|
||||
weave_on $HOST1 stop
|
||||
weave_on $HOST2 stop
|
||||
@@ -26,5 +27,6 @@ weave_on $HOST1 launch --password wfvAwt7sj --trusted-subnets $HOST2_CIDR
|
||||
weave_on $HOST2 launch --password wfvAwt7sj --trusted-subnets $HOST1_CIDR $HOST1
|
||||
assert_raises "weave_on $HOST1 status connections | grep unencrypted"
|
||||
assert_raises "weave_on $HOST2 status connections | grep unencrypted"
|
||||
assert "connections_metric $HOST1 encryption=\\\"\\\"",state=\\\"established\\\" "1"
|
||||
|
||||
end_suite
|
||||
Reference in new issue
Block a user