В каких единицах измеряются плагины disk
, interface
, irq
и swap_io
collectd?
Я сравниваю collectd 5, работающий на одном компьютере, с collectd 4, работающим на другом, и пытаюсь настроить их обоих так, чтобы они собирали одни и те же показатели.
disk
сообщает о дробных числах с плавающей запятой в collectd 5 (KiB?), о целых числах в 4 (байтах).
interface
— это дробные числа с плавающей запятой по 5 (КиБ?), целые по 4 (байта).
irq
- это, по-видимому, проценты на 5, кумулятивные мгновения (?) на 4.
swap_io
— это число с плавающей запятой (со случайным «нан») для collectd 5, целое число для 4.
Кроме того, предполагается, что плагин процессора, согласно вики collectd, фиксирует миги, когда ValuesPercentage
является ложным, а ReportByCpu
и ReportByState
истинными (их значения по умолчанию). Плагин для процессора collectd 4 не предлагает эти опции и меры в один миг. Я установил в collectd.conf экземпляра версии 5 только что упомянутые параметры (даже явно устанавливая значения по умолчанию), и... он упрямо продолжает сообщать проценты вместо мигов!
Обновление: после внимательного изучения кода для collectd 5 стало ясно, что вики collectd лжет: когда ValuesPercentage
ложно, а ReportByCpu
и ReportByState
верны , подключаемый модуль cpu
сообщает о скорости изменений, а не о кумулятивных моментах (как в collectd 4).
Дальнейшее обновление: я неправильно истолковал поведение collectd 4 для swap_io
. Оказывается, метрики swap
находятся в байтах, а swap_io
— в страницах (и вы не можете это настроить), поэтому правильным параметром collectd 5 является ReportBytes = false
, а не ReportBytes = true
. Это одним несоответствием меньше.
collectd.conf для версии 4:
# We're running collectd 4.10.9
# FQDNLookup since 4.3, became true by default with 5.0
FQDNLookup false
##
## Interval (in seconds) at which to query values.
## Starting with 5.4.3, this may be overridden on a per-plugin basis.
Interval 60
##
## Client part
##
## Logging (only one allowed)
##
# syslog since 4.0
LoadPlugin syslog
<Plugin syslog>
LogLevel info
</Plugin>
##
## Inputs
##
# cpu since 1.3
LoadPlugin cpu
# df since 3.6
LoadPlugin df
<Plugin df>
FSType tmpfs
IgnoreSelected true
# ReportByDevice since 4.8
ReportByDevice true
# ReportInodes false
# ReportReserved false by default; the option became true and was removed with version 5
ReportReserved true
# ValuesAbsolute, ValuesPercentage starting with collectd 5.4
</Plugin>
# disk since 1.5
LoadPlugin disk
# interface since 1.0
LoadPlugin interface
# irq since 4.0
LoadPlugin irq
# load since 1.0 (not sure about ReportRelative)
LoadPlugin load
<Plugin load>
ReportRelative true
</Plugin>
# memory since 1.0
# No options for 4.10
LoadPlugin memory
# nfs since 3.3
LoadPlugin nfs
# processes since 3.2
LoadPlugin processes
<Plugin processes>
# ProcessMatch since 4.5
ProcessMatch "all" "(.*)"
</Plugin>
# protocols since 4.7
LoadPlugin protocols
# swap since 2.1
# No options for 4.10
LoadPlugin swap
<Plugin swap>
# 4.10 reports swap I/O in pages (and cannot be configured otherwise)
# 4.10 reports swap cached/free/used in bytes
</Plugin>
# tcpconns since 4.2
LoadPlugin tcpconns
# thermal since 4.5
LoadPlugin thermal
# uptime since 4.7
LoadPlugin uptime
##
## Server part
##
## Output (only one allowed)
##
# csv since 4.0
LoadPlugin csv
<Plugin csv>
DataDir "/var/collectd/csv"
# StoreRates since 4.3
StoreRates false
</Plugin>
# write_graphite since 5.1
# write_http since 4.8
collectd.conf для версии 5:
# We are running collectd 5.4.0.git
# FQDNLookup since 4.3, became true by default with 5.0
FQDNLookup false
# Interval (in seconds) at which to query values. This may be overwritten on
# a per-plugin basis by using the 'Interval' option of the LoadPlugin block.
# This capability was announced with version 5.2 but became functional
# only with 5.4.3.
Interval 60
# Logging
# syslog since 4.0
LoadPlugin syslog
<Plugin syslog>
LogLevel info
</Plugin>
# LoadPlugin section
# cpu since 1.3
LoadPlugin cpu
<Plugin cpu>
# ReportByCpu true
# ReportByState true
# ValuesPercentage starting with collectd 5.5
# ValuesPercentage true
# ValuesPercentage false forces measurements in jiffies/second when both
# ReportByCpu and ReportByState are true (the defaults); collectd 4 does
# not do time derivation (and time derivation cannot be turned off in 5)
ValuesPercentage false
</Plugin>
# df since 3.6
LoadPlugin df
<Plugin df>
FSType rootfs
FSType sysfs
FSType proc
FSType devtmpfs
FSType devpts
FSType tmpfs
FSType fusectl
FSType cgroup
IgnoreSelected true
# ReportByDevice since 4.8
ReportByDevice true
# ValuesAbsolute, ValuesPercentage since 5.4
# ValuesAbsolute for reporting in bytes (true by default)
# ValuesAbsolute true
ValuesPercentage false
</Plugin>
# disk since 1.5
LoadPlugin disk
# irq since 4.0
LoadPlugin irq
# load since 1.0 (not sure about ReportRelative)
LoadPlugin load
<Plugin load>
ReportRelative true
</Plugin>
# memory since 1.0
# No options for 4.10
LoadPlugin memory
<Plugin memory>
ValuesAbsolute true
ValuesPercentage false
</Plugin>
# nfs since 3.3
LoadPlugin nfs
# processes since 3.2
LoadPlugin processes
<Plugin processes>
# ProcessMatch since 4.5
ProcessMatch "all" "(.*)"
</Plugin>
# protocols since 4.7
LoadPlugin protocols
# swap since 2.1
# No options for 4.10
LoadPlugin swap
<Plugin swap>
ReportByDevice true
# ReportIO true
# ReportBytes is false by default; when false, swap I/O is in pages
# 4.10 reports swap I/O in pages (and cannot be configured otherwise)
ReportBytes false
ValuesAbsolute true
ValuesPercentage false
# 4.10 reports swap cached/free/used in bytes, swap_io in/out in pages
</Plugin>
# tcpconns since 4.2
LoadPlugin tcpconns
# thermal since 4.5
LoadPlugin thermal
# thermal since 4.7
LoadPlugin uptime
# Server part
LoadPlugin write_graphite
<Plugin write_graphite>
<Node "node-graphite-1">
Host "192.168.1.170"
Port "1111"
Protocol "tcp"
EscapeCharacter "_"
AlwaysAppendDS true
SeparateInstances false
</Node>
</Plugin>