Tempah Konsultasi Hantar Tiket

Menguasai Kebolehcerapan dengan Prometheus, Grafana, dan OpenTelemetry dalam Kubernetes

Ketahui cara menyediakan timbunan kebolehcerapan menyeluruh untuk beban kerja Kubernetes anda menggunakan Prometheus untuk metrik, Grafana untuk visualisasi, dan OpenTelemetry untuk jejak dan log. Panduan praktikal ini melalui senario dunia sebenar, dari pengesanan gejala hingga penyelesaian, dengan arahan, kawalan risiko, dan langkah pengembalian semula.

Menguasai Kebolehcerapan dengan Prometheus, Grafana, dan OpenTelemetry dalam Kubernetes
Observability 6min 76 paparan 2026-07-04
KubernetesSREkebolehcerapan

Senario

Anda menjalankan aplikasi mikroservis pada Kubernetes dan memerlukan kebolehcerapan hujung-ke-hujung termasuk metrik, jejak, dan log. Anda telah menggunakan Prometheus untuk metrik, Grafana untuk papan pemuka, dan OpenTelemetry Collector untuk jejak dan log. Baru-baru ini, pengguna melaporkan respons perlahan dan ralat 5xx pada beberapa titik akhir. Amaran Prometheus menunjukkan kependaman permintaan tinggi dan kadar ralat meningkat.

Gejala

  • Pengguna mengadu muatan halaman perlahan, sekali-sekala ralat 5xx.
  • Prometheus Alertmanager mencetuskan amaran HighRequestLatency dan HighErrorRate.
  • Papan pemuka Grafana menunjukkan kependaman p99 > 500ms dan kadar ralat > 5%.

Diagnosis

  1. Buka Grafana, semak papan pemuka "Kubernetes Services" yang telah dibina, tapis ke ruang nama yang terjejas.
  2. Kenal pasti perkhidmatan kependaman tinggi – selalunya payment-service dan order-service.
  3. Pergi ke halaman Jejak (contohnya, sumber data Grafana Tempo), cari titik akhir yang terjejas, lihat jejak teragih.
  4. Perhatikan bahawa payment-service membuat panggilan pangkalan data yang mengambil masa >1 saat, dengan beberapa kegagalan.
  5. Semak log untuk payment-service melalui kubectl logs atau eksport log OpenTelemetry.

Arahan

Gunakan OpenTelemetry Collector

Pasang melalui Helm:

helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
helm install otel-collector open-telemetry/opentelemetry-collector \
  --set config.exporters.prometheus.endpoint="0.0.0.0:8889" \
  --set config.service.pipelines.metrics.exporters=[prometheus]

Konfigurasikan Prometheus untuk mengikis metrik OpenTelemetry Collector

Tambahkan ke scrape_configs:

- job_name: 'opentelemetry-collector'
  static_configs:
    - targets: ['otel-collector:8889']

Mulakan semula aplikasi dengan SDK OTel (contoh untuk Java)

kubectl set env deployment/payment-service JAVA_TOOL_OPTIONS="-javaagent:/opt/opentelemetry-javaagent.jar"
kubectl rollout restart deployment/payment-service

Query Prometheus untuk mengesahkan metrik

kubectl port-forward svc/prometheus-kube-prometheus-prometheus 9090:9090
curl http://localhost:9090/api/v1/query?query=rate(http_server_duration_ms_sum[5m])

Kawalan Risiko

  • Sandarkan konfigurasi sedia ada sebelum perubahan: bash kubectl get configmap -n monitoring prometheus-kube-prometheus-prometheus -o yaml > prometheus-config-backup.yaml
  • Uji versi baru OTel Collector secara kanari dengan membolehkan hanya untuk subset perkhidmatan.
  • Hadkan kadar eksport metrik untuk mengelakkan beban lampau: tambah pemproses limit dalam konfigurasi OpenTelemetry Collector.
  • Sahkan perubahan dalam persekitaran pementasan terlebih dahulu.

Pengembalian Semula

Jika perubahan menyebabkan masalah:

  1. Pulihkan ConfigMap Prometheus: bash kubectl apply -f prometheus-config-backup.yaml kubectl delete pod -n monitoring -l app.kubernetes.io/component=prometheus
  2. Kembalikan versi Helm OpenTelemetry Collector: bash helm rollback otel-collector 0
  3. Kembalikan penggunaan aplikasi (contohnya, alihkan Javaagent): bash kubectl set env deployment/payment-service JAVA_TOOL_OPTIONS- kubectl rollout restart deployment/payment-service

Pengesahan

  • Periksa sasaran Prometheus: http://localhost:9090/targets – OpenTelemetry Collector sepatutnya UP.
  • Lihat papan pemuka "OpenTelemetry Collector" dalam Grafana untuk melihat metrik yang mengalir.
  • Lakukan permintaan ujian dan periksa jejak dalam Grafana Tempo.
  • Sahkan amaran pulih: kubectl get alerts -n monitoring.

Bila Menghantar Tiket OpsGlobal

Hantar tiket jika:

  • Anda tidak boleh menyepadukan OpenTelemetry dengan Prometheus atau Grafana sedia ada.
  • Anda memerlukan bantuan mengkonfigurasi penjejakan teragih untuk perkhidmatan tersuai.
  • Isu berterusan selepas mengikuti langkah pengembalian semula.
  • Anda memerlukan konfigurasi sedia pengeluaran dengan amalan keselamatan terbaik.

Senario Penggunaan

Sesuai untuk pasukan yang menyelesaikan isu Observability dan memerlukan aliran kerja yang jelas.

Latar Belakang Masalah

Ketahui cara menyediakan timbunan kebolehcerapan menyeluruh untuk beban kerja Kubernetes anda menggunakan Prometheus untuk metrik, Grafana untuk visualisasi, dan OpenTelemetry untuk jejak dan log. Panduan praktikal ini melalui senario dunia sebenar, dari pengesanan gejala hingga penyelesaian, dengan arahan, kawalan risiko, dan langkah pengembalian semula.

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.

Tiket Hubungi WhatsApp Konsultasi