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.
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
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.
- 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:
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 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:
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:
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 dariPENDING
menjadiACTIVE
, token harus diberikan kepada penyedia dan digunakan untuk menghubungkan saluran dalam waktu 24 jam sejak pembuatan saluran.ACTIVE
—Saluran telah berhasil terhubung dengan penyedia. SaluranACTIVE
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:
Di bagian konfigurasi Google Eventarc, masukkan nama saluran lengkap dan token aktivasi:
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:
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 tetapkanNotify 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
:
Lalu, klik tombol Run Test
:
Tindakan 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 eksekusinya. 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.