Repository
Munin (2.0)
Last change
2019-03-13
Graph Categories
Family
auto
Capabilities
Keywords
Language
Shell
License
GPL-2.0-only
Authors

acpi

Name

acpi - Munin plugin to monitor the temperature in different ACPI Thermal zones.

Applicable Systems

Linux systems with ACPI support.

Configuration

Load the ‘thermal’ kernel module and the plugin gets the thermal zones from /sys/class/thermal/thermal_zone*/ automagically.

Usage

Link this plugin to @@CONFDIR@@/plugins/ and restart the munin-node.

Interpretation

The plugin shows the temperature from the different thermal zones.

Magic Markers

#%# family=auto
#%# capabilities=autoconf

Bugs

None known.

Version

v1.0 - 2006-11-13 v1.1 - 2018-03-24

Author

Nicolai Langfeldt (janl@linpro.no) 2006-11-13

License

GPLv2

#!@@GOODSH@@
# -*- sh -*-

: <<=cut

=head1 NAME

acpi - Munin plugin to monitor the temperature in different ACPI Thermal zones.

=head1 APPLICABLE SYSTEMS

Linux systems with ACPI support.

=head1 CONFIGURATION

Load the 'thermal' kernel module and the plugin gets the thermal zones from /sys/class/thermal/thermal_zone*/ automagically.

=head1 USAGE

Link this plugin to @@CONFDIR@@/plugins/ and restart the munin-node.

=head1 INTERPRETATION

The plugin shows the temperature from the different thermal zones.

=head1 MAGIC MARKERS

 #%# family=auto
 #%# capabilities=autoconf

=head1 BUGS

None known.

=head1 VERSION

v1.0 - 2006-11-13
v1.1 - 2018-03-24

=head1 AUTHOR

Nicolai Langfeldt (janl@linpro.no) 2006-11-13

=head1 LICENSE

GPLv2

=cut


# directories containing thermal zone information
if [ -d /sys/class/thermal/ ]; then
    ATZ=$(find /sys/class/thermal/ -maxdepth 1 -name "thermal_zone*" | sort -V)
else
    ATZ=
fi


do_ () { # Fetch
    for ZONE in $ATZ; do
         TEMP=$(cat "$ZONE/temp")
         echo "$(basename "$ZONE").value $(echo "$TEMP" | awk '{print $1/1000}')"
    done
    exit 0
}

do_config () {
    echo "graph_title ACPI Thermal zone temperatures"
    echo "graph_vlabel Celsius"
    echo "graph_category sensors"
    echo "graph_info This graph shows the temperature in different ACPI Thermal zones.  If there is only one it will usually be the case temperature."
    for ZONE in $ATZ; do
         TYPE=$(cat "$ZONE/type")
         echo "$(basename "$ZONE").label $TYPE"
    done
    # print values immediately if dirtyconfig is supported
    if [ "${MUNIN_CAP_DIRTYCONFIG:-0}" = 1 ]; then do_; fi
}

do_autoconf () {
    if [ -z "$ATZ" ]; then
        echo "no (failed to find thermal zones below /sys/class/thermal/thermal_zone*)"
	exit 0
    fi
    for f in $ATZ; do
	if [ ! -r "$f/temp" ]; then
	    echo "no (cannot read $f/temp)"
	    exit 0
	fi
    done
    echo yes
    exit 0
}

case $1 in
    config|autoconf|'')
	"do_$1"
esac

exit $?