Senario
Sebuah platform e-dagang menjalankan perkhidmatan mikro di Kubernetes. Apabila trafik meningkat, lonjakan latensi dan peningkatan kadar ralat berlaku, tetapi pemantauan sedia ada hanya meliputi infrastruktur, bukan isu peringkat aplikasi. Pasukan memutuskan untuk menggunakan OpenTelemetry untuk pengesanan teragih dan mengintegrasikannya dengan Prometheus dan Grafana untuk pemerhatian bersatu.
Gejala
- Masa tindak balas pengguna melonjak daripada 200ms ke 2s
- Kadar ralat melebihi 5% pada API kritikal
- Amaran Prometheus tidak boleh dikaitkan dengan perkhidmatan atau jejak tertentu
Diagnosis
- Periksa metrik Prometheus:
rate(http_request_duration_seconds_sum[5m])mendedahkan latensi tinggi pada perkhidmatan pembayaran - Gunakan Grafana Explore untuk menanyakan jejak OpenTelemetry:
{service.name="payment-service"} && duration > 1smengenal pasti pertanyaan pangkalan data yang perlahan - Analisis lanjut menunjukkan kekurangan kolam sambungan pangkalan data menyebabkan permintaan beratur
Arahan
Pasang Pengumpul OpenTelemetry
helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
helm upgrade --install otel-collector open-telemetry/opentelemetry-collector \
--set config.exporters.otlp.endpoint=otel-collector:4317
Konfigur Prometheus untuk Mengikis Metrik OTEL
# prometheus.yml
scrape_configs:
- job_name: 'otel-collector'
static_configs:
- targets: ['otel-collector:8888']
Cipta Papan Pemuka Grafana
Import templat papan pemuka OpenTelemetry rasmi (ID: 15941)
Kawalan Risiko
- Gunakan otel-collector pada nod bukan kritikal dahulu; pantau penggunaan sumber (CPU, memori)
- Hadkan kadar pensampelan untuk mengelakkan letupan storan:
set config.processors.batch.timeout=10s - Laraskan ambang amaran secara berperingkat untuk mengelakkan positif palsu
Penggulungan
helm uninstall otel-collector
# Pulihkan konfig Prometheus
kubectl delete configmap prometheus-config -n monitoring
kubectl create configmap prometheus-config --from-file=prometheus.yml
kubectl rollout restart deployment prometheus -n monitoring
Pengesahan
- Akses Grafana; sahkan data jejak muncul
- Jalankan ujian beban:
k6 run --vus 10 --duration 30s script.js - Periksa butiran jejak: setiap permintaan harus mempunyai span lengkap dengan cap waktu yang selaras
Bila Mengemukakan Tiket OpsGlobal
- Metrik hilang atau jejak tidak lengkap selepas penggunaan
- Penggunaan sumber yang tidak normal
- Perlu strategi pensampelan tersuai atau peraturan amaran lanjutan
- Pasukan tidak mempunyai kebenaran atau pengalaman Kubernetes
Untuk bantuan pakar, huraikan versi kluster, komponen yang dipasang, dan ralat spesifik dalam tiket.
Senario Penggunaan
Sesuai untuk pasukan yang menyelesaikan isu Observability dan memerlukan aliran kerja yang jelas.
Latar Belakang Masalah
Panduan praktikal untuk membina pemerhatian hujung ke hujung di Kubernetes menggunakan Prometheus, Grafana, dan OpenTelemetry, merangkumi senario, gejala, diagnosis, arahan, kawalan risiko, penggulungan, pengesahan, dan bila mengemukakan tiket OpsGlobal.
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.