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:
Bryan Boreham committed 2020-07-30 11:07:33 +00:00
1 parent 865e2b726f
commit 2cc5c635c9
5 files changed
+17 -6

No files matched your search

+12 -5
View File
@@ -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, "")
}
}
}},
+1 -1
View File
@@ -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
+1
View File
@@ -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
+1
View File
@@ -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)
+2
View File
@@ -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