No sensor charts showing

I upgraded Netdata to the latest version (v1.26.0-333-nightly) but don’t now see any charts related to sensors. Shell ‘sensors-detect’ runs through ok and shell ‘sensors’ shows that they are working. The ‘python.d/sensors.conf’ file lists the right chips: and types: corresponding to those reported by ‘sensors’ and ‘sensors’ and show valid values for fans, volts etc. What else should I check?

Hey @kinsham,

Are you using the Dashboard of Netdata Agent or Netdata Cloud?

Have you tried to debug the collector as illustrated in the following doc?

I am using Netdata Agent. I installed pyYAML which was missing and followed the steps outlined in the doc you referenced and it showed some errors loading the sensors python module. Below follows the console output.

chrisw@homeserver:~$ sudo su -s /bin/bash netdata
[sudo] password for chrisw: 
netdata@homeserver:/home/chrisw$ /usr/libexec/netdata/plugins.d/python.d.plugin sensors debug trace
2020-12-08 20:17:10: python.d INFO: plugin[main] : using python v2
2020-12-08 20:17:10: python.d DEBUG: plugin[main] : looking for 'python.d.conf' in ['/etc/netdata', '/usr/lib/netdata/conf.d']
2020-12-08 20:17:10: python.d DEBUG: plugin[main] : loading '/usr/lib/netdata/conf.d/python.d.conf'
2020-12-08 20:17:10: python.d DEBUG: plugin[main] : '/usr/lib/netdata/conf.d/python.d.conf' is loaded
2020-12-08 20:17:10: python.d DEBUG: plugin[main] : looking for 'pythond-jobs-statuses.json' in /var/lib/netdata
2020-12-08 20:17:10: python.d DEBUG: plugin[main] : loading '/var/lib/netdata/pythond-jobs-statuses.json'
2020-12-08 20:17:10: python.d DEBUG: plugin[main] : '/var/lib/netdata/pythond-jobs-statuses.json' is loaded
2020-12-08 20:17:10: python.d DEBUG: plugin[main] : [sensors] looking for 'sensors.conf' in ['/etc/netdata/python.d', '/usr/lib/netdata/conf.d/python.d']
2020-12-08 20:17:10: python.d DEBUG: plugin[main] : [sensors] loading '/etc/netdata/python.d/sensors.conf'
2020-12-08 20:17:10: python.d ERROR: plugin[main] : [sensors] error on loading '/etc/netdata/python.d/sensors.conf' : ScannerError()
2020-12-08 20:17:10: python.d ERROR: plugin[main] : Traceback (most recent call last):
  File "/usr/libexec/netdata/plugins.d/python.d.plugin", line 249, in load_module_config
    config.load(abs_path)
  File "/usr/libexec/netdata/plugins.d/python.d.plugin", line 193, in load
    self.config.update(load_config(abs_path) or dict())
  File "/usr/libexec/netdata/python.d/python_modules/bases/loaders.py", line 46, in load_config
    return load_yaml(stream)
  File "/usr/libexec/netdata/python.d/python_modules/bases/loaders.py", line 39, in load_yaml
    return loader.get_single_data()
  File "/usr/libexec/netdata/python.d/python_modules/pyyaml2/constructor.py", line 38, in get_single_data
    node = self.get_single_node()
  File "/usr/libexec/netdata/python.d/python_modules/pyyaml2/composer.py", line 37, in get_single_node
    document = self.compose_document()
  File "/usr/libexec/netdata/python.d/python_modules/pyyaml2/composer.py", line 56, in compose_document
    node = self.compose_node(None, None)
  File "/usr/libexec/netdata/python.d/python_modules/pyyaml2/composer.py", line 85, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/libexec/netdata/python.d/python_modules/pyyaml2/composer.py", line 134, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/usr/libexec/netdata/python.d/python_modules/pyyaml2/composer.py", line 65, in compose_node
    if self.check_event(AliasEvent):
  File "/usr/libexec/netdata/python.d/python_modules/pyyaml2/parser.py", line 99, in check_event
    self.current_event = self.state()
  File "/usr/libexec/netdata/python.d/python_modules/pyyaml2/parser.py", line 450, in parse_block_mapping_value
    if not self.check_token(KeyToken, ValueToken, BlockEndToken):
  File "/usr/libexec/netdata/python.d/python_modules/pyyaml2/scanner.py", line 116, in check_token
    while self.need_more_tokens():
  File "/usr/libexec/netdata/python.d/python_modules/pyyaml2/scanner.py", line 150, in need_more_tokens
    self.stale_possible_simple_keys()
  File "/usr/libexec/netdata/python.d/python_modules/pyyaml2/scanner.py", line 290, in stale_possible_simple_keys
    "could not found expected ':'", self.get_mark())
ScannerError: while scanning a simple key
  in "/etc/netdata/python.d/sensors.conf", line 54, column 1
could not found expected ':'
  in "/etc/netdata/python.d/sensors.conf", line 55, column 1

2020-12-08 20:17:10: python.d INFO: plugin[main] : [sensors] has no job configs, skipping it
2020-12-08 20:17:10: python.d INFO: plugin[main] : no jobs to run

I am using the standard sensors.conf file as below:

chrisw@homeserver:~$ sudo cat /etc/netdata/python.d/sensors.conf 
# netdata python.d.plugin configuration for sensors
#
# This file is in YaML format. Generally the format is:
#
# name: value
#

# ----------------------------------------------------------------------
# Global Variables
# These variables set the defaults for all JOBs, however each JOB
# may define its own, overriding the defaults.

# update_every sets the default data collection frequency.
# If unset, the python.d.plugin default is used.
# update_every: 1

# priority controls the order of charts at the netdata dashboard.
# Lower numbers move the charts towards the top of the page.
# If unset, the default for python.d.plugin is used.
# priority: 60000

# penalty indicates whether to apply penalty to update_every in case of failures.
# Penalty will increase every 5 failed updates in a row. Maximum penalty is 10 minutes.
# penalty: yes

# autodetection_retry sets the job re-check interval in seconds.
# The job is not deleted if check fails.
# Attempts to start the job are made once every autodetection_retry.
# This feature is disabled by default.
# autodetection_retry: 0

# ----------------------------------------------------------------------
# Limit the number of sensors types.
# Comment the ones you want to disable.
# Also, re-arranging this list controls the order of the charts at the
# netdata dashboard.

types:
  - temperature
  - fan
  - voltage
  - current
  - power
  - energy
  - humidity

# ----------------------------------------------------------------------
# Limit the number of sensors chips.
# Uncomment the first line (chips:) and add chip names below it.
# The chip names that start with like that will be matched.
# You can find the chip names using the sensors command.

chips:
atk0110-acpi-0      <==line 54 - this is the correct chip name reported by $sensors
#  - i8k                      <==line 55
#  - coretemp
#
# chip names can be found using the sensors shell command
# the prefix is matched (anything that starts like that)
#
#----------------------------------------------------------------------

There doesn't appear to be anything amiss with the file AFAIK. Could you take a look for me?

Thank you for sending these logs. You need to add a : ad the end of line 54.

Can you try these and report back the results? If it solves your issue, please mark my post as the “solution”.

That is the solution :+1: Many thanks for your help. May I suggest that the comments in this file explicitly note the required “:”?

Just out of interest, how is the content of this section supposed to be populated? I don’t recall now whether I added it manually (and made a mistake) or if it was added by some installation script. The issue only arose on the last upgrade so this error has been there throughout but did not previously cause a problem.

1 Like

When editing the file for the first time using our script, you are shown the default configuration + configuration tips so that the user can see them while editing the configuration file itself.

Thanks for the tip on the docs, but that concerns the syntax of the configuration language that we use (YAML).

Cheers!