Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pembangunan Golang: Gunakan Prometheus untuk memantau prestasi aplikasi

Pembangunan Golang: Gunakan Prometheus untuk memantau prestasi aplikasi

PHPz
PHPzasal
2023-09-21 12:39:161425semak imbas

Pembangunan Golang: Gunakan Prometheus untuk memantau prestasi aplikasi

Pembangunan Golang: Menggunakan Prometheus untuk memantau prestasi aplikasi memerlukan contoh kod khusus

Abstrak: Artikel ini memperkenalkan cara menggunakan perpustakaan Prometheus di Golang pembangunan Menjalankan pemantauan prestasi aplikasi dan menyediakan contoh kod khusus untuk memudahkan pembangun bermula dengan cepat.

Pengenalan:

Dalam pembangunan aplikasi moden, pemantauan prestasi aplikasi adalah pautan yang sangat penting. Melalui pemantauan, kami boleh memahami status berjalan aplikasi dalam masa nyata, menemui masalah dalam masa dan membuat pelarasan untuk meningkatkan kestabilan dan prestasi aplikasi.

Prometheus ialah sistem pemantauan sumber terbuka dan pangkalan data siri masa yang digunakan secara meluas dalam bidang pemantauan aplikasi asli awan dan kontena. Ia menyediakan pelbagai jenis dan fungsi penunjuk pemantauan, yang boleh membantu kami memantau penunjuk prestasi aplikasi dalam masa nyata.

Artikel ini akan menggunakan contoh khusus untuk menunjukkan cara menggunakan perpustakaan Prometheus dalam pembangunan Golang untuk pemantauan prestasi aplikasi.

Langkah 1: Pasang dan konfigurasi Prometheus

Pertama, kita perlu memasang dan mengkonfigurasi Prometheus dalam sistem. Binari boleh dimuat turun dari laman web rasmi (https://prometheus.io/) dan dipasang.

Selepas pemasangan selesai, anda perlu mengkonfigurasi fail konfigurasi Prometheus prometheus.yml. Dalam fail konfigurasi, kita perlu menentukan matlamat untuk dipantau dan metrik yang sepadan.

Sebagai contoh, jika kita ingin memantau jumlah permintaan HTTP dan meminta kelewatan aplikasi Golang, kita boleh menambah konfigurasi berikut:

scrape_configs:
  - job_name: 'my_app'
    metrics_path: /metrics
    static_configs:
    - targets: ['localhost:8080']

Langkah 2: Tambah Kod pemantauan Prometheus dalam aplikasi Golang# 🎜🎜#

Seterusnya, kita perlu menambah kod berkaitan Prometheus pada aplikasi Golang. Pertama, kita perlu memperkenalkan perpustakaan Prometheus:

import (
   "github.com/prometheus/client_golang/prometheus"
   "github.com/prometheus/client_golang/prometheus/promhttp"
)

Kemudian, kita boleh menentukan penunjuk yang perlu dipantau. Dalam contoh kami, kami mentakrifkan penunjuk untuk mengira jumlah permintaan dan penunjuk untuk mengira kelewatan permintaan:

var (
   requestsTotal = prometheus.NewCounterVec(
      prometheus.CounterOpts{
         Name: "http_requests_total",
         Help: "Total number of HTTP requests.",
      },
      []string{"handler", "method"},
   )
   requestDuration = prometheus.NewHistogramVec(
      prometheus.HistogramOpts{
         Name: "http_request_duration_seconds",
         Help: "HTTP request duration in seconds.",
         Buckets: []float64{0.1, 0.2, 0.5, 1, 2, 5},
      },
      []string{"handler", "method"},
   )
)

Seterusnya, kami perlu menambah kod pemantauan yang sepadan. Pada permulaan dan akhir setiap fungsi pemprosesan, kami boleh menggunakan kaedah pemantauan yang disediakan oleh Prometheus untuk mengumpul dan merekod data.

Sebagai contoh, kod berikut menunjukkan cara menggunakan Prometheus untuk memantau permintaan HTTP dalam aplikasi Golang:

func handleHello(w http.ResponseWriter, r *http.Request) {
   start := time.Now()

   // 执行实际的处理逻辑

   elapsedTime := time.Since(start).Seconds()
   requestsTotal.WithLabelValues("/hello", r.Method).Inc()
   requestDuration.WithLabelValues("/hello", r.Method).Observe(elapsedTime)
}

Akhir sekali, kami perlu menyediakan pengendali HTTP Prometheus supaya ia boleh Biarkan Prometheus mendapatkan penunjuk yang kami takrifkan melalui antara muka HTTP.

func main() {
   http.Handle("/metrics", promhttp.Handler())
   http.HandleFunc("/hello", handleHello)
   http.ListenAndServe(":8080", nil)
}

Langkah 3: Mulakan aplikasi dan akses antara muka pemantauan Prometheus

Selepas melengkapkan langkah di atas, kami boleh memulakan aplikasi kami dan mengakses antara muka pemantauan Prometheus. Masukkan http://localhost:9090 dalam penyemak imbas, dan kemudian masukkan nama penunjuk yang kami takrifkan dalam kotak pertanyaan untuk melihat data penunjuk prestasi yang sepadan.

Sebagai contoh, kita boleh menyemak jumlah bilangan permintaan dengan menanyakan http_requests_total, dan menyemak kelewatan permintaan dengan menanyakan http_request_duration_seconds.

Ringkasan:

Artikel ini memperkenalkan cara menggunakan perpustakaan Prometheus dalam pembangunan Golang untuk memantau prestasi aplikasi dan menyediakan contoh kod khusus. Melalui Prometheus, kami boleh mengumpul dan merekod pelbagai penunjuk aplikasi dengan mudah, dan melihat serta menganalisisnya dalam masa nyata melalui antara muka pemantauan Prometheus.

Walaupun artikel ini hanya memperkenalkan penggunaan dan contoh asas, Prometheus menyediakan fungsi dan skalabiliti yang lebih kaya untuk memenuhi keperluan pemantauan bagi senario dan keperluan yang berbeza. Saya harap artikel ini dapat membantu pembaca yang berminat dengan Prometheus dan memberi inspirasi kepada lebih banyak penerokaan dan amalan.

Atas ialah kandungan terperinci Pembangunan Golang: Gunakan Prometheus untuk memantau prestasi aplikasi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn