Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package vrf
import (
"github.com/bio-routing/bio-rd/routingtable/vrf/metrics"
)
// Metrics returns metrics for all VRFs
func Metrics() []*metrics.VRFMetrics {
vrfs := globalRegistry.list()
m := make([]*metrics.VRFMetrics, len(vrfs))
i := 0
for _, v := range vrfs {
m[i] = metricsForVRF(v)
i++
}
return m
}
func metricsForVRF(v *VRF) *metrics.VRFMetrics {
m := &metrics.VRFMetrics{
Name: v.Name(),
RIBs: make([]*metrics.RIBMetrics, 0),
}
for family, rib := range v.ribs {
m.RIBs = append(m.RIBs, &metrics.RIBMetrics{
Name: v.nameForRIB(rib),
AFI: family.afi,
SAFI: family.safi,
RouteCount: rib.Count(),
})
}
return m
}