1. Введение
Eventarc позволяет легко подключать сервисы Google Cloud к событиям из различных источников. Он позволяет создавать управляемые событиями архитектуры, в которых микросервисы слабо связаны и распределены. Он также позаботится о приеме событий, их доставке, безопасности, авторизации и обработке ошибок, что повышает гибкость разработчиков и устойчивость приложений.
Datadog — это платформа мониторинга и безопасности облачных приложений. Он объединяет сквозные трассировки, метрики и журналы, чтобы сделать ваши приложения, инфраструктуру и сторонние сервисы видимыми.
В этой первой лаборатории вы узнаете, как направить простое оповещение мониторинга Datadog в Google Cloud с помощью Eventarc.
Что вы узнаете
- Как узнать поставщика Datadog.
- Как настроить канал к провайдеру Datadog.
- Как создать рабочий процесс для регистрации событий.
- Как создать триггер Eventarc с каналом.
- Как создать монитор Datadog.
- Как протестировать монитор Datadog, триггер Eventarc и рабочий процесс.
2. Настройка и требования
Самостоятельная настройка среды
- Войдите в Google Cloud Console и создайте новый проект или повторно используйте существующий. Если у вас еще нет учетной записи Gmail или Google Workspace, вам необходимо ее создать .
- Имя проекта — это отображаемое имя для участников этого проекта. Это строка символов, не используемая API Google. Вы можете обновить его в любое время.
- Идентификатор проекта должен быть уникальным для всех проектов Google Cloud и неизменяемым (нельзя изменить после его установки). Cloud Console автоматически генерирует уникальную строку; обычно тебя не волнует, что это такое. В большинстве лабораторий кода вам потребуется указать идентификатор проекта (обычно он обозначается как
PROJECT_ID
). Если вам не нравится сгенерированный идентификатор, вы можете создать другой случайный идентификатор. Кроме того, вы можете попробовать свой собственный и посмотреть, доступен ли он. Его нельзя изменить после этого шага, и он останется в силе на протяжении всего проекта. - К вашему сведению, есть третье значение — номер проекта , который используют некоторые API. Подробнее обо всех трех этих значениях читайте в документации .
- Затем вам необходимо включить выставление счетов в Cloud Console, чтобы использовать облачные ресурсы/API. Прохождение этой лаборатории кода не должно стоить много, если вообще стоит. Чтобы отключить ресурсы и не взимать плату за пределами этого руководства, вы можете удалить созданные вами ресурсы или удалить весь проект. Новые пользователи Google Cloud имеют право на участие в программе бесплатной пробной версии стоимостью 300 долларов США .
Запустить Cloud Shell
Хотя Google Cloud можно управлять удаленно с вашего ноутбука, в этой лаборатории вы будете использовать Google Cloud Shell , среду командной строки, работающую в облаке.
В Google Cloud Console щелкните значок Cloud Shell на верхней правой панели инструментов:
Подготовка и подключение к среде займет всего несколько минут. Когда все будет готово, вы должны увидеть что-то вроде этого:
Эта виртуальная машина оснащена всеми необходимыми инструментами разработки. Он предлагает постоянный домашний каталог объемом 5 ГБ и работает в Google Cloud, что значительно повышает производительность сети и аутентификацию. Всю работу в этой лаборатории кода можно выполнять в браузере. Вам не нужно ничего устанавливать.
Настройка gcloud
В Cloud Shell задайте идентификатор проекта и сохраните его как переменную PROJECT_ID
.
Кроме того, установите для переменной REGION
значение us-central1
. Это регион, в котором вы позже будете создавать ресурсы.
PROJECT_ID=[YOUR-PROJECT-ID] REGION=us-central1 gcloud config set core/project $PROJECT_ID
Включить API
Включите все необходимые службы:
gcloud services enable \ eventarc.googleapis.com \ eventarcpublishing.googleapis.com \ workflows.googleapis.com \ workflowexecutions.googleapis.com
3. Откройте для себя поставщика Datadog
Поставщик Eventarc — это служба или организация, которая может отправлять события непосредственно в Google Cloud, которые затем перенаправляются в ваш проект. Сторонние поставщики, такие как Datadog, не являются поставщиками Google Cloud, которые интегрированы с Google Cloud через Eventarc.
В Cloud Shell выполните следующую команду, чтобы просмотреть список Google Cloud и сторонних поставщиков:
gcloud eventarc providers list
Здесь перечислены Google Cloud и сторонние поставщики, а также места, в которых они доступны:
NAME: storage.googleapis.com LOCATION: asia NAME: cloudaudit.googleapis.com LOCATION: asia NAME: pubsub.googleapis.com LOCATION: asia ...
Вы можете сузить список до сторонних поставщиков с помощью этой команды:
gcloud eventarc providers list --filter='eventTypes.type!~^google*'
Вы должны увидеть Datadog в списке:
NAME: datadog LOCATION: us-central1
Вы также можете описать поставщика Datadog, чтобы увидеть, какие события он поддерживает:
gcloud eventarc providers describe datadog --location $REGION displayName: Datadog eventTypes: - type: datadog.v1.alert name: projects/project-id/locations/us-central1/providers/datadog
4. Настройте канал
Вам необходимо настроить канал для интеграции вашего проекта с провайдером. Это включает в себя создание канала, получение сведений о канале и отправку этих сведений провайдеру. Как только провайдер инициализирует соединение с каналом, он может начать отправлять события в ваш проект.
Создать канал
Вы можете создать канал для провайдера Datadog с помощью gcloud
:
CHANNEL_NAME=datadog-channel gcloud eventarc channels create $CHANNEL_NAME \ --provider datadog \ --location $REGION
Вы также можете создать его из раздела «Каналы» на странице Eventarc в Google Cloud Console:
Получить информацию о канале
После создания канала получите подробную информацию о канале из gcloud
:
gcloud eventarc channels describe $CHANNEL_NAME --location $REGION
Вывод должен быть похож на следующий:
activationToken: so5g4Kdasda7y2MSasdaGn8njB2 createTime: '2022-03-09T09:53:42.428978603Z' name: projects/project-id/locations/us-central1/channels/datadog-channel provider: projects/project-id/locations/us-central1/providers/datadog pubsubTopic: projects/project-id/topics/eventarc-channel-us-central1-datadog-channel-077 state: PENDING uid: 183d3323-8cas-4e95-8d72-7d8c8b27cf9e updateTime: '2022-03-09T09:53:48.290217299Z'
Аналогично вы можете увидеть канал из Google Cloud Console:
Состояние канала указывает состояние канала. Это может быть одно из следующих:
-
PENDING
—Канал успешно создан, и доступен токен активации для создания соединения с провайдером. Чтобы изменить состояние канала сPENDING
наACTIVE
, токен необходимо передать провайдеру и использовать для подключения канала в течение 24 часов с момента создания канала. -
ACTIVE
—Канал успешно подключен к провайдеру.ACTIVE
канал готов принимать и маршрутизировать события от провайдера. -
INACTIVE
—Канал не может получать события и не может быть повторно активирован. Либо провайдер отключен от этого канала, либо срок действия токена активации канала истек и провайдер не подключен. Чтобы восстановить соединение с провайдером, необходимо создать новый канал для провайдера.
Токен активации — это одноразовый токен с ограничением по времени, используемый для создания соединения между провайдером и проектом подписчика. Использовать токен может только конкретный провайдер, выбранный в процессе создания канала. Токен действителен в течение 24 часов после создания канала. По истечении 24 часов канал становится INACTIVE
.
Отправьте информацию о канале провайдеру
Вам необходимо отправить следующие данные канала провайдеру Datadog:
- Название канала (например,
projects/project-id/locations/us-central1/channels/datadog-channel
) - Токен активации (например,
so5g4Kdasda7y2MSasdaGn8njB2
)
Войдите в Datadog, перейдите на страницу интеграций и убедитесь, что интеграция с Google Eventarc установлена:
В разделе конфигурации Google Eventarc введите полное имя канала и токен активации:
Теперь вы должны увидеть канал в списке каналов, а через несколько секунд вы также увидите, что канал станет активным в Google Cloud Console:
Теперь вы готовы использовать канал!
5. Создайте рабочий процесс
Вам нужен пункт назначения в Google Cloud, чтобы получать события от провайдера. Eventarc поддерживает ряд мест назначения событий, таких как Cloud Run, рабочие процессы, службы Kubernetes. В этом случае разверните рабочий процесс, чтобы просто регистрировать полученные события.
Создайте файл workflow-datadog1.yaml
со следующим содержимым:
main: params: [event] steps: - logStep: call: sys.log args: data: ${event}
Обратите внимание, что рабочий процесс получает событие в качестве параметра. Это событие будет получено в результате мониторинга Datadog через Eventarc. После получения события рабочий процесс просто регистрирует полученное событие.
Разверните рабочий процесс:
WORKFLOW_NAME=workflow-datadog1 gcloud workflows deploy $WORKFLOW_NAME \ --source workflow-datadog1.yaml \ --location $REGION
Рабочий процесс развернут, но еще не запущен. Он будет выполнен триггером Eventarc при получении предупреждения Datadog.
6. Создайте триггер Eventarc.
Теперь вы готовы подключить события от поставщика Datadog к рабочим процессам с помощью триггера Eventarc.
Настроить учетную запись службы
При создании триггера вам понадобится учетная запись службы с ролью eventarc.eventReceiver
. Вы можете либо создать выделенную учетную запись службы, либо использовать учетную запись службы вычислений по умолчанию.
Для простоты используйте учетную запись службы вычислений по умолчанию и предоставьте роль eventarc.eventReceiver
:
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)') gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role roles/eventarc.eventReceiver
Создать триггер
Создайте триггер с каналом Datadog, типом события, а также местом назначения рабочего процесса:
gcloud eventarc triggers create datadog-trigger1 \ --location $REGION \ --destination-workflow $WORKFLOW_NAME \ --destination-workflow-location $REGION \ --channel $CHANNEL_NAME \ --event-filters type=datadog.v1.alert \ --service-account $PROJECT_NUMBER-compute@developer.gserviceaccount.com
Вы можете перечислить триггеры, чтобы увидеть, что вновь созданный триггер активен:
gcloud eventarc triggers list --location $REGION NAME: datadog-trigger1 TYPE: datadog.v1.alert DESTINATION: Workflows: workflow-datadog1 ACTIVE: Yes
7. Создайте монитор Datadog.
Теперь вы создадите монитор Datadog и подключите его к Eventarc.
Это будет монитор типа Hello World со значениями по умолчанию. Вы вручную активируете его для создания оповещений мониторинга, которые, в свою очередь, создадут событие Eventarc в Google Cloud.
Чтобы создать монитор в Datadog, войдите в Datadog . Наведите указатель мыши на Monitors
в главном меню и нажмите New Monitor
в подменю. Существует множество типов мониторов. Выберите тип монитора Metric
.
На странице New Monitor
оставьте значения по умолчанию для шагов 1 и 2.
- На шаге 3 установите
Alert threshold
на 1. - На шаге 4 установите
Test monitor for Eventarc
в качестве имени монитора и установите для параметраNotify your team
значение@eventarc_<your-project-id>_<your-region>_<your-channel-name>
Оставьте страницу монитора открытой для следующего шага, на котором вы будете тестировать монитор.
8. Тестовый монитор и триггер.
Чтобы протестировать монитор Datadog и триггер Eventarc, вы вручную запустите монитор.
Внизу страницы создания монитора нажмите кнопку Test Notifications
:
Затем нажмите кнопку Run Test
:
Это должно имитировать переход состояний в мониторе и вызвать событие Eventarc.
Проверьте workflow-datadog1
. Вы должны увидеть, что появилось новое выполнение:
Проверьте детали исполнения. Вы должны увидеть тип события Datadog datadog.v1.alert
, созданный из оповещения мониторинга, во входных данных рабочего процесса, а также в журналах:
9. Поздравления
Поздравляем, вы завершили работу над кодом! Вы можете перейти ко второй лаборатории кода , чтобы узнать, как реагировать на предупреждения мониторинга Datadog с помощью рабочих процессов.
Что мы рассмотрели
- Как узнать поставщика Datadog.
- Как настроить канал к провайдеру Datadog.
- Как создать рабочий процесс для регистрации событий.
- Как создать триггер Eventarc с каналом.
- Как создать монитор Datadog.
- Как протестировать монитор Datadog, триггер Eventarc и рабочий процесс.