Simple Log Service (SLS) prend en charge les fonctions PromQL pour interroger et traiter les métriques stockées dans les Metricstores. Cette rubrique présente des exemples d'utilisation des fonctions PromQL courantes.
abs()
Renvoie la valeur absolue de chaque point de données de la série temporelle d'entrée.
abs(container_network_receive_bytes_total{})
changes()
Renvoie le nombre de changements de valeur de chaque série temporelle dans la plage de temps spécifiée.
changes(demo_api_request_duration_seconds_count[1m])
absent()
Renvoie un vecteur vide si le vecteur d'entrée contient des éléments. Renvoie un vecteur à un élément avec la valeur 1 si le vecteur d'entrée est vide. Utilisez cette fonction pour générer une alerte lorsqu'une métrique ne comporte aucune donnée.
absent(test_metrics)
absent_over_time()
Renvoie 1 s'il n'y a aucun point de données dans la plage de temps spécifiée. Renvoie un vecteur vide dans le cas contraire. Utilisez cette fonction pour détecter les lacunes dans les données de métriques sur une plage donnée.
absent_over_time(test_metrics[1m])
ceil()
Arrondit chaque point de données à l'entier supérieur le plus proche.
ceil(process_start_time_seconds)
clamp()
Limite chaque point de données à une plage spécifiée. Les valeurs inférieures à min sont définies sur min ; les valeurs supérieures à max sont définies sur max.
Syntaxe : clamp(v instant-vector, min scalar, max scalar)
clamp(process_start_time_seconds,10,20)
clamp_max()
Limite chaque point de données à une valeur maximale. Les valeurs supérieures à max sont définies sur max. Similaire à clamp(), mais applique uniquement une limite supérieure.
Syntaxe : clamp_max(v instant-vector, max scalar)
clamp_max(process_start_time_seconds,10)
clamp_min()
Limite chaque point de données à une valeur minimale. Les valeurs inférieures à min sont définies sur min. Similaire à clamp(), mais applique uniquement une limite inférieure.
Syntaxe : clamp_min(v instant-vector, min scalar)
clamp_min(process_start_time_seconds,10)
day_of_month()
Renvoie le jour du mois (1–31) pour chaque horodatage de la série temporelle d'entrée.
day_of_month(vector(1805308033))
day_of_week()
Renvoie le jour de la semaine (0–6, où 0 correspond au dimanche) pour chaque horodatage de la série temporelle d'entrée.
day_of_week(vector(1805308033))
day_of_year()
Renvoie le jour de l'année (1–365) pour chaque horodatage de la série temporelle d'entrée.
day_of_year(vector(1805308033))
delta()
Renvoie la différence entre le premier et le dernier point de données dans la plage de temps spécifiée. À utiliser avec les jauges.
delta(go_memstats_heap_released_bytes[1m])
deriv()
Renvoie la dérivée par seconde de chaque série temporelle dans le vecteur de plage, calculée à l'aide d'une régression linéaire simple. À utiliser avec les jauges.
deriv(go_memstats_heap_released_bytes[1m])
exp()
Renvoie la fonction exponentielle e^x pour chaque point de données de la série temporelle d'entrée.
exp(go_memstats_lookups_total)
floor()
Arrondit chaque point de données à l'entier inférieur le plus proche.
floor(go_memstats_heap_released_bytes)
holt_winters()
Produit une valeur lissée pour chaque série temporelle à l'aide du lissage exponentiel double (algorithme de Holt-Winters). Le facteur de lissage sf contrôle le poids attribué aux données plus anciennes (plus la valeur est faible, plus le poids accordé aux anciennes données est important) ; le facteur de tendance tf contrôle l'intensité du suivi des tendances. Les valeurs sf et tf doivent être comprises entre 0 et 1. À utiliser avec les jauges.
Syntaxe : holt_winters(v range-vector, sf scalar, tf scalar)
holt_winters(go_memstats_heap_released_bytes[3m],0.2,0.5)
rate()
Renvoie le taux moyen d'augmentation par seconde du compteur sur la plage de temps spécifiée. Prend en compte les réinitialisations du compteur. À utiliser avec les compteurs.
rate(go_memstats_mallocs_total[3m])
idelta()
Renvoie la différence entre les deux derniers points de données dans la plage de temps spécifiée.
idelta(go_memstats_mallocs_total[3m])
increase()
Renvoie l'augmentation totale d'un compteur sur la plage de temps spécifiée. Les réinitialisations du compteur (lorsque la valeur retombe à zéro et reprend le comptage) sont automatiquement prises en compte. À utiliser uniquement avec les compteurs.
increase(go_memstats_mallocs_total[3m])
irate()
Renvoie le taux d'augmentation instantané par seconde, calculé à partir des deux derniers points de données de la plage. À utiliser avec les compteurs à évolution rapide et pour les graphiques. Pour les alertes ou les compteurs à évolution lente, utilisez plutôt rate().
irate(go_memstats_mallocs_total[3m])
hour()
Renvoie l'heure de la journée (0–23 UTC) pour chaque horodatage de la série temporelle d'entrée.
hour(vector[1705308033])
minute()
Renvoie la minute de l'heure (0–59 UTC) pour chaque horodatage de la série temporelle d'entrée.
minute(vector[1705308033])
month()
Renvoie le mois de l'année (1–12 UTC) pour chaque horodatage de la série temporelle d'entrée.
month(vector[1705308033])
resets()
Renvoie le nombre de réinitialisations du compteur dans la plage de temps spécifiée. Une réinitialisation se produit lorsque la valeur du compteur chute entre deux points de données consécutifs. À utiliser avec les compteurs.
resets(go_memstats_heap_sys_bytes[5m])
round()
Arrondit chaque point de données au multiple le plus proche de to_nearest. Si to_nearest est omis, l'arrondi se fait à l'entier le plus proche.
Syntaxe : round(v instant-vector, to_nearest=1 scalar)
round(go_memstats_heap_sys_bytes)