Loki adalah agregator log yang hemat biaya dengan pendekatan index-free. Episode ini membahas arsitektur komponennya, cara kerja penyimpanan berbasis label, perbandingan dengan Elasticsearch, serta strategi parsing log dari format terstruktur hingga label extraction.

Pillar kedua observability adalah logs — catatan detail tentang apa yang persis terjadi. Namun mengumpulkan log dari ribuan service bukan pekerjaan sepele: volume bisa mencapai terabyte per hari, dan biaya penyimpanan sering kali menjadi beban terbesar.
Grafana Loki hadir menjawab masalah tersebut. Terinspirasi dari desain Prometheus, Loki dirancang sebagai sistem agregasi log yang skalabel horizontal dan hemat biaya, dengan pendekatan penyimpanan yang sama sekali berbeda dari Elasticsearch. Episode ini membahas arsitektur Loki, perbandingannya dengan Elasticsearch, serta format dan strategi parsing log.
Loki tidak mengindex isi setiap baris log. Sebagai gantinya, ia hanya mengindex label — pasangan key-value yang melekat pada setiap aliran log. Isi baris disimpan apa adanya dalam chunk yang dikompresi.
Keuntungan pendekatan ini sangat besar:
docker exec loki /usr/bin/loki --versionPerintah docker exec loki /usr/bin/loki --version menampilkan versi binary di dalam container — kebiasaan kecil yang berguna saat memverifikasi deployment.
Seperti Mimir, Loki memecah alur data menjadi komponen kecil:
client -> distributor -> ingester -> object storage
^ |
query -> query-frontend -> querier <- index-gatewayDiagram distributor -> ingester -> object storage menunjukkan jalur penulisan, sementara jalur query dibantu index-gateway untuk mencari label.
loki: label-first, murah, cocok untuk observability
elasticsearch: full-text, mahal, cocok untuk searchContoh pola di atas bukan berarti salah satu lebih baik — pilih berdasarkan kebutuhan. loki: label-first menjadi pilihan default di series ini karena biaya.
Log terstruktur berbentuk JSON atau logfmt sehingga mudah diparsing mesin:
{
"level": "info",
"ts": "2026-08-10T10:05:11Z",
"service": "orders",
"order_id": "ord-1042",
"msg": "order created"
}Log tak terstruktur hanyalah teks bebas. Keduanya bisa diterima Loki, tapi log terstruktur jauh lebih mudah dianalisis dengan LogQL di episode 10.
Prinsip penting di Loki: label dibatasi, parsing dilakukan saat query. Cukup gunakan beberapa label stabil seperti job, service, dan level; sisanya diparsing dari isi log menggunakan parser LogQL seperti json, logfmt, atau pattern.
labels:
job: checkout
service: payment
level: errorKonsep labels di atas mirip label Prometheus — selalu pikirkan cardinality sebelum menambahkan label baru.
Info
Kesalahan paling umum pengguna Loki adalah memberi terlalu banyak label. Ingat: label hanya untuk aliran log, sedangkan data dinamis seperti order_id harus tetap berada di isi baris log.
Di episode 9 ini kalian memahami bahwa Loki adalah agregator log index-free yang mengindex label saja, mengenal komponen arsitekturnya dari distributor hingga compactor, membandingkan pendekatannya dengan Elasticsearch, serta memahami pentingnya log terstruktur dan strategi label yang disiplin.
Inti yang harus dibawa pulang:
Di episode 10 selanjutnya kita akan membahas LogQL — bahasa query Loki untuk memilih aliran log, memfilter baris, memparsing isi, hingga menghitung metrik dari log seperti rate dan count_over_time. Log yang tersimpan akan segera bisa dijelajahi dengan cepat.