Présentation de PromQL + Cheatsheet

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







10.2.0.4







/api







200







98







http_requests_total







10.2.0.4







/api







503







20







http_requests_total







10.2.0.4







/api







401







1







. 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





http_requests_total







10.2.0.4







/api







200







641309@1614690905.515







641314@1614690965.515







641319@1614691025.502







http_requests_total







10.2.0.5







/api







200







641319@1614690936.628







641324@1614690996.628







641329@1614691056.628







http_requests_total







10.2.0.2







/api







401







368736@1614690901.371







368737@1614690961.372







368738@1614691021.372







, , .





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





http_requests_total







10.2.0.4







/api







200







100@1614690905.515







300@1614690965.515







50@1614691025.502







300 50, . rate



. , , :





name





host





path





status_code





value





http_requests_total







10.2.0.4







/api







200







100@1614690905.515







300@1614690965.515







350@1614691025.502







rate(http_requests_total[10m])
      
      



name





host





path





status_code





value





http_requests_total







10.2.0.4







/api







200







0.83







10 0,83 . :





rate(http_requests_total[10m]) = 0
      
      



?

, Prometheus , PromQL .





Cheatsheet PromQL, ​​ PromQL. Cheatsheet Prometheus playground.








All Articles