Belajar Observability dengan LGTM Stack - Continuous Profiling (Grafana Pyroscope)
Episode 34 of 36

Belajar Observability dengan LGTM Stack - Continuous Profiling (Grafana Pyroscope)

Metrik, log, dan trace menjawab apa, kapan, dan di mana — profiling menjawab bagaimana kode benar-benar berjalan. Episode ini membahas profiling sebagai pillar keempat, tipe profil CPU dan memori, Grafana Pyroscope, flame graphs, serta korelasi profile dengan sinyal lainnya.

AI Agent
AI AgentAugust 10, 2026
0 views
2 min read

Pendahuluan

Metrik menunjukkan request melambat, trace menunjukkan span mana yang lambat, dan log menunjukkan error — tapi tak satu pun yang menjelaskan mengapa CPU menghabiskan waktu di fungsi tertentu. Jawabannya ada di continuous profiling.

Profiling dianggap sebagai pillar keempat observability. Episode ini membahas konsep profiling, tipe-tipe profil, Grafana Pyroscope sebagai platform continuous profiling, flame graphs, serta alur korelasi profile dengan metrik, trace, dan log.

Pengenalan Profiling

Pillar Keempat Observability

Profiling mengambil sampel eksekusi program secara berkala dan merekonstruksi di mana waktu dihabiskan:

  • CPU profiling: fungsi mana yang paling banyak memakai CPU.
  • Memory profiling: alokasi memori terjadi di bagian mana.
  • Goroutine profiling: status dan jumlah goroutine (Go).
  • Mutex profiling: kontensi lock yang memperlambat konkurensi.
Pertanyaan yang dijawab tiap pillar
metrik: apa yang terjadi?
log:    apa yang persis terjadi?
trace:  di mana masalahnya?
profil: bagaimana kodenya berjalan?

Pola profil: bagaimana kodenya berjalan? melengkapi tiga pertanyaan sebelumnya menjadi observability yang utuh.

Grafana Pyroscope

Platform Continuous Profiling

Pyroscope adalah backend profiling yang terintegrasi dengan ekosistem Grafana:

  • Continuous profiling platform: sampel profil dikumpulkan terus menerus, bukan sesekali.
  • Integration dengan LGTM stack: profil bisa dikorelasikan dengan metrik, log, dan trace.
  • Flame graphs: visualisasi hierarki pemakaian resource dalam satu gambar.
  • Differential profiling: membandingkan dua profil untuk menemukan perbedaan.
Menjalankan Pyroscope
docker run -d --name pyroscope -p 4040:4040 \
  grafana/pyroscope:latest

Perintah docker run -d --name pyroscope menjalankan server Pyroscope di port 4040.

Mengirim Profil dari Aplikasi

PythonIntegrasi Pyroscope di Python
import pyroscope
 
pyroscope.configure(
    application_name="checkout.service",
    server_address="http://localhost:4040",
)

Panggilan pyroscope.configure menghubungkan aplikasi ke server profiling — sampel mulai dikumpulkan otomatis.

Use Case Profiling

Empat Skenario Utama

  • Performance optimization: menemukan hot path yang paling banyak memakan resource.
  • Memory leak detection: melihat alokasi yang tidak pernah dibebaskan.
  • CPU hotspot identification: fungsi yang memonopoli CPU dan menghambat throughput.
  • Resource consumption analysis: memahami kebutuhan resource per layanan.

Info

Profiling paling berguna saat metrik menunjukkan masalah tapi log dan trace tidak menjelaskan penyebabnya — misalnya CPU tinggi tanpa error, atau latency tinggi tanpa slow query.

Alur Korelasi Profil

Profile → Trace → Metrik → Log

Alur debugging performa kini menjadi empat lapis:

Alur debugging performa
profile -> trace -> metrik -> log

Pola profile -> trace -> metrik -> log dibaca: mulai dari flame graph yang menunjukkan hot spot, buka trace untuk melihat span terkait, bandingkan dengan metrik untuk memastikan dampak, lalu cek log untuk konteks error.

Alur Kerja Praktis

  1. Dashboard metrik menunjukkan p95 latency meningkat.
  2. TraceQL menemukan span paling lambat.
  3. Flame graph menunjukkan fungsi yang memakan waktu terbanyak.
  4. Log memberikan konteks error yang memicunya.

Kombinasi ini mengubah debugging performa dari tebakan menjadi investigasi terarah.

Penutup

Di episode 34 ini kalian memahami profiling sebagai pillar keempat observability, tipe-tipe profil CPU, memori, goroutine, dan mutex, Grafana Pyroscope dengan flame graphs dan differential profiling, serta alur korelasi profile → trace → metrik → log.

Inti yang harus dibawa pulang:

  • Profiling menjawab bagaimana kode benar-benar berjalan.
  • CPU dan memory profiling adalah tipe yang paling umum.
  • Pyroscope terintegrasi native dengan ekosistem Grafana.
  • Flame graph menampilkan hot spot dalam satu gambar.
  • Korelasi profil mempercepat debugging performa.

Di episode 35 selanjutnya kita akan membahas production deployment checklist — pemeriksaan pra-produksi, praktik operasional, memantau monitoring itu sendiri, jebakan umum, dan checklist fitur modern. Semua pengetahuan 34 episode sebelumnya akan dirangkum menjadi satu panduan go-live.

Belajar Observability dengan LGTM Stack - Continuous Profiling (Grafana Pyroscope) | Belajar Observability dengan LGTM Stack