Метрики доставки из Telegraf в BigQuery - PullRequest
0 голосов
/ 05 февраля 2019

Я бы хотел отправить метрики из Telegraf в GQ BigQuery.

Как мне это сделать?Какие подводные камни?

1 Ответ

0 голосов
/ 05 февраля 2019

Исследовав это, я думаю, что лучший способ решить эту проблему - использовать Google DataFlow.Вот общая идея:

  1. Используйте плагин вывода Telegraf cloud_pubsub для отправки метрик в формате json в службу pubsub Google
  2. Используйте службу потока данных Google для загрузки из pubsub иОтправьте Google BigQuery
  3. Прибыль!

Это может показаться простым, но требует немного знаний об этих инструментах.Вот некоторые вещи, которые вы должны иметь в виду:

  1. Начните с выяснения того, как выглядят ваши метрики, и создайте для них подходящую схему.BigQuery основан на схемах, и вы ДОЛЖНЫ определить его заранее, иначе загрузка данных не удастся.Я обнаружил, что определение дополнительных выходных данных «файла» для моего клиента Telegraf было полезно, чтобы точно узнать, какие метрики json я отправлял в BiqQuery.Обратите внимание, что вы также можете удалять / редактировать метрики, используя Telegraf measure_filter
  2. Использование плагина Telegraf cloud_pubsub.Пока я пишу этот ответ (19 февраля), он очень новый и включен только в ветку Master.Я считаю, что он предназначен для Telegraf версии 1.10.
  3. Создайте тему pubsub, таблицу BigQuery (со схемой) и хранилище Google - вам понадобятся все три элемента для создания проекта DataFlow.Вам также понадобится файл учетных данных, который вы сгенерируете в GCP, а затем укажите клиенту Telegraf:
  4. После этого создайте проект DataFlow в GCP.Они не могут быть отредактированы после создания и раздражают, они не могут быть удалены (но их можно остановить).Таким образом, вы, вероятно, в конечном итоге создадите несколько проектов, пока не сделаете все правильно.Я обнаружил, что почти все, что я делал, требовало нового проекта (например, удаление и повторное создание таблицы BigQuery с тем же именем требовало нового проекта).
  5. Если вы видите ошибки в потоке данных, вы должныудалось выяснить, является ли это проблемой схемы из извилистой трассировки стека в подокне журналов в DataFlow.Ваши метрики ДОЛЖНЫ точно соответствовать схеме, иначе она не будет загружена в таблицу.
  6. Мне не удалось загрузить метрики в формате притока, но мне сказали, что это должно быть возможно.Я использовал формат «JSON», и это сработало.
  7. Если у вас есть вложенные поля json {"person": {"first-name": "john" и т. Д.}}, Определите свое вложенное поле как тип RECORD в схеме BigQuery и ваше вложенное поле в нем,это не очень очевидно, если вы уже не знаете BigQuery.
  8. Я обнаружил, что редактирование схемы BigQuery в консоли GCP было очень ограниченным - особенно для вложенных полей json.Мне пришлось заново создавать его несколько раз с нуля, потому что пользовательский интерфейс не позволяет редактировать вложенные поля после начальной конфигурации таблицы.
...