# Migrasi ke Grafana Alloy dari Promtail dan Agent

> Promtail dan Grafana Agent sama-sama sudah mati — inilah cara saya memindahkan pipeline logging Docker nyata ke Grafana Alloy, komponen OpenTelemetry Collector-nya, dan sintaks konfigurasi yang menggantikan YAML.

URL: https://www.matthewswong.com/id/blog/grafana-alloy-opentelemetry-collector-migration/

- Author: Matthews Wong (https://www.matthewswong.com/id/about/)
- Published: 2026-07-10
- Updated: 2026-07-10
- Category: DevOps

> **Key takeaway:** Grafana Alloy adalah distribusi OpenTelemetry Collector milik Grafana dan satu-satunya penerus yang didukung: Grafana Agent mencapai akhir masa pakai pada 1 November 2025 dan Promtail pada 2 Maret 2026. Migrasikan dengan perintah bawaan alloy convert, lalu tulis ulang pipeline sebagai komponen yang saling terhubung menggunakan sintaks konfigurasi Alloy.

Saya menjalankan sekumpulan kecil layanan di VPS yang saya-hosting sendiri, dan selama bertahun-tahun solusi logging-nya adalah Promtail yang membaca file Docker dan mengirimkannya ke Loki. Cerita itu sudah berakhir. Grafana menggabungkan Promtail, Grafana Agent Static, dan Grafana Agent Flow menjadi satu collector bernama Alloy, lalu menetapkan tanggal akhir masa pakai untuk semua yang digantikannya. Jika Anda masih di Promtail atau Agent, Anda menjalankan perangkat lunak tanpa dukungan yang waktunya terbatas.

Kabar baiknya: Alloy bukan penulisan ulang dari nol. Ini adalah distribusi OpenTelemetry Collector sungguhan yang sepenuhnya kompatibel dengan OTLP, sehingga biner yang sama kini menangani log, metrik, trace, dan profil melalui satu konfigurasi. Tulisan ini adalah migrasi yang benar-benar saya lakukan — perkakasnya, komponennya, dan di mana konverter otomatis meninggalkan Anda untuk menyelesaikan pekerjaan secara manual.

## Mengapa Alloy, dan mengapa sekarang

Tenggat waktu adalah pemaksanya. Grafana Agent (Static, Flow, dan Operator) mencapai akhir masa pakai pada 1 November 2025, artinya tidak ada lagi patch keamanan atau perbaikan bug. Promtail memasuki dukungan jangka panjang pada Februari 2025 dan mencapai akhir masa pakai pada 2 Maret 2026. Semua pengembangan fitur baru hanya terjadi di Alloy. Di luar tenggat waktu, keuntungan sebenarnya adalah konsolidasi: alih-alih Promtail untuk log ditambah Collector terpisah untuk trace OTLP, satu proses Alloy menjalankan seluruh pipeline telemetri dengan satu bahasa konfigurasi.

> Jangan anggap ini sebagai pemeliharaan opsional. Setelah sebuah komponen mencapai akhir masa pakai, satu CVE dari hulu pada dependensi Go tidak akan mendapat patch. Menjalankan Promtail setelah Maret 2026 adalah keputusan keamanan, bukan kenyamanan.

## Sintaks konfigurasi: komponen, bukan blok YAML

Promtail adalah YAML deklaratif. Alloy menggunakan sintaks konfigurasi yang awalnya bernama River — bahasa mirip HCL yang dibangun di sekitar komponen. Sebuah komponen adalah blok bernama yang melakukan satu tugas: membaca file, relabel, batch, menulis ke backend. Setiap komponen mengekspos argumen yang Anda atur dan nilai ekspor yang dikonsumsi komponen lain. Anda menyambungkannya menjadi pipeline dengan argumen forward_to, yang mengarahkan output satu komponen ke receiver komponen berikutnya. Graf referensi itulah pipeline-nya; tidak ada bagian pipelines terpisah seperti pada YAML Collector hulu.

## Langkah 1: biarkan alloy convert melakukan pekerjaan mekanis

Jangan menerjemahkan konfigurasi lama Anda secara manual. Alloy menyertakan subperintah convert yang membaca file Promtail, Agent Static, atau Agent Flow lama Anda dan menghasilkan sintaks Alloy yang setara. Untuk Promtail, ia menargetkan skema v2.8.x. Konverter bersifat best-effort: ia mencetak diagnostik untuk apa pun yang tidak bisa dipetakan dengan bersih, dan Anda menyelesaikannya secara manual. Saya selalu mengonversi ke file terlebih dahulu agar bisa membaca diff sebelum menjalankan apa pun.

## Langkah 2: pahami sisi OpenTelemetry Collector

Di sinilah Alloy membuktikan deskripsinya. Komponen Prometheus dan Loki native (keluarga loki.* dan prometheus.*) hidup berdampingan dengan set komponen OTLP lengkap di bawah namespace otelcol.*. Jika Anda menerima OTLP dari layanan NestJS yang terinstrumentasi, otelcol.receiver.otlp menerimanya, otelcol.processor.batch mengelompokkannya, dan otelcol.exporter.otlphttp mengirimkannya lebih lanjut. Penjembatanan adalah kelas satu: otelcol.exporter.loki mengonversi log OTLP menjadi entri Loki, dan otelcol.receiver.loki melakukan sebaliknya, sehingga Anda bisa mencampur jalur push Loki lama dengan jalur OTLP modern dalam satu file.

## Pemetaan nama komponen

Sebagian besar migrasi adalah mempelajari komponen Alloy mana yang menggantikan setiap konsep lama. Ini adalah contekan yang saya buka sepanjang waktu.

| Konsep lama | Komponen Alloy | Peran |
| --- | --- | --- |
| Promtail scrape_configs (file) | loki.source.file | Membaca file log berdasarkan path |
| Promtail pipeline_stages | loki.process | Parse, relabel, ekstrak field |
| Promtail clients | loki.write | Push entri ke Loki |
| Receiver otlp Collector | otelcol.receiver.otlp | Menerima OTLP via gRPC atau HTTP |
| Processor batch Collector | otelcol.processor.batch | Mengelompokkan telemetri sebelum ekspor |
| Scrape metrik Agent | prometheus.scrape | Menarik metrik Prometheus |

## Di mana konverter meninggalkan pekerjaan manual

- Service discovery Docker. Aturan relabel docker_sd Promtail terkonversi, tetapi saya memeriksa ulang setiap label __meta_docker_* karena label yang hilang atau diganti nama diam-diam merusak query Loki di hilir.
- Rahasia. Token inline menjadi string biasa. Saya memindahkannya ke variabel lingkungan yang dibaca via helper sys.env agar tidak ada yang sensitif berada di konfigurasi yang di-commit.
- Stage multiline. Penggabungan multiline regex yang kompleks perlu verifikasi manual terhadap sampel log nyata sebelum saya memercayainya.
- Debugging langsung. UI bawaan Alloy di port 12345 menampilkan kesehatan setiap komponen dan data langsung yang mengalir di antaranya — menggantikan sebagian besar tebakan saya.

> Jalankan collector lama dan baru berdampingan ke Loki yang sama, ditandai dengan label job berbeda, selama beberapa hari. Bandingkan jumlah baris sebelum Anda menonaktifkan Promtail. Konverter salah memetakan label secara halus, dan celah log tidak terlihat sampai Anda membutuhkan log itu.

## Menjalankannya: Docker Compose

Di VPS saya semuanya adalah Docker Compose, jadi Alloy hanyalah layanan lain. Mount konfigurasi, ekspos UI debug secara lokal, dan arahkan ke volume log yang sama yang digunakan Promtail. Flag run penting: --stability.level untuk komponen non-stabil, dan path konfigurasi di akhir.

Itulah keseluruhan bentuk migrasinya: konversi secara mekanis, pelajari graf komponen, verifikasi label terhadap trafik nyata, lalu beralih. Imbalannya adalah satu agent alih-alih tiga, satu bahasa konfigurasi untuk log dan trace dan metrik, serta perangkat lunak yang masih akan menerima patch kuartal depan.

## Sources

- Grafana Alloy — Migrate from OpenTelemetry Collector
- Grafana Loki — Migrate to Alloy (from Promtail)
- Grafana Labs — From Agent to Alloy: why we transitioned

## Source links

- https://grafana.com/docs/alloy/latest/set-up/migrate/from-otelcol/
- https://grafana.com/docs/loki/latest/setup/migrate/migrate-to-alloy/
- https://grafana.com/blog/grafana-agent-to-grafana-alloy-opentelemetry-collector-faq/

## FAQ

### Apakah Promtail sudah usang dan kapan mencapai akhir masa pakai?

Ya. Promtail memasuki dukungan jangka panjang pada Februari 2025 dan mencapai akhir masa pakai pada 2 Maret 2026. Setelah tanggal itu ia tidak menerima perbaikan bug atau patch keamanan. Pengganti yang direkomendasikan Grafana adalah Grafana Alloy, dan ia menyediakan jalur konversi otomatis melalui perintah alloy convert.

### Apa perbedaan antara Grafana Alloy dan Grafana Agent?

Grafana Alloy adalah penerus Grafana Agent dan merupakan distribusi lengkap OpenTelemetry Collector, 100% kompatibel dengan OTLP. Grafana Agent (Static, Flow, dan Operator) mencapai akhir masa pakai pada 1 November 2025, dan semua pengembangan fitur baru kini hanya terjadi di Alloy. Alloy mempertahankan model komponen dan sintaks konfigurasi Agent Flow, sehingga migrasi dari Flow sebagian besar hanya penggantian nama.

### Bagaimana cara mengonversi konfigurasi Promtail ke Grafana Alloy?

Gunakan subperintah convert bawaan: jalankan alloy convert dengan --source-format=promtail dan path --output yang mengarah ke file konfigurasi target Anda. Konverter menargetkan skema Promtail v2.8.x dan bekerja secara best-effort, mencetak diagnostik untuk apa pun yang tidak bisa dipetakan dengan bersih. Tinjau outputnya dan selesaikan diagnostik itu secara manual sebelum memulai ulang layanan.

### Bahasa konfigurasi apa yang digunakan Grafana Alloy?

Alloy menggunakan sintaks konfigurasi berbasis komponen yang berasal dari nama River, bahasa mirip HCL. Alih-alih blok pipeline YAML, Anda mendeklarasikan komponen bernama dan menyambungkannya dengan argumen forward_to, yang mengarahkan output satu komponen ke receiver komponen lain. Graf referensi yang dihasilkan adalah pipeline itu sendiri.

### Apakah Grafana Alloy bisa menangani trace dan metrik OpenTelemetry selain log?

Ya. Karena Alloy adalah distribusi OpenTelemetry Collector, satu proses menangani log, metrik, trace, dan profil. Namespace komponen otelcol.* mencakup receiver, processor, dan exporter OTLP, dan berinteroperasi dengan komponen Loki dan Prometheus native dalam file konfigurasi yang sama, sehingga Anda dapat mengonsolidasikan beberapa agent menjadi satu.

---

- HTML version: https://www.matthewswong.com/id/blog/grafana-alloy-opentelemetry-collector-migration/
- English: https://www.matthewswong.com/en/blog/grafana-alloy-opentelemetry-collector-migration/
- Site index for agents: https://www.matthewswong.com/llms.txt
- Sitemap: https://www.matthewswong.com/sitemap.xml
- API description (OpenAPI): https://www.matthewswong.com/openapi.json
