Episode ini membahas dasar observability Multigress: mengaktifkan metrics dan logs, integrasi dengan Prometheus dan Grafana, serta memeriksa route behavior dan gateway health dengan data nyata.

Konfigurasi yang tampak benar di atas kertas bisa berperilaku berbeda di lapangan. Untuk itu kalian butuh observability: kemampuan melihat ke dalam sistem dari luar. Episode 7 membuka dasar observability Multigress — mengaktifkan metrics dan logs, menariknya ke Prometheus, menampilkannya di Grafana, dan membaca health gateway.
Mulai episode ini, setiap keputusan arsitektur di episode 6 dan sebelumnya akan dievaluasi dengan data, bukan perasaan.
Multigress mengekspos metrics Prometheus di data plane dan control plane. Aktifkan lewat nilai chart saat instalasi:
helm upgrade multigress multigress/multigress \
--namespace multigress-system \
--set metrics.enabled=true \
--set metrics.serviceMonitor.enabled=trueSetelan metrics.serviceMonitor.enabled=true membuat operator Prometheus otomatis menemukan endpoint metrics. Pastikan kube-prometheus-stack sudah terinstall di cluster; jika belum, install dulu:
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install kube-prometheus-stack prometheus-community/kube-prometheus-stack \
--namespace monitoring --create-namespaceLogs proxy mencatat setiap request beserta status response:
kubectl logs -n multigress-system deploy/multigress-proxy --tail=20Baris log menampilkan metode, host, path, durasi, dan status code. Format ini sangat berguna saat menelusuri request yang lambat atau error.
Setelah beberapa menit, target metrics seharusnya muncul di Prometheus:
kubectl port-forward -n monitoring svc/kube-prometheus-stack-prometheus 9090:9090Buka http://localhost:9090 lalu cek menu Status kemudian Targets. Perintah kubectl port-forward -n monitoring svc/kube-prometheus-stack-prometheus 9090:9090 memetakan port Prometheus ke lokal.
Beberapa metric inti Multigress yang akan menemani kalian:
multigress_http_requests_total: jumlah request per route.multigress_http_request_duration_seconds: latensi request.multigress_backend_healthy: status sehat backend.multigress_connections_active: koneksi aktif proxy.Coba query di Prometheus:
sum(rate(multigress_http_requests_total[5m])) by (route)Query di atas menampilkan request rate per route selama 5 menit terakhir — bahan dasar untuk dashboard dan SLO di episode 20 dan 21.
Grafana bisa menampilkan semua metric di atas. Akses dan import dashboard bawaan:
kubectl port-forward -n monitoring svc/kube-prometheus-stack-grafana 3000:80Login dengan kredensial dari secret grafana, lalu import dashboard dengan ID resmi Multigress dari grafana.com. Setelah itu kalian akan melihat panel request rate, latensi, dan koneksi aktif dalam satu layar.
Sebelum menyelam ke metric, cek status resource dulu:
kubectl get gatewayclass
kubectl get gateway -A
kubectl get httproute -AResource yang sehat menunjukkan kondisi Accepted dan Ready. Route yang Rejected menampilkan alasan pada detail kondisi:
kubectl get httproute api-route -o yaml | grep -A 15 "conditions:"Perintah kubectl get httproute api-route -o yaml dibatasi dengan grep untuk melihat kondisi terkini. Output ini jauh lebih informatif daripada menebak-nebak alasan route ditolak.
Multigress menyediakan endpoint health di data plane:
kubectl port-forward -n multigress-system svc/multigress-proxy 8081:19000
curl -s http://localhost:8081/healthzJika respon OK, data plane sehat. Pola health endpoint ini menjadi dasar probe Kubernetes dan otomatisasi failover yang akan kita bahas di episode 18.
Tip
Biasakan urutan ini saat troubleshooting: status resource dulu, lalu logs, lalu metrics. Status memberi tahu apa yang salah, logs memberi tahu kapan, dan metrics memberi tahu dampaknya.
Episode 7 memasang alat mata untuk seluruh series: metrics dan logs Multigress aktif, Prometheus menarik data secara otomatis, Grafana menampilkannya, dan kalian tahu cara membaca status route serta health gateway.
Inti yang harus dibawa pulang:
helm upgrade dengan metrics.enabled dan serviceMonitor.Accepted dan Ready adalah sumber kebenaran kondisi route.Di episode 8 selanjutnya kita akan membahas advanced routing & request transformation — manipulasi header, redirects, rewrites, prefix matching, conditional routing berdasarkan route rules, serta dukungan gRPC dan WebSocket lewat gateway. Siapkan dashboard observability kalian untuk mengamati setiap perubahan.