2017-04-04 5 views
9

J'ai une base de données Influx remplie de valeurs. Ces valeurs sont présentées par Grafana. Ce dont j'ai besoin, c'est d'obtenir les valeurs réelles en fonction de l'intervalle de temps sélectionné.Utilisation de la sous-requête InfluxDB pour soustraire des valeurs

Actuellement, j'ai la requête suivante pour une seule mesure:

SELECT mean("value") FROM "table" WHERE $timeFilter GROUP BY time($interval) fill(null) 

Ce que je veux est de soustraire la valeur la plus basse de cet intervalle, il ne compte que les valeurs de l'intérieur de cet intervalle. Le graphique doit donc commencer à zéro. Pour obtenir la valeur la plus basse de cet intervalle j'utilise:

SELECT min("value") FROM "table" WHERE $timeFilter 

donc je pensais que la combinaison de ces deux (avec une sous-requête) comme celui-ci devrait fonctionner:

SELECT mean("value") - (SELECT min("value") FROM "table" WHERE $timeFilter) FROM "table" WHERE $timeFilter GROUP BY time($interval) fill(null) 

Malheureusement, ce travail ne marche pas. La requête n'est pas acceptée en tant que sous-requête.

+0

Quelle version d'Influx utilisez-vous? En principe en 1.2 devrait être possible de faire quelque chose comme ça. – Pigueiras

+0

J'utilise la version shell InfluxDB: 1.2.0. Je sais que les sous-requêtes sont possibles, mais dans la mesure où la documentation ne va que dans la section 'FROM'. La documentation ne donne pas d'exemples d'autres types de sous-requêtes. – Nhz

+2

Vous avez tout à fait raison, il semble que ce ne soit pas possible. Je pensais dans un hack faire du template avec grafana, mais ça ne marche pas parce qu'il montre l'horodatage au lieu du 'min (" count ")'. Je suppose que le mieux que vous pouvez obtenir est de calculer le min et le soustraire la constante de la requête :( – Pigueiras

Répondre

0

@Pigueiras:

je fais face à des difficultés à savoir quelle version de InfluxDB que ma configuration est en cours d'exécution sur. En fait, tout le workflow a été développé par mon collègue précédent, y compris InfluxDB (pour stocker des données de séries chronologiques) + Grafana (pour interroger & visualiser les données sur le frontend).

Cependant, je trouve que mon Grafana est v4.5.2

Je voudrais aussi utiliser les sous-requêtes dans Grafana comme suit:

InfluxDB Subqueries in Grafana FAILS with "error parsing query: GROUP BY requires at least one aggregate function"

Je ne sais pas si elle échoue coz incompatibilité de version ou autre chose.

Votre soutien serait grandement apprécié.

Bala