Skip to content

Commit

Permalink
Release 2023112901
Browse files Browse the repository at this point in the history
  • Loading branch information
markuslf committed Nov 29, 2023
1 parent 9ac1075 commit 096aa98
Show file tree
Hide file tree
Showing 222 changed files with 228 additions and 225 deletions.
2 changes: 1 addition & 1 deletion check-plugins/about-me/about-me
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ except ImportError:


__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023112201'
__version__ = '2023112901'

DESCRIPTION = 'Reports a quick overview about the host dimensions and installed software.'

Expand Down
2 changes: 1 addition & 1 deletion check-plugins/apache-httpd-status/apache-httpd-status
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ from lib.globals import (STATE_CRIT, STATE_OK, # pylint: disable=C0413
STATE_UNKNOWN, STATE_WARN)

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023071203'
__version__ = '2023112901'

DESCRIPTION = 'Checks how well an Apache httpd server is performing.'

Expand Down
2 changes: 1 addition & 1 deletion check-plugins/apache-httpd-version/apache-httpd-version
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import lib.version # pylint: disable=C0413
from lib.globals import (STATE_UNKNOWN) # pylint: disable=C0413

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023101101'
__version__ = '2023112901'

DESCRIPTION = 'Tracks if Apache httpd is EOL.'

Expand Down
2 changes: 1 addition & 1 deletion check-plugins/apache-solr-version/apache-solr-version
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import lib.version # pylint: disable=C0413
from lib.globals import (STATE_UNKNOWN) # pylint: disable=C0413

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023112102'
__version__ = '2023112901'

DESCRIPTION = 'Tracks if Apache Solr is EOL.'

Expand Down
2 changes: 1 addition & 1 deletion check-plugins/axenita-stats/axenita-stats
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ from lib.globals import (STATE_CRIT, STATE_OK, # pylint: disable=C0413
STATE_UNKNOWN, STATE_WARN)

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023071201'
__version__ = '2023112901'

DESCRIPTION = 'With this plugin you can track some values of the Axenita application.'

Expand Down
2 changes: 1 addition & 1 deletion check-plugins/borgbackup/borgbackup
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ from lib.globals import (STATE_CRIT, STATE_OK, # pylint: disable=C0413
STATE_UNKNOWN, STATE_WARN)

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023071301'
__version__ = '2023112901'

DESCRIPTION = '''Checks the date and return code of the last borgbackup, according to the logfile.
`cat /var/log/borg/borg-prune.log`
Expand Down
2 changes: 1 addition & 1 deletion check-plugins/by-ssh/by-ssh
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ from lib.globals import (STATE_CRIT, STATE_OK, # pylint: disable=C0413


__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023051201'
__version__ = '2023112901'

DESCRIPTION = """This plugin uses SSH to execute a command on a remote host,
returning STDOUT and, in case of failure, STDERR and the command's return code.
Expand Down
2 changes: 1 addition & 1 deletion check-plugins/cometsystem/cometsystem
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ from lib.globals import (STATE_CRIT, STATE_OK, # pylint: disable=C0413

__author__ = """Linuxfabrik GmbH, Zurich/Switzerland;
originally written by Dominik Riva, Universitätsspital Basel/Switzerland"""
__version__ = '2023071203'
__version__ = '2023112901'

DESCRIPTION = """This check targets the JSON endpoint of https://www.cometsystem.com/ Web Sensors.
"""
Expand Down
2 changes: 1 addition & 1 deletion check-plugins/countdown/countdown
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ from lib.globals import (STATE_CRIT, STATE_OK, # pylint: disable=C0413
STATE_UNKNOWN, STATE_WARN)

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023071301'
__version__ = '2023112901'

DESCRIPTION = 'Warns before an expiration date is scheduled to occur.'

Expand Down
2 changes: 1 addition & 1 deletion check-plugins/cpu-usage/cpu-usage
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ except ImportError:


__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023092101'
__version__ = '2023112901'

DESCRIPTION = """Mainly provides utilization percentages for each specific CPU time. Takes a time
period into account: the cpu usage within a certain amount of time has to be equal
Expand Down
2 changes: 1 addition & 1 deletion check-plugins/crypto-policy/crypto-policy
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ from lib.globals import (STATE_OK, STATE_UNKNOWN, # pylint: disable=C0413
STATE_WARN)

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023071203'
__version__ = '2023112901'

DESCRIPTION = """Checks the current crypto policy against a desired one,
and returns a warning on a non-match."""
Expand Down
2 changes: 1 addition & 1 deletion check-plugins/csv-values/csv-values
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ from lib.globals import (STATE_CRIT, STATE_OK, # pylint: disable=C0413
STATE_UNKNOWN, STATE_WARN)

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023082201'
__version__ = '2023112901'

DESCRIPTION = """This check imports a CSV file into an SQLite database and can then run a separate
warning query and/or a critical query against it. The result - the number of
Expand Down
2 changes: 1 addition & 1 deletion check-plugins/deb-lastactivity/deb-lastactivity
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ from lib.globals import (STATE_CRIT, STATE_OK, # pylint: disable=C0413
STATE_UNKNOWN, STATE_WARN)

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023091601'
__version__ = '2023112901'

DESCRIPTION = """Checks the timespan since the last package manager activity,
for example due to an apt install/update."""
Expand Down
2 changes: 1 addition & 1 deletion check-plugins/dhcp-scope-usage/dhcp-scope-usage
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ from lib.globals import (STATE_CRIT, STATE_OK, # pylint: disable=C0413
STATE_UNKNOWN, STATE_WARN)

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023071203'
__version__ = '2023112901'

DESCRIPTION = """Checks the IPv4 scope usage for a Windows DHCP server service."""

Expand Down
2 changes: 1 addition & 1 deletion check-plugins/diacos/diacos
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ from lib.globals import (STATE_CRIT, STATE_OK, # pylint: disable=C0413

__author__ = """Linuxfabrik GmbH, Zurich/Switzerland;
originally written by Dominik Riva, Universitätsspital Basel/Switzerland"""
__version__ = '2023071201'
__version__ = '2023112901'


DESCRIPTION = """This plugin checks availability and performance of an ID DIACOS® installation
Expand Down
11 changes: 7 additions & 4 deletions check-plugins/disk-io/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Hints:

* ``--count=5`` (the default) while checking every minute means that the check reports a warning if any of your disks was above a threshold in the last 5 minutes.
* The check uses the SQLite databases ``$TEMP/linuxfabrik-monitoring-plugins-disk-io.db`` to store its historical data.
* If you are wondering about ``dm-0``, ``dm-1`` etc.: It's part of the "device mapper" in the kernel, used by LVM. Use ``dmsetup ls`` to see what is behind it.
* If you are wondering about ``dm-0``, ``dm-1`` etc.: It's part of the "device mapper" in the kernel, used by LVM. Grant sudo permissions to the check plugin to see what is behind it.


Fact Sheet
Expand Down Expand Up @@ -123,24 +123,27 @@ Per disk:
:header-rows: 1

Name, Type, Description
<disk>_busy_time, Continous Counter, Time spent doing actual I/Os (in seconds).
<disk>_busy_time, Continous Counter, Time spent doing actual I/Os (in milliseconds).
<disk>_read_bytes, Continous Counter, Number of bytes read.
<disk>_read_bytes_per_second1, Bytes, Current number of bytes read.
<disk>_read_bytes_per_second15, Bytes, Current number of bytes read.
<disk>_read_merged_count, Continous Counter, Number of merged reads. See https://www.kernel.org/doc/Documentation/iostats.txt.
<disk>_read_time, Continous Counter, Time spent reading from disk (in seconds).
<disk>_read_time, Continous Counter, Time spent reading from disk (in milliseconds).
<disk>_write_bytes, Continous Counter, Number of bytes written.
<disk>_write_bytes_per_second1, Bytes, Current number of bytes written.
<disk>_write_bytes_per_second15, Bytes, Current number of bytes written.
<disk>_write_merged_count, Continous Counter, Number of merged writes. See https://www.kernel.org/doc/Documentation/iostats.txt.
<disk>_write_time, Continous Counter, Time spent writing to disk (in seconds).
<disk>_write_time, Continous Counter, Time spent writing to disk (in milliseconds).
<disk>_throughput1, None, Bytes per second. read_bytes_per_second1 + write_bytes_per_second1.
<disk>_throughput15, None, Bytes per second. read_bytes_per_second15 + write_bytes_per_second15.


Troubleshooting
---------------

``Query failed: INSERT INTO "perfdata" ...``
Delete ``$TEMP/linuxfabrik-monitoring-plugins-disk-io.db`` and try again.

``psutil raised error "not sure how to interpret line '...'"`` or ``Nothing checked. Running Kernel >= 4.18, this check needs the Python module psutil v5.7.0+``
Update the ``psutil`` library. On RHEL 8+, use at least ``python38`` and ``python38-psutil``.

Expand Down
2 changes: 1 addition & 1 deletion check-plugins/disk-io/disk-io
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ except ImportError as e:


__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023071301'
__version__ = '2023112901'

DESCRIPTION = """Checks disk IO."""

Expand Down
2 changes: 1 addition & 1 deletion check-plugins/disk-smart/disk-smart
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ from lib.globals import (STATE_CRIT, STATE_OK, # pylint: disable=C0413
STATE_UNKNOWN, STATE_WARN)

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023090401'
__version__ = '2023112901'

DESCRIPTION = '''This check is some kind of user interface for smartctl, which is a tool for
querying and controlling SMART (Self-Monitoring, Analysis, and Reporting Technology) data in
Expand Down
2 changes: 1 addition & 1 deletion check-plugins/disk-usage/disk-usage
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ except ImportError:


__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023112702'
__version__ = '2023112901'

DESCRIPTION = 'Checks the used disk space, for each partition.'

Expand Down
2 changes: 1 addition & 1 deletion check-plugins/dmesg/dmesg
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ from lib.globals import (STATE_CRIT, STATE_OK, # pylint: disable=C0413
STATE_UNKNOWN, STATE_WARN)

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023071203'
__version__ = '2023112901'

DESCRIPTION = """Checks dmesg for emerg, alert, crit and err messages. Executes `dmesg
--level=emerg,alert,crit,err --ctime `. If you fixed the issues (or just want to
Expand Down
2 changes: 1 addition & 1 deletion check-plugins/dns/dns
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ from lib.globals import (STATE_OK, STATE_UNKNOWN, # pylint: disable=C0413
STATE_WARN)

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023051201'
__version__ = '2023112901'

DESCRIPTION = """Performs a DNS lookup and converts a hostname to one or more IP addresses. Only the
name servers configured on the machine running this check plugin (for example those
Expand Down
2 changes: 1 addition & 1 deletion check-plugins/docker-info/docker-info
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ from lib.globals import (STATE_CRIT, STATE_OK, # pylint: disable=C0413
STATE_UNKNOWN, STATE_WARN)

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023051201'
__version__ = '2023112901'

DESCRIPTION = 'Displays system-wide docker information.'

Expand Down
2 changes: 1 addition & 1 deletion check-plugins/docker-stats/docker-stats
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ from lib.globals import (STATE_CRIT, STATE_OK, # pylint: disable=C0413
STATE_UNKNOWN, STATE_WARN)

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023071301'
__version__ = '2023112901'

DESCRIPTION = """This check prints various statistics for all running Docker containers, in much the
same way as the Unix application top, using the "docker stats" command."""
Expand Down
2 changes: 1 addition & 1 deletion check-plugins/dummy/dummy
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ from lib.globals import (STATE_CRIT, STATE_OK, # pylint: disable=C0413
STATE_UNKNOWN, STATE_WARN)

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023051201'
__version__ = '2023112901'

DESCRIPTION = 'This check just returns the given message, state and perfdata.'

Expand Down
2 changes: 1 addition & 1 deletion check-plugins/example/example
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ except ImportError:


__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023112401'
__version__ = '2023112901'

DESCRIPTION = """A working Linuxfabrik monitoring plugin, written in Python 3, as a basis for
further development, and much more text to help admins get this check up and
Expand Down
2 changes: 1 addition & 1 deletion check-plugins/fail2ban/fail2ban
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ from lib.globals import (STATE_CRIT, STATE_OK, # pylint: disable=C0413
STATE_UNKNOWN, STATE_WARN)

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023071203'
__version__ = '2023112901'

DESCRIPTION = 'In fail2ban, checks the amount of banned IP addresses per jail.'

Expand Down
2 changes: 1 addition & 1 deletion check-plugins/fedora-version/fedora-version
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import lib.version # pylint: disable=C0413
from lib.globals import (STATE_UNKNOWN) # pylint: disable=C0413

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023101101'
__version__ = '2023112901'

DESCRIPTION = 'Tracks if Fedora is EOL.'

Expand Down
2 changes: 1 addition & 1 deletion check-plugins/feed/feed
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ from lib.globals import (STATE_OK, STATE_UNKNOWN, # pylint: disable=C0413
STATE_WARN)

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023071203'
__version__ = '2023112901'

DESCRIPTION = '''Warns on new feed items of an RSS or Atom feed. Does not warn any more
if you acknowledge the warning in Icingaweb2, and/or if a given amount of time is over.'''
Expand Down
2 changes: 1 addition & 1 deletion check-plugins/file-age/file-age
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ except ImportError as e:


__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023071203'
__version__ = '2023112901'

DESCRIPTION = 'Checks the time of last data modification for a file or directory, in seconds.'

Expand Down
2 changes: 1 addition & 1 deletion check-plugins/file-count/file-count
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ from lib.globals import (STATE_CRIT, STATE_OK, # pylint: disable=C0413
STATE_UNKNOWN, STATE_WARN)

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023071203'
__version__ = '2023112901'

DESCRIPTION = 'Checks the number of matching files.'

Expand Down
2 changes: 1 addition & 1 deletion check-plugins/file-descriptors/file-descriptors
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ except ImportError:


__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023071201'
__version__ = '2023112901'

DESCRIPTION = 'Checks the number of allocated file handles in percent.'

Expand Down
2 changes: 1 addition & 1 deletion check-plugins/file-ownership/file-ownership
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ from lib.globals import (STATE_OK, STATE_UNKNOWN, # pylint: disable=C0413
STATE_WARN)

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023071203'
__version__ = '2023112901'

DESCRIPTION = 'Checks the ownership (owner and group, both have to be names) of a list of files.'

Expand Down
2 changes: 1 addition & 1 deletion check-plugins/file-size/file-size
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ from lib.globals import (STATE_CRIT, STATE_OK, # pylint: disable=C0413
STATE_UNKNOWN, STATE_WARN)

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023071203'
__version__ = '2023112901'

DESCRIPTION = 'Checks the size for a file or directory, in bytes.'

Expand Down
2 changes: 1 addition & 1 deletion check-plugins/fortios-cpu-usage/fortios-cpu-usage
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ from lib.globals import (STATE_CRIT, STATE_OK, # pylint: disable=C0413
STATE_UNKNOWN, STATE_WARN)

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023051201'
__version__ = '2023112901'

DESCRIPTION = """Returns the current system-wide CPU utilization as a percentage from Forti
Appliances like FortiGate running FortiOS via FortiOS REST API. Warns only if the
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import lib.url # pylint: disable=C0413
from lib.globals import (STATE_OK, STATE_UNKNOWN) # pylint: disable=C0413

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023101301'
__version__ = '2023112901'

DESCRIPTION = """Summarizes traffic statistics for all IPv4 and IPv6 firewall policies from Forti
Appliances like FortiGate running FortiOS via FortiOS REST API. The authentication
Expand Down
2 changes: 1 addition & 1 deletion check-plugins/fortios-ha-stats/fortios-ha-stats
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ from lib.globals import (STATE_CRIT, STATE_OK, # pylint: disable=C0413
STATE_UNKNOWN, STATE_WARN)

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023051201'
__version__ = '2023112901'

DESCRIPTION = """Returns statistics for members of HA cluster from Forti Appliances like FortiGate
running FortiOS via FortiOS REST API. Warns if the number of HA members is more
Expand Down
2 changes: 1 addition & 1 deletion check-plugins/fortios-memory-usage/fortios-memory-usage
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ from lib.globals import (STATE_CRIT, STATE_OK, # pylint: disable=C0413
STATE_UNKNOWN, STATE_WARN)

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023051201'
__version__ = '2023112901'

DESCRIPTION = """Displays amount of used memory in percent, and checks against configured or given
thresholds."""
Expand Down
2 changes: 1 addition & 1 deletion check-plugins/fortios-network-io/fortios-network-io
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ from lib.globals import (STATE_CRIT, STATE_OK, # pylint: disable=C0413
STATE_UNKNOWN, STATE_WARN)

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023051201'
__version__ = '2023112901'

DESCRIPTION = """This plugin checks network I/O and link states on all interfaces found on a Forti
Appliance like FortiGate running FortiOS, using the FortiOS REST API."""
Expand Down
2 changes: 1 addition & 1 deletion check-plugins/fortios-sensor/fortios-sensor
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ from lib.globals import (STATE_CRIT, STATE_OK, # pylint: disable=C0413
STATE_UNKNOWN, STATE_WARN)

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023051201'
__version__ = '2023112901'

DESCRIPTION = 'Checks FortiOS sensor information in detail.'

Expand Down
2 changes: 1 addition & 1 deletion check-plugins/fortios-version/fortios-version
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import lib.version # pylint: disable=C0413
from lib.globals import (STATE_UNKNOWN) # pylint: disable=C0413

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023101101'
__version__ = '2023112901'

DESCRIPTION = 'Tracks if FortiOS is EOL.'

Expand Down
2 changes: 1 addition & 1 deletion check-plugins/fs-inodes/fs-inodes
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ from lib.globals import (STATE_CRIT, STATE_OK, # pylint: disable=C0413
STATE_UNKNOWN, STATE_WARN)

__author__ = 'Linuxfabrik GmbH, Zurich/Switzerland'
__version__ = '2023071301'
__version__ = '2023112901'

DESCRIPTION = 'Checks the used inode space in percent, default on "/", "/tmp" and "/boot".'

Expand Down
Loading

0 comments on commit 096aa98

Please sign in to comment.