Можно ли выполнить некоторый код, такой как ведение журнала и запись метрик результатов в GCS, в конце пакетного задания потока данных? - PullRequest
0 голосов
/ 03 августа 2020

Я использую apache beam 2.22.0 (java sdk) и хочу регистрировать метрики и записывать их в корзину GCS после завершения выполнения пакетного конвейера. Я пробовал использовать result.waitUntilFinish(), за которым следует предполагаемый код:

  1. Объект DirectRunner-GCS создается должным образом, и журналы появляются на консоли
  2. Объект DataflowRunner-GCS создан, но журналы (post pipeline exe c) не отображаются на stackdriver

Проблема: когда для него создается шаблон GCS, ни объект GCS не создается, ни журналы не отображаются с использованием шаблона.

Ответы [ 2 ]

1 голос
/ 03 августа 2020

то, что вы делаете, - это правильный способ получить сигнал о завершении конвейера. В Apache Beam нет прямого API, который позволяет получать этот сигнал в работающем конвейере, кроме wait_until_fini sh ().

Для решения проблемы с журналированием вам необходимо использовать Cloud Logging API в вашем коде. Это связано с тем, что конвейер отправляется в службу Dataflow и работает на виртуальных машинах GCE, которые регистрируются в Cloud Logging. Однако код за пределами вашего конвейера выполняется локально.

См. Выполнить действие после того, как конвейер потока данных обработал все данные для получения дополнительной информации.

0 голосов
/ 04 августа 2020

Можно экспортировать журналы из вашего задания Dataflow в Google Cloud Storage, Big Query или PubSub. Для этого вы можете использовать Cloud Logging Console , Cloud Logging API или gcloud logging , чтобы экспортировать желаемые метрики в конкретный c приемник.

Таким образом, чтобы использовать экспорт журналов :

  1. Создайте приемник , выбрав Google Cloud Storage в качестве приемника Сервис (или один из желаемых других вариантов).
  2. В приемнике создайте запрос для фильтрации ваших журналов (необязательно)
  3. Место экспорта

Впоследствии каждый раз, когда Cloud Logging получает новые записи, они будут добавляться в приемник, только новые записи.

Хотя вы не упомянули, используете ли вы пользовательские метрики, я должен указать что вы должны следовать правилам именования метрик, здесь . В противном случае он не будет отображаться в StackDriver.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...