1. Pengantar
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.
Workflows adalah platform orkestrasi terkelola sepenuhnya yang mengeksekusi layanan dalam urutan yang Anda tentukan yang disebut alur kerja. Alur kerja ini dapat menggabungkan layanan yang dihosting di Cloud Run atau Cloud Functions, layanan Google Cloud seperti Cloud Vision AI dan BigQuery, serta API berbasis HTTP apa pun.
Di codelab pertama, Anda telah mempelajari cara merutekan pemberitahuan pemantauan Datadog ke Google Cloud dengan Eventarc. Dalam codelab kedua ini, Anda akan mempelajari cara merespons pemberitahuan pemantauan Datadog dengan Workflows. Lebih spesifiknya, Anda akan membuat 2 Virtual Machine Compute Engine dan memantaunya dengan monitor Datadog. Setelah 1 VM dihapus, Anda akan menerima pemberitahuan dari Datadog ke Workflows melalui Eventarc. Selanjutnya, Workflows akan membuat ulang VM yang dihapus untuk mengembalikan jumlah VM yang berjalan ke 2.
Yang akan Anda pelajari
- Cara mengaktifkan integrasi Google Cloud Datadog.
- Cara membuat alur kerja untuk memeriksa dan membuat VM Compute Engine.
- Cara menghubungkan pemberitahuan pemantauan Datadog ke Workflows dengan Eventarc.
- Cara membuat monitor Datadog dan pemberitahuan tentang penghapusan VM.
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.
- Nama project adalah nama tampilan untuk peserta project ini. String ini adalah string karakter yang tidak digunakan oleh Google API, dan 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 menghasilkan string unik; biasanya Anda tidak peduli dengan kata-katanya. Pada sebagian besar codelab, Anda harus mereferensikan Project ID (dan biasanya diidentifikasi sebagai
PROJECT_ID
). Jadi, jika Anda tidak menyukainya, buat ID acak lain, atau, Anda dapat mencoba sendiri dan melihat apakah tersedia. Kemudian file akan "dibekukan" setelah project dibuat. - Ada nilai ketiga, Nomor Project yang digunakan oleh beberapa API. Pelajari lebih lanjut ketiga nilai ini di dokumentasi.
- Selanjutnya, Anda harus mengaktifkan penagihan di Cloud Console untuk menggunakan API/resource Cloud. Menjalankan operasi dalam codelab ini seharusnya tidak memerlukan banyak biaya, bahkan mungkin tidak sama sekali. Untuk menonaktifkan resource agar tidak menimbulkan penagihan di luar tutorial ini, ikuti petunjuk "pembersihan" yang ada di akhir codelab. 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 di lab ini dapat dilakukan hanya dengan browser.
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 \ workflows.googleapis.com \ workflowexecutions.googleapis.com
3. Memverifikasi saluran Datadog
Pastikan saluran Datadog yang Anda buat di codelab pertama aktif. Di Cloud Shell, jalankan perintah berikut untuk mengambil detail saluran:
CHANNEL_NAME=datadog-channel 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: ACTIVE uid: 183d3323-8cas-4e95-8d72-7d8c8b27cf9e updateTime: '2022-03-09T09:53:48.290217299Z'
Anda juga dapat melihat status saluran di Konsol Google Cloud:
Status saluran harus ACTIVE
. Jika tidak, kembali ke codelab pertama dan ikuti langkah-langkah untuk membuat dan mengaktifkan saluran dengan Datadog.
4. Mengaktifkan integrasi Google Cloud Datadog
Untuk menggunakan Datadog guna memantau project, Anda harus mengaktifkan API yang diperlukan untuk Datadog, membuat akun layanan, dan menghubungkan akun layanan ke Datadog.
Mengaktifkan API untuk Datadog
gcloud services enable compute.googleapis.com \ cloudasset.googleapis.com \ monitoring.googleapis.com
Membuat akun layanan
Integrasi Google Cloud Datadog menggunakan akun layanan untuk melakukan panggilan ke Cloud Logging API guna mengumpulkan metrik tingkat node dari instance Compute Engine Anda.
Buat akun layanan untuk Datadog:
DATADOG_SA_NAME=datadog-service-account gcloud iam service-accounts create $DATADOG_SA_NAME \ --display-name "Datadog Service Account"
Aktifkan akun layanan Datadog untuk mengumpulkan metrik, tag, peristiwa, dan label pengguna dengan memberikan peran IAM berikut:
DATADOG_SA_EMAIL=$DATADOG_SA_NAME@$PROJECT_ID.iam.gserviceaccount.com gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$DATADOG_SA_EMAIL \ --role roles/cloudasset.viewer gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$DATADOG_SA_EMAIL \ --role roles/compute.viewer gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$DATADOG_SA_EMAIL \ --role roles/monitoring.viewer
Buat dan download kunci akun layanan Anda memerlukan file kunci untuk menyelesaikan integrasi dengan Datadog.
Buat file kunci akun layanan di direktori beranda Cloud Shell Anda:
gcloud iam service-accounts keys create ~/key.json \ --iam-account $DATADOG_SA_EMAIL
Di Cloud Shell, klik More ⁝
lalu pilih Download File
. Di kolom File path
, masukkan key.json
. Untuk mendownload file kunci, klik Download
.
Menghubungkan akun layanan ke Datadog
Di akun Datadog, buka bagian Integrations
dan cari kartu integrasi Google Cloud
:
Arahkan kursor ke Google Cloud Platform
untuk membuka halaman Install
:
Instal integrasi dengan mengupload kunci akun layanan di bagian Upload Private Key File
, lalu mengklik Install Integration
:
Setelah Anda menyelesaikan integrasi, Datadog secara otomatis membuat sejumlah dasbor terkait Google Cloud di bagian Dashboards
:
5. Membuat VM Compute Engine
Selanjutnya, buat beberapa Virtual Machine (VM) Compute Engine. Anda akan memantau VM ini dengan monitor Datadog dan merespons pemberitahuan Datadog dengan alur kerja di Google Cloud.
Buat 2 VM Compute Engine:
gcloud compute instances create instance-1 instance-2 --zone us-central1-a
Anda akan melihat VM yang dibuat dan berjalan dalam waktu satu menit atau lebih di Cloud Console. Setelah beberapa waktu (biasanya 10 menit), Anda juga akan melihat VM ini di Datadog pada dasbor Google Compute Engine
di bagian Dashboards
:
6. Membuat alur kerja
Setelah memiliki 2 VM yang berjalan, buat alur kerja yang akan merespons pemberitahuan dari monitor Datadog. Alur kerja ini bisa semburat yang Anda inginkan, tetapi dalam hal ini, alur kerja akan memeriksa jumlah instance VM yang berjalan dan jika turun di bawah 2, alur kerja akan membuat instance VM baru untuk memastikan ada 2 VM yang berjalan setiap saat.
Buat file workflow-datadog2.yaml
dengan konten berikut:
main: params: [event] steps: - init: assign: - projectId: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")} - zone: "us-central1-a" - minInstanceCount: 2 - namePattern: "datadog-instance-##" - listInstances: call: googleapis.compute.v1.instances.list args: project: ${projectId} zone: ${zone} result: listResult - getInstanceCount: steps: - initInstanceCount: assign: - instanceCount: 0 - setInstanceCount: switch: - condition: ${"items" in listResult} steps: - stepA: assign: - instanceCount: ${len(listResult.items)} - findDiffInstanceCount: steps: - assignDiffInstanceCount: assign: - diffInstanceCount: ${minInstanceCount - instanceCount} - logDiffInstanceCount: call: sys.log args: data: ${"instanceCount->" + string(instanceCount) + " diffInstanceCount->" + string(diffInstanceCount)} - endEarlyIfNeeded: switch: - condition: ${diffInstanceCount < 1} next: returnResult - bulkInsert: call: googleapis.compute.v1.instances.bulkInsert args: project: ${projectId} zone: ${zone} body: count: ${diffInstanceCount} namePattern: ${namePattern} instanceProperties: machineType: "e2-micro" disks: - autoDelete: true boot: true initializeParams: sourceImage: projects/debian-cloud/global/images/debian-10-buster-v20220310 networkInterfaces: - network: "global/networks/default" result: bulkInsertResult - returnResult: return: ${bulkInsertResult}
Perhatikan bahwa alur kerja menerima peristiwa sebagai parameter. Peristiwa ini akan berasal dari pemantauan Datadog melalui Eventarc. Setelah peristiwa diterima, alur kerja akan memeriksa jumlah instance yang berjalan dan membuat instance VM baru, jika diperlukan.
Deploy alur kerja:
WORKFLOW_NAME=workflow-datadog2 gcloud workflows deploy $WORKFLOW_NAME \ --source workflow-datadog2.yaml \ --location $REGION
Alur kerja telah di-deploy, tetapi belum berjalan. Fungsi ini akan dijalankan oleh pemicu Eventarc saat pemberitahuan Datadog diterima.
7. Membuat pemicu Eventarc
Sekarang Anda siap untuk menghubungkan peristiwa dari penyedia Datadog ke Workflows dengan pemicu Eventarc. Anda akan menggunakan saluran dan akun layanan yang Anda siapkan di codelab pertama.
Buat pemicu dengan saluran Datadog, jenis peristiwa, dan juga tujuan alur kerja:
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)') gcloud eventarc triggers create datadog-trigger2 \ --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-trigger2 TYPE: datadog.v1.alert DESTINATION: Workflows: workflow-datadog2 ACTIVE: Yes
8. Membuat monitor Datadog
Sekarang Anda akan membuat monitor Datadog dan menghubungkannya ke Eventarc.
Pemantau akan memeriksa jumlah VM Compute Engine yang berjalan dan mengirimkan pemberitahuan jika jumlahnya kurang dari 2.
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
, buat monitor dengan hal berikut:
- Pilih metode deteksi:
Threshold
. - Tentukan metrik:
gcp.gce.instance.is_running
dari (di mana saja)sum by
(semuanya) - Tetapkan kondisi pemberitahuan:
- Dipicu saat metrik adalah
below
nilai minimumat least once
selama5 minutes
terakhir - Nilai minimum pemberitahuan:
< 2
- Beri tahu tim Anda:
@eventarc_<your-project-id>_<your-region>_<your-channel-name>
- Contoh Nama monitor:
Compute Engine instances < 2
Sekarang, tekan Create
di bagian bawah untuk membuat monitor.
9. Menguji monitor dan pemicu
Untuk menguji monitor Datadog, pemicu Eventarc, dan pada akhirnya alur kerja, Anda akan menghapus salah satu VM:
gcloud compute instances delete instance-2 --zone us-central1-a
Setelah beberapa detik, Anda akan melihat instance telah dihapus di Konsol Google Cloud.
Ada sedikit latensi saat perubahan ini muncul di Datadog. Setelah beberapa waktu (biasanya 10 menit), Anda akan melihat monitor di Datadog untuk mendeteksi dan memberi tahu hal ini di bagian Manage Monitors
:
Setelah pemberitahuan pemantauan Datadog, Anda akan melihat pemberitahuan tersebut masuk ke Workflows melalui Eventarc. Jika memeriksa log Workflows, Anda akan melihat bahwa Workflows akan memeriksa perbedaan antara jumlah instance saat ini dan jumlah instance yang diharapkan:
2022-03-28 09:30:53.371 BST instanceCount->1 diffInstanceCount->1
Sistem akan merespons pemberitahuan tersebut dengan membuat instance VM baru dengan awalan datadog-instance-##
.
Pada akhirnya, Anda akan tetap memiliki 2 VM dalam project. VM lain yang Anda buat di awal dan satu lagi dibuat oleh Workflows setelah pemberitahuan Datadog dikirimkan.
10. Selamat
Selamat, Anda telah menyelesaikan codelab!
Yang telah kita bahas
- Cara mengaktifkan integrasi Google Cloud Datadog.
- Cara membuat alur kerja untuk memeriksa dan membuat VM Compute Engine.
- Cara menghubungkan pemberitahuan pemantauan Datadog ke Workflows dengan Eventarc.
- Cara membuat monitor Datadog dan pemberitahuan tentang penghapusan VM.