Sobes.tech
Junior — Middle

Πώς μπορεί να μεταδοθούν μετρήσεις από μια εφαρμογή στο Grafana για οπτικοποίηση και παρακολούθηση;

sobes.tech AI

Απάντηση από AI

Για τη μεταφορά μετρήσεων από μια εφαρμογή Go στο Grafana, χρησιμοποιείται συνήθως το σύστημα παρακολούθησης Prometheus, το οποίο ενσωματώνεται καλά με το Grafana.

Βασικά βήματα:

  1. Στην εφαρμογή Go, συνδέστε τη βιβλιοθήκη πελάτη Prometheus (prometheus/client_golang).
  2. Ορίστε και καταγράψτε τις μετρήσεις (μετρητές, ιστογράμματα, gauges).
  3. Εκκινήστε έναν διακομιστή HTTP με ένα endpoint /metrics, που παρέχει τις τρέχουσες τιμές των μετρήσεων σε μια μορφή κατανοητή από το Prometheus.
  4. Στο Prometheus, διαμορφώστε τη συλλογή μετρήσεων από αυτό το endpoint.
  5. Το Grafana συνδέεται με το Prometheus ως πηγή δεδομένων και οπτικοποιεί τις μετρήσεις.

Παράδειγμα κώδικα σε Go:

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

var (
    opsProcessed = prometheus.NewCounter(prometheus.CounterOpts{
        Name: "myapp_processed_ops_total",
        Help: "Ο συνολικός αριθμός επεξεργασμένων γεγονότων",
    })
)

func init() {
    prometheus.MustRegister(opsProcessed)
}

func main() {
    http.Handle("/metrics", promhttp.Handler())
    go func() {
        for {
            opsProcessed.Inc() // αυξάνουμε τον μετρητή
            time.Sleep(time.Second)
        }
    }()
    http.ListenAndServe(":2112", nil)
}

Έτσι, οι μετρήσεις είναι διαθέσιμες για συλλογή από το Prometheus και οπτικοποίηση στο Grafana.