feat: Tolerate collector failures (#1769)

Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
This commit is contained in:
Jan-Otto Kröpke
2024-11-25 21:27:31 +01:00
committed by GitHub
parent fd76be38e0
commit 1a4c6c5ce7
121 changed files with 1726 additions and 1221 deletions

View File

@@ -47,6 +47,7 @@ type Config struct {
CollectorsEnabled []string `yaml:"collectors_enabled"`
}
//nolint:gochecknoglobals
var ConfigDefaults = Config{
CollectorsEnabled: []string{
adAccessProcesses,

View File

@@ -16,7 +16,6 @@
package exchange
import (
"errors"
"fmt"
"github.com/prometheus-community/windows_exporter/internal/perfdata"
@@ -73,7 +72,7 @@ func (c *Collector) collectActiveSync(ch chan<- prometheus.Metric) error {
}
if len(perfData) == 0 {
return errors.New("perflib query for MSExchange ActiveSync returned empty result set")
return fmt.Errorf("failed to collect MSExchange ActiveSync metrics: %w", types.ErrNoData)
}
for _, data := range perfData {

View File

@@ -16,7 +16,6 @@
package exchange
import (
"errors"
"fmt"
"github.com/prometheus-community/windows_exporter/internal/perfdata"
@@ -89,7 +88,7 @@ func (c *Collector) collectADAccessProcesses(ch chan<- prometheus.Metric) error
}
if len(perfData) == 0 {
return errors.New("perflib query for MSExchange ADAccess Processes returned empty result set")
return fmt.Errorf("failed to collect MSExchange ADAccess Processes metrics: %w", types.ErrNoData)
}
labelUseCount := make(map[string]int)

View File

@@ -16,7 +16,6 @@
package exchange
import (
"errors"
"fmt"
"github.com/prometheus-community/windows_exporter/internal/perfdata"
@@ -53,7 +52,7 @@ func (c *Collector) collectAutoDiscover(ch chan<- prometheus.Metric) error {
}
if len(perfData) == 0 {
return errors.New("perflib query for MSExchange Autodiscover returned empty result set")
return fmt.Errorf("failed to collect MSExchange Autodiscover metrics: %w", types.ErrNoData)
}
for _, data := range perfData {

View File

@@ -16,7 +16,6 @@
package exchange
import (
"errors"
"fmt"
"github.com/prometheus-community/windows_exporter/internal/perfdata"
@@ -53,7 +52,7 @@ func (c *Collector) collectAvailabilityService(ch chan<- prometheus.Metric) erro
}
if len(perfData) == 0 {
return errors.New("perflib query for MSExchange Availability Service returned empty result set")
return fmt.Errorf("failed to collect MSExchange Availability Service metrics: %w", types.ErrNoData)
}
for _, data := range perfData {

View File

@@ -16,7 +16,6 @@
package exchange
import (
"errors"
"fmt"
"github.com/prometheus-community/windows_exporter/internal/perfdata"
@@ -97,7 +96,7 @@ func (c *Collector) collectHTTPProxy(ch chan<- prometheus.Metric) error {
}
if len(perfData) == 0 {
return errors.New("perflib query for MSExchange HttpProxy Service returned empty result set")
return fmt.Errorf("failed to collect MSExchange HttpProxy Service metrics: %w", types.ErrNoData)
}
for name, data := range perfData {

View File

@@ -16,7 +16,6 @@
package exchange
import (
"errors"
"fmt"
"github.com/prometheus-community/windows_exporter/internal/perfdata"
@@ -57,7 +56,7 @@ func (c *Collector) collectMapiHttpEmsmdb(ch chan<- prometheus.Metric) error {
}
if len(perfData) == 0 {
return errors.New("perflib query for MSExchange MapiHttp Emsmdb returned empty result set")
return fmt.Errorf("failed to collect MSExchange MapiHttp Emsmdb metrics: %w", types.ErrNoData)
}
for _, data := range perfData {

View File

@@ -16,7 +16,6 @@
package exchange
import (
"errors"
"fmt"
"github.com/prometheus-community/windows_exporter/internal/perfdata"
@@ -65,7 +64,7 @@ func (c *Collector) collectOWA(ch chan<- prometheus.Metric) error {
}
if len(perfData) == 0 {
return errors.New("perflib query for MSExchange OWA returned empty result set")
return fmt.Errorf("failed to collect MSExchange OWA metrics: %w", types.ErrNoData)
}
for _, data := range perfData {

View File

@@ -16,7 +16,6 @@
package exchange
import (
"errors"
"fmt"
"github.com/prometheus-community/windows_exporter/internal/perfdata"
@@ -97,7 +96,7 @@ func (c *Collector) collectRPC(ch chan<- prometheus.Metric) error {
}
if len(perfData) == 0 {
return errors.New("perflib query for MSExchange RpcClientAccess returned empty result set")
return fmt.Errorf("failed to collect MSExchange RpcClientAccess metrics: %w", types.ErrNoData)
}
for _, data := range perfData {

View File

@@ -16,7 +16,6 @@
package exchange
import (
"errors"
"fmt"
"github.com/prometheus-community/windows_exporter/internal/perfdata"
@@ -201,7 +200,7 @@ func (c *Collector) collectTransportQueues(ch chan<- prometheus.Metric) error {
}
if len(perfData) == 0 {
return errors.New("perflib query for MSExchangeTransport Queues returned empty result set")
return fmt.Errorf("failed to collect MSExchangeTransport Queues metrics: %w", types.ErrNoData)
}
for name, data := range perfData {

View File

@@ -16,7 +16,6 @@
package exchange
import (
"errors"
"fmt"
"github.com/prometheus-community/windows_exporter/internal/perfdata"
@@ -89,7 +88,7 @@ func (c *Collector) collectWorkloadManagementWorkloads(ch chan<- prometheus.Metr
}
if len(perfData) == 0 {
return errors.New("perflib query for MSExchange WorkloadManagement Workloads returned empty result set")
return fmt.Errorf("failed to collect MSExchange WorkloadManagement Workloads metrics: %w", types.ErrNoData)
}
for name, data := range perfData {