Aller au contenu principal

Commandes essentielles utiles pour grafana

Loki

Loki est utilisé pour la collecte de logs. Voici des commandes utiles

Recherche Basique

  • Tous les logs d'une application :

    {app="my-app"}
  • Logs avec un contenu spécifique :

    {app="my-app"} |= "error"
  • Exclure des logs avec un contenu spécifique :

    {app="my-app"} != "info"
  • Recherche avec plusieurs filtres :

    {app="my-app",environment="production"} |= "error" != "timeout"
  • Recherche avec expressions régulières :

    {app="my-app"} |~ "error|warning"

Manipulation de Strings

  • Extraire une partie du log :

    {app="my-app"} |~ "(.*)_error" | line_format "{{.match}}"
  • Remplacer du texte dans les logs :

    {app="my-app"} | replace ("old_string", "new_string")

Fonctions d'Aggrégation

  • Compter le nombre de logs :

    {app="my-app"} | count_over_time(1h)
  • Calculer la moyenne des valeurs :

    {app="my-app"} | json | avg_over_time(duration_seconds[1h])
  • Calculer le 95th percentile :

    {app="my-app"} | json | quantile_over_time(0.95, duration_seconds[1h])

Fonctions de Formatage

  • Afficher les labels :

    {app="my-app"} | labels
  • Afficher des statistiques de comptage :

    {app="my-app"} | stats count by (level)

Divers

  • Réduire le bruit des logs :

    {app="my-app"} |= "error" | uniq
  • Trier les logs :

    {app="my-app"} | sort desc

Prometheus

Recherche Basique

  • Requêter une métrique spécifique :

    http_requests_total
  • Requêter avec des labels spécifiques :

    http_requests_total{method="GET", status="200"}

Fonctions d'Aggrégation

  • Somme :

    sum(http_requests_total)
  • Moyenne :

    avg(http_requests_total)
  • Minimum et Maximum :

    min(http_requests_total)
    max(http_requests_total)
  • Compter le nombre d'instances :

    count(http_requests_total)

Opérateurs

  • Addition, Soustraction, Multiplication, Division :
    http_requests_total + 100
    http_requests_total - 100
    http_requests_total * 2
    http_requests_total / 2

Fonctions de Taux

  • Taux d'erreur sur 5 minutes :

    rate(http_requests_total{status=~"5.."}[5m])
  • Taux de requêtes sur 1 minute :

    rate(http_requests_total[1m])

Fonctions Temporelles

  • Métrique la plus récente dans les dernières 5 minutes :

    max_over_time(http_requests_total[5m])
  • Métrique la plus ancienne dans les dernières 5 minutes :

    min_over_time(http_requests_total[5m])

Histogrammes et Percentiles

  • Calculer le 95th percentile :
    histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le))

Groupement et Étiquetage

  • Somme par méthode :

    sum(http_requests_total) by (method)
  • Renommer les labels :

    label_replace(http_requests_total, "new_label", "$1", "old_label", "(.*)")