Skip to content

Commit 7034f25

Browse files
author
Atanas Prezhdarov
committed
insecureTLS and more
1 parent 7f6cd63 commit 7034f25

File tree

4 files changed

+63
-57
lines changed

4 files changed

+63
-57
lines changed

go.mod

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
module github.com/prezhdarov/vmware-exporter
22

3-
go 1.24
3+
go 1.25
44

55
require (
6-
github.com/prezhdarov/prometheus-exporter v0.1.1
7-
github.com/prometheus/client_golang v1.22.0
8-
github.com/prometheus/common v0.64.0
6+
github.com/prezhdarov/prometheus-exporter v0.1.2
7+
github.com/prometheus/client_golang v1.23.0
8+
github.com/prometheus/common v0.65.0
99
github.com/prometheus/exporter-toolkit v0.14.0
10-
github.com/vmware/govmomi v0.51.0
10+
github.com/vmware/govmomi v0.52.0
1111
)
1212

1313
require (
@@ -21,14 +21,14 @@ require (
2121
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
2222
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect
2323
github.com/prometheus/client_model v0.6.2 // indirect
24-
github.com/prometheus/procfs v0.16.1 // indirect
25-
golang.org/x/crypto v0.39.0 // indirect
26-
golang.org/x/net v0.41.0 // indirect
24+
github.com/prometheus/procfs v0.17.0 // indirect
25+
golang.org/x/crypto v0.41.0 // indirect
26+
golang.org/x/net v0.43.0 // indirect
2727
golang.org/x/oauth2 v0.30.0 // indirect
28-
golang.org/x/sync v0.15.0 // indirect
29-
golang.org/x/sys v0.33.0 // indirect
30-
golang.org/x/text v0.26.0 // indirect
31-
google.golang.org/protobuf v1.36.6 // indirect
28+
golang.org/x/sync v0.16.0 // indirect
29+
golang.org/x/sys v0.35.0 // indirect
30+
golang.org/x/text v0.28.0 // indirect
31+
google.golang.org/protobuf v1.36.7 // indirect
3232
gopkg.in/yaml.v2 v2.4.0 // indirect
3333
gopkg.in/yaml.v3 v3.0.1 // indirect
3434
)

go.sum

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -31,38 +31,40 @@ github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+
3131
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
3232
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
3333
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
34-
github.com/prezhdarov/prometheus-exporter v0.1.1 h1:Gez1m7SxrN/abKlocslr5aGFQdShS9ZD2ui7rHRJs84=
35-
github.com/prezhdarov/prometheus-exporter v0.1.1/go.mod h1:z3cyh+uh+WhUz62oqU2Eq9xqZce4WFoIP56kV9p5o3Q=
36-
github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q=
37-
github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0=
34+
github.com/prezhdarov/prometheus-exporter v0.1.2 h1:CrjuynESO+HzuoXHUhQjZXkU1dtaQcNcZ9n19HcTu8I=
35+
github.com/prezhdarov/prometheus-exporter v0.1.2/go.mod h1:byDqC81rcC3LnCPlOVno60E4fPzqSbeQ+7/fpELjYnc=
36+
github.com/prometheus/client_golang v1.23.0 h1:ust4zpdl9r4trLY/gSjlm07PuiBq2ynaXXlptpfy8Uc=
37+
github.com/prometheus/client_golang v1.23.0/go.mod h1:i/o0R9ByOnHX0McrTMTyhYvKE4haaf2mW08I+jGAjEE=
3838
github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk=
3939
github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE=
40-
github.com/prometheus/common v0.64.0 h1:pdZeA+g617P7oGv1CzdTzyeShxAGrTBsolKNOLQPGO4=
41-
github.com/prometheus/common v0.64.0/go.mod h1:0gZns+BLRQ3V6NdaerOhMbwwRbNh9hkGINtQAsP5GS8=
40+
github.com/prometheus/common v0.65.0 h1:QDwzd+G1twt//Kwj/Ww6E9FQq1iVMmODnILtW1t2VzE=
41+
github.com/prometheus/common v0.65.0/go.mod h1:0gZns+BLRQ3V6NdaerOhMbwwRbNh9hkGINtQAsP5GS8=
4242
github.com/prometheus/exporter-toolkit v0.14.0 h1:NMlswfibpcZZ+H0sZBiTjrA3/aBFHkNZqE+iCj5EmRg=
4343
github.com/prometheus/exporter-toolkit v0.14.0/go.mod h1:Gu5LnVvt7Nr/oqTBUC23WILZepW0nffNo10XdhQcwWA=
44-
github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg=
45-
github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is=
44+
github.com/prometheus/procfs v0.17.0 h1:FuLQ+05u4ZI+SS/w9+BWEM2TXiHKsUQ9TADiRH7DuK0=
45+
github.com/prometheus/procfs v0.17.0/go.mod h1:oPQLaDAMRbA+u8H5Pbfq+dl3VDAvHxMUOVhe0wYB2zw=
4646
github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
4747
github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog=
4848
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
4949
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
50-
github.com/vmware/govmomi v0.51.0 h1:n3RLS9aw/irTOKbiIyJzAb6rOat4YOVv/uDoRsNTSQI=
51-
github.com/vmware/govmomi v0.51.0/go.mod h1:3ywivawGRfMP2SDCeyKqxTl2xNIHTXF0ilvp72dot5A=
52-
golang.org/x/crypto v0.39.0 h1:SHs+kF4LP+f+p14esP5jAoDpHU8Gu/v9lFRK6IT5imM=
53-
golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U=
54-
golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw=
55-
golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA=
50+
github.com/vmware/govmomi v0.52.0 h1:JyxQ1IQdllrY7PJbv2am9mRsv3p9xWlIQ66bv+XnyLw=
51+
github.com/vmware/govmomi v0.52.0/go.mod h1:Yuc9xjznU3BH0rr6g7MNS1QGvxnJlE1vOvTJ7Lx7dqI=
52+
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
53+
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
54+
golang.org/x/crypto v0.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4=
55+
golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc=
56+
golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE=
57+
golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg=
5658
golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI=
5759
golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU=
58-
golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8=
59-
golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
60-
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
61-
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
62-
golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M=
63-
golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA=
64-
google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
65-
google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
60+
golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw=
61+
golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
62+
golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
63+
golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
64+
golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng=
65+
golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU=
66+
google.golang.org/protobuf v1.36.7 h1:IgrO7UwFQGJdRNXH/sQux4R1Dj1WAKcLElzeeRaXV2A=
67+
google.golang.org/protobuf v1.36.7/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
6668
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
6769
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
6870
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=

vmware/api/vmware.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ var (
2525
vmwPasswd = flag.String("vmware.password", "", "Password for the user above")
2626
vCenter = flag.String("vmware.vcenter", "", "vCenter server address in host:port format. This is not the vCenter Management Console")
2727
vmwSchema = flag.String("vmware.schema", "https", "Use HTTP or HTTPS")
28-
vmwSSL = flag.Bool("vmware.ssl", false, "Verify vCenter SSL or trust")
28+
vmwTLS = flag.Bool("vmware.insecureTLS", false, "Trust inscure vCenter TLS (true) or verify (default)")
2929
vmwInterval = flag.Int("vmware.interval", 20, "How often data will be collected. Default is every 20s.")
3030
vmGranularity = flag.Int("vmware.granularity", 20, "The frequency of the sampled data. Default is 20s")
3131

@@ -136,7 +136,7 @@ func (vm *VMware) Get(loginData, extraConfig map[string]interface{}, logger *slo
136136
func request(method, url string, headers map[string]string, login bool) (int, string, []byte, error) {
137137

138138
transport := http.DefaultTransport
139-
transport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: !*vmwSSL}
139+
transport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: !*vmwTLS}
140140
client := &http.Client{
141141
Transport: transport,
142142
Timeout: time.Duration(*vmwInterval-2) * time.Second,
@@ -211,7 +211,7 @@ func govmomiLogin(loginData map[string]interface{}) error {
211211

212212
ctx, cancel := context.WithTimeout(context.Background(), time.Duration(*vmwInterval-2)*time.Second)
213213

214-
session := &cache.Session{URL: urlx, Insecure: !*vmwSSL, Passthrough: true}
214+
session := &cache.Session{URL: urlx, Insecure: !*vmwTLS, Passthrough: true}
215215

216216
client := new(vim25.Client)
217217

vmware/collectors/vm.go

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -119,29 +119,33 @@ func (c *vmCollector) Update(ch chan<- prometheus.Metric, namespace string, clie
119119

120120
begin = time.Now()
121121

122-
wg.Add(2)
123-
for i := 0; i < 2; i++ {
124-
switch {
125-
case i == 0:
126-
go func(i int) {
127-
scrapePerformance(loginData["ctx"].(context.Context), ch, c.logger, loginData["samples"].(int32), loginData["interval"].(int32), loginData["perf"].(*performance.Manager),
128-
loginData["target"].(string), "VirtualMachine", namespace, vmSubsystem, "", cVMCounters,
129-
loginData["counters"].(map[string]*types.PerfCounterInfo), vmRefs, vmNames)
130-
wg.Done()
131-
}(i)
132-
133-
case i == 1:
134-
go func(i int) {
135-
scrapePerformance(loginData["ctx"].(context.Context), ch, c.logger, loginData["samples"].(int32), loginData["interval"].(int32), loginData["perf"].(*performance.Manager),
136-
loginData["target"].(string), "VirtualMachine", namespace, vmSubsystem, "*", iVMCounters,
137-
loginData["counters"].(map[string]*types.PerfCounterInfo), vmRefs, vmNames)
138-
wg.Done()
139-
}(i)
122+
if len(vmRefs) > 0 {
123+
124+
wg.Add(2)
125+
for i := 0; i < 2; i++ {
126+
switch {
127+
case i == 0:
128+
go func(i int) {
129+
scrapePerformance(loginData["ctx"].(context.Context), ch, c.logger, loginData["samples"].(int32), loginData["interval"].(int32), loginData["perf"].(*performance.Manager),
130+
loginData["target"].(string), "VirtualMachine", namespace, vmSubsystem, "", cVMCounters,
131+
loginData["counters"].(map[string]*types.PerfCounterInfo), vmRefs, vmNames)
132+
wg.Done()
133+
}(i)
134+
135+
case i == 1:
136+
go func(i int) {
137+
scrapePerformance(loginData["ctx"].(context.Context), ch, c.logger, loginData["samples"].(int32), loginData["interval"].(int32), loginData["perf"].(*performance.Manager),
138+
loginData["target"].(string), "VirtualMachine", namespace, vmSubsystem, "*", iVMCounters,
139+
loginData["counters"].(map[string]*types.PerfCounterInfo), vmRefs, vmNames)
140+
wg.Done()
141+
}(i)
142+
}
143+
140144
}
141145

142-
}
146+
wg.Wait()
143147

144-
wg.Wait()
148+
}
145149

146150
c.logger.Debug("msg", fmt.Sprintf("Time to process PerfMan for VM: %f\n", time.Since(begin).Seconds()), nil)
147151

0 commit comments

Comments
 (0)