Tempo menghadapi tantangan unik: trace identik hanya bisa ditemukan dengan TraceID. Episode ini membahas deployment single binary dan microservices, strategi ingestion, optimasi query dengan bloom filter dan caching, sampling, serta metrik turunan dari trace.

Trace berbeda dari metrik dan log: setiap TraceID unik, dan menemukan trace tanpa TraceID menuntut pencarian yang mahal. Tantangan inilah yang membuat scaling Tempo membutuhkan strategi tersendiri — mulai dari deployment hingga sampling.
Episode ini membahas deployment Tempo, strategi ingestion, optimasi query dengan bloom filter dan caching, sampling strategy, serta metrik turunan dari trace lewat metrics-generator.
single binary -> microservicesPola single binary -> microservices mengikuti pola yang sama seperti Loki — mulai sederhana, naik sesuai kebutuhan.
storage:
trace:
backend: s3
s3:
bucket: tempo-blocks
block:
blocklist_poll: 5mBlok backend: s3 memindahkan penyimpanan trace ke object storage — pola yang sama dengan Mimir di episode 22.
overrides:
per_tenant_override_config:
ingester:
max_local_traces_per_user: 100000Nilai max_local_traces_per_user: 100000 membatasi trace per tenant di ingester — pelindung dasar saat trafik melonjak.
storage:
trace:
block:
bloom_filter_false_positive: 0.05
index_downsample_bytes: 1048576Nilai bloom_filter_false_positive: 0.05 menyeimbangkan kecepatan pencarian dengan ukuran index.
tail_sampling:
policies:
- name: keep-errors
type: status_code
status_code:
status_codes:
- ERRORKebijakan tail_sampling memastikan trace dengan error selalu disimpan meskipun trafik tinggi — nilai penting saat debugging.
Sampling menekan biaya tapi mengurangi cakupan. Aturan umum: simpan semua trace error, sampling dengan rasio untuk trace normal, dan pertimbangkan prioritas layanan.
Komponen metrics-generator menurunkan metrik dari trace yang lewat:
trace -> metrics-generator -> metrik RED -> Mimir -> dashboardPola trace -> metrics-generator -> metrik RED menjelaskan bagaimana service yang tidak diinstrumentasi metrik tetap menghasilkan metrik melalui data trace.
Info
Service graphs dan span metrics sangat berguna untuk layanan lama yang belum diinstrumentasi. Aktifkan metrics-generator di Tempo dan kalian mendapat gambaran trafik lintas service tanpa mengubah satu baris kode aplikasi.
Di episode 24 ini kalian memahami deployment Tempo dari single binary ke microservices, strategi ingestion dengan rate limiting dan backpressure, optimasi query dengan bloom filter dan caching, empat pendekatan sampling, serta metrik turunan dari trace.
Inti yang harus dibawa pulang:
Di episode 25 selanjutnya kita akan membahas multi-tenancy dan access control — model tenancy, multi-tenancy di Mimir, Loki, dan Tempo, RBAC di Grafana, serta metode autentikasi dari basic auth hingga SAML. Saat banyak tim memakai satu stack, isolasi dan kontrol akses menjadi penentu keamanan.