У меня есть счетчики байтов чтения и записи из хранилища объектов в InfluxDB 0.8.8 (рад получить рабочий ответ для 0.9. Просто жду другого механизма хранения перед обновлением)
Данные собираются сервером и устройством, поэтому, например, точка данных может иметь:
timestamp: ...
server: abc1-oss1
disk: disk_id1
read_bytes: a counter
В abc \ d + и -oss \ d + есть диапазон идентификаторов, например, abc14-oss5, abc1-oss1, abc8-oss12 - все допустимые имена хостов.
Я бы хотел сделать обзор всех различных групп abc \ d + - *. Зритель мог бы выбрать, скажем, «abc2» и получить производную (потому что это постоянно увеличивающийся счетчик) суммы всех дисков на всех хостах, соответствующих abc2- *.
Хотя я мог бы указать сумму для конкретного хоста с начальной вставкой данных, я не могу сделать это для десятка или около того хостов, которые находятся в abc2-oss *
В графане я могу создать переменную шаблона с регулярным выражением, чтобы извлечь возможные значения abc \ d + в переменную с именем $ Area, а затем:
select sum(value) from "read_bytes" where $timeFilter and hostname =~ /$Area.*/ group by time($interval) order asc
Это дает мне суммы чтения для каждой области, но я не могу вызвать производную () для этого, поскольку производная (сумма (значение)) недействительна в InfluxDB:
select derivative(sum(value)) from ...
"Значение не может быть оценено для типа & {сумма 10 [oxc21648f220] false}"
Я предполагаю, что это означает, что мне нужен непрерывный запрос в InfluxDB для вычисления суммы, а затем применить вызов производной () к полученному измерению. Как мне сделать это для частичного значения столбца, чтобы я суммировал все значения для hostname =~ /abc1-.*/
, hostname =~ /abc2-.*/
и так далее?