collectd: Какие единицы измерения фиксируются плагинами disk, interface, irq и swap_io?

В каких единицах измеряются плагины 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>

person Urhixidur    schedule 05.02.2018    source источник


Ответы (2)


диск сообщает о совокупных операциях (ops), а также о совокупных байтах (Io).

Интерфейс сообщает о совокупном количестве пакетов и ошибок, с одной стороны, и совокупных байтах, с другой.

swap_io сообщает о совокупных операциях.

Можете ли вы опубликовать точную полную конфигурацию, чтобы мы могли устранить неполадки в конфигурации вашего процессора collectd5?

person faxmodem    schedule 05.02.2018
comment
disk_merged.read сообщает дробные значения, такие как диапазон от 0,0 до 31,8 с помощью collectd 5. Collectd 4 сообщает целые числа в диапазоне до 24000 или около того. Я не могу сравнивать цифры напрямую, потому что collectd 5 и collectd 4 наблюдают за совершенно разными системами. Что такое единицы? Тысячи? Блоки по 1024 байта? Что-то другое? Выхода lo нет, только merged, octets, ops и time. Точно так же interface сообщает дробные значения rx, такие как 135417,2. Не существует такого понятия, как дробный пакет, не так ли? - person Urhixidur; 05.02.2018

Что ж, это оказалось простой глупой ошибкой. Плагин csv, используемый на одной стороне, имеет значение по умолчанию для StoreRates из false, тогда как плагин graphite, используемый на другой, имеет значение по умолчанию true, поэтому некоторые (но не все) метрики были целочисленными (кумулятивными), а другие — плавающими. (темпы роста).

person Urhixidur    schedule 06.02.2018