Уменьшение масштаба данных при сохранении отдельного тега хоста

Я пытаюсь уменьшить количество старых данных в influxdb. По сути, мои измерения содержат значения с нескольких разных хостов, и мне нужно хранить их отдельно. Итак, я пытаюсь агрегировать данные с интервалом 5 м, но сохраняю значения хоста отдельно.

Я пробовал следующим образом, но это не удается с синтаксической ошибкой «смешивание нескольких функций селектора с тегами или полями не поддерживается»:

CREATE CONTINUOUS QUERY cq_5m_net ON telegraf 
 BEGIN SELECT 
 max(bytes_recv) AS bytes_recv, max(bytes_sent) AS bytes_sent, 
 max(drop_in) AS drop_in, max(drop_out) AS drop_out, 
 max(err_in) AS err_in, max(err_out) AS err_out, 
 host INTO telegraf.rp_5m.net 
FROM telegraf.autogen.net GROUP BY time(5m), * 
END

Можно ли это осуществить каким-то другим способом?

Кроме того, необработанный набор данных выглядит так (немного упрощенно):

time           host       bytes_recv   bytes_sent    drop_in drop_out
----           ----       ----------   ----------    ------- --------
14805418900000 web2.x.net 6358608058 5036008977 148414  0
14805419000000 web3.x.net 6358600106 5036501326 148414  0
14805419100000 web2.x.net 6358604711 5036770259 148414  0
14805419200000 web3.x.net 6358602310 5038123405 148414  0
14805419300000 web2.x.net 6358600274 5039360985 148414  0
14805419400000 web2.x.net 6358618730 5039651324 148414  0
14805419500000 web2.x.net 6358616379 5030898027 148414  0
14805419600000 web3.x.net 6358612454 5031543210 148414  0
14805419700000 web3.x.net 6358611562 5032444497 148414  0
14805419800000 web3.x.net 6358610357 5032699567 148414  0

person Steven De Groote    schedule 03.12.2018    source источник


Ответы (1)


Это объясняет, какая у вас проблема.

Совершенно общий ответ на ваш вопрос («Можно ли это сделать каким-то другим способом?») — да, имя другого способа — Kapacitor.

Для получения более подробного ответа на запрос, пожалуйста, сначала предоставьте более подробную информацию - как выглядит ваше измерение?

Но главный вопрос здесь: зачем вообще нужна эта постоянная даунсэмплинг?

Хранение данных дешево (поскольку записи данных кажутся довольно скудными), агрегирование на лету на основе временных интервалов дешево и быстро для данных правильной формы - вы просто можете сделать это в любое время, когда вам это нужно, в мгновение ока.

Можете ли вы обосновать, почему вы катитесь таким образом?

person Yuri G    schedule 04.12.2018
comment
Я добавил образец набора данных. В этом случае я просто хочу сохранить долгосрочную историю интернет-трафика на свои серверы. Так что я могу проверить эволюцию во времени. И да, я немного ограничен в дисковом пространстве. - person Steven De Groote; 04.12.2018
comment
Затем, если вы настаиваете, хорошим способом было бы сохранить относительно короткий период хранения для основного измерения (как раз то, что вам нужно для текущих потребностей в мониторинге/предупреждении), а затем запустить задание Kapacitor, которое будет выполнять агрегацию партиями на регулярной основе, в течение данные, датированные задним числом, и записать агрегированные данные в архивное измерение. Простое и экономичное решение. - person Yuri G; 04.12.2018