Skip to content

Telegraf reports more than 100% cpu usage and negative values on a 40 logical cores system #18141

@jihed-bengharbia-qiminfo

Description

Relevant telegraf.conf

[[inputs.win_perf_counters.object]]
# Processor usage, alternative to native, reports on a per core.
 ObjectName = "Processor"
 Instances = ["*"]
 Counters = ["% Idle Time", "% Interrupt Time", "% Privileged Time", "% User Time", "% Processor Time"]
 Measurement = "win_cpu"
 IncludeTotal=true

[[inputs.cpu]]
 percpu = true
 totalcpu = true
 collect_cpu_time = false
 report_active = false

Logs from Telegraf

2025-12-17T14:42:52Z I! Starting Telegraf 1.37.0 brought to you by InfluxData the makers of InfluxDB
2025-12-17T14:42:52Z I! Available plugins: 242 inputs, 9 aggregators, 35 processors, 26 parsers, 67 outputs, 7 secret-stores
2025-12-17T14:42:52Z I! Loaded inputs: cpu disk diskio internal mem net netstat procstat system win_perf_counters
2025-12-17T14:42:52Z I! Loaded aggregators:
2025-12-17T14:42:52Z I! Loaded processors:
2025-12-17T14:42:52Z I! Loaded secretstores:
2025-12-17T14:42:52Z I! Loaded outputs: influxdb (2x)
2025-12-17T14:42:52Z I! Tags enabled: IP=0.0.0.0 environment=VAL host=hostname.example.com machine_type=physical os_type=Win32NT os_version=Microsoft Windows Server 2022 Standard 10.0.20348.0 region=N/A
2025-12-17T14:42:52Z W! Deprecated inputs: 0 and 1 options
2025-12-17T14:42:52Z I! [agent] Config: Interval:10s, Quiet:false, Hostname:"hostname.example.com", Flush Interval:10s
2025-12-17T14:42:52Z W! [agent] The default value of 'skip_processors_after_aggregators' will change to 'true' with Telegraf v1.40.0! If you need the current default behavior, please explicitly set the option to 'false'!
2025-12-17T14:43:10Z E! [inputs.cpu] Error in plugin: current total CPU time is less than previous total CPU time
2025-12-17T14:43:30Z E! [inputs.cpu] Error in plugin: current total CPU time is less than previous total CPU time
2025-12-17T14:46:20Z E! [inputs.cpu] Error in plugin: current total CPU time is less than previous total CPU time
2025-12-17T14:47:10Z E! [inputs.cpu] Error in plugin: current total CPU time is less than previous total CPU time
2025-12-17T14:49:59Z I! [agent] Hang on, flushing any cached metrics before shutdown
2025-12-17T14:49:59Z I! [agent] Stopping running outputs
2025-12-17T14:50:00Z W! Strict environment variable handling will be the new default starting with v1.38.0! If your configuration works with strict handling or you don't use environment variables it is safe to ignore this warning. Otherwise please explicitly add the --non-strict-env-handling flag!
2025-12-17T14:50:00Z I! Loading config: C:\\Program Files\\InfluxData\\telegraf-1.37.0\\telegraf.conf
2025-12-17T14:50:00Z W! DeprecationWarning: Option "ignore_protocol_stats" of plugin "inputs.net" deprecated since version 1.37.0 and will be removed in 1.45.0: option is ignored
2025-12-17T14:50:00Z I! Starting Telegraf 1.37.0 brought to you by InfluxData the makers of InfluxDB
2025-12-17T14:50:00Z I! Available plugins: 242 inputs, 9 aggregators, 35 processors, 26 parsers, 67 outputs, 7 secret-stores
2025-12-17T14:50:00Z I! Loaded inputs: cpu disk diskio internal mem net netstat procstat system win_perf_counters
2025-12-17T14:50:00Z I! Loaded aggregators:
2025-12-17T14:50:00Z I! Loaded processors:
2025-12-17T14:50:00Z I! Loaded secretstores:
2025-12-17T14:50:00Z I! Loaded outputs: influxdb (2x)
2025-12-17T14:50:00Z I! Tags enabled: IP=0.0.0.0 environment=VAL host=hostname.example.com machine_type=physical os_type=Win32NT os_version=Microsoft Windows Server 2022 Standard 10.0.20348.0 region=N/A
2025-12-17T14:50:00Z W! Deprecated inputs: 0 and 1 options
2025-12-17T14:50:00Z I! [agent] Config: Interval:10s, Quiet:false, Hostname:"hostname.example.com", Flush Interval:10s
2025-12-17T14:50:00Z W! [agent] The default value of 'skip_processors_after_aggregators' will change to 'true' with Telegraf v1.40.0! If you need the current default behavior, please explicitly set the option to 'false'!
2025-12-17T14:58:21Z W! [inputs.win_perf_counters] Error while getting value for counter "\\Processor(*)\\% Idle Time", instance: *, will skip metric: A counter with a negative value was detected.
2025-12-17T14:58:21Z W! [inputs.win_perf_counters] Error while getting value for counter "\\Processor(*)\\% Processor Time", instance: *, will skip metric: A counter with a negative value was detected.
2025-12-17T15:04:30Z I! [agent] Hang on, flushing any cached metrics before shutdown
2025-12-17T15:04:30Z I! [agent] Stopping running outputs
2025-12-17T15:04:31Z W! Strict environment variable handling will be the new default starting with v1.38.0! If your configuration works with strict handling or you don't use environment variables it is safe to ignore this warning. Otherwise please explicitly add the --non-strict-env-handling flag!
2025-12-17T15:04:31Z I! Loading config: C:\\Program Files\\InfluxData\\telegraf-1.37.0\\telegraf.conf
2025-12-17T15:04:31Z W! DeprecationWarning: Option "ignore_protocol_stats" of plugin "inputs.net" deprecated since version 1.37.0 and will be removed in 1.45.0: option is ignored
2025-12-17T15:04:31Z I! Starting Telegraf 1.37.0 brought to you by InfluxData the makers of InfluxDB
2025-12-17T15:04:31Z I! Available plugins: 242 inputs, 9 aggregators, 35 processors, 26 parsers, 67 outputs, 7 secret-stores
2025-12-17T15:04:31Z I! Loaded inputs: cpu disk diskio internal mem net netstat procstat system win_perf_counters
2025-12-17T15:04:31Z I! Loaded aggregators:
2025-12-17T15:04:31Z I! Loaded processors:
2025-12-17T15:04:31Z I! Loaded secretstores:
2025-12-17T15:04:31Z I! Loaded outputs: influxdb (2x)
2025-12-17T15:04:31Z I! Tags enabled: IP=0.0.0.0 environment=VAL host=hostname.example.com machine_type=physical os_type=Win32NT os_version=Microsoft Windows Server 2022 Standard 10.0.20348.0 region=N/A
2025-12-17T15:04:31Z W! Deprecated inputs: 0 and 1 options
2025-12-17T15:04:31Z I! [agent] Config: Interval:10s, Quiet:false, Hostname:"hostname.example.com", Flush Interval:10s
2025-12-17T15:04:31Z W! [agent] The default value of 'skip_processors_after_aggregators' will change to 'true' with Telegraf v1.40.0! If you need the current default behavior, please explicitly set the option to 'false'!
2025-12-17T16:43:10Z W! [inputs.win_perf_counters] Error while getting value for counter "\\Processor(*)\\% Idle Time", instance: *, will skip metric: A counter with a negative value was detected.
2025-12-17T16:52:10Z W! [inputs.win_perf_counters] Error while getting value for counter "\\Processor(*)\\% Interrupt Time", instance: *, will skip metric: A counter with a negative value was detected.
2025-12-17T16:52:10Z W! [inputs.win_perf_counters] Error while getting value for counter "\\Processor(*)\\% Privileged Time", instance: *, will skip metric: A counter with a negative value was detected.
2025-12-17T16:52:10Z W! [inputs.win_perf_counters] Error while getting value for counter "\\Processor(*)\\% User Time", instance: *, will skip metric: A counter with a negative value was detected.
2025-12-17T16:52:10Z W! [inputs.win_perf_counters] Error while getting value for counter "\\Processor(*)\\% Processor Time", instance: *, will skip metric: A counter with a negative denominator value was detected.
2025-12-17T16:52:20Z W! [inputs.win_perf_counters] Error while getting value for counter "\\Processor(*)\\% Processor Time", instance: *, will skip metric: A counter with a negative value was detected.
2025-12-17T16:59:01Z W! [inputs.win_perf_counters] Error while getting value for counter "\\Processor(*)\\% Idle Time", instance: *, will skip metric: A counter with a negative value was detected.
2025-12-17T17:07:40Z W! [inputs.win_perf_counters] Error while getting value for counter "\\Processor(*)\\% Interrupt Time", instance: *, will skip metric: A counter with a negative value was detected.
2025-12-17T17:07:40Z W! [inputs.win_perf_counters] Error while getting value for counter "\\Processor(*)\\% Privileged Time", instance: *, will skip metric: A counter with a negative value was detected.
2025-12-17T17:07:40Z W! [inputs.win_perf_counters] Error while getting value for counter "\\Processor(*)\\% User Time", instance: *, will skip metric: A counter with a negative value was detected.
2025-12-17T17:07:40Z W! [inputs.win_perf_counters] Error while getting value for counter "\\Processor(*)\\% Processor Time", instance: *, will skip metric: A counter with a negative denominator value was detected.
2025-12-17T17:07:50Z W! [inputs.win_perf_counters] Error while getting value for counter "\\Processor(*)\\% Processor Time", instance: *, will skip metric: A counter with a negative value was detected.

System info

Telegraf 1.37.0 Windows Server 2022 Standard 21H2 20348.4529 Intel(R) Xeon(R) Silver 4210 CPU @ 2.20GHz 2.19 GHz (2 processors)

Docker

No response

Steps to reproduce

  1. Install Telegraf latest version on a windows system with 20 cores and 40 logical processors
  2. Configure either inputs.cpu or inputs.win_perf_counters plugin to capture cpu percentage usage

Expected behavior

Correct CPU usage values are reported by telegraf

Actual behavior

telegraf reports more than 100% usage and also report negative values

Image

Additional info

I noticed that the issue only happens on a host with more than 20 logical processors , it has 20 cores and 40 logical processors.
I have another machine with 20 cores and 20 logical processors and it doesn't show this behavior.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugunexpected problem or unintended behavior

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions