mirror of
https://github.com/prometheus-community/windows_exporter.git
synced 2026-02-26 06:36:36 +00:00
dhcp: fix log level for dhcp server, if not present (#2086)
This commit is contained in:
@@ -56,6 +56,8 @@ var ConfigDefaults = Config{
|
|||||||
type Collector struct {
|
type Collector struct {
|
||||||
config Config
|
config Config
|
||||||
|
|
||||||
|
logger *slog.Logger
|
||||||
|
|
||||||
perfDataCollector *pdh.Collector
|
perfDataCollector *pdh.Collector
|
||||||
perfDataObject []perfDataCounterValues
|
perfDataObject []perfDataCounterValues
|
||||||
|
|
||||||
@@ -147,7 +149,9 @@ func (c *Collector) Close() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Collector) Build(_ *slog.Logger, _ *mi.Session) error {
|
func (c *Collector) Build(logger *slog.Logger, _ *mi.Session) error {
|
||||||
|
c.logger = logger.With(slog.String("collector", Name))
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
if slices.Contains(c.config.CollectorsEnabled, subCollectorScopeMetrics) {
|
if slices.Contains(c.config.CollectorsEnabled, subCollectorScopeMetrics) {
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ func GetDHCPV4ScopeStatistics() ([]DHCPV4Scope, error) {
|
|||||||
var mibInfo *DHCP_MIB_INFO_V5
|
var mibInfo *DHCP_MIB_INFO_V5
|
||||||
|
|
||||||
if err := dhcpGetMibInfoV5(&mibInfo); err != nil {
|
if err := dhcpGetMibInfoV5(&mibInfo); err != nil {
|
||||||
return nil, err
|
return nil, fmt.Errorf("dhcpGetMibInfoV5: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
defer dhcpRpcFreeMemory(unsafe.Pointer(mibInfo))
|
defer dhcpRpcFreeMemory(unsafe.Pointer(mibInfo))
|
||||||
@@ -56,7 +56,7 @@ func GetDHCPV4ScopeStatistics() ([]DHCPV4Scope, error) {
|
|||||||
var superScopeTable *DHCP_SUPER_SCOPE_TABLE
|
var superScopeTable *DHCP_SUPER_SCOPE_TABLE
|
||||||
|
|
||||||
if err := dhcpGetSuperScopeInfoV4(&superScopeTable); err != nil {
|
if err := dhcpGetSuperScopeInfoV4(&superScopeTable); err != nil {
|
||||||
return nil, err
|
return nil, fmt.Errorf("dhcpGetSuperScopeInfoV4: %w", err)
|
||||||
} else if superScopeTable == nil {
|
} else if superScopeTable == nil {
|
||||||
return nil, errors.New("dhcpGetSuperScopeInfoV4 returned nil")
|
return nil, errors.New("dhcpGetSuperScopeInfoV4 returned nil")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ import (
|
|||||||
"github.com/prometheus-community/windows_exporter/internal/pdh"
|
"github.com/prometheus-community/windows_exporter/internal/pdh"
|
||||||
"github.com/prometheus-community/windows_exporter/internal/types"
|
"github.com/prometheus-community/windows_exporter/internal/types"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
|
"golang.org/x/sys/windows"
|
||||||
)
|
)
|
||||||
|
|
||||||
type collectorStatus struct {
|
type collectorStatus struct {
|
||||||
@@ -210,8 +211,10 @@ func (c *Collection) collectCollector(ch chan<- prometheus.Metric, logger *slog.
|
|||||||
|
|
||||||
slogAttrs := make([]slog.Attr, 0)
|
slogAttrs := make([]slog.Attr, 0)
|
||||||
|
|
||||||
|
result := "succeeded"
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !errors.Is(err, pdh.ErrNoData) && !errors.Is(err, types.ErrNoData) {
|
if !errors.Is(err, pdh.ErrNoData) && !errors.Is(err, types.ErrNoData) && !errors.Is(err, windows.EPT_S_NOT_REGISTERED) {
|
||||||
if errors.Is(err, pdh.ErrPerformanceCounterNotInitialized) || errors.Is(err, mi.MI_RESULT_INVALID_NAMESPACE) {
|
if errors.Is(err, pdh.ErrPerformanceCounterNotInitialized) || errors.Is(err, mi.MI_RESULT_INVALID_NAMESPACE) {
|
||||||
err = fmt.Errorf("%w. Check application logs from initialization pharse for more information", err)
|
err = fmt.Errorf("%w. Check application logs from initialization pharse for more information", err)
|
||||||
}
|
}
|
||||||
@@ -225,9 +228,13 @@ func (c *Collection) collectCollector(ch chan<- prometheus.Metric, logger *slog.
|
|||||||
}
|
}
|
||||||
|
|
||||||
slogAttrs = append(slogAttrs, slog.Any("err", err))
|
slogAttrs = append(slogAttrs, slog.Any("err", err))
|
||||||
|
|
||||||
|
result = "succeeded with warnings"
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.LogAttrs(ctx, slog.LevelDebug, fmt.Sprintf("collector %s succeeded after %s, resulting in %d metrics", name, duration, numMetrics),
|
logger.LogAttrs(ctx, slog.LevelDebug, fmt.Sprintf(
|
||||||
|
"collector %s %s after %s, resulting in %d metrics", name, result, duration, numMetrics,
|
||||||
|
),
|
||||||
slogAttrs...,
|
slogAttrs...,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user