diff --git a/collectors/domain_stats.go b/collectors/domain_stats.go index a8c07d5..713ea9a 100644 --- a/collectors/domain_stats.go +++ b/collectors/domain_stats.go @@ -85,12 +85,7 @@ type NovaMetadata struct { } // nolint:funlen -func NewDomainStatsCollector(uri string, nova bool) (*DomainStatsCollector, error) { - conn, err := libvirt.NewConnect(uri) - if err != nil { - return nil, err - } - +func NewDomainStatsCollector(conn *libvirt.Connect, nova bool) (*DomainStatsCollector, error) { return &DomainStatsCollector{ Connection: conn, Nova: nova, @@ -552,7 +547,3 @@ func (c *DomainStatsCollector) getNovaMetadata(domain *libvirt.Domain) (*NovaMet return m, nil } - -func (c *DomainStatsCollector) Close() { - c.Connection.Close() -} diff --git a/libvirtd_exporter.go b/libvirtd_exporter.go index 63ae790..6902d21 100644 --- a/libvirtd_exporter.go +++ b/libvirtd_exporter.go @@ -17,13 +17,14 @@ package main import ( "net/http" + "github.com/libvirt/libvirt-go" "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/promhttp" "github.com/prometheus/common/log" "github.com/prometheus/common/version" "gopkg.in/alecthomas/kingpin.v2" - "github.com/vexxhost/libvirtd_exporter/collectors" + "opendev.org/vexxhost/libvirtd_exporter/collectors" ) func main() { @@ -50,15 +51,19 @@ func main() { kingpin.HelpFlag.Short('h') kingpin.Parse() - domainStats, err := collectors.NewDomainStatsCollector(*libvirtURI, *libvirtNova) + conn, err := libvirt.NewConnect(*libvirtURI) + if err != nil { + log.Fatalln(err) + } + defer conn.Close() + + domainStats, err := collectors.NewDomainStatsCollector(conn, *libvirtNova) if err != nil { log.Fatalln(err) } prometheus.MustRegister(domainStats) - defer domainStats.Close() - http.Handle("/metrics", promhttp.Handler()) http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { _, _ = w.Write([]byte(`