Maison  >  Article  >  développement back-end  >  Comment suivre les indicateurs de performance dans l’optimisation des performances techniques Golang ?

Comment suivre les indicateurs de performance dans l’optimisation des performances techniques Golang ?

WBOY
WBOYoriginal
2024-06-05 22:18:59396parcourir

Dans les programmes Go, il est crucial d'utiliser Prometheus pour suivre les indicateurs de performances : installez l'outil Prometheus. Créez MetricsHandler à l’aide de la bibliothèque client Prometheus. Utilisez le module promhttp pour créer un serveur HTTP afin de gérer les requêtes. Utilisez Prometheus.Register() pour enregistrer les métriques. Utilisez NewTimer() et ObserveDuration() pour suivre la latence des requêtes. Accédez à l'interface utilisateur Web de Prometheus pour visualiser les mesures de performances.

Golang 技术性能优化中如何监控性能指标?

Utilisez Prometheus pour surveiller les métriques de performances du programme Go

La surveillance des métriques de performances dans les applications Go est essentielle pour identifier et résoudre rapidement les goulots d'étranglement qui peuvent avoir un impact sur les performances. Prometheus est un outil open source populaire qui nous aide à réaliser ce type de surveillance. A travers cet article, nous allons apprendre à utiliser Prometheus pour suivre les indicateurs de performance des programmes Go et utiliser des cas réels pour illustrer.

Installez et configurez Prometheus

  1. Installez Prometheus sur votre système :

    wget https://github.com/prometheus/prometheus/releases/download/v2.39.3/prometheus-2.39.3.linux-amd64.tar.gz
    tar -xzvf prometheus-2.39.3.linux-amd64.tar.gz
  2. Démarrez le service Prometheus :

    cd prometheus-2.39.3.linux-amd64
    ./prometheus

Créez un client Prometheus

  1. Dans votre programme Go, installez le client Prometheus :

    go get github.com/prometheus/client_golang/prometheus
    go get github.com/prometheus/client_golang/prometheus/promhttp
  2. Créer un gestionnaire de métriques :

    package main
    
    import (
     "log"
     "net/http"
     "time"
    
     "github.com/prometheus/client_golang/prometheus"
     "github.com/prometheus/client_golang/prometheus/promhttp"
    )
    
    const (
     // RequestDuration defines the prometheus metric to track the time elapsed
     // for the handling of incoming requests
     RequestDuration = "http_server_request_duration_seconds"
    )
    
    var requestDuration = prometheus.NewHistogram(prometheus.HistogramOpts{
     Name: RequestDuration,
     Help: "HTTP server request duration in seconds.",
     Buckets: []float64{0.1, 0.3, 0.5, 0.75, 1},
    })
    
    func main() {
     // Register the RequestDuration metric
     prometheus.Register(requestDuration)
    
     // Create a new HTTP Server with a MetricsHandler
     http.Handle("/metrics", promhttp.Handler())
     http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
         timer := prometheus.NewTimer(requestDuration.WithLabelValues(r.URL.Path))
         defer timer.ObserveDuration()
         time.Sleep(time.Millisecond * 100)
     })
    
     // Start the server
     log.Fatal(http.ListenAndServe(":8080", nil))
    }
  3. Démarrer le programme Go :

    go run main.go

Visualiser les indicateurs de performance

  1. Ouvrir l'interface utilisateur Web Prometheus : http://localhost:9090
  2. Switch Accédez au Onglet "Graphiques" et sélectionnez la métrique "http_server_request_duration_seconds".

Bonnes pratiques

  • Utilisez des noms de métriques significatifs et des informations d'aide.
  • Surveillez plusieurs métriques dans les applications publiées.
  • Définissez des règles d'alerte pour détecter les problèmes de performances en temps réel.
  • Utilisez des outils de visualisation comme Grafana pour créer des tableaux de bord.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn