Senario
Sebuah platform e-dagang menjalankan mikroservis di Kubernetes. Pengguna melaporkan pesanan lambat dan tamat masa. Pasukan operasi mempunyai Prometheus dan Grafana untuk metrik asas tetapi tidak dapat mengenal pasti punca sebenar.
Gejala
- Amaran Prometheus: Kadar ralat perkhidmatan pesanan meningkat kepada 5%, kependaman p99 >2s.
- Papan pemuka Grafana menunjukkan CPU/memori normal tetapi pemprosesan rangkaian tidak normal.
- Log mengandungi hanya ralat "masa tamat perkhidmatan hulu" yang berselang-seli.
Diagnosis
Perkenalkan jejak teragih melalui OpenTelemetry. Instrumen auto dan backend jejak (Jaeger/Tempo) mendedahkan rantaian panggilan penuh.
1. Gunakan OpenTelemetry Collector
helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
helm install otel-collector open-telemetry/opentelemetry-collector --values otel-collector-values.yaml
Contoh otel-collector-values.yaml:
mode: deployment
config:
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
processors:
batch:
timeout: 1s
exporters:
prometheus:
endpoint: 0.0.0.0:8889
otlp:
endpoint: tempo.monitoring:4317
tls:
insecure: true
Nota: Konfigurasikan TLS dan auth dalam pengeluaran.
2. Konfigurasi Prometheus untuk Mengikis Metrik OpenTelemetry
Tambah job dalam konfigurasi Prometheus:
scrape_configs:
- job_name: 'otel-collector'
static_configs:
- targets: ['otel-collector:8889']
3. Cipta Papan Pemuka Grafana
Import papan pemuka OpenTelemetry pra-bina (ID: 14032) atau panel tersuai untuk kependaman jejak, kadar ralat dan kebergantungan.
Keputusan Diagnosis
Jejak mendedahkan bahawa perkhidmatan pesanan mengalami kelewatan resolusi DNS apabila memanggil gerbang pembayaran. Pengoptimuman cache DNS menyelesaikan isu.
Kawalan Risiko
- Uji konfigurasi OpenTelemetry dalam bukan pengeluaran terlebih dahulu.
- Tetapkan had sumber untuk Collector (CPU 500m, memori 512Mi).
- Aktifkan pensampelan (cth. 100 jejak/saat) untuk mengelakkan beban berlebihan.
Balik Semula
Jika Collector menyebabkan isu prestasi:
helm uninstall otel-collector
dan alih keluar job yang sepadan daripada Prometheus.
Pengesahan
- Sahkan penurunan metrik dalam Grafana.
- Semak log Collector:
kubectl logs -l app=otel-collector. - Hantar permintaan ujian dan lihat jejak dalam UI Jaeger.
Bila Serahkan Tiket OpsGlobal
- Hadapi ketidakserasian SDK OpenTelemetry dengan bahasa pengaturcaraan anda.
- Perlukan metrik perniagaan tersuai atau tahap terperinci jejak.
- Kluster besar memerlukan pensampelan atau penyelesaian storan yang dioptimumkan.
Senario Penggunaan
Sesuai untuk pasukan yang menyelesaikan isu Observability dan memerlukan aliran kerja yang jelas.
Latar Belakang Masalah
Satu senario dunia sebenar menunjukkan cara menggabungkan Prometheus, Grafana dan OpenTelemetry pada Kubernetes untuk mengintegrasikan metrik, log dan jejak secara mendalam bagi analisis punca prestasi mikroservis dengan pantas.
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.