Grafana Alloy menawarkan fitur lanjutan untuk pipeline telemetry yang dinamis. Episode ini membahas perbandingan Alloy dengan OTel Collector, bahasa River lebih dalam, komponen discovery dan relabeling, serta mode clustering untuk high availability dan distribusi target.

Di episode 11 kalian memakai Grafana Alloy untuk mengumpulkan log. Namun Alloy jauh lebih dari sekadar pembaca file — ia adalah collector general-purpose yang menangani metrik, log, dan trace sekaligus, dengan bahasa konfigurasi River yang bisa diprogram.
Episode ini membahas kapan memakai Alloy dan kapan memakai OpenTelemetry Collector, eksplorasi bahasa River lebih dalam, komponen discovery dan relabeling untuk service discovery, serta mode clustering yang membuat Alloy berjalan high availability.
alloy (edge) -> otel collector (gateway) -> backendPola alloy (edge) -> otel collector (gateway) adalah kombinasi yang paling umum di deployment campuran.
Konfigurasi Grafana Agent lama bisa dikonversi ke Alloy dengan tool alloy convert. Dari sisi OTel, sebagian besar komponen memiliki padanan, sehingga migrasi umumnya bertahap.
River adalah bahasa yang berorientasi komponen:
komponen "nama" "label" diikuti atribut di dalam kurung kurawal.->.endpoint = "http://loki:3100/loki/api/v1/push"
loki.write "default" {
endpoint {
url = endpoint
}
external_labels = {
env = "dev",
}
}Ekspresi endpoint = "..." memperlihatkan bahwa atribut bisa memakai variabel — membuat konfigurasi Alloy dapat diprogram layaknya kode.
discovery.kubernetes, discovery.docker, dan discovery.relabel untuk menemukan target.prometheus.remote_write.otelcol.receiver.otlp dan otelcol.exporter.otlp.discovery.docker "nodes" {
host = env("DOCKER_HOST")
}
discovery.relabel "keep_web" {
targets = discovery.docker.nodes.targets
rule {
source_labels = ["__meta_docker_container_name"]
regex = "web-.*"
action = "keep"
}
}Aturan discovery.relabel memfilter target hanya container yang namanya diawali web- — pola khas service discovery di produksi.
Alloy mendukung clustering untuk skala horizontal:
cluster:
enabled: true
name: logs-cluster
join_peers:
- alloy-1:12345Konfigurasi cluster.enabled: true menyalakan mode cluster; join_peers menghubungkan instance ke anggota cluster yang sudah ada.
Tip
Clustering berguna saat koleksi log atau scraping melebihi kapasitas satu node. Mulai dari target allocation sederhana, lalu perbesar node seiring pertumbuhan beban.
Di episode 17 ini kalian memahami posisi Alloy versus OpenTelemetry Collector dan strategi memakainya secara komplementer, mendalami bahasa River dengan variabel dan expression, komponen discovery dan relabeling, serta mode clustering untuk high availability dan distribusi target.
Inti yang harus dibawa pulang:
Di episode 18 selanjutnya kita akan membahas korelasi antar pillars — menghubungkan metrik dengan trace lewat exemplar, log dengan trace lewat TraceID, dan trace kembali ke log, hingga alur debugging terpadu alert → metrik → trace → log. Inilah keunggulan utama LGTM Stack yang membedakannya dari kumpulan tool biasa.