diff --git a/.run/all.run.xml b/.run/all.run.xml index e5f581bf..14ac4f9c 100644 --- a/.run/all.run.xml +++ b/.run/all.run.xml @@ -1,30 +1,30 @@ + ~ SPDX-License-Identifier: Apache-2.0 + ~ + ~ Copyright The Prometheus Authors + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License. + --> - - - - - - - - - - - + + + + + + + + + + + diff --git a/README.md b/README.md index 650b64d1..069cc5f4 100644 --- a/README.md +++ b/README.md @@ -159,7 +159,7 @@ msiexec /i --% ADDLOCAL=FirewallException APPLICATIONFOLDER=" On some older versions of Windows, you may need to surround parameter values with double quotes to get the installation command parsing properly: ```powershell -msiexec /i C:\Users\Administrator\Downloads\windows_exporter.msi --% ENABLED_COLLECTORS="ad,iis,memory,process,tcp,textfile,thermalzone" TEXTFILE_DIRS="C:\custom_metrics\" +msiexec /i C:\Users\Administrator\Downloads\windows_exporter.msi --% ENABLED_COLLECTORS="ad,iis,memory,process,tcp,textfile" TEXTFILE_DIRS="C:\custom_metrics\" ``` To install the exporter with creating a firewall exception, use the following command: diff --git a/internal/collector/thermalzone/thermalzone.go b/internal/collector/thermalzone/thermalzone.go deleted file mode 100644 index 7ce2a14b..00000000 --- a/internal/collector/thermalzone/thermalzone.go +++ /dev/null @@ -1,150 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -// -// Copyright The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build windows - -package thermalzone - -import ( - "fmt" - "log/slog" - "time" - - "github.com/alecthomas/kingpin/v2" - "github.com/prometheus-community/windows_exporter/internal/mi" - "github.com/prometheus-community/windows_exporter/internal/pdh" - "github.com/prometheus-community/windows_exporter/internal/types" - "github.com/prometheus/client_golang/prometheus" -) - -const Name = "thermalzone" - -type Config struct{} - -//nolint:gochecknoglobals -var ConfigDefaults = Config{} - -// A Collector is a Prometheus Collector for WMI Win32_PerfRawData_Counters_ThermalZoneInformation metrics. -type Collector struct { - config Config - - perfDataCollector *pdh.Collector[perfDataCounterValues] - perfDataObject []perfDataCounterValues - - percentPassiveLimit *prometheus.Desc - temperature *prometheus.Desc - throttleReasons *prometheus.Desc -} - -func New(config *Config) *Collector { - if config == nil { - config = &ConfigDefaults - } - - c := &Collector{ - config: *config, - } - - return c -} - -func NewWithFlags(_ *kingpin.Application) *Collector { - return &Collector{} -} - -func (c *Collector) GetName() string { - return Name -} - -func (c *Collector) Close() error { - c.perfDataCollector.Close() - - return nil -} - -func (c *Collector) Build(logger *slog.Logger, _ *mi.Session) error { - logger.Warn("The thermalzone collector is deprecated and will be removed in a future release. Please use the 'performancecounter' collector instead.", - slog.String("collector", c.GetName()), - ) - - c.temperature = prometheus.NewDesc( - prometheus.BuildFQName(types.Namespace, Name, "temperature_celsius"), - "(Temperature)", - []string{ - "name", - }, - nil, - ) - c.percentPassiveLimit = prometheus.NewDesc( - prometheus.BuildFQName(types.Namespace, Name, "percent_passive_limit"), - "(PercentPassiveLimit)", - []string{ - "name", - }, - nil, - ) - c.throttleReasons = prometheus.NewDesc( - prometheus.BuildFQName(types.Namespace, Name, "throttle_reasons"), - "(ThrottleReasons)", - []string{ - "name", - }, - nil, - ) - - var err error - - c.perfDataCollector, err = pdh.NewCollector[perfDataCounterValues](logger.With(slog.String("collector", Name)), pdh.CounterTypeRaw, "Thermal Zone Information", pdh.InstancesAll) - if err != nil { - return fmt.Errorf("failed to create Thermal Zone Information collector: %w", err) - } - - return nil -} - -// Collect sends the metric values for each metric -// to the provided prometheus Metric channel. -func (c *Collector) Collect(ch chan<- prometheus.Metric, _ time.Duration) error { - err := c.perfDataCollector.Collect(&c.perfDataObject) - if err != nil { - return fmt.Errorf("failed to collect Thermal Zone Information metrics: %w", err) - } - - for _, data := range c.perfDataObject { - // Divide by 10 and subtract 273.15 to convert decikelvin to celsius - ch <- prometheus.MustNewConstMetric( - c.temperature, - prometheus.GaugeValue, - (data.HighPrecisionTemperature/10.0)-273.15, - data.Name, - ) - - ch <- prometheus.MustNewConstMetric( - c.percentPassiveLimit, - prometheus.GaugeValue, - data.PercentPassiveLimit, - data.Name, - ) - - ch <- prometheus.MustNewConstMetric( - c.throttleReasons, - prometheus.GaugeValue, - data.ThrottleReasons, - data.Name, - ) - } - - return nil -} diff --git a/internal/collector/thermalzone/thermalzone_test.go b/internal/collector/thermalzone/thermalzone_test.go deleted file mode 100644 index bd1efcce..00000000 --- a/internal/collector/thermalzone/thermalzone_test.go +++ /dev/null @@ -1,33 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -// -// Copyright The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build windows - -package thermalzone_test - -import ( - "testing" - - "github.com/prometheus-community/windows_exporter/internal/collector/thermalzone" - "github.com/prometheus-community/windows_exporter/internal/utils/testutils" -) - -func BenchmarkCollector(b *testing.B) { - testutils.FuncBenchmarkCollector(b, thermalzone.Name, thermalzone.NewWithFlags) -} - -func TestCollector(t *testing.T) { - testutils.TestCollector(t, thermalzone.New, nil) -} diff --git a/internal/collector/thermalzone/types.go b/internal/collector/thermalzone/types.go deleted file mode 100644 index 27a3557c..00000000 --- a/internal/collector/thermalzone/types.go +++ /dev/null @@ -1,26 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -// -// Copyright The Prometheus Authors -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build windows - -package thermalzone - -type perfDataCounterValues struct { - Name string - - HighPrecisionTemperature float64 `perfdata:"High Precision Temperature"` - PercentPassiveLimit float64 `perfdata:"% Passive Limit"` - ThrottleReasons float64 `perfdata:"Throttle Reasons"` -} diff --git a/pkg/collector/collection.go b/pkg/collector/collection.go index a1ce09df..33663725 100644 --- a/pkg/collector/collection.go +++ b/pkg/collector/collection.go @@ -73,7 +73,6 @@ import ( "github.com/prometheus-community/windows_exporter/internal/collector/tcp" "github.com/prometheus-community/windows_exporter/internal/collector/terminal_services" "github.com/prometheus-community/windows_exporter/internal/collector/textfile" - "github.com/prometheus-community/windows_exporter/internal/collector/thermalzone" "github.com/prometheus-community/windows_exporter/internal/collector/time" "github.com/prometheus-community/windows_exporter/internal/collector/udp" "github.com/prometheus-community/windows_exporter/internal/collector/update" @@ -147,7 +146,6 @@ func NewWithConfig(config Config) *Collection { collectors[tcp.Name] = tcp.New(&config.TCP) collectors[terminal_services.Name] = terminal_services.New(&config.TerminalServices) collectors[textfile.Name] = textfile.New(&config.Textfile) - collectors[thermalzone.Name] = thermalzone.New(&config.ThermalZone) collectors[time.Name] = time.New(&config.Time) collectors[udp.Name] = udp.New(&config.UDP) collectors[update.Name] = update.New(&config.Update) diff --git a/pkg/collector/config.go b/pkg/collector/config.go index be1f790d..a70927fe 100644 --- a/pkg/collector/config.go +++ b/pkg/collector/config.go @@ -63,7 +63,6 @@ import ( "github.com/prometheus-community/windows_exporter/internal/collector/tcp" "github.com/prometheus-community/windows_exporter/internal/collector/terminal_services" "github.com/prometheus-community/windows_exporter/internal/collector/textfile" - "github.com/prometheus-community/windows_exporter/internal/collector/thermalzone" "github.com/prometheus-community/windows_exporter/internal/collector/time" "github.com/prometheus-community/windows_exporter/internal/collector/udp" "github.com/prometheus-community/windows_exporter/internal/collector/update" @@ -117,7 +116,6 @@ type Config struct { TCP tcp.Config `yaml:"tcp"` TerminalServices terminal_services.Config `yaml:"terminal_services"` Textfile textfile.Config `yaml:"textfile"` - ThermalZone thermalzone.Config `yaml:"thermalzone"` Time time.Config `yaml:"time"` UDP udp.Config `yaml:"udp"` Update update.Config `yaml:"update"` @@ -175,7 +173,6 @@ var ConfigDefaults = Config{ TCP: tcp.ConfigDefaults, TerminalServices: terminal_services.ConfigDefaults, Textfile: textfile.ConfigDefaults, - ThermalZone: thermalzone.ConfigDefaults, Time: time.ConfigDefaults, UDP: udp.ConfigDefaults, Update: update.ConfigDefaults, diff --git a/pkg/collector/map.go b/pkg/collector/map.go index c79965fc..d08781da 100644 --- a/pkg/collector/map.go +++ b/pkg/collector/map.go @@ -67,7 +67,6 @@ import ( "github.com/prometheus-community/windows_exporter/internal/collector/tcp" "github.com/prometheus-community/windows_exporter/internal/collector/terminal_services" "github.com/prometheus-community/windows_exporter/internal/collector/textfile" - "github.com/prometheus-community/windows_exporter/internal/collector/thermalzone" "github.com/prometheus-community/windows_exporter/internal/collector/time" "github.com/prometheus-community/windows_exporter/internal/collector/udp" "github.com/prometheus-community/windows_exporter/internal/collector/update" @@ -128,7 +127,6 @@ var BuildersWithFlags = map[string]BuilderWithFlags[Collector]{ tcp.Name: NewBuilderWithFlags(tcp.NewWithFlags), terminal_services.Name: NewBuilderWithFlags(terminal_services.NewWithFlags), textfile.Name: NewBuilderWithFlags(textfile.NewWithFlags), - thermalzone.Name: NewBuilderWithFlags(thermalzone.NewWithFlags), time.Name: NewBuilderWithFlags(time.NewWithFlags), udp.Name: NewBuilderWithFlags(udp.NewWithFlags), update.Name: NewBuilderWithFlags(update.NewWithFlags),