Prometheus enregistrera tous les échantillons de données collectés sous forme de séries chronologiques, et chaque série chronologique est nommée par un nom d'indicateur et un ensemble d'étiquettes.
Chaque point de la série chronologique est appelé un échantillon et l'échantillon se compose des trois parties suivantes :
1) Métrique : nom de la métrique et ensemble d'étiquettes décrivant les caractéristiques de l'échantillon actuel.
2) Horodatage : un horodatage précis à la milliseconde près.
3) Valeur de l'échantillon (valeur) : une donnée à virgule flottante float64 représente la valeur de l'échantillon actuel.
Les données d’un indicateur standardisé contiennent généralement les trois parties suivantes :
1) # HELP, explique le but de cet indicateur.
2) #TYPE, indiquant le type de données de l'indicateur.
3) Indicateurs spécifiques collectés.
Le format spécifique des indicateurs est le suivant :
<nom de la métrique>{<nom de la balise>=<valeur de la balise>, ...} données
Il existe quatre types de types de données d'indicateur, qui sont tous affichés dans la ligne de type de l'interface /metrics fournie par l'exportation.
1)counter
:comptoir
2)gauge
:tableau de bord
3)histogram
:Histogramme
4)summary
:Résumé
comptoir
Les compteurs ne peuvent qu'augmenter mais pas diminuer. Ils sont souvent utilisés pour indiquer le nombre d'erreurs survenues, le nombre de tâches terminées et le nombre de demandes de service.
Après avoir installé et démarré prometheus, vous pouvez visiter http://localhost:9090/metrics pour voir les propres indicateurs de prometheus.
# HELP prometheus_http_requests_total Counter of HTTP requests.
# TYPE prometheus_http_requests_total counter
prometheus_http_requests_total{code="200",handler="/"} 0
prometheus_http_requests_total{code="200",handler="/-/healthy"} 0
prometheus_http_requests_total{code="200",handler="/-/quit"} 0
prometheus_http_requests_total{code="200",handler="/-/ready"} 4
prometheus_http_requests_total{code="200",handler="/-/reload"} 0
prometheus_http_requests_total{code="200",handler="/alerts"} 0
prometheus_http_requests_total{code="200",handler="/api/v1/*path"} 0
jauge
Le tableau de bord enregistre des valeurs instantanées. Quelle que soit la valeur, elle peut être grande ou petite. Il est souvent utilisé pour enregistrer des indicateurs similaires tels que la valeur CPU LOAD, l'utilisation de la mémoire, l'utilisation du disque, le nombre de threads, le nombre de connexions, etc.
# HELP go_goroutines Number of goroutines that currently exist.
# TYPE go_goroutines gauge
go_goroutines 33
# HELP go_info Information about the Go environment.
# TYPE go_info gauge
go_info{version="go1.21.0"} 1
# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use.
# TYPE go_memstats_alloc_bytes gauge
go_memstats_alloc_bytes 2.0341712e+07
# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table.
# TYPE go_memstats_buck_hash_sys_bytes gauge
go_memstats_buck_hash_sys_bytes 1.533216e+06
# HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata.
# TYPE go_memstats_gc_sys_bytes gauge
go_memstats_gc_sys_bytes 5.9602e+06
histogramme
Les histogrammes sont regroupés en fonction de l'intervalle de la valeur d'index de l'échantillon et comptent le nombre de fois où la valeur d'index de l'échantillon apparaît dans chaque intervalle. Vous pouvez clairement connaître le modèle de distribution d'intervalle de la valeur d'index. Il est souvent utilisé pour la distribution d'intervalle de le temps de réponse à la demande et les octets de la réponse à la demande. Distribution à grands intervalles et autres données similaires. Pour obtenir le quantile de la valeur de l'indicateur de l'échantillon, il faut calculer côté serveur, ce qui consommera les ressources informatiques du côté serveur.
L'histogramme contient 3 types d'indicateurs :
1) Le nombre de valeurs d'index des échantillons du groupe, nommé _bucket{le=""}, représente le nombre de tous les échantillons dont les valeurs d'index sont inférieures ou égales à la limite supérieure.
2) La somme des valeurs indicatrices de tous les échantillons est nommée _sum.
3) Le nombre total d'échantillons, nommé _count.
Après avoir installé et démarré prometheus, vous pouvez visiter http://localhost:9090/metrics pour voir les propres indicateurs de prometheus. L'exemple suivant provient des informations de l'histogramme du temps de requête http pris par prometheus. On peut voir que parmi les requêtes http avec le chemin de requête "/", il y a 2 temps de réponse inférieurs à 0,1 seconde, 5 réponses inférieurs à 0,2 seconde , et moins de 0,4 seconde. Il y en a 9, 11 d'entre eux durent moins de 1 seconde, le nombre total de requêtes est de 11 et la durée totale de la requête est de 2,000284668 secondes.
# HELP prometheus_http_request_duration_seconds Histogram of latencies for HTTP requests.
# TYPE prometheus_http_request_duration_seconds histogram
prometheus_http_request_duration_seconds_bucket{handler="/",le="0.1"} 2
prometheus_http_request_duration_seconds_bucket{handler="/",le="0.2"} 5
prometheus_http_request_duration_seconds_bucket{handler="/",le="0.4"} 9
prometheus_http_request_duration_seconds_bucket{handler="/",le="1"} 11
prometheus_http_request_duration_seconds_bucket{handler="/",le="3"} 11
prometheus_http_request_duration_seconds_bucket{handler="/",le="8"} 11
prometheus_http_request_duration_seconds_bucket{handler="/",le="20"} 11
prometheus_http_request_duration_seconds_bucket{handler="/",le="60"} 11
prometheus_http_request_duration_seconds_bucket{handler="/",le="120"} 11
prometheus_http_request_duration_seconds_bucket{handler="/",le="+Inf"} 11
prometheus_http_request_duration_seconds_sum{handler="/"} 2.000284668
prometheus_http_request_duration_seconds_count{handler="/"} 11
résumé
Abstrait, similaire à l'histogramme, il enregistre les résultats de distribution des valeurs d'indicateur d'échantillons sur une période donnée. Le client calcule les résultats quantiles des valeurs d'indicateur d'échantillon et le serveur peut les afficher directement sans consommer de ressources informatiques.
Les échantillons de type résumé fourniront également 3 indicateurs, en supposant que le nom de l'indicateur soit .
1) La distribution quantile de la valeur de l'échantillon est nommée {quantile="<>"}.
2) La somme des tailles de toutes les valeurs d'échantillon est nommée _sum.
3) Le nombre total d'échantillons, nommé _count.
Après avoir installé et démarré prometheus, vous pouvez visiter http://localhost:9090/metrics pour voir les propres indicateurs de prometheus. L'exemple suivant provient des informations récapitulatives de GC fournies avec prometheus. On peut voir que le nombre total de GC en langage GO est de 213, la durée totale de GC est de 0,25431598 secondes et la durée médiane est de (quantile="0.5" ) est de 0,001254684 seconde, ce qui signifie que 50 % des 213 temps GC sont inférieurs à 0,001254684 seconde.
# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 1.9042e-05
go_gc_duration_seconds{quantile="0.25"} 0.000584189
go_gc_duration_seconds{quantile="0.5"} 0.001254684
go_gc_duration_seconds{quantile="0.75"} 0.001590227
go_gc_duration_seconds{quantile="1"} 0.006444609
go_gc_duration_seconds_sum 0.25431598
go_gc_duration_seconds_count 213