1. Pengantar

Eventarc memudahkan Anda menghubungkan layanan Google Cloud dengan peristiwa dari berbagai sumber. Layanan ini memungkinkan Anda membangun arsitektur berbasis peristiwa yang microservicenya dikaitkan secara longgar dan didistribusikan. Layanan ini juga menangani penyerapan, pengiriman, keamanan, otorisasi, dan penanganan error untuk Anda, sehingga meningkatkan ketangkasan developer dan ketahanan aplikasi.
Datadog adalah platform pemantauan dan keamanan untuk aplikasi cloud. Alat ini menggabungkan trace, metrik, dan log end-to-end untuk membuat 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
- 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.



- 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 mementingkan kata-katanya. Di sebagian besar codelab, Anda harus merujuk Project ID-nya (biasanya diidentifikasi sebagai
PROJECT_ID). Jika tidak suka dengan ID yang dibuat, Anda dapat membuat ID acak lainnya. Atau, Anda dapat mencobanya sendiri dan melihat 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.
- 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. Guna 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:

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

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 memancarkan peristiwa langsung ke Google Cloud yang kemudian dirutekan ke project Anda. Penyedia pihak ketiga, seperti Datadog, adalah 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
Bagian ini mencantumkan penyedia pihak ketiga dan Google Cloud serta lokasi tempat penyedia tersebut tersedia:
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 dapat 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. Menyiapkan channel
Anda perlu menyiapkan channel untuk mengintegrasikan project dengan penyedia. Hal ini melibatkan pembuatan channel, pengambilan detail channel, dan pengiriman detail tersebut ke penyedia. Setelah penyedia menginisialisasi koneksi ke channel, penyedia dapat mulai mengirim 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 pada Konsol Google Cloud:

Mengambil detail channel
Setelah channel dibuat, ambil detail channel 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:

Status saluran menunjukkan status saluran. Nilainya dapat berupa salah satu dari berikut:
PENDING—Channel telah berhasil dibuat dan ada token aktivasi yang tersedia untuk membuat koneksi dengan penyedia. Untuk mengubah status channel dariPENDINGmenjadiACTIVE, token harus diberikan kepada penyedia dan digunakan untuk menghubungkan channel dalam waktu 24 jam setelah pembuatan channel.ACTIVE—Channel telah berhasil dihubungkan dengan penyedia. SaluranACTIVEsiap 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 berakhir dan penyedia tidak terhubung. Untuk membuat ulang koneksi dengan penyedia, Anda harus membuat channel baru untuk penyedia tersebut.
Token aktivasi adalah token sekali pakai yang dibatasi waktu, yang digunakan untuk membuat koneksi antara project penyedia dan pelanggan. Hanya penyedia tertentu, yang dipilih selama proses pembuatan channel, yang dapat menggunakan token. Token ini berlaku selama 24 jam setelah pembuatan channel. Setelah 24 jam, channel akan menjadi INACTIVE.
Mengirim detail saluran ke penyedia
Anda harus mengirimkan detail channel berikut ke penyedia Datadog:
- Nama channel (mis.
projects/project-id/locations/us-central1/channels/datadog-channel) - Token aktivasi (mis.
so5g4Kdasda7y2MSasdaGn8njB2)
Login ke Datadog, buka halaman integrasi, dan pastikan integrasi Google Eventarc telah diinstal:

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

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

Sekarang, Anda siap menggunakan channel.
5. Membuat alur kerja
Anda memerlukan tujuan di Google Cloud untuk menerima peristiwa dari penyedia. Eventarc mendukung sejumlah tujuan peristiwa seperti Cloud Run, Workflows, layanan Kubernetes. Dalam hal ini, deploy alur kerja untuk mencatat peristiwa yang diterima.
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 hanya mencatat peristiwa yang diterima.
Deploy alur kerja:
WORKFLOW_NAME=workflow-datadog1 gcloud workflows deploy $WORKFLOW_NAME \ --source workflow-datadog1.yaml \ --location $REGION
Alur kerja di-deploy, tetapi belum berjalan. Fungsi ini akan dieksekusi oleh pemicu Eventarc saat pemberitahuan Datadog diterima.
6. Membuat pemicu Eventarc
Sekarang Anda siap 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 channel Datadog, jenis peristiwa, dan 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.
Monitor ini akan menjadi monitor jenis Hello World dengan nilai default. Anda akan memicunya secara manual untuk membuat pemberitahuan pemantauan yang pada gilirannya akan membuat peristiwa Eventarc di Google Cloud.
Untuk membuat monitor di Datadog, login ke Datadog. Arahkan kursor ke Monitors di menu utama, lalu klik New Monitor di submenu. Ada banyak jenis monitor. Pilih jenis monitor Metric.
Di halaman New Monitor, gunakan nilai default untuk langkah 1 dan 2.
- Pada langkah 3, tetapkan
Alert thresholdke 1 - Pada langkah 4, tetapkan
Test monitor for Eventarcsebagai nama monitor dan tetapkanNotify your teamke@eventarc_<your-project-id>_<your-region>_<your-channel-name>
Biarkan halaman monitor tetap terbuka untuk langkah berikutnya saat Anda menguji monitor.
8. Memantau dan memicu pengujian
Untuk menguji monitor Datadog dan pemicu Eventarc, Anda akan memicu monitor secara manual.
Di bagian bawah halaman pembuatan monitor, klik tombol Test Notifications:

Kemudian, klik tombol Run Test:

Hal ini akan menyimulasikan transisi status di monitor dan memicu peristiwa Eventarc.
Periksa alur kerja workflow-datadog1. Anda akan melihat bahwa ada eksekusi baru:

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

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.