Sign inContact usStart free
Reliability and RoutingJuly 31, 2026Flatkey Team

Daftar Periksa Implementasi AI Observability: 5 Langkah Menuju Produksi

Daftar periksa lima langkah siap produksi untuk AI observability: tentukan telemetry, instrumentasi percobaan, validasi kualitas dan biaya, tetapkan SLO, dan lakukan rollout dengan aman.

Daftar Periksa Implementasi AI Observability: 5 Langkah Menuju Produksi

AI observability menjadi berguna hanya ketika engineer dapat menindaklanjutinya selama rollout atau insiden. Dashboard penuh dengan hitungan token dan persentil latensi tidak cukup jika tidak ada yang bisa menjawab request mana yang gagal validasi, mengapa fallback aktif, atau apakah lonjakan biaya berasal dari traffic, retry, atau perubahan model.

Daftar periksa implementasi AI observability ini mengubah masalah tersebut menjadi lima langkah berurutan:

  1. Tentukan kontrak telemetry.
  2. Instrumentasikan setiap percobaan model.
  3. Validasi kualitas dan biaya.
  4. Tetapkan service-level objectives dan alert.
  5. Luncurkan dengan kepemilikan dan tata kelola.

Urutannya penting. Tim yang memulai dengan dashboard biasanya baru menyadari belakangan bahwa field mereka tidak konsisten, trace mereka menyembunyikan retry, atau metrik keberhasilan mereka menghitung output yang tidak dapat digunakan sebagai request yang sehat.

Jika Anda terlebih dahulu membutuhkan peta sinyal dan desain dashboard yang lebih luas, baca panduan observability API LLM. Artikel ini berfokus pada urutan implementasi dan kriteria keluar untuk setiap tahap.

Daftar periksa implementasi AI observability secara singkat

Langkah Hasil yang harus diserahkan Kriteria keluar
1. Kontrak telemetry Skema event dan span yang memiliki versi Request yang sama dapat digabungkan di seluruh catatan aplikasi, gateway, percobaan provider, validasi, dan biaya
2. Instrumentasi Metrik, trace, dan event terstruktur Setiap percobaan model—termasuk retry dan fallback—muncul secara terpisah dan membawa dimensi yang terbatas
3. Validasi Pipeline keberhasilan aplikasi dan rekonsiliasi biaya Respons 200 tidak dianggap berhasil sampai kontrak produk lolos
4. SLO dan alert Tujuan yang berpusat pada pengguna dan runbook Setiap halaman memiliki owner bernama, ambang batas, dan kueri diagnostik pertama
5. Rollout dan tata kelola Deployment bertahap, retensi, akses, dan kepemilikan skema Telemetry berguna di produksi tanpa mengekspos prompt, secret, atau kardinalitas yang tidak terkendali

Langkah 1: Tentukan kontrak telemetry sebelum memilih dashboard

Mulailah dengan pertanyaan yang harus dijawab operator, lalu tentukan catatan umum terkecil yang mendukungnya. Kontrak harus tetap berlaku meskipun provider berubah dan model fallback digunakan. Field khusus provider dapat ditambahkan sebagai atribut opsional, tetapi tidak boleh menggantikan nama internal yang stabil.

Field tingkat request yang diperlukan

Gunakan satu request_id internal untuk operasi produk dan satu trace_id untuk distributed tracing. Tambahkan attempt_id untuk setiap panggilan provider.

{
  "telemetry_schema_version": "1.0",
  "request_id": "req_...",
  "trace_id": "...",
  "attempt_id": "attempt_1",
  "environment": "production",
  "feature": "support_reply",
  "route_policy": "quality_primary_cost_fallback",
  "provider": "provider_a",
  "requested_model": "model_alias",
  "response_model": "resolved_model_version",
  "prompt_version": "support_reply_v12",
  "attempt_number": 1,
  "streaming": true,
  "status": "completed",
  "validation_status": "passed"
}

Respons vendor yang tepat dapat menggunakan nama yang berbeda. Normalisasi bidang-bidang tersebut di boundary agar dashboard downstream tidak memerlukan kueri terpisah untuk setiap penyedia.

OpenTelemetry memelihara konvensi semantik AI generatif untuk span, metrik, dan event. Gunakan di tempat yang sesuai, tetapi versi juga kontrak telemetry internal Anda. Konvensi semantik dapat berkembang, sementara kueri insiden dan perbandingan historis harus tetap dapat dipahami.

Pisahkan dimensi terbatasi dari bukti ber-cardinality tinggi

Metrik membutuhkan label yang terbatasi. Dimensi yang baik mencakup:

  • environment
  • feature
  • provider
  • model_family
  • route_policy
  • status
  • error_type
  • validation_status

Simpan ID permintaan, ID trace, ID permintaan penyedia, ID pengguna, sidik jari prompt, dan pesan error di trace atau log—bukan label metrik. Jika tidak, satu deployment dapat menciptakan jutaan time series dan membuat sistem pemantauan lebih lambat atau lebih mahal daripada aplikasi yang dipantaunya.

Tentukan mode privasi secara eksplisit

Jangan menjadikan penangkapan prompt mentah sebagai default. Definisikan kebijakan di tingkat field dengan setidaknya tiga mode:

Mode Konten yang disimpan Penggunaan umum
Metadata saja Versi, jumlah, hash, timing, routing, hasil validasi Telemetry produksi default
Disampling dan di-redact Sampel prompt/output terpilih setelah penyaringan secret dan PII Debugging dan tinjauan kualitas
Penangkapan raw terbatas Payload terenkripsi dengan retensi singkat dan akses yang diaudit Workflow insiden luar biasa atau evaluasi

OWASP Logging Cheat Sheet merekomendasikan untuk mengecualikan atau melindungi data sensitif seperti access token, password, dan informasi pribadi. Terapkan prinsip yang sama pada telemetry AI: jangan pernah menganggap backend observability sebagai arsip prompt yang sesuai.

Kriteria keluar Langkah 1

  • Skema yang memiliki versi tersedia untuk event request, attempt, validation, dan cost.
  • Retry dan fallback menggunakan nilai attempt_id yang terpisah.
  • Label metrik dibatasi.
  • Penangkapan prompt dan output memiliki mode privasi yang eksplisit.
  • Field khusus provider dipetakan ke field internal yang stabil.
  • Kepemilikan skema dan tinjauan perubahan ditetapkan.

Langkah 2: Instrumentasikan seluruh jalur request, bukan hanya satu panggilan SDK

Trace harus dimulai dari operasi yang terlihat oleh pengguna dan berlanjut melalui retrieval, routing, setiap attempt model, validation, eksekusi tool, dan persistence. Menginstrumentasikan hanya panggilan SDK terakhir menyembunyikan keputusan yang menyebabkan sebagian besar insiden produksi.

Hierarki span yang berguna terlihat seperti ini:

POST /assistant/run
├── load_context
├── select_route
├── model_attempt 1
│   ├── stream_first_token
│   └── tool_call weather_lookup
├── validate_output
├── model_attempt 2 fallback
│   └── stream_first_token
└── persist_result

Catat latensi dalam komponen

Satu durasi end-to-end tidak dapat membedakan delay jaringan, waktu generasi provider, antrian, validation, atau eksekusi tool. Setidaknya, tangkap:

  • Durasi total yang terlihat oleh pengguna
  • Delay gateway atau antrian
  • Durasi attempt provider
  • Waktu ke token pertama untuk respons streaming
  • Waktu antara token pertama dan terakhir
  • Durasi validation
  • Durasi panggilan tool

Untuk streaming, definisikan clock token pertama secara tepat. Mulailah saat layanan Anda menerima request, bukan setelah routing selesai, jika metrik tersebut dimaksudkan untuk merepresentasikan pengalaman pengguna.

Buat retry dan fallback terlihat

Respons sukses setelah tiga attempt tidak sama dengan sukses pada attempt pertama. Keluarkan satu span per attempt dan sertakan:

  • Nomor attempt
  • Alasan retry atau fallback
  • Kategori error sebelumnya
  • Durasi backoff
  • Provider dan model yang dipilih
  • Status circuit-breaker
  • Apakah ada konten parsial yang dikeluarkan

Streaming parsial memerlukan perhatian khusus. Jika bytes sudah mencapai client, memutar ulang request secara diam-diam ke model lain dapat menggandakan konten atau menciptakan aksi tool yang tidak konsisten. Trace harus menunjukkan apakah sistem berhenti, merekonsiliasi, atau melanjutkan. Gunakan playbook routing fallback LLM API untuk mendefinisikan perilaku itu sebelum mengaktifkan failover otomatis.

Keluarkan metrik dari event yang dinormalisasi

Hasilkan metrik dari request yang dinormalisasi dan catatan attempt, bukan menambahkan counter sekali pakai di setiap integrasi. Set metrik minimal adalah:

ai_requests_total
ai_attempts_total
ai_request_duration_seconds
ai_time_to_first_token_seconds
ai_input_tokens_total
ai_output_tokens_total
ai_validation_failures_total
ai_fallbacks_total
ai_estimated_cost_usd_total

Objek usage provider dapat berbeda, terutama untuk token yang di-cache atau token penalaran. Pertahankan objek usage mentah dalam penyimpanan diagnostik terbatas jika sesuai, tetapi petakan field yang diperlukan untuk pelaporan lintas provider ke dalam catatan biaya yang umum.

Kriteria keluar Langkah 2

  • Satu trace menghubungkan operasi produk ke setiap percobaan model.
  • Latensi first-token dan end-to-end memiliki titik mulai dan berhenti yang terdokumentasi.
  • Retry, fallback, dan keputusan circuit-breaker terlihat.
  • Panggilan tool memiliki child span dan field hasil.
  • Metrik diturunkan dari event yang dinormalisasi dan diberi versi.
  • Load test memastikan telemetry tidak menimbulkan latensi atau cardinality yang tidak dapat diterima.

Langkah 3: Validasi keberhasilan aplikasi dan rekonsiliasi biaya

Keberhasilan transport hanya salah satu lapisan kesehatan. Respons AI dapat mengembalikan HTTP 200 dan tetap gagal memenuhi kontrak produk karena kosong, tidak valid, ditolak, tidak didukung, atau tidak aman untuk dijalankan.

Definisikan state machine keberhasilan yang tervalidasi

Gunakan state yang eksplisit, bukan satu Boolean:

received
→ transport_succeeded
→ parsed
→ contract_validated
→ business_rule_validated
→ accepted

Kegagalan harus berhenti pada tahap yang tepat, misalnya:

transport_failed
parse_failed
schema_failed
tool_policy_failed
business_rule_failed
cancelled
timed_out

Ini memungkinkan tim membedakan ketersediaan provider dari kualitas aplikasi. Penyebut reliabilitas utama Anda biasanya harus berupa operasi pengguna yang diterima, bukan respons mentah provider.

Tambahkan validator deterministik terlebih dahulu

Sebelum membangun penilaian model yang subjektif, terapkan pemeriksaan yang menghasilkan hasil yang dapat direproduksi:

  • Parsing JSON atau schema
  • Kehadiran field yang diperlukan
  • Nama tool yang diizinkan dan tipe argumen
  • Kehadiran sitasi ketika fitur memerlukannya
  • Penanganan state penolakan
  • Batas panjang dan format output
  • Aturan bisnis seperti ID, tanggal, mata uang, atau nilai enum yang valid

Gabungkan evaluasi offline yang diambil sampelnya dengan telemetry produksi menggunakan sample ID yang stabil. Jangan menaruh teks evaluasi tanpa batas di label metrik. Untuk perubahan model, gunakan workflow pengujian prompt multi-model yang dapat diulang sehingga latensi dan biaya dibandingkan bersama tingkat output yang diterima.

Hitung biaya per tugas yang diterima

Biaya token per permintaan berguna, tetapi biaya per tugas yang diterima adalah ukuran operasional yang lebih baik:

cost_per_accepted_task =
  total_cost_of_all_attempts / accepted_user_operations

Masukkan percobaan yang gagal, retry, fallback, dan output yang ditolak dalam pembilang. Jika tidak, masalah reliabilitas akan tampak sebagai erosi margin yang tidak dapat dijelaskan.

Pertahankan dua state biaya:

  1. Biaya estimasi yang dihitung segera dari penggunaan respons dan tabel harga yang diberi versi.
  2. Biaya yang direkonsiliasi yang diperbarui kemudian dari penagihan provider atau ekspor penggunaan saat tersedia.

Simpan price_version atau timestamp efektif yang digunakan untuk setiap estimasi. Tanpa itu, perubahan biaya historis menjadi mustahil dijelaskan setelah pembaruan harga. Untuk desain keuangan dan operasi, lihat panduan manajemen pengeluaran AI API.

Kriteria keluar Langkah 3

  • Keberhasilan yang diterima terpisah dari keberhasilan HTTP.
  • Validator deterministik mencakup kontrak produk yang kritis.
  • Sampel evaluasi dapat digabungkan dengan permintaan produksi.
  • Biaya mencakup setiap percobaan, termasuk output yang ditolak.
  • Biaya yang diestimasi dan yang direkonsiliasi adalah bidang yang terpisah.
  • Versi harga dipertahankan untuk analisis historis.

Langkah 4: Tetapkan SLO dan alert di sekitar hasil pengguna

Alert seharusnya menggambarkan dampak buruk pada pengguna atau risiko operasional yang bergerak cepat. Satu error dari provider tidak selalu merugikan pengguna jika fallback berhasil dalam batas latensi. Sebaliknya, provider yang sepenuhnya tersedia tetap dapat menghasilkan hasil yang tidak dapat digunakan.

Mulailah dengan empat indikator tingkat layanan

SLI Definisi contoh Mengapa ini penting
Tingkat keberhasilan tervalidasi Operasi yang diterima / operasi yang memenuhi syarat Menangkap hasil yang dapat digunakan, bukan hanya kode status
Tingkat keberhasilan pada percobaan pertama Operasi yang diterima tanpa retry atau fallback / operasi yang memenuhi syarat Mendeteksi penurunan tersembunyi sebelum pengguna melihat kegagalan
Latensi yang terlihat oleh pengguna Durasi end-to-end untuk operasi yang diterima Mengukur pengalaman setelah routing dan validasi
Biaya per tugas yang diterima Biaya semua percobaan / operasi yang diterima Menghubungkan keputusan keandalan dengan ekonomi unit

Tetapkan target berdasarkan fitur dan tingkat risiko. Asisten coding sinkron, pengklasifikasi dokumen latar belakang, dan alur kerja dukungan pembayaran tidak boleh berbagi target latensi atau validasi yang sama.

Gunakan burn-rate dan alert perubahan

Ambang statis menghasilkan noise. Pasangkan dengan jendela dan baseline:

  • Burn cepat: keberhasilan tervalidasi turun tajam selama 5–15 menit.
  • Burn lambat: error budget terkuras selama beberapa jam.
  • Alert perubahan: keberhasilan pada percobaan pertama turun setelah deployment atau pembaruan kebijakan rute.
  • Anomali biaya: biaya per tugas yang diterima naik saat traffic tetap stabil.
  • Anomali routing: porsi fallback atau campuran provider berubah secara tak terduga.
  • Anomali kualitas: kegagalan skema, kebijakan alat, atau aturan bisnis melebihi baseline.

Setiap alert harus menaut ke tampilan diagnostik pertama yang menunjukkan versi deployment, kebijakan rute, provider, model, kategori error, tahap validasi, jumlah retry, dan delta biaya.

Tulis runbook sebelum paging

Untuk setiap page, tentukan:

  1. Siapa pemiliknya.
  2. Dampak pengguna apa yang diimplikasikannya.
  3. Query atau tampilan trace mana yang dibuka terlebih dahulu.
  4. Perubahan terbaru mana yang perlu diperiksa.
  5. Mitigasi aman mana yang diizinkan: rollback, menonaktifkan rute, menurunkan konkurensi, membuka circuit, atau beralih ke fallback yang terverifikasi.
  6. Bukti apa yang menutup insiden.

Kriteria keluar Langkah 4

  • SLO ditetapkan per fitur atau tingkat risiko.
  • Keberhasilan tervalidasi dan keberhasilan pada percobaan pertama keduanya terlihat.
  • Alert menggunakan jendela, baseline, atau burn budget error.
  • Anomali biaya dan fallback memiliki alert khusus.
  • Setiap page menaut ke runbook dan query diagnostik pertama.
  • Kepemilikan alert diuji selama latihan on-call.

Langkah 5: Luncurkan observability dengan tata kelola

Instrumentasi adalah perubahan produksi. Luncurkan secara bertahap, ukur overhead-nya, dan jadikan siklus hidup data sebagai bagian dari implementasi—bukan kebijakan yang ditambahkan nanti.

Gunakan peluncuran bertahap

  1. Local dan test: verifikasi nama field, span parent-child, redaksi, dan validator dengan prompt sintetis.
  2. Shadow telemetry: kirim event berbentuk produksi tanpa memicu paging atau memengaruhi keputusan routing.
  3. Canary kecil: aktifkan telemetry untuk porsi terbatas lalu lintas produksi dan periksa cardinality, biaya ingestion, dan kelengkapan trace.
  4. Peluncuran fitur: perluas berdasarkan fitur produk atau route, bukan ke semua workload sekaligus.
  5. Aktivasi operasional: aktifkan pelaporan SLO dan alert hanya setelah data baseline dan runbook tersedia.

Ukur overhead telemetry selama canary. Sertakan batching sisi klien, kegagalan exporter, tekanan antrean, dan apa yang terjadi ketika backend observability tidak tersedia. Request model tidak boleh gagal hanya karena exporter telemetry non-kritis sedang down.

Kelola retensi dan akses

Tentukan retensi berdasarkan kelas data:

  • Metrik teragregasi biasanya dapat disimpan lebih lama.
  • Metadata request harus memiliki periode retensi operasional yang terdokumentasi.
  • Sampel yang telah direduksi harus menggunakan retensi yang lebih pendek dan akses yang lebih terbatas.
  • Prompt atau output mentah, jika sama sekali diizinkan, memerlukan tujuan yang eksplisit, enkripsi, log audit, perilaku penghapusan, dan prosedur insiden.

Jauhkan API key dan kredensial provider dari setiap jalur telemetry. Ikuti pola pengelolaan API key yang aman yang menyimpan rahasia di sisi server dan mencegah header atau variabel environment diserialisasi ke dalam event.

Anggap skema dan dashboard sebagai kode

Versioning skema telemetry, aturan validator, definisi SLO, dashboard, dan alert bersama aplikasi. Perubahan kebijakan route harus memperbarui implementasi dan observability dalam rilis yang sama.

Tetapkan owner untuk:

  • Evolusi skema
  • Aturan redaksi
  • Tabel harga biaya
  • Versi validator
  • Akurasi dashboard
  • Penyetelan alert
  • Retensi data dan tinjauan akses

Kriteria keluar Langkah 5

  • Tahap shadow dan canary selesai tanpa penangkapan prompt yang tidak aman.
  • Overhead telemetry dan perilaku kegagalan exporter telah diuji.
  • Retensi dan akses berbasis peran didokumentasikan per kelas data.
  • Rahasia dan header otorisasi dikecualikan.
  • Skema, validator, dashboard, dan alert dikelola dengan version control.
  • Seorang owner yang ditunjuk meninjau perubahan telemetry setelah pembaruan model atau routing.

Rencana rollout AI observability 30 hari

Periode Fokus Output
Hari 1–5 Kontrak dan privasi Skema v1, kamus field, mode privasi, pengujian redaksi
Hari 6–12 Instrumentasi jalur permintaan Jejak end-to-end, span per percobaan, metrik yang dinormalisasi
Hari 13–18 Validasi dan biaya Status accepted-success, validator deterministik, versi harga
Hari 19–24 SLO dan runbook Target tingkat fitur, dashboard, kueri peringatan, mitigasi
Hari 25–30 Canary dan tata kelola Hasil overhead, aturan retensi, kepemilikan, aktivasi produksi

Jadwal ini sengaja dibuat berurutan. Jika kontrak telemetri berubah selama minggu terakhir, jeda aktivasi alert dan perbaiki skema terlebih dahulu. Paging pada data yang tidak konsisten menciptakan rasa yakin yang palsu.

Kesalahan implementasi yang umum

Menghitung HTTP 200 sebagai sukses

Perbaikan: Tambahkan validasi parsing, kontrak, kebijakan alat, dan aturan bisnis sebelum operasi menjadi accepted.

Menyembunyikan retry di dalam satu span model

Perbaikan: Buat satu child span dan satu record biaya per percobaan. Pertahankan alasan untuk retry atau fallback.

Melog semua prompt secara default

Perbaikan: Jadikan telemetri metadata-only sebagai default. Tambahkan konten yang disampling dan di-redaksi hanya untuk use case yang eksplisit.

Menggunakan request ID sebagai label metrik

Perbaikan: Simpan pengenal ber-cardinality tinggi di traces dan log. Gunakan dimensi yang dibatasi untuk metrik.

Mengestimasi biaya tanpa versi harga

Perbaikan: Lampirkan versi tabel harga atau timestamp efektif pada setiap estimasi dan lakukan rekonsiliasi nanti.

Melakukan alert pada error provider tanpa konteks pengguna

Perbaikan: Paging berdasarkan validated success, latensi, burn error-budget, dan perubahan biaya yang tidak aman. Gunakan error provider sebagai diagnostik kecuali jika menyebabkan dampak pada pengguna.

Pertanyaan yang sering diajukan

Apa itu AI observability?

AI observability adalah praktik menghubungkan permintaan model ke hasil aplikasi melalui metrik, traces, event terstruktur, hasil validasi, keputusan routing, penggunaan token, dan biaya. Ini memperluas pemantauan API biasa karena permintaan AI bisa berhasil secara teknis tetapi tidak dapat digunakan oleh produk.

Apa yang harus disertakan dalam dashboard AI observability?

Mulailah dengan tingkat keberhasilan yang tervalidasi, tingkat keberhasilan pada percobaan pertama, latensi end-to-end, waktu ke token pertama, porsi retry dan fallback, kegagalan validasi, penggunaan token, dan biaya per tugas yang diterima. Tambahkan tampilan provider dan model untuk diagnosis, tetapi jaga agar dashboard utama tetap selaras dengan fitur yang dilihat pengguna.

Haruskah prompt dan output model dicatat?

Tidak secara default. Gunakan telemetri metadata-only untuk operasi produksi normal. Jika sampel konten diperlukan, terapkan redaksi, sampling, enkripsi, retensi singkat, kontrol akses, dan tujuan yang eksplisit. Jangan pernah mencatat secret atau header otorisasi.

Bagaimana cara memantau respons AI streaming?

Ukur waktu ke token pertama, waktu dari token pertama ke token terakhir, status pembatalan, byte atau token yang dikirim, dan apakah konten parsial mencapai pengguna sebelum terjadi kegagalan. Definisikan perilaku yang aman untuk retry dan fallback setelah streaming dimulai.

Bagaimana biaya API AI harus dipantau?

Catat input, output, cache, dan penggunaan lain yang dilaporkan penyedia jika tersedia; hitung estimasi langsung menggunakan tabel harga yang diversionalkan; dan cocokkan dengan data penagihan penyedia. Lacak biaya per tugas yang diterima sehingga percobaan yang gagal dan output yang ditolak tetap terlihat.

Di mana gateway multi-model harus diinstrumentasi?

Instrumentasikan baik operasi aplikasi maupun gateway. Aplikasi mengetahui apakah outputnya berguna; gateway mengetahui model, penyedia, rute, retry, fallback, dan catatan penggunaan mana yang menghasilkannya. Gunakan request dan trace ID yang dibagikan untuk menghubungkan kedua lapisan.

Terapkan checklist ini dalam praktik

Jalan tercepat menuju AI observability yang berguna bukanlah memasang lebih banyak dashboard. Melainkan menyepakati apa arti operasi pengguna yang berhasil, melacak setiap percobaan yang berkontribusi padanya, dan membuat keputusan kualitas, biaya, serta routing terlihat dalam rantai bukti yang sama.

Flatkey menyediakan jalur yang kompatibel dengan OpenAI ke berbagai model AI melalui satu API key dan endpoint. Jika tim Anda sedang mengevaluasi arsitektur multi-model, mulailah dengan panduan integrasi Flatkey, lalu terapkan checklist ini pada fitur produksi pertama. Anda juga dapat meninjau akses model dan harga saat ini sebelum mendefinisikan baseline biaya dan rute fallback.