Как создать приемник маршрутизатора журналов, когда задание обучения Vertex AI не удалось (после 3 попыток)?

Я управляю Vertex AI custom training job (машинное обучение при обучении с использованием настраиваемого контейнера) на GCP. Я хотел бы создать Pub/Subсообщение, когда задание не удалось, поэтому я могу опубликовать сообщение в каком-нибудь чате, например в Slack. Журнальный файл ( Cloud Logging) выглядит так:

      {
insertId: "xxxxx"
labels: {
ml.googleapis.com/endpoint: ""
ml.googleapis.com/job_state: "FAILED"
}
logName: "projects/xxx/logs/ml.googleapis.com%2F1113875647681265664"
receiveTimestamp: "2021-07-09T15:05:52.702295640Z"
resource: {
labels: {
job_id: "1113875647681265664"
project_id: "xxx"
task_name: "service"
}
type: "ml_job"
}
severity: "INFO"
textPayload: "Job failed."
timestamp: "2021-07-09T15:05:52.187968162Z"
}

Я создаю приемник маршрутизатора журналов со следующим запросом:

      resource.type="ml_job" AND textPayload:"Job failed" AND labels."ml.googleapis.com/job_state":"FAILED"

Проблема, с которой я столкнулся, заключается в том, что VertexAI будет повторять задание 3 раза, прежде чем объявить задание как сбой, но в файле журнала сообщение идентично. Ниже у вас есть 3 примера, только последний, который потерпел неудачу 3 раза, действительно потерпел неудачу в конце.

Например, в файле журнала у меня нет идентификатора подсчета. Есть идеи, как это решить? Создание таблицы BigQuery для отслеживания количества сбоев для каждого из них кажется излишним, если мне нужно делать это во всем моем проекте. Есть ли способ сделать группу resource.labels.job_id и считать в пределах приемника маршрутизатора журналов?

1 ответ

Приемник журнала довольно прост: предоставьте фильтр, он будет публиковать в теме PubSub каждую запись, соответствующую этому фильтру. Ни группы, ни счета, ничего !!

Предлагаю вам использовать комбинацию лог-метрик и облачного мониторинга.

  1. Во-первых, создайте на журнала для записи метрикижурнала сбоевоснове вашего задания.
  2. Создайте оповещение на основе этой метрики на основе журнала со следующими ключевыми значениями
  • Задайте группу по тому, что вы хотите, например, jobID (я не знаю, какое значение уместно для работы VertexAI)
  • Установить оповещение, когда порог равен или превышает 3
  • Добавьте канал уведомлений и установите уведомление PubSub (все еще в бета-версии)

При такой конфигурации предупреждение будет опубликовано в PubSub только один раз, когда произойдет 3 вхождения одного и того же идентификатора задания.

Другие вопросы по тегам