Infrastruktur yang tidak diamati sama dengan tidak ada: CloudWatch, Cloud Monitoring, dan Azure Monitor mengubah metrik menjadi alarm, log menjadi insight, dan dashboard menjadi kontrol. Kalian membangun setup observability — metrik, log aggregation, alarm, dan dashboard — untuk infrastruktur cloud yang sudah kalian bangun.

Di episode 8 kalian mengotomasi manajemen resource — tetapi ada pertanyaan yang belum terjawab: bagaimana kalian tahu semuanya berjalan baik? Server bisa down di tengah malam, disk bisa penuh pelan-pelan, dan response API bisa melambat tanpa ada yang menyadarinya. Inilah mengapa observability bukan opsional.
Episode 9 membahas monitoring & logging cloud: metrik (angka yang terus berjalan), log (rekaman peristiwa), alarm (pemicu aksi), dan dashboard (pandangan ringkas). Kalian akan belajar memakai layanan monitoring resmi — CloudWatch (AWS), Cloud Monitoring (GCP), Azure Monitor — dan membangun setup observability untuk infrastruktur yang sudah kalian bangun sejak episode 3.
Monitoring cloud mencakup dua-duanya: metrik dari resource (VM, DB, load balancer) dan log dari aplikasi.
Setiap provider punya sistem metrik terpusat:
| Kemampuan | AWS CloudWatch | GCP Cloud Monitoring | Azure Monitor |
|---|---|---|---|
| Metrik resource | CPU, network, disk | Sama | Sama |
| Custom metrics | Ya | Ya | Ya |
| Log aggregation | CloudWatch Logs | Cloud Logging | Log Analytics |
| Alarm & notifikasi | Ya | Ya | Ya |
| Dashboard | Ya | Ya | Ya |
Contoh: melihat metrik CPU instance dan membuat alarm — semua provider bisa, bedanya sintaks:
aws cloudwatch get-metric-statistics \
--namespace AWS/EC2 \
--metric-name CPUUtilization \
--dimensions Name=InstanceId,Value=i-0a1b2c3d \
--start-time 2026-08-15T00:00:00Z \
--end-time 2026-08-16T00:00:00Z \
--period 3600 \
--statistics Averagegcloud monitoring metrics-list \
--filter="metric.type=compute.googleapis.com/instance/cpu/utilization"Custom metrics penting saat metrik bawaan tidak cukup — misalnya jumlah antrian di aplikasi kalian sendiri. Dengan custom metric, alarm bisa mencakup apa pun yang bisa diukur kode kalian.
Important
Pilar yang sering dilupakan pemula: log dan metrik itu berbeda, dan keduanya wajib. Metrik memberi tahu CPU 100%, tapi hanya log yang memberi tahu kenapa — request apa yang membanjir, error apa yang muncul. Observability yang baik selalu menggabungkan keduanya.
Aplikasi kalian menghasilkan log di banyak tempat: VM, function, database, load balancer. Log aggregation menyatukan semuanya ke satu tempat yang bisa dicari:
CloudWatch Agent di VM.Alur khas di VM Linux: agent membaca file log aplikasi, mengirim ke layanan log cloud, dan bisa di-query.
fields @timestamp, @message
| filter @message like /ERROR|Exception/
| stats count() by bin(5m)
| sort @timestamp desc
| limit 50Pola query di atas adalah contoh nyata: ambil semua log error, hitung per 5 menit, tampilkan terbaru. Kemampuan filter dan aggregate ini yang mengubah "tumpukan log" menjadi jawaban investigasi.
Alarm adalah jembatan antara metrik dan manusia: ketika ambang terlampaui, kirim notifikasi. Contoh alarm CPU tinggi:
aws cloudwatch put-metric-alarm \
--alarm-name high-cpu \
--alarm-description "CPU di atas 80% selama 10 menit" \
--metric-name CPUUtilization \
--namespace AWS/EC2 \
--statistic Average \
--period 300 \
--threshold 80 \
--comparison-operator GreaterThanThreshold \
--dimensions Name=InstanceId,Value=i-0a1b2c3d \
--evaluation-periods 2 \
--alarm-actions arn:aws:sns:ap-southeast-1:123456789012:ops-alertsYang perlu dipikirkan matang:
Tip
Metrik terbaik untuk alarm bukan yang paling terlihat, melainkan yang paling mencerminkan pengalaman user: error rate dan latency dari load balancer. Alarm "CPU 90%" sering kali alarm terlalu awal — aplikasi tetap sehat; sementara error rate 5% langsung terasa oleh user. Desain alarm dari sudut pandang user.
Dashboard adalah jendela kondisi sistem dalam satu pandangan. Setiap provider punya builder-nya (CloudWatch Dashboards, Cloud Monitoring Dashboards, Azure Dashboards), dan tool open-source seperti Grafana juga umum dipakai. Komponen yang harus ada untuk aplikasi web:
| Panel | Metrik |
|---|---|
| Traffic | Request per detik, status code (2xx/4xx/5xx) |
| Latency | p50, p95, p99 response time |
| Resource | CPU, memory, disk per instance |
| Database | Connections, throughput, slow queries |
| Error | Error rate, exceptions per service |
Prinsip dashboard: satu layar, bisa langsung dimengerti dalam 10 detik. Kalau butuh membaca dokumentasi untuk memahami dashboard, itu dashboard yang gagal.
Mari rangkai setup observability untuk VM lab-web yang kalian buat di episode 3:
get-metric-statistics di atas).> 80% 10 menit (info) dan instance status check failed (urgent).stress-ng --cpu 4 di VM, lihat alarm menyala, lalu hentikan.Setelah alarm berdering dan dashboard berfungsi, kalian baru bisa menyebut infrastruktur kalian "diamati". Selanjutnya kita akan melihat bagaimana alarm memicu scaling otomatis (episode 21) dan auto-remediation.
Inti yang harus dibawa pulang:
Di episode 10 selanjutnya kita akan membawa aplikasi ke level berikutnya: containers on cloud — managed Kubernetes (EKS/GKE/AKS), node pools, deployment, dan menjalankan aplikasi container di cluster yang dikelola provider. Sampai jumpa di episode 10!