TĂ©lĂ©charger l' aide-mĂ©moire pour les requĂȘtes PromQL
DĂ©marrer avec PromQL peut ĂȘtre difficile si vous commencez tout juste votre voyage dans le monde fascinant de Prometheus. Ce guide vous aidera Ă comprendre comment cela fonctionne, et cet article comprend des conseils intĂ©ressants et utiles pour vous aider Ă dĂ©marrer.
Ătant donnĂ© que Prometheus stocke les donnĂ©es sous forme de modĂšle de donnĂ©es de sĂ©ries chronologiques, les requĂȘtes PromQL sont radicalement diffĂ©rentes du SQL conventionnel. Comprendre comment utiliser les donnĂ©es dans Prometheus est essentiel pour apprendre Ă Ă©crire des requĂȘtes efficaces.
N'oubliez pas de télécharger Cheatsheet pour les demandes PromQL !
Comment fonctionnent les bases de données de séries chronologiques
Les séries temporelles sont des flux de valeurs associés à un horodatage.

Chaque sĂ©rie temporelle peut ĂȘtre identifiĂ©e par le nom et les libellĂ©s de la mĂ©trique, par exemple :
mongodb_up{}
ou alors
kube_node_labels{cluster="aws-01", label_kubernetes_io_role="master"}
Dans l'exemple ci-dessus, il y a un nom de métrique ( kube_node_labels
) et des étiquettes ( cluster
et label_kubernetes_io_role
). En fait, les mĂ©triques sont aussi des Ă©tiquettes. La requĂȘte ci-dessus peut ĂȘtre Ă©crite comme ceci :
{__name__ = "kube_node_labels", cluster="aws-01", label_kubernetes_io_role="master"}
Il existe quatre types de métriques dans Prometheus :
Gauges () â , . ,
mongodb_up
, exporter MongoDB.
Counters ()
_total
. ,http_requests_total
.
Histogram () â , , .
Summary () , .
PromQL
PromQL , , . http_requests_total
.
, / api 10.2.0.4. host
path
:
http_requests_total{host="10.2.0.4", path="/api"}
:
name |
host |
path |
status_code |
value |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
. http_requests_total
, , 98 .
instant vector, . , Prometheus . , .

, instant vector (, ).
offset
(), :
http_requests_total{host="10.2.0.4", path="/api", status_code="200"} offset 1d
, :
http_requests_total{host="10.2.0.4", path="/api"}[10m]
:
name |
host |
path |
status_code |
value |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
, , .
range vector â .

PromQL
, PromQL . , ?
, node_cpu_cores
cluster
. , , , :
sum by (cluster) (node_cpu_cores)
:
cluster |
value |
foo |
100 |
bar |
50 |
, 100
cluster_foo
50
cluster_bar
.
, PromQL . , node_memory_MemFree_bytes
, , :
node_memory_MemFree_bytes / (1024 * 1024)
, node_memory_MemTotal_bytes
, , :
(node_memory_MemFree_bytes / node_memory_MemTotal_bytes) * 100
, 5% :
(node_memory_MemFree_bytes / node_memory_MemTotal_bytes) * 100 < 5
PromQL
PromQL , . , topk
, , ( ):
topk(2, (node_memory_MemFree_bytes / node_memory_MemTotal_bytes) * 100)
Prometheus , . pred_linear
, .
, , 24 . pred_linear
node_filesystem_free_bytes
, . 24 :
predict_linear(node_filesystem_free_bytes[1w], 3600 * 24) / (1024 * 1024 * 1024) < 100
Prometheus rate
. , . , .
, , , 10 . http_requests_total
, :
http_requests_total[10m]
name |
host |
path |
status_code |
value |
|
|
|
|
|
300 50, . rate
. , , :
name |
host |
path |
status_code |
value |
|
|
|
|
|
rate(http_requests_total[10m])
name |
host |
path |
status_code |
value |
|
|
|
|
|
10 0,83 . :
rate(http_requests_total[10m]) = 0
?
, Prometheus , PromQL .
Cheatsheet PromQL, ââ PromQL. Cheatsheet Prometheus playground.