Merutekan pemberitahuan pemantauan Datadog ke Google Cloud dengan Eventarc (Bagian 1)

1. Pengantar

cb762f29e9183a3f.png 3c7ca8629bc25d9c.pngS

Eventarc memudahkan untuk menghubungkan layanan Google Cloud dengan peristiwa dari berbagai sumber. Solusi ini memungkinkan Anda membangun arsitektur berbasis peristiwa tempat microservice dikaitkan dan didistribusikan secara longgar. Layanan ini juga menangani penyerapan, pengiriman, keamanan, otorisasi, dan penanganan error peristiwa untuk Anda sehingga meningkatkan ketangkasan developer dan ketahanan aplikasi.

Datadog adalah platform pemantauan dan keamanan untuk aplikasi cloud. Alat ini menyatukan pelacakan, metrik, dan log end-to-end sehingga aplikasi, infrastruktur, dan layanan pihak ketiga Anda dapat diamati.

Dalam codelab pertama ini, Anda akan mempelajari cara merutekan pemberitahuan pemantauan Datadog sederhana ke Google Cloud dengan Eventarc.

Yang akan Anda pelajari

  • Cara menemukan penyedia Datadog.
  • Cara menyiapkan saluran ke penyedia Datadog.
  • Cara membuat alur kerja untuk mencatat peristiwa.
  • Cara membuat pemicu Eventarc dengan saluran.
  • Cara membuat monitor Datadog.
  • Cara menguji monitor Datadog, pemicu Eventarc, dan alur kerja.

2. Penyiapan dan Persyaratan

Penyiapan lingkungan mandiri

  1. Login ke Google Cloud Console dan buat project baru atau gunakan kembali project yang sudah ada. Jika belum memiliki akun Gmail atau Google Workspace, Anda harus membuatnya.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • Project name adalah nama tampilan untuk peserta project ini. String ini adalah string karakter yang tidak digunakan oleh Google API. Anda dapat memperbaruinya kapan saja.
  • Project ID harus unik di semua project Google Cloud dan tidak dapat diubah (tidak dapat diubah setelah ditetapkan). Cloud Console otomatis membuat string unik; biasanya Anda tidak peduli tentang apa itu. Di sebagian besar codelab, Anda harus mereferensikan Project ID (biasanya diidentifikasi sebagai PROJECT_ID). Jika Anda tidak menyukai ID yang dihasilkan, Anda dapat membuat ID acak lainnya. Atau, Anda dapat mencobanya sendiri dan lihat apakah ID tersebut tersedia. ID tidak dapat diubah setelah langkah ini dan akan tetap ada selama durasi project.
  • Sebagai informasi, ada nilai ketiga, Project Number yang digunakan oleh beberapa API. Pelajari lebih lanjut ketiga nilai ini di dokumentasi.
  1. Selanjutnya, Anda harus mengaktifkan penagihan di Konsol Cloud untuk menggunakan resource/API Cloud. Menjalankan operasi dalam codelab ini seharusnya tidak memerlukan banyak biaya, bahkan mungkin tidak sama sekali. Untuk mematikan resource agar tidak menimbulkan penagihan di luar tutorial ini, Anda dapat menghapus resource yang dibuat atau menghapus seluruh project. Pengguna baru Google Cloud memenuhi syarat untuk mengikuti program Uji Coba Gratis senilai $300 USD.

Mulai Cloud Shell

Meskipun Google Cloud dapat dioperasikan dari jarak jauh menggunakan laptop Anda, dalam codelab ini, Anda akan menggunakan Google Cloud Shell, lingkungan command line yang berjalan di Cloud.

Dari Google Cloud Console, klik ikon Cloud Shell di toolbar kanan atas:

55efc1aaa7a4d3ad.png

Hanya perlu waktu beberapa saat untuk penyediaan dan terhubung ke lingkungan. Jika sudah selesai, Anda akan melihat tampilan seperti ini:

7ffe5cbb04455448.png

Mesin virtual ini berisi semua alat pengembangan yang Anda perlukan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Semua pekerjaan Anda dalam codelab ini dapat dilakukan di browser. Anda tidak perlu menginstal apa pun.

Menyiapkan gcloud

Di Cloud Shell, tetapkan project ID Anda dan simpan sebagai variabel PROJECT_ID.

Selain itu, tetapkan variabel REGION ke us-central1. Ini adalah region tempat Anda akan membuat resource nanti.

PROJECT_ID=[YOUR-PROJECT-ID]
REGION=us-central1
gcloud config set core/project $PROJECT_ID

Mengaktifkan API

Aktifkan semua layanan yang diperlukan:

gcloud services enable \
  eventarc.googleapis.com \
  eventarcpublishing.googleapis.com \
  workflows.googleapis.com \
  workflowexecutions.googleapis.com

3. Menemukan penyedia Datadog

Penyedia Eventarc adalah layanan atau entity yang dapat memunculkan peristiwa secara langsung ke Google Cloud yang kemudian dirutekan ke project Anda. Penyedia pihak ketiga, seperti Datadog, merupakan penyedia non-Google Cloud yang terintegrasi dengan Google Cloud melalui Eventarc.

Di Cloud Shell, jalankan perintah berikut untuk melihat daftar penyedia pihak ketiga dan Google Cloud:

gcloud eventarc providers list

Opsi ini mencantumkan Google Cloud, penyedia pihak ketiga, dan lokasi ketersediaannya:

NAME: storage.googleapis.com
LOCATION: asia

NAME: cloudaudit.googleapis.com
LOCATION: asia

NAME: pubsub.googleapis.com
LOCATION: asia

...

Anda dapat mempersempit daftar ke penyedia pihak ketiga dengan perintah ini:

gcloud eventarc providers list --filter='eventTypes.type!~^google*'

Anda akan melihat Datadog dalam daftar:

NAME: datadog
LOCATION: us-central1

Anda juga bisa menjelaskan penyedia Datadog untuk melihat peristiwa yang didukungnya:

gcloud eventarc providers describe datadog --location $REGION

displayName: Datadog
eventTypes:
- type: datadog.v1.alert
name: projects/project-id/locations/us-central1/providers/datadog

4. Siapkan channel

Anda perlu menyiapkan saluran untuk mengintegrasikan project Anda dengan penyedia. Hal ini termasuk membuat channel, mengambil detail channel, dan mengirimkan detail tersebut ke penyedia. Setelah penyedia menginisialisasi koneksi ke saluran, penyedia dapat mulai mengirimkan peristiwa ke project Anda.

Membuat channel

Anda dapat membuat saluran untuk penyedia Datadog menggunakan gcloud:

CHANNEL_NAME=datadog-channel
gcloud eventarc channels create $CHANNEL_NAME \
   --provider datadog \
   --location $REGION

Anda juga dapat membuatnya dari bagian Channels di halaman Eventarc di Konsol Google Cloud:

d03a7173b25e5ea6.png

Mengambil detail channel

Setelah saluran dibuat, ambil detail saluran dari gcloud:

gcloud eventarc channels describe $CHANNEL_NAME --location $REGION

Outputnya akan mirip dengan berikut ini:

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'

Demikian pula, Anda dapat melihat saluran dari Konsol Google Cloud:

80d8b2b6a46cb4c5.pngS

Status saluran menunjukkan status saluran. Hal ini bisa berupa salah satu dari hal berikut:

  • PENDING—Saluran berhasil dibuat dan ada token aktivasi yang tersedia untuk membuat koneksi dengan penyedia. Untuk mengubah status saluran dari PENDING menjadi ACTIVE, token harus diberikan kepada penyedia dan digunakan untuk menghubungkan saluran dalam waktu 24 jam sejak pembuatan saluran.
  • ACTIVE—Saluran telah berhasil terhubung dengan penyedia. Saluran ACTIVE siap menerima dan merutekan peristiwa dari penyedia.
  • INACTIVE—Saluran tidak dapat menerima peristiwa atau diaktifkan kembali. Penyedia terputus dari saluran ini atau token aktivasi saluran telah kedaluwarsa dan penyedia tidak terhubung. Untuk membuat kembali koneksi dengan penyedia, Anda harus membuat saluran baru untuk penyedia tersebut.

Token aktivasi adalah token sekali pakai yang dibatasi waktu, yang digunakan untuk membuat koneksi antara penyedia dan project pelanggan. Hanya penyedia tertentu, yang dipilih selama proses pembuatan channel, yang dapat menggunakan token ini. Token ini berlaku selama 24 jam setelah pembuatan channel. Setelah 24 jam, channel tersebut akan menjadi INACTIVE.

Mengirim detail channel ke penyedia

Anda harus mengirimkan detail saluran berikut ke penyedia Datadog:

  • Nama saluran (misalnya, projects/project-id/locations/us-central1/channels/datadog-channel)
  • Token aktivasi (misalnya, so5g4Kdasda7y2MSasdaGn8njB2)

Login ke Datadog, buka halaman integrasi dan pastikan integrasi Google Eventarc sudah diinstal:

9736bd517e1fa19a.pngS

Di bagian konfigurasi Google Eventarc, masukkan nama saluran lengkap dan token aktivasi:

a17f522075cdd92e.png

Sekarang Anda akan melihat saluran tersebut dalam daftar saluran dan setelah beberapa detik, Anda juga akan melihat saluran tersebut menjadi aktif di Konsol Google Cloud:

8399d528ccbd4c20.pngS

Kini Anda siap menggunakan channel ini.

5. Membuat alur kerja

Anda memerlukan tujuan di Google Cloud untuk menerima peristiwa dari penyedia. Eventarc mendukung sejumlah tujuan peristiwa seperti Cloud Run, Workflows, dan layanan Kubernetes. Dalam hal ini, deploy alur kerja hanya untuk mencatat peristiwa yang diterima ke dalam log.

Buat file workflow-datadog1.yaml dengan konten berikut:

main:
  params: [event]
  steps:
  - logStep:
      call: sys.log
      args:
        data: ${event}

Perhatikan bahwa alur kerja menerima peristiwa sebagai parameter. Peristiwa ini akan berasal dari pemantauan Datadog melalui Eventarc. Setelah peristiwa diterima, alur kerja akan cukup mencatat peristiwa yang diterima ke dalam log.

Deploy alur kerja:

WORKFLOW_NAME=workflow-datadog1
gcloud workflows deploy $WORKFLOW_NAME \
  --source workflow-datadog1.yaml \
  --location $REGION

Alur kerja telah di-deploy, tetapi belum berjalan. Fungsi ini akan dijalankan oleh pemicu Eventarc saat pemberitahuan Datadog diterima.

6. Membuat pemicu Eventarc

Sekarang Anda siap untuk menghubungkan peristiwa dari penyedia Datadog ke Workflows dengan pemicu Eventarc.

Mengonfigurasi akun layanan

Anda memerlukan akun layanan dengan peran eventarc.eventReceiver saat membuat pemicu. Anda dapat membuat akun layanan khusus atau menggunakan akun layanan komputasi default.

Untuk mempermudah, gunakan akun layanan komputasi default dan berikan peran 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

Membuat pemicu

Buat pemicu dengan saluran Datadog, jenis peristiwa, dan juga tujuan alur kerja:

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

Anda dapat mencantumkan pemicu untuk melihat bahwa pemicu yang baru dibuat sudah aktif:

gcloud eventarc triggers list --location $REGION

NAME: datadog-trigger1
TYPE: datadog.v1.alert
DESTINATION: Workflows: workflow-datadog1
ACTIVE: Yes

7. Membuat monitor Datadog

Sekarang Anda akan membuat monitor Datadog dan menghubungkannya ke Eventarc.

Ini akan menjadi monitor jenis Hello World dengan nilai default. Anda akan memicunya secara manual untuk membuat notifikasi pemantauan yang nantinya akan menghasilkan peristiwa Eventarc di Google Cloud.

Untuk membuat monitor di Datadog, login ke Datadog. Arahkan kursor ke Monitors di menu utama dan klik New Monitor di submenu. Ada banyak jenis monitor. Pilih jenis monitor Metric.

Di halaman New Monitor, gunakan setelan default untuk langkah 1 dan 2.

  • Di langkah 3, tetapkan Alert threshold ke 1
  • Pada langkah 4, tetapkan Test monitor for Eventarc sebagai nama monitor dan tetapkan Notify your team ke @eventarc_<your-project-id>_<your-region>_<your-channel-name>

Tetap buka halaman monitor untuk langkah berikutnya tempat Anda akan menguji monitor.

8. Menguji monitor dan pemicu

Untuk menguji monitor Datadog dan pemicu Eventarc, Anda akan memicu monitor secara manual.

Di bagian bawah halaman pembuatan monitor, klik tombol Test Notifications:

32ccf1cc47b01150.pngS

Lalu, klik tombol Run Test:

7f2ff70ec673007b.pngS

Tindakan ini akan menyimulasikan transisi status di monitor dan memicu peristiwa Eventarc.

Periksa alur kerja workflow-datadog1. Anda akan melihat bahwa ada eksekusi baru:

adf7cd97ca2e8da7.png

Periksa detail eksekusinya. Anda akan melihat jenis peristiwa Datadog datadog.v1.alert yang dihasilkan dari pemberitahuan pemantauan di input alur kerja dan juga di log:

dc78fd8460e5fc0e.png

9. Selamat

Selamat, Anda telah menyelesaikan codelab! Anda dapat melanjutkan ke codelab kedua untuk mempelajari cara merespons pemberitahuan pemantauan Datadog dengan Workflows.

Yang telah kita bahas

  • Cara menemukan penyedia Datadog.
  • Cara menyiapkan saluran ke penyedia Datadog.
  • Cara membuat alur kerja untuk mencatat peristiwa.
  • Cara membuat pemicu Eventarc dengan saluran.
  • Cara membuat monitor Datadog.
  • Cara menguji monitor Datadog, pemicu Eventarc, dan alur kerja.