@@ -9,14 +9,15 @@ import (
9
9
10
10
// OpenVPNCollector collects metrics from openvpn status files
11
11
type OpenVPNCollector struct {
12
- logger log.Logger
13
- name string
14
- statusFile string
15
- LastUpdated * prometheus.Desc
16
- ConnectedClients * prometheus.Desc
17
- BytesReceived * prometheus.Desc
18
- BytesSent * prometheus.Desc
19
- ConnectedSince * prometheus.Desc
12
+ logger log.Logger
13
+ name string
14
+ statusFile string
15
+ LastUpdated * prometheus.Desc
16
+ ConnectedClients * prometheus.Desc
17
+ BytesReceived * prometheus.Desc
18
+ BytesSent * prometheus.Desc
19
+ ConnectedSince * prometheus.Desc
20
+ MaxBcastMcastQueueLen * prometheus.Desc
20
21
}
21
22
22
23
// NewOpenVPNCollector returns a new OpenVPNCollector
@@ -38,6 +39,12 @@ func NewOpenVPNCollector(logger log.Logger, name string, statusFile string) *Ope
38
39
[]string {"server" },
39
40
nil ,
40
41
),
42
+ MaxBcastMcastQueueLen : prometheus .NewDesc (
43
+ prometheus .BuildFQName (namespace , "" , "max_bcast_mcast_queue_len" ),
44
+ "MaxBcastMcastQueueLen of the server" ,
45
+ []string {"server" },
46
+ nil ,
47
+ ),
41
48
BytesReceived : prometheus .NewDesc (
42
49
prometheus .BuildFQName (namespace , "" , "bytes_received" ),
43
50
"Amount of data received via the connection" ,
@@ -66,6 +73,7 @@ func (c *OpenVPNCollector) Describe(ch chan<- *prometheus.Desc) {
66
73
ch <- c .BytesSent
67
74
ch <- c .BytesReceived
68
75
ch <- c .ConnectedSince
76
+ ch <- c .MaxBcastMcastQueueLen
69
77
}
70
78
71
79
// Collect is called by the Prometheus registry when collecting metrics.
@@ -128,4 +136,10 @@ func (c *OpenVPNCollector) Collect(ch chan<- prometheus.Metric) {
128
136
float64 (status .UpdatedAt .Unix ()),
129
137
c .name ,
130
138
)
139
+ ch <- prometheus .MustNewConstMetric (
140
+ c .MaxBcastMcastQueueLen ,
141
+ prometheus .GaugeValue ,
142
+ float64 (status .GlobalStats .MaxBcastMcastQueueLen ),
143
+ c .name ,
144
+ )
131
145
}
0 commit comments