Skip to main content
BlogDevOps

Grafana Assistant Investigations: Setup RCA Otomatis dari Alert

Hubungkan Grafana Assistant Investigations ke alert enrichment dan IRM webhook, dari dokumentasi: scope, credential, failure mode, dan rollout Senin yang aman.

Matthews Wong

Software Engineer

Oktober 202611 menit baca
Grafana Assistant Investigations: Setup RCA Otomatis dari Alert

Ringkasan Utama

Grafana Assistant Investigations, tersedia umum sejak 27 Juli 2026, bisa berjalan otomatis lewat dua jalur: enricher Assistant Investigations pada alert enrichment, atau outgoing webhook IRM. Batasi enricher dengan label matcher karena harganya terpisah, beri webhook service credential dengan investigations:create, dan verifikasi setiap hipotesis di laporan.

Page masuk pukul 03:12 hanya berisi nama service, label severity dan link dashboard. Semua konteks yang berguna masih harus dicari manusia yang setengah sadar: deploy mana, dependency mana, query mana. Sepuluh menit pertama pengumpulan konteks inilah yang ingin diambil alih oleh Assistant Investigations.

Saya membaca entri general availability Grafana, press release peluncurannya, dokumentasi Investigations, dokumentasi alert enrichment, panduan IRM webhook, dan dokumentasi Terraform provider untuk resource enrichment. Saya belum menjalankannya di stack sungguhan, jadi semua perilaku di bawah adalah sebagaimana didokumentasikan, dan jika dokumentasi diam saya katakan begitu, bukan menebak.

Apa yang rilis GA, dan apa yang dibahas di sini

Press release Grafana mencantumkan enam tool yang mencapai general availability pada 27 Juli 2026: Assistant Investigations, Assistant Workspace, Assistant Automations, Grafana Cloud MCP server, gcx dan Agent Observability. Investigations adalah yang menerima alert atau incident, mengusulkan kemungkinan penyebab, memeriksa tiap penyebab terhadap telemetri, lalu mengonfirmasi atau menyingkirkannya. Entri GA menyebut ia bekerja lintas metrics, logs, traces dan profiles, lalu menghasilkan laporan terstruktur berisi temuan, bukti dan saran langkah berikutnya.

Rilis itu juga mengutip Grafana 2026 Observability Survey: 92 persen praktisi merasa akan mendapat nilai nyata dari AI yang menangkap anomali, sementara hanya 57 persen yang mengaku menerapkan observability untuk sistem AI mereka sendiri dalam bentuk apa pun. Post ini tidak membahas kesenjangan itu dan fokus pada satu pertanyaan praktis: bagaimana membuat laporan sudah ada sebelum engineer on-call membuka page.

Empat cara investigation dimulai, dan hasilnya mendarat di mana

Entri GA menyebut tiga cara memulai: manual di mode Investigation Assistant Workspace, dari alert enrichment, dan dari IRM webhook. Panduan webhook membagi yang ketiga menjadi alert group dan incident, yang perilakunya cukup berbeda sehingga saya anggap dua jalur. Tabel ini adalah seluruh ruang pilihannya; memilihnya terutama soal di mana Anda ingin hasilnya muncul.

JalurDimulai dariDikonfigurasi olehHasil mendarat di
Manual, Assistant WorkspaceProblem statement yang Anda tulis: gejala, dampak, service, rentang waktuSiapa pun dengan role Assistant Investigation User dan akses ke data sourceWorkspace; bisa dibagikan sebagai report atau snapshot
Alert enrichmentAlert rule yang firing, sebelum notifikasi dikirimAdmin untuk scope global; user dengan alert.enrichments:write untuk satu ruleLink ke investigation yang ditambahkan ke notifikasi
IRM alert group webhookAlert group dibuat atau terjadi perubahan statusOrang dengan akses IRM OnCall dan permission outgoing webhookResolution note di alert group, plus thread Slack jika Slack dikonfigurasi
IRM incident webhookIncident declared, opsional Incident changedSama seperti alert group webhookSatu activity item saat mulai dan satu lagi saat selesai, di halaman incident

Perbedaan praktisnya: enricher menaruh link di notifikasi itu sendiri sehingga sampai ke contact point apa pun, sedangkan webhook menulis balik ke IRM, tempat tim yang menjalankan on-call dari IRM akan melihat. Dokumentasi yang saya baca tidak menyebut apakah investigation dari enricher dan dari webhook untuk alert yang sama akan digabung. De-duplication hanya didokumentasikan untuk firing berulang pada alert group webhook, jadi saya akan memilih satu jalur per alert daripada mencari tahu di production.

Jalur pertama: enricher Assistant Investigations dengan scope yang ketat

Alert enrichment menambahkan konteks ke notifikasi sebelum dikirim, dan dokumentasi mencantumkan enricher-nya: Data Source Query, Assign, External, RCA Workbench, Sift, Explain dan Assistant Investigations. Terraform provider mendokumentasikan step yang sama sebagai assistant_investigations, dan catatan GA alert enrichment menegaskan fiturnya sudah generally available di Grafana Cloud. Config di bawah diadaptasi dari contoh provider; matcher dan step Loki adalah pilihan saya, bukan rekomendasi Grafana.

# Adapted from the example in the Grafana Terraform provider docs for
# grafana_apps_alertenrichment_alertenrichment_v1beta1.
# The point: scope the investigation step with matchers, never leave it global.
resource "grafana_apps_alertenrichment_alertenrichment_v1beta1" "investigate_payments" {
  metadata {
    uid = "investigate-payments-critical"
  }

  spec {
    title       = "Start an Assistant investigation for critical payments alerts"
    description = "Scoped on purpose: Assistant Investigations has its own pricing"

    # Empty alert_rule_uids and receivers mean "all". The label matchers are
    # what keep this from firing on every alert in the stack.
    label_matchers = [
      {
        type  = "="
        name  = "severity"
        value = "critical"
      },
      {
        type  = "=~"
        name  = "team"
        value = "payments|checkout"
      }
    ]

    # Cheap, deterministic context first: a Loki preview of recent errors.
    step {
      data_source {
        timeout = "30s"
        logs_query {
          data_source_type = "loki"
          data_source_uid  = "REPLACE_WITH_YOUR_LOKI_UID"
          expr             = "{app=\"checkout\"} |= \"error\""
          max_lines        = 5
        }
      }
    }

    # Then the investigation. The enricher adds a link to the notification;
    # the report itself is built in the Assistant, not in the page.
    step {
      assistant_investigations {
        timeout = "30s" # my choice: the docs give no recommended value
      }
    }
  }
}

Setiap step punya timeout opsional, yang menurut dokumentasi enrichment adalah waktu maksimum ia boleh berjalan sebelum notifikasi dikirim. Dokumentasi tidak memberi nilai default atau rekomendasi, jadi 30s di atas adalah pilihan saya. Menaruh step Data Source Query yang murah dan deterministik sebelum investigation membuat page tetap membawa preview log meski step investigation lambat.

Dokumentasi alert enrichment memperingatkan bahwa enricher Assistant Investigations punya ketentuan harga sendiri dan tidak boleh dijalankan pada scope all alerts, atau scope apa pun yang berisi banyak alert. Investigation juga dihitung terhadap batas penggunaan bulanan stack. Batasi dengan label matcher sebelum save pertama.

Matcher mendukung operator sama dengan, tidak sama dengan, regex match dan regex not match, baik untuk label maupun annotation. alert_rule_uids kosong dan daftar receivers kosong berarti semua rule dan semua receiver, jadi spec tanpa matcher maupun UID adalah scope all alerts yang diperingatkan tadi. Untuk user biasa, alternatifnya adalah tab Alert enrichment pada satu rule, yang butuh permission write dan tidak bisa mengubah scope.

Jalur kedua: IRM webhook yang menulis temuan kembali ke page

Setup yang direkomendasikan ada di Assistant, Settings lalu Investigations: Enable incident webhooks untuk trigger Incident declared, atau Add webhook dan pilih satu atau lebih integrasi IRM untuk alert group. Layar yang sama menandai tiap alert source sebagai Not covered, Configured but disabled atau Covered, sehingga Anda bisa melihat apa yang sudah terpasang. Jika dikonfigurasi manual di IRM, ini nilai yang diberikan panduan.

# Manual outgoing webhook in IRM (Integrations > Outgoing Webhooks > Create).
# Use the "Grafana Assistant for IRM" preset when you can; it fills these in.
# Replace STACK_URL with your Grafana Cloud stack URL.

Method:        POST

# Alert groups  (triggers: Alert group created + Status change)
URL:           STACK_URL/api/plugins/grafana-assistant-app/resources/api/v1/investigations/from-irm

# Incidents     (trigger: Incident declared; add Incident changed to keep context fresh)
URL:           STACK_URL/api/plugins/grafana-assistant-app/resources/api/v1/investigations/from-irm-incident

# Credential: a service credential from the SAME stack, not a user session.
# A service account needs this permission to start AND update investigations:
#   grafana-assistant-app.investigations:create
# A 403 from this endpoint usually means that permission is missing.

Di sinilah biasanya terjadi masalah: credential. Pengiriman otomatis membutuhkan service credential, bukan sesi user, dan service account perlu permission investigations:create untuk memulai sekaligus memperbarui investigation. Setup lengkap juga butuh read dan write outgoing-webhooks, read integrations, read dan write alert-groups, serta akses plugin ke aplikasi IRM.

Setelah terpicu, alert group webhook membuat investigation dari judul dan konteks alert group, memposting resolution note berisi link, dan memperbarui investigation saat status atau label berubah. Incident webhook membangunnya dari judul, ringkasan dan activity yang tersedia, lalu memposting activity item kedua berisi hasilnya. Panduan itu menyebut skema payload webhook tidak ada di teksnya, jadi saya memakai preset, yang mengatur endpoint dan format sendiri.

Membaca laporan: hipotesis adalah klaim, bukan kesimpulan

Sebuah investigation menghasilkan tiga hal yang bisa Anda periksa: report berisi temuan dan langkah berikutnya, daftar hipotesis beserta status dan bukti pendukungnya, dan sources, yaitu panel dan output query yang dihasilkan lengkap dengan query, rentang waktu dan data source-nya. Sebelum report ada, Anda bisa membantah atau membuka ulang hipotesis. Sesudahnya, Anda menjawab apakah itu penyebabnya. Langkah feedback ini adalah pemeriksaan manusia yang tertanam di produk, dan itu yang perlu dipakai.

Ia bisa diarahkan saat berjalan. Dokumentasi menjelaskan slash command untuk menanyakan status tanpa mengubah investigation, Enter untuk mengantrekan hingga lima follow-up, dan Cmd atau Ctrl plus Enter untuk langsung mengalihkan. Stop menghentikan pengumpulan bukti dan mengembalikan ringkasan yang ditandai belum lengkap, yang bisa dilanjutkan kemudian. Scheduled check membuatnya memantau pemulihan.

# Typed into a running investigation in Assistant Workspace.
# /ask reads status without changing the investigation:
/ask which hypotheses are still open?

# Repeat a task at an interval. Checks run at most once a minute,
# up to five per investigation, and stop after 24 hours or 100 checks by default:
/schedule create 10m check whether the storefront error rate has recovered

Kustomisasi adalah cara agar ia tidak menemukan ulang arsitektur Anda setiap kali: infrastructure memory untuk service dan dependency, rules untuk instruksi tetap seperti metrik pilihan, skills untuk runbook yang dirujuk saat relevan, dan MCP server untuk sistem seperti repository kode. Report bisa diekspor sebagai Markdown, HTML atau PDF, dan snapshot mempublikasikan transkrip ke siapa pun di organisasi Grafana Anda yang punya link.

Tulis tiga runbook teratas sebagai skills dan kepemilikan service sebagai infrastructure memory sebelum mengaktifkan trigger otomatis apa pun. Investigation yang tahu dependency graph Anda mengusulkan hipotesis lebih baik daripada yang harus menebaknya dari label pukul 03:12.

Apa yang bisa salah: failure mode yang disebut dokumentasi

Saya tidak punya cerita outage di sini, karena belum menjalankannya di production. Yang bisa saya berikan adalah daftar kegagalan dari bagian troubleshooting webhook dan peringatan enrichment, dipetakan dari gejala ke pemeriksaan. Setiap baris adalah perilaku yang didokumentasikan, bukan pengalaman saya.

GejalaPenyebab menurut dokumentasiPeriksa pertama
Tidak ada investigation munculWebhook nonaktif, integrasi salah dipilih, atau trigger yang diharapkan tidak dipilihExecution history di IRM OnCall untuk request dan response-nya
403 Forbidden saat pengirimanCredential dari stack lain, atau permission investigations:create tidak adaService credential beserta permission-nya, lalu coba lagi
Tidak ada link investigation di alert group atau incidentURL tidak menunjuk ke stack Anda, atau webhook tidak bisa memposting ke alert group dan incidentURL webhook dan error di execution history
Konteks investigation menjadi basiWebhook tidak punya Status change untuk alert group atau Incident changed untuk incidentTrigger pada webhook dan event update di execution history
Penggunaan naik lebih cepat dari perkiraanEnricher di scope all alerts atau scope dengan banyak alert, yang diperingatkan dokumentasiLabel matcher pada enrichment dan penggunaan bulanan stack

Kegagalan keenam tidak ada di tabel karena itu giliran saya menamainya: mempercayai report yang tampak masuk akal. Produk ini menampilkan status dan bukti hipotesis justru agar bisa diperiksa, dan biaya melewatkan pemeriksaan itu adalah bertindak atas penyebab keliru yang terdengar yakin di tengah incident.

Trade-off dan guardrail sebelum otomatisasi

Otomatisasi ada harganya dan ada noise floor-nya. Enricher punya harga sendiri, investigation dihitung terhadap batas bulanan, dan setiap investigation yang dimulai pada alert yang flapping adalah biaya tanpa informasi baru. Saran panduan webhook sendiri: aktifkan webhook hanya untuk integrasi yang alert-nya memang ingin diinvestigasi, mulai dari beberapa dan pantau volume, pakai otomatisasi untuk alert umum yang sudah dipahami, dan jalankan investigation manual untuk yang kompleks.

Settings memberi beberapa tuas. Di Assistant, Settings, Investigations Anda bisa mengatur continuation otomatis pada update alert dan IRM, continuation window, start limit, dan apakah data source lain boleh di-query. Skipped incident labels menerima aturan key dan value seperti team:platform: incident yang cocok dengan aturan tidak memulai investigation, dan investigation yang sudah berjalan untuk incident yang cocok akan dibatalkan.

Trade-off jujurnya adalah latensi lawan beban. Investigation yang mulai saat alert muncul memakan biaya di setiap alert yang memenuhi syarat dan menghemat menit pada alert yang benar-benar nyata. Saya hanya akan mengotomatiskan alert yang cukup sering sehingga bentuknya dikenal dan cukup parah sehingga menit berarti, dan membiarkan sisanya manual.

Yang dikerjakan hari Senin

Mulai sempit dan jadikan minggu pertama latihan pengukuran, bukan rollout. Urutan ini menjaga blast radius tetap kecil dan memberi bukti sebelum Anda memperluasnya.

  1. Di Assistant, Settings, Investigations, cari apakah alert source Anda sudah covered, dan catat mana yang Not covered atau Configured but disabled.
  2. Buat service credential di stack yang sama dengan permission investigations:create, dan pastikan orang yang membaca report memegang role Assistant Investigation User.
  3. Aktifkan alert group webhook untuk satu integrasi IRM saja, lalu pantau execution history di IRM OnCall untuk pengiriman pertama.
  4. Jika Anda juga ingin link di notifikasi, tambahkan enricher lewat Terraform dengan label matcher untuk alert critical satu tim, dan jangan pernah scope all alerts.
  5. Setelah seminggu, buka setiap report, tandai hipotesis sebagai penyebab atau bukan, bandingkan dengan apa yang sebenarnya ditemukan responder, baru perluas scope.

Catat tally sederhana selama minggu itu: investigation yang dimulai, investigation yang dipakai responder, dan hipotesis teratas yang salah. Grafana tidak memberi angka akurasi di sumber yang saya baca, jadi tally Anda sendiri adalah satu-satunya bukti tentang stack Anda.

Aturan yang saya bawa: otomatiskan pemicunya, jangan otomatiskan kepercayaannya. Pilih satu jalur mulai per alert, batasi enricher dengan label matcher, beri webhook service credential yang benar, dan perlakukan setiap hipotesis sebagai klaim sampai buktinya dibuka.

FAQ

Pertanyaan Umum

Jawaban singkat untuk pertanyaan yang paling sering diajukan pembaca tentang topik ini.

Apa itu Grafana Assistant Investigations?

Ini fitur Grafana Cloud yang generally available sejak 27 Juli 2026, menerima alert atau incident, menjelajahi metrics, logs, traces dan profiles, menguji hipotesis, lalu menulis report berisi temuan, bukti dan langkah berikutnya. Bisa dimulai manual di Assistant Workspace atau otomatis dari alert dan incident.

Bagaimana membuat investigation mulai otomatis saat alert firing?

Tambahkan enricher Assistant Investigations ke alert enrichment, atau siapkan outgoing webhook IRM dengan preset Grafana Assistant for IRM atau lewat halaman Assistant Settings. Enricher menambahkan link ke notifikasi, sedangkan webhook IRM memposting temuan kembali ke alert group atau incident.

Bolehkah enricher Assistant Investigations dijalankan di semua alert?

Dokumentasi alert enrichment Grafana menyarankan jangan. Enricher punya harga sendiri, dan dokumentasi memperingatkan agar tidak dijalankan pada scope all alerts atau scope dengan banyak alert. Batasi dengan label atau annotation matcher.

Kenapa IRM webhook saya mengembalikan 403 Forbidden?

Panduan webhook menyebut 403 biasanya berarti credential pengiriman tidak ada atau tidak punya permission. Pengiriman otomatis butuh service credential dari stack yang sama, dan service account perlu permission grafana-assistant-app.investigations:create untuk memulai dan memperbarui investigation.

Bisakah enricher Assistant Investigations dikelola dengan Terraform?

Bisa. Resource alert enrichment pada Grafana Terraform provider mendukung blok step bernama assistant_investigations dengan timeout opsional, bersama label dan annotation matcher untuk scope. Periksa dokumentasi provider untuk versi yang Anda pakai.