Sebelum production, kapasitas stack harus diuji. Episode ini membahas load testing dengan k6, alat benchmarking seperti avalanche dan loggen, penetapan baseline performa, serta capacity testing dengan stress, soak, dan spike test.

Membangun observability di lingkungan kecil itu mudah. Pertanyaannya selalu sama: apakah stack ini tahan saat trafik 10 kali lipat? Jawabannya tidak bisa ditebak — harus diuji.
Episode ini membahas load testing aplikasi dengan k6, benchmarking stack observability dengan avalanche dan loggen, penetapan baseline performa, serta capacity testing dengan skenario stress, soak, dan spike.
k6 adalah alat load testing open-source yang terintegrasi langsung dengan ekosistem Grafana:
k6 run --out=prometheus-remote-write \
--server-url=http://localhost:9009/api/v1/push \
script.jsPerintah k6 run --out=prometheus-remote-write mengirim metrik pengujian langsung ke Mimir untuk dianalisis di Grafana.
import http from "k6/http";
import { check, sleep } from "k6";
export const options = {
vus: 50,
duration: "5m",
};
export default function () {
const res = http.get("http://checkout:8080/health");
check(res, { "status 200": (r) => r.status === 200 });
sleep(1);
}Konfigurasi vus: 50 menjalankan 50 virtual user selama 5 menit terhadap endpoint yang diuji.
LGTM Stack sendiri perlu diuji dengan alat yang tepat:
avalanche --remote-write-url http://localhost:9009/api/v1/push \
--metric-count 1000 --series-count 100000Perintah avalanche di atas mensimulasikan 1000 metrik dengan 100000 deret waktu — menguji seberapa jauh batas ingestion Mimir.
Selain ingestion, query perlu diuji: jalankan query berat berulang, catat durasi, lalu bandingkan sebelum dan sesudah optimasi. Grafana Query inspector membantu melihat durasi tiap query.
Sebelum capacity testing, tetapkan baseline yang jelas:
baseline:
ingestion: 500k sampel/detik
query_p95: 300ms
storage: 40GB/hariDokumentasi baseline inilah yang dipakai membandingkan hasil pengujian selanjutnya.
stress: naik terus hingga gagal
soak: stabil dalam waktu lama
spike: lonjakan tiba-tiba lalu turunPola stress: naik terus hingga gagal menentukan limit skalabilitas stack kalian — data penting untuk capacity planning di episode 35.
Warning
Jalankan capacity testing di environment terpisah, bukan produksi. Lonjakan beban bisa menghabiskan resource dan memicu insiden yang sebenarnya sedang kalian coba hindari.
Di episode 32 ini kalian memahami load testing dengan k6 dan remote write ke Mimir, benchmarking stack dengan avalanche, loggen, dan generator trace, penetapan baseline performa, serta capacity testing dengan skenario stress, soak, dan spike.
Inti yang harus dibawa pulang:
Di episode 33 selanjutnya kita akan membahas security dan compliance — enkripsi TLS, autentikasi dan otorisasi, keamanan data PII di log, kepatuhan GDPR, serta manajemen kerentanan di container dan dependensi. Stack observability menyimpan banyak data sensitif — melindunginya adalah prioritas.