Mimir adalah backend metrik yang kompatibel dengan Prometheus dan scalable horizontal. Episode ini membahas arsitektur komponennya, perbandingan dengan Prometheus, jalur remote write, serta tipe-tipe metrik dan bahaya cardinality yang tinggi.

Komponen pertama dari LGTM yang akan kalian dalami adalah Grafana Mimir — backend penyimpanan metrik yang kompatibel dengan Prometheus dan dirancang untuk skala besar. Mimir mengambil peran tempat semua metrik aplikasi dan infrastruktur kalian disimpan dalam jangka panjang.
Episode ini membahas arsitektur komponen Mimir, perbandingan dengan Prometheus dan kapan harus memakai masing-masing, jalur remote write, serta tipe-tipe metrik dan pertimbangan cardinality. Pahami konsep di episode ini karena query PromQL di episode 7 akan berjalan di atas Mimir.
Mimir adalah TSDB (Time Series Database) yang berbicara protokol Prometheus. Artinya, seluruh ekosistem Prometheus — bahasa query PromQL, format metrik, dan remote write — berfungsi langsung tanpa modifikasi. Ini membuat migrasi dari Prometheus ke Mimir sangat mulus.
Fitur pembeda Mimir dibandingkan Prometheus tunggal:
blocks_storage:
backend: filesystem
filesystem:
dir: /data/blocks
tsdb:
dir: /data/tsdb
bucket_store:
sync_dir: /data/bucket-syncKonfigurasi di atas adalah versi lengkap yang dipakai di episode 4. Pada produksi, bagian backend: filesystem diganti dengan s3 atau gcs — dibahas di episode 22.
Mimir memecah alur data menjadi komponen kecil yang masing-masing bisa diskalakan sendiri:
remote write -> distributor -> ingester -> object storage
^ |
query -> query-frontend -> querier <- store-gatewayDiagram distributor -> ingester -> object storage adalah alur inti penyimpanan metrik. Sedangkan jalur query melewati query-frontend, querier, dan store-gateway yang membaca dari object storage.
Jalur migrasi umum adalah mempertahankan Prometheus sebagai scraper sekaligus menambahkan remote write menuju Mimir. Dengan begitu, metrik tetap tersedia di Prometheus untuk kebutuhan jangka pendek dan disalin ke Mimir untuk jangka panjang.
remote_write:
- url: http://mimir:9009/api/v1/push
headers:
X-Scope-OrgID: localBlok remote_write di atas dipasang di config Prometheus. Header X-Scope-OrgID wajib ada saat multi-tenancy diaktifkan; di mode lokal nilainya bebas.
Mimir memahami empat tipe metrik Prometheus:
http_requests_total. Hanya bisa direset.temperature_celsius.counter | gauge | histogram | summaryIngat pola counter | gauge | histogram | summary ini; tipe yang dipilih menentukan fungsi query yang valid, seperti rate hanya untuk counter.
Cardinality adalah jumlah kombinasi unik label pada sebuah metrik. Contoh: metrik dengan label user_id yang bernilai seribu akan menciptakan seribu deret waktu. Kalikan dengan beberapa label lain, jumlahnya meledak dan membebani storage serta query.
method, status, atau service.user_id, email, atau trace_id.Warning
Cardinality explosion adalah penyebab paling umum kenaikan biaya observability. Satu metrik dengan label user_id bisa menyimpan jutaan deret. Desain label dengan hati-hati sejak awal.
Di episode 6 ini kalian memahami bahwa Mimir adalah TSDB kompatibel Prometheus dengan arsitektur modular yang scalable horizontal, mengenal peran tiap komponen dari distributor hingga ruler, mengetahui kapan memakai Prometheus atau Mimir, memahami jalur remote write, serta tipe-tipe metrik dan bahaya cardinality.
Inti yang harus dibawa pulang:
Di episode 7 selanjutnya kita akan membahas PromQL — bahasa query Prometheus yang dipakai untuk membaca semua metrik di Mimir, dari instant vector dan range vector, operator agregasi, pola query umum seperti rate dan histogram_quantile, hingga best practices performa. Dashboard kalian akan mulai berbicara dengan bahasa metrik.