Senario
Aplikasi mikroservices mengalami kependaman tinggi secara berselang selepas digunakan, membakar belanjawan ralat dengan cepat. Pasukan sudah ada Prometheus dan Grafana tetapi kekurangan pengesanan teragih, menyukarkan analisis punca.
Gejala
- Pengguna melaporkan muatan halaman perlahan (>5 saat)
- Grafana menunjukkan p99 kependaman melonjak dari 200ms ke 2s
- Kadar ralat meningkat dari 0.5% ke 3%, menghampiri kehabisan belanjawan ralat
Diagnosis
- Periksa metrik Prometheus: Tentukan sama ada kependaman tinggi global atau setempat. Jalankan pertanyaan:
histogram_quantile(0.99, sum(rate(http_request_duration_seconds_bucket[5m])) by (le, service)). Dapati bahawa perkhidmatanfrontendp99 normal, tetapi perkhidmatanpaymentsp99 adalah 4s. - Gunakan OpenTelemetry Collector: Suntik jejak secara automatik untuk mencari rantai panggilan perlahan.
Perintah dan Konfigurasi
Pasang OpenTelemetry Collector (Helm)
helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
helm upgrade --install otel-collector open-telemetry/opentelemetry-collector \
--set mode=deployment \
--set config.receivers.otlp.protocols.grpc.endpoint=0.0.0.0:4317 \
--set config.exporters.prometheus.endpoint=0.0.0.0:8889 \
--set-file config.pipelines.traces=traces.yaml
Konfigurasi Prometheus (tambah sasaran scrape)
scrape_configs:
- job_name: 'otel-collector'
scrape_interval: 10s
static_configs:
- targets: ['otel-collector:8889']
Papan Pemuka Grafana (import JSON)
Cipta papan pemuka jejak menggunakan tempo atau sumber data lain yang serasi.
Kawalan Risiko
- Pengasingan ruang nama: Gunakan pengumpul dalam ruang nama berasingan untuk mengelakkan kesan kepada pengeluaran.
- Kawalan kadar pensampelan: Pensampelan lalai 10% untuk mengelakkan letupan storan.
- Sandaran konfigurasi: Sandarkan konfigurasi Prometheus dan Grafana.
Gulung Balik
helm rollback otel-collector 0 # Gulung balik ke versi sebelumnya
kubectl delete -f prometheus-config.yaml # Buang konfigurasi scrape
Pengesahan
- Pertanyaan:
rate(traces_sampled_total[5m])untuk mengesahkan aliran data jejak. - Dalam Grafana, periksa papan pemuka kependaman; p99 harus kembali normal (<500ms).
- Jalankan ujian hujung ke hujung; kadar ralat turun ke 0.5%.
Bila Serahkan Tiket OpsGlobal
- Tidak dapat mengenal pasti punca; memerlukan analisis pakar rantai panggilan.
- Tiada perubahan metrik selepas konfigurasi; mungkin pengumpul atau pengeksport salah konfigurasi.
- Memerlukan pengoptimuman strategi pensampelan atau penyelesaian storan.
Senario Penggunaan
Sesuai untuk pasukan yang menyelesaikan isu Observability dan memerlukan aliran kerja yang jelas.
Latar Belakang Masalah
Artikel ini membincangkan senario sebenar untuk membina timbunan pemerhatian hujung ke hujung menggunakan Prometheus, Grafana dan OpenTelemetry, merangkumi metrik, jejak dan papan pemuka. Sesuai untuk jurutera SRE dan DevOps.
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.