mirror of
https://github.com/prometheus-community/windows_exporter.git
synced 2026-02-14 17:06:36 +00:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f6965b10f4 | ||
|
|
d7f052fb27 |
2
go.mod
2
go.mod
@@ -17,7 +17,7 @@ require (
|
|||||||
github.com/yusufpapurcu/wmi v1.2.4
|
github.com/yusufpapurcu/wmi v1.2.4
|
||||||
go.opencensus.io v0.24.0 // indirect
|
go.opencensus.io v0.24.0 // indirect
|
||||||
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa
|
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa
|
||||||
golang.org/x/sys v0.23.0
|
golang.org/x/sys v0.24.0
|
||||||
gopkg.in/yaml.v3 v3.0.1
|
gopkg.in/yaml.v3 v3.0.1
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
4
go.sum
4
go.sum
@@ -141,8 +141,8 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w
|
|||||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM=
|
golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg=
|
||||||
golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
|
golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
|
||||||
|
|||||||
@@ -120,10 +120,17 @@ func NewWithFlags(app *kingpin.Application) *Collector {
|
|||||||
c := &Collector{
|
c := &Collector{
|
||||||
config: ConfigDefaults,
|
config: ConfigDefaults,
|
||||||
}
|
}
|
||||||
c.config.CollectorsEnabled = make([]string, 0)
|
|
||||||
|
var collectorsEnabled string
|
||||||
|
|
||||||
app.Flag("collectors.dfsr.sources-enabled", "Comma-separated list of DFSR Perflib sources to use.").
|
app.Flag("collectors.dfsr.sources-enabled", "Comma-separated list of DFSR Perflib sources to use.").
|
||||||
Default(strings.Join(ConfigDefaults.CollectorsEnabled, ",")).StringsVar(&c.config.CollectorsEnabled)
|
Default(strings.Join(ConfigDefaults.CollectorsEnabled, ",")).StringVar(&collectorsEnabled)
|
||||||
|
|
||||||
|
app.Action(func(*kingpin.ParseContext) error {
|
||||||
|
c.config.CollectorsEnabled = strings.Split(collectorsEnabled, ",")
|
||||||
|
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -111,6 +111,7 @@ func NewWithFlags(app *kingpin.Application) *Collector {
|
|||||||
c.config.CollectorsEnabled = make([]string, 0)
|
c.config.CollectorsEnabled = make([]string, 0)
|
||||||
|
|
||||||
var listAllCollectors bool
|
var listAllCollectors bool
|
||||||
|
var collectorsEnabled string
|
||||||
|
|
||||||
app.Flag(
|
app.Flag(
|
||||||
"collectors.exchange.list",
|
"collectors.exchange.list",
|
||||||
@@ -120,7 +121,7 @@ func NewWithFlags(app *kingpin.Application) *Collector {
|
|||||||
app.Flag(
|
app.Flag(
|
||||||
"collectors.exchange.enabled",
|
"collectors.exchange.enabled",
|
||||||
"Comma-separated list of collectors to use. Defaults to all, if not specified.",
|
"Comma-separated list of collectors to use. Defaults to all, if not specified.",
|
||||||
).Default(strings.Join(ConfigDefaults.CollectorsEnabled, ",")).StringsVar(&c.config.CollectorsEnabled)
|
).Default(strings.Join(ConfigDefaults.CollectorsEnabled, ",")).StringVar(&collectorsEnabled)
|
||||||
|
|
||||||
app.PreAction(func(*kingpin.ParseContext) error {
|
app.PreAction(func(*kingpin.ParseContext) error {
|
||||||
if listAllCollectors {
|
if listAllCollectors {
|
||||||
@@ -152,6 +153,12 @@ func NewWithFlags(app *kingpin.Application) *Collector {
|
|||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
|
|
||||||
|
app.Action(func(*kingpin.ParseContext) error {
|
||||||
|
c.config.CollectorsEnabled = strings.Split(collectorsEnabled, ",")
|
||||||
|
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"slices"
|
|
||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
@@ -437,9 +436,9 @@ func NewWithFlags(app *kingpin.Application) *Collector {
|
|||||||
c := &Collector{
|
c := &Collector{
|
||||||
config: ConfigDefaults,
|
config: ConfigDefaults,
|
||||||
}
|
}
|
||||||
c.config.CollectorsEnabled = make([]string, 0)
|
|
||||||
|
|
||||||
var listAllCollectors bool
|
var listAllCollectors bool
|
||||||
|
var collectorsEnabled string
|
||||||
|
|
||||||
app.Flag(
|
app.Flag(
|
||||||
"collectors.mssql.class-print",
|
"collectors.mssql.class-print",
|
||||||
@@ -449,7 +448,7 @@ func NewWithFlags(app *kingpin.Application) *Collector {
|
|||||||
app.Flag(
|
app.Flag(
|
||||||
"collectors.mssql.classes-enabled",
|
"collectors.mssql.classes-enabled",
|
||||||
"Comma-separated list of mssql WMI classes to use.",
|
"Comma-separated list of mssql WMI classes to use.",
|
||||||
).Default(strings.Join(ConfigDefaults.CollectorsEnabled, ",")).StringsVar(&c.config.CollectorsEnabled)
|
).Default(strings.Join(c.config.CollectorsEnabled, ",")).StringVar(&collectorsEnabled)
|
||||||
|
|
||||||
app.PreAction(func(*kingpin.ParseContext) error {
|
app.PreAction(func(*kingpin.ParseContext) error {
|
||||||
if listAllCollectors {
|
if listAllCollectors {
|
||||||
@@ -468,6 +467,12 @@ func NewWithFlags(app *kingpin.Application) *Collector {
|
|||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
|
|
||||||
|
app.Action(func(*kingpin.ParseContext) error {
|
||||||
|
c.config.CollectorsEnabled = strings.Split(collectorsEnabled, ",")
|
||||||
|
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -480,16 +485,11 @@ func (c *Collector) SetLogger(logger log.Logger) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) GetPerfCounter() ([]string, error) {
|
func (c *Collector) GetPerfCounter() ([]string, error) {
|
||||||
enabled := slices.Compact(c.config.CollectorsEnabled)
|
|
||||||
|
|
||||||
// Result must order, to prevent test failures.
|
|
||||||
sort.Strings(enabled)
|
|
||||||
|
|
||||||
c.mssqlInstances = getMSSQLInstances(c.logger)
|
c.mssqlInstances = getMSSQLInstances(c.logger)
|
||||||
perfCounters := make([]string, 0, len(c.mssqlInstances)*len(enabled))
|
perfCounters := make([]string, 0, len(c.mssqlInstances)*len(c.config.CollectorsEnabled))
|
||||||
|
|
||||||
for instance := range c.mssqlInstances {
|
for instance := range c.mssqlInstances {
|
||||||
for _, c := range enabled {
|
for _, c := range c.config.CollectorsEnabled {
|
||||||
perfCounters = append(perfCounters, mssqlGetPerfObjectName(instance, c))
|
perfCounters = append(perfCounters, mssqlGetPerfObjectName(instance, c))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -502,6 +502,9 @@ func (c *Collector) Close() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) Build() error {
|
func (c *Collector) Build() error {
|
||||||
|
// Result must order, to prevent test failures.
|
||||||
|
sort.Strings(c.config.CollectorsEnabled)
|
||||||
|
|
||||||
// meta
|
// meta
|
||||||
c.mssqlScrapeDurationDesc = prometheus.NewDesc(
|
c.mssqlScrapeDurationDesc = prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(types.Namespace, Name, "collector_duration_seconds"),
|
prometheus.BuildFQName(types.Namespace, Name, "collector_duration_seconds"),
|
||||||
@@ -1965,6 +1968,12 @@ func (c *Collector) Build() error {
|
|||||||
|
|
||||||
c.mssqlCollectors = c.getMSSQLCollectors()
|
c.mssqlCollectors = c.getMSSQLCollectors()
|
||||||
|
|
||||||
|
for _, name := range c.config.CollectorsEnabled {
|
||||||
|
if _, ok := c.mssqlCollectors[name]; !ok {
|
||||||
|
return errors.New("unknown mssql collector: " + name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2007,13 +2016,8 @@ func (c *Collector) execute(ctx *types.ScrapeContext, name string, fn mssqlColle
|
|||||||
func (c *Collector) Collect(ctx *types.ScrapeContext, ch chan<- prometheus.Metric) error {
|
func (c *Collector) Collect(ctx *types.ScrapeContext, ch chan<- prometheus.Metric) error {
|
||||||
wg := sync.WaitGroup{}
|
wg := sync.WaitGroup{}
|
||||||
|
|
||||||
enabled := slices.Compact(c.config.CollectorsEnabled)
|
|
||||||
|
|
||||||
// Result must order, to prevent test failures.
|
|
||||||
sort.Strings(enabled)
|
|
||||||
|
|
||||||
for sqlInstance := range c.mssqlInstances {
|
for sqlInstance := range c.mssqlInstances {
|
||||||
for _, name := range enabled {
|
for _, name := range c.config.CollectorsEnabled {
|
||||||
function := c.mssqlCollectors[name]
|
function := c.mssqlCollectors[name]
|
||||||
|
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
|
|||||||
@@ -78,12 +78,19 @@ func NewWithFlags(app *kingpin.Application) *Collector {
|
|||||||
c := &Collector{
|
c := &Collector{
|
||||||
config: ConfigDefaults,
|
config: ConfigDefaults,
|
||||||
}
|
}
|
||||||
c.config.TextFileDirectories = make([]string, 0)
|
|
||||||
|
var textFileDirectories string
|
||||||
|
|
||||||
app.Flag(
|
app.Flag(
|
||||||
"collector.textfile.directories",
|
"collector.textfile.directories",
|
||||||
"Directory or Directories to read text files with metrics from.",
|
"Directory or Directories to read text files with metrics from.",
|
||||||
).Default(strings.Join(ConfigDefaults.TextFileDirectories, ",")).StringsVar(&c.config.TextFileDirectories)
|
).Default(strings.Join(ConfigDefaults.TextFileDirectories, ",")).StringVar(&textFileDirectories)
|
||||||
|
|
||||||
|
app.Action(func(*kingpin.ParseContext) error {
|
||||||
|
c.config.TextFileDirectories = strings.Split(textFileDirectories, ",")
|
||||||
|
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user