Senario
Sebuah platform e-dagang menjalankan 50+ perkhidmatan mikro pada Kubernetes. Pasukan mengalami masa penyelesaian min (MTTR) yang tinggi disebabkan pemantauan berpecah. Mereka memutuskan untuk melaksanakan Prometheus, Grafana dan OpenTelemetry untuk menyatukan kebolehcerapan.
Simptom
- Bertukar antara pelbagai alat semasa respons insiden
- Tidak dapat menghubungkaitkan metrik dengan jejak
- Masa penyelesaian insiden melebihi 4 jam
Diagnosis
- Tiada instrumentasi automatik dan pengumpulan piawai
- Penamaan metrik dan pelabelan tidak konsisten merentas pasukan
- Tiada backend jejak bersatu
Arahan
Berikut adalah contoh arahan untuk menggunakan OpenTelemetry Collector dan mengkonfigurasi Prometheus pada Kubernetes (dengan anggapan Helm telah dipasang).
1. Pasang 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-values.yaml
Contoh otel-values.yaml:
mode: deployment
config:
receivers:
otlp:
protocols:
grpc:
http:
processors:
batch:
exporters:
prometheus:
endpoint: "0.0.0.0:8889"
logging:
# Pilihan: eksport jejak ke Jaeger atau Zipkin
otlp:
endpoint: "jaeger-collector:4317"
service:
pipelines:
metrics:
receivers: [otlp]
processors: [batch]
exporters: [prometheus, logging]
traces:
receivers: [otlp]
processors: [batch]
exporters: [otlp, logging]
2. Konfigurasi Prometheus untuk mengikis metrik OpenTelemetry Collector
# prometheus-scrape-config.yaml
scrape_configs:
- job_name: 'opentelemetry-collector'
scrape_interval: 15s
static_configs:
- targets: ['otel-collector:8889']
3. Gunakan Grafana dan tambah sumber data Prometheus
helm install grafana grafana/grafana --set persistence.enabled=true
Selepas log masuk ke Grafana, tambah sumber data Prometheus (URL: http://prometheus-server) dan import papan pemuka pra-bina.
Kawalan Risiko
- Gunakan pada ruang nama bukan kritikal dahulu
- Gunakan
--dry-rundengan Helm untuk mengesahkan konfigurasi - Pantau penggunaan sumber Collector (CPU/memori)
- Tetap had sumber Pod
- Sandarkan konfigurasi Prometheus dan Grafana
Pengembalian
# Nyahpasang OpenTelemetry Collector
helm uninstall otel-collector
# Pulihkan konfigurasi Prometheus
kubectl replace -f backup-prometheus-config.yaml
# Jika perlu, mulakan semula Pod Prometheus
kubectl rollout restart -n monitoring deployment/prometheus-server
Pengesahan
- Periksa Pod OpenTelemetry Collector berjalan:
kubectl get pods -l app.kubernetes.io/name=opentelemetry-collector - Query Prometheus untuk metrik:
rate(otelcol_exporter_sent_metric_points_total[5m]) - Lihat papan pemuka di Grafana: pastikan data muncul
- Hantar permintaan ujian dan periksa jejak (contohnya, menggunakan UI Jaeger atau
kubectl logsCollector)
Bila untuk Menghantar Tiket OpsGlobal
- Pemproses OpenTelemetry Collector tersuai (contohnya, penapisan, pensampelan) diperlukan tetapi tiada kepakaran dalaman
- Federasi Prometheus merentas kluster memerlukan panduan pakar
- Isu keserasian apabila menyuntik SDK OpenTelemetry ke dalam sistem warisan
- Penalaan prestasi (contohnya, melaraskan saiz kelompok, had memori)
Jika mana-mana senario kompleks ini timbul, hubungi OpsGlobal untuk sokongan profesional.
Senario Penggunaan
Sesuai untuk pasukan yang menyelesaikan isu Observability dan memerlukan aliran kerja yang jelas.
Latar Belakang Masalah
Panduan praktikal untuk mengintegrasikan Prometheus, Grafana dan OpenTelemetry pada kluster Kubernetes pengeluaran bagi metrik, log dan jejak yang bersatu. Merangkumi senario, simptom, diagnosis, arahan penggunaan, kawalan risiko, pengembalian, pengesahan dan bila untuk menghantar 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.