Senario
Platform e-dagang berasaskan mikroservis berjalan di Kubernetes. Pasukan mengalami kependaman tinggi yang berselang dan ralat HTTP 500 sekali-sekala. Mereka sudah menggunakan Prometheus dan Grafana untuk pemantauan tetapi kekurangan jejak teragih, menyukarkan analisis punca utama.
Gejala
- Kependaman P99 melebihi 2 saat
- Lonjakan kadar ralat 5xx
- Aduan pelanggan tentang tamat masa
Diagnosis
- Periksa papan pemuka Grafana untuk anomali dalam
http_requests_duration_seconds_count{status="5xx"}. - Tanya PromQL:
rate(http_requests_duration_seconds_count{status="5xx"}[5m])untuk melihat trend kadar ralat. - Gunakan OpenTelemetry Collector dan instrumen aplikasi untuk menangkap jejak. Kenal pasti span perlahan, contohnya span perkhidmatan pembayaran mengambil 800ms.
- Hubungkan dengan log untuk mengenal pasti punca utama—tamat masa di gerbang pembayaran.
Arahan
Gunakan OpenTelemetry Collector
helm install otel-collector open-telemetry/opentelemetry-collector -f values.yaml
Instrumen Aplikasi
Tambah agen Java OpenTelemetry:
java -javaagent:opentelemetry-javaagent.jar -jar app.jar
Konfigurasi Prometheus
Tambah sasaran dalam konfigurasi Prometheus:
scrape_configs:
- job_name: 'otel-collector'
static_configs:
- targets: ['otel-collector:8888']
Import Papan Pemuka Grafana
Gunakan Grafana Explore untuk menanya jejak atau import papan pemuka OpenTelemetry sedia ada.
Kawalan Risiko
- Sandarkan JSON papan pemuka Grafana dan fail konfigurasi Prometheus sebelum perubahan.
- Gunakan namespace berasingan untuk Collector bagi mengelakkan gangguan perkhidmatan.
- Gunakan penggunaan berkanari untuk instrumentasi aplikasi; aktifkan OpenTelemetry pada subset kecil dahulu.
Pengembalian
- Jika Collector gagal:
helm rollback otel-collector 0 - Isu kod aplikasi: kembalikan melalui
git revertdan gunakan semula. - Konfigurasi Prometheus: pulihkan sandaran dan muat semula Prometheus.
Pengesahan
- Sahkan jejak baharu muncul di Grafana Explore.
- Periksa status sasaran Prometheus:
kubectl port-forward svc/prometheus-server 9090kemudian lawati/targets. - Jalankan ujian beban untuk mengesahkan pengurangan kependaman dan kadar ralat.
Bila Hantar Tiket OpsGlobal
- Kehilangan data berterusan atau kerap ranap Collector.
- Perlu instrumentasi tersuai untuk rangka kerja bukan standard (cth., Go, Python).
- Kluster berskala besar memerlukan strategi persampelan dan storan yang dioptimumkan.
Senario Penggunaan
Sesuai untuk pasukan yang menyelesaikan isu Observability dan memerlukan aliran kerja yang jelas.
Latar Belakang Masalah
Ketahui cara mengintegrasikan Prometheus untuk metrik, Grafana untuk papan pemuka, dan OpenTelemetry untuk jejak bagi mencapai pemerhatian hujung ke hujung dalam persekitaran Kubernetes. Panduan ini merangkumi senario dunia sebenar, langkah diagnosis, dan amalan terbaik operasi.
Langkah Penyelesaian
Sahkan impak dan perubahan terkini, kumpul log, konfigurasi dan metrik, kemudian baiki mengikut risiko.
Contoh Arahan
Gantikan contoh dengan nama sumber sebenar dan simpan kata laluan, token atau kunci dalam pembolehubah persekitaran.
Risiko
Sebelum operasi produksi, semak sandaran, akses, tetingkap perubahan dan pelan rollback.
Pelan Rollback
Simpan konfigurasi dan versi asal; rollback konfigurasi, imej atau perubahan pangkalan data jika metrik tidak normal.
Senarai Serahan
Rekod punca isu, arahan penting, langkah pembaikan, hasil pengesahan dan cadangan susulan.
Perlu bantuan isu teknikal serupa?
Jika pelayan, Kubernetes, Docker, CI/CD, pangkalan data atau pemantauan anda bermasalah, hantar log dan konfigurasi untuk diagnosis jauh.