@@ -12,6 +12,7 @@ type OpenVPNCollector struct {
12
12
logger log.Logger
13
13
name string
14
14
statusFile string
15
+ collectClientMetrics bool
15
16
LastUpdated * prometheus.Desc
16
17
ConnectedClients * prometheus.Desc
17
18
BytesReceived * prometheus.Desc
@@ -21,11 +22,12 @@ type OpenVPNCollector struct {
21
22
}
22
23
23
24
// NewOpenVPNCollector returns a new OpenVPNCollector
24
- func NewOpenVPNCollector (logger log.Logger , name string , statusFile string ) * OpenVPNCollector {
25
+ func NewOpenVPNCollector (logger log.Logger , name string , statusFile string , collectClientMetrics bool ) * OpenVPNCollector {
25
26
return & OpenVPNCollector {
26
- logger : logger ,
27
- statusFile : statusFile ,
28
- name : name ,
27
+ logger : logger ,
28
+ statusFile : statusFile ,
29
+ name : name ,
30
+ collectClientMetrics : collectClientMetrics ,
29
31
30
32
LastUpdated : prometheus .NewDesc (
31
33
prometheus .BuildFQName (namespace , "" , "last_updated" ),
@@ -70,10 +72,12 @@ func NewOpenVPNCollector(logger log.Logger, name string, statusFile string) *Ope
70
72
func (c * OpenVPNCollector ) Describe (ch chan <- * prometheus.Desc ) {
71
73
ch <- c .LastUpdated
72
74
ch <- c .ConnectedClients
73
- ch <- c .BytesSent
74
- ch <- c .BytesReceived
75
- ch <- c .ConnectedSince
76
75
ch <- c .MaxBcastMcastQueueLen
76
+ if c .collectClientMetrics {
77
+ ch <- c .BytesSent
78
+ ch <- c .BytesReceived
79
+ ch <- c .ConnectedSince
80
+ }
77
81
}
78
82
79
83
// Collect is called by the Prometheus registry when collecting metrics.
@@ -100,24 +104,26 @@ func (c *OpenVPNCollector) Collect(ch chan<- prometheus.Metric) {
100
104
"bytesReceived" , client .BytesReceived ,
101
105
"bytesSent" , client .BytesSent ,
102
106
)
103
- ch <- prometheus .MustNewConstMetric (
104
- c .BytesReceived ,
105
- prometheus .GaugeValue ,
106
- client .BytesReceived ,
107
- c .name , client .CommonName ,
108
- )
109
- ch <- prometheus .MustNewConstMetric (
110
- c .BytesSent ,
111
- prometheus .GaugeValue ,
112
- client .BytesSent ,
113
- c .name , client .CommonName ,
114
- )
115
- ch <- prometheus .MustNewConstMetric (
116
- c .ConnectedSince ,
117
- prometheus .GaugeValue ,
118
- float64 (client .ConnectedSince .Unix ()),
119
- c .name , client .CommonName ,
120
- )
107
+ if c .collectClientMetrics {
108
+ ch <- prometheus .MustNewConstMetric (
109
+ c .BytesReceived ,
110
+ prometheus .GaugeValue ,
111
+ client .BytesReceived ,
112
+ c .name , client .CommonName ,
113
+ )
114
+ ch <- prometheus .MustNewConstMetric (
115
+ c .BytesSent ,
116
+ prometheus .GaugeValue ,
117
+ client .BytesSent ,
118
+ c .name , client .CommonName ,
119
+ )
120
+ ch <- prometheus .MustNewConstMetric (
121
+ c .ConnectedSince ,
122
+ prometheus .GaugeValue ,
123
+ float64 (client .ConnectedSince .Unix ()),
124
+ c .name , client .CommonName ,
125
+ )
126
+ }
121
127
}
122
128
level .Debug (c .logger ).Log (
123
129
"updatedAt" , status .UpdatedAt ,
0 commit comments