Skip to content

support for mapper usage in diskio input

Opis

Dyski w systemie mogą być pod kilkoma "nazwami". Najbardziej popularna to oczywiście np. /dev/sda. Czasami jednak są bardziej złożone kwestie, np. przy multipathie mamy taki ładny link /dev/mapper/mpathX, który to linkuje sobie do /dev/dm-Y.

Używanie mappera jest wygodne, bo można wtedy łatwo definiować np. partycje. Robi się to standardowo, powstaje sobie /dev/mapper/mpathX1, który to linkuje się do jakiegoś /dev/dm-Z (note: nie do /dev/dm-Y1, to ważne).

Niestety żeby monitorować wydajność dysków aktualnie trzeba podawać te oryginalne nazwy, nie te mapperowe. Oczywiście można to osiągnąć babrając się jinją, ale można też dodać tutaj 2 rzeczy, i będzie działać.

Implementacja

  • do templates/inputs.diskio.conf.j2 dodać device_tags = ["DM_NAME"] jako custom_configuration. Do decyzji czy robić to zqawsze, czy tylko gdy użytkownik doda DM_NAME do listy tagów.
  • do docker_service_volumes w tasks/deploy.yml dodać montowanie /run/udev. Można to zrobić albo montując po prostu /run/udev:/run/udev:ro, albo analogicznie do etc, proc, ale cały run: /run:{{ _telegraf_container_host_root }}/run:ro". wraz z definicją zmiennej HOST_RUN - wada tego drugiego to szersze podmontowanie, ale za to bezpieczniejsze.

Przykład

Zamiast standardowego:

  - name: "diskio"
    type: "diskio"
    devices:
      - "sda"
      - "vda"
    names:
      - "diskio"
    fields:
      - "reads"
      - "writes"
      - "read_bytes"
      - "write_bytes"
      - "read_time"
      - "write_time"
      - "io_time"
    tags:
      - "host"
      - "name"

trzeba zrobić:

telegraf_inputs:
  - name: "diskio"
    type: "diskio"
    names:
      - "diskio"
    fields:
      - "reads"
      - "writes"
      - "read_bytes"
      - "write_bytes"
      - "read_time"
      - "write_time"
      - "io_time"
    tags:
      - "host"
      - "name"
      - "DM_NAME"
    filters:
      - tag: "name"
        patterns:
          - "sda"
          - "vda"
      - tag: "DM_NAME"
        patterns:
          - "mpathv"