Open libvirt connection in Collect func
Change-Id: I54bd54e3fab9f3c30256100bd3482a49c3308ca8
This commit is contained in:
parent
85dc2bc789
commit
9c7cc4662b
@ -27,8 +27,9 @@ import (
|
||||
type DomainStatsCollector struct {
|
||||
prometheus.Collector
|
||||
|
||||
Connection *libvirt.Connect
|
||||
Nova bool
|
||||
LibvirtURI string
|
||||
|
||||
Nova bool
|
||||
|
||||
DomainSeconds *prometheus.Desc
|
||||
|
||||
@ -85,9 +86,9 @@ type NovaMetadata struct {
|
||||
}
|
||||
|
||||
// nolint:funlen
|
||||
func NewDomainStatsCollector(conn *libvirt.Connect, nova bool) (*DomainStatsCollector, error) {
|
||||
func NewDomainStatsCollector(nova bool, libvirtURI string) (*DomainStatsCollector, error) {
|
||||
return &DomainStatsCollector{
|
||||
Connection: conn,
|
||||
LibvirtURI: libvirtURI,
|
||||
Nova: nova,
|
||||
|
||||
DomainSeconds: prometheus.NewDesc(
|
||||
@ -307,7 +308,14 @@ func (c *DomainStatsCollector) describeBlock(ch chan<- *prometheus.Desc) {
|
||||
}
|
||||
|
||||
func (c *DomainStatsCollector) Collect(ch chan<- prometheus.Metric) {
|
||||
stats, err := c.Connection.GetAllDomainStats(
|
||||
conn, err := libvirt.NewConnect(c.LibvirtURI)
|
||||
if err != nil {
|
||||
log.Errorln(err)
|
||||
return
|
||||
}
|
||||
defer conn.Close()
|
||||
|
||||
stats, err := conn.GetAllDomainStats(
|
||||
[]*libvirt.Domain{},
|
||||
libvirt.DOMAIN_STATS_STATE|libvirt.DOMAIN_STATS_CPU_TOTAL|libvirt.DOMAIN_STATS_BALLOON|
|
||||
libvirt.DOMAIN_STATS_VCPU|libvirt.DOMAIN_STATS_INTERFACE|libvirt.DOMAIN_STATS_BLOCK,
|
||||
|
@ -25,14 +25,14 @@ import (
|
||||
type VersionCollector struct {
|
||||
prometheus.Collector
|
||||
|
||||
Connection *libvirt.Connect
|
||||
LibvirtURI string
|
||||
|
||||
Version *prometheus.Desc
|
||||
}
|
||||
|
||||
func NewVersionCollector(conn *libvirt.Connect) (*VersionCollector, error) {
|
||||
func NewVersionCollector(libvirtURI string) (*VersionCollector, error) {
|
||||
return &VersionCollector{
|
||||
Connection: conn,
|
||||
LibvirtURI: libvirtURI,
|
||||
|
||||
Version: prometheus.NewDesc(
|
||||
"libvirtd_info",
|
||||
@ -47,19 +47,26 @@ func (c *VersionCollector) Describe(ch chan<- *prometheus.Desc) {
|
||||
}
|
||||
|
||||
func (c *VersionCollector) Collect(ch chan<- prometheus.Metric) {
|
||||
hypervisorType, err := c.Connection.GetType()
|
||||
conn, err := libvirt.NewConnect(c.LibvirtURI)
|
||||
if err != nil {
|
||||
log.Errorln(err)
|
||||
return
|
||||
}
|
||||
defer conn.Close()
|
||||
|
||||
hypervisorType, err := conn.GetType()
|
||||
if err != nil {
|
||||
log.Errorln(err)
|
||||
return
|
||||
}
|
||||
|
||||
hypervisorVersion, err := c.Connection.GetVersion()
|
||||
hypervisorVersion, err := conn.GetVersion()
|
||||
if err != nil {
|
||||
log.Errorln(err)
|
||||
return
|
||||
}
|
||||
|
||||
libvirtVersion, err := c.Connection.GetLibVersion()
|
||||
libvirtVersion, err := conn.GetLibVersion()
|
||||
if err != nil {
|
||||
log.Errorln(err)
|
||||
return
|
||||
|
@ -17,7 +17,6 @@ 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"
|
||||
@ -51,18 +50,12 @@ func main() {
|
||||
kingpin.HelpFlag.Short('h')
|
||||
kingpin.Parse()
|
||||
|
||||
conn, err := libvirt.NewConnect(*libvirtURI)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
defer conn.Close()
|
||||
|
||||
versionCollector, err := collectors.NewVersionCollector(conn)
|
||||
versionCollector, err := collectors.NewVersionCollector(*libvirtURI)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
domainStats, err := collectors.NewDomainStatsCollector(conn, *libvirtNova)
|
||||
domainStats, err := collectors.NewDomainStatsCollector(*libvirtNova, *libvirtURI)
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user