Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
|
pub_zone:linux:stack_tig [20:14 06/12/2017] nimbus créée |
pub_zone:linux:stack_tig [11:40 07/12/2017] nimbus [Correction d'une SERIE] |
||
|---|---|---|---|
| Ligne 14: | Ligne 14: | ||
| <WRAP center round info> | <WRAP center round info> | ||
| **Contexte : **\\ | **Contexte : **\\ | ||
| - | J'ai des erreurs de mesures()) | + | J'ai des erreurs de mesures((Problème corrigé depuis... causé par une concurrence d' |
| * Nom de la base InfluxDB : '' | * Nom de la base InfluxDB : '' | ||
| * La SERIE est stockée dans la MEASUREMENT '' | * La SERIE est stockée dans la MEASUREMENT '' | ||
| * Fréquence de collecte : '' | * Fréquence de collecte : '' | ||
| + | * Valeurs à corriger : | ||
| + | * Points de **température > 100°C** (la pièce à vivre n'est pas censée être un four ;-)) | ||
| + | * Points d' | ||
| </ | </ | ||
| Ligne 24: | Ligne 27: | ||
| On affiche la structure de la **MEASUREMENT** | On affiche la structure de la **MEASUREMENT** | ||
| <code sql> | <code sql> | ||
| - | SHOW SERIES FROM Temperature_temperhum | + | > SHOW SERIES FROM Temperature_temperhum |
| key | key | ||
| --- | --- | ||
| Temperature_temperhum, | Temperature_temperhum, | ||
| - | SHOW TAG KEYS FROM Temperature_temperhum | + | > SHOW TAG KEYS FROM Temperature_temperhum |
| name: Temperature_temperhum | name: Temperature_temperhum | ||
| tagKey | tagKey | ||
| Ligne 35: | Ligne 38: | ||
| host | host | ||
| - | SHOW FIELD KEYS FROM Temperature_temperhum | + | > SHOW FIELD KEYS FROM Temperature_temperhum |
| name: Temperature_temperhum | name: Temperature_temperhum | ||
| fieldKey fieldType | fieldKey fieldType | ||
| Ligne 44: | Ligne 47: | ||
| * 1 tagKey '' | * 1 tagKey '' | ||
| * 1 fieldKey '' | * 1 fieldKey '' | ||
| + | |||
| + | Commençons par évaluer l' | ||
| + | <code sql> | ||
| + | > SELECT COUNT(" | ||
| + | name: Temperature_temperhum | ||
| + | time count | ||
| + | ---- ----- | ||
| + | 1970-01-01T00: | ||
| + | |||
| + | > SELECT COUNT(" | ||
| + | name: Humidity_temperhum | ||
| + | time count | ||
| + | ---- ----- | ||
| + | 1970-01-01T00: | ||
| + | </ | ||
| + | |||
| + | Bon ok, une vingtaine de points de mesure à corriger, // | ||
| + | |||
| + | <WRAP center round tip> | ||
| + | Pour appliquer la 2ème méthode, qui implique d' | ||
| + | </ | ||
| + | |||
| + | Liste des points de **température** à corriger | ||
| + | <code sql> | ||
| + | > PRECISION rfc3339 | ||
| + | > SELECT * FROM Temperature_temperhum WHERE value > 100 LIMIT 20; | ||
| + | name: Temperature_temperhum | ||
| + | time | ||
| + | ---- | ||
| + | 2017-12-04T14: | ||
| + | 2017-12-04T19: | ||
| + | 2017-12-04T20: | ||
| + | 2017-12-04T22: | ||
| + | 2017-12-04T23: | ||
| + | 2017-12-04T23: | ||
| + | 2017-12-05T22: | ||
| + | 2017-12-06T00: | ||
| + | 2017-12-06T00: | ||
| + | 2017-12-06T10: | ||
| + | |||
| + | > PRECISION ns | ||
| + | > SELECT * FROM Temperature_temperhum WHERE value > 100 LIMIT 20; | ||
| + | name: Temperature_temperhum | ||
| + | time host value | ||
| + | ---- ---- ----- | ||
| + | 1512399001000000000 drouard.eu 568.5 | ||
| + | 1512415503000000000 drouard.eu 568.5 | ||
| + | 1512417901000000000 drouard.eu 568.5 | ||
| + | 1512425705000000000 drouard.eu 568.5 | ||
| + | 1512430801000000000 drouard.eu 568.5 | ||
| + | 1512431402000000000 drouard.eu 568.5 | ||
| + | 1512511801000000000 drouard.eu 568.5 | ||
| + | 1512518405000000000 drouard.eu 568.5 | ||
| + | 1512519002000000000 drouard.eu 568.5 | ||
| + | 1512557104000000000 drouard.eu 568.5 | ||
| + | </ | ||
| + | |||
| + | Liste des points d' | ||
| + | <code sql> | ||
| + | > PRECISION rfc3339 | ||
| + | > SELECT * FROM Humidity_temperhum WHERE value > 100 LIMIT 20; | ||
| + | name: Humidity_temperhum | ||
| + | time | ||
| + | ---- | ||
| + | 2017-12-04T14: | ||
| + | 2017-12-04T19: | ||
| + | 2017-12-04T20: | ||
| + | 2017-12-04T22: | ||
| + | 2017-12-04T23: | ||
| + | 2017-12-04T23: | ||
| + | 2017-12-05T22: | ||
| + | 2017-12-06T00: | ||
| + | 2017-12-06T00: | ||
| + | 2017-12-06T10: | ||
| + | |||
| + | > PRECISION ns | ||
| + | > SELECT * FROM Humidity_temperhum WHERE value > 100 LIMIT 20; | ||
| + | name: Humidity_temperhum | ||
| + | time host value | ||
| + | ---- ---- ----- | ||
| + | 1512399001000000000 drouard.eu 2517 | ||
| + | 1512415503000000000 drouard.eu 2517 | ||
| + | 1512417901000000000 drouard.eu 2517 | ||
| + | 1512425705000000000 drouard.eu 2517 | ||
| + | 1512430801000000000 drouard.eu 2517 | ||
| + | 1512431402000000000 drouard.eu 2517 | ||
| + | 1512511801000000000 drouard.eu 2517 | ||
| + | 1512518405000000000 drouard.eu 2517 | ||
| + | 1512519002000000000 drouard.eu 2517 | ||
| + | 1512557104000000000 drouard.eu 2517 | ||
| + | </ | ||
| + | |||
| + | Passons à la correction !\\ | ||
| + | En fonction de la nature, criticité de la métrique, 2 possibilités pour corriger l' | ||
| + | * Méthode 1 ☛ **Supprimer la valeur** erronée : | ||
| + | * Il est possible de corriger l' | ||
| + | * Méthode 2 ☛ **Maquiller la valeur** erronée (Ce n'est qu'une extension de la méthode 1) : | ||
| + | * Cette stratégie consiste sournoisement à faire une moyenne (par ex.) entre les 2 valeurs entourant le pic puis à inscrire cette valeur à la place de la valeur du pic | ||
| + | |||
| + | Prenons l' | ||
| + | <code sql> | ||
| + | > SELECT * FROM Temperature_temperhum WHERE time >= ' | ||
| + | name: Temperature_temperhum | ||
| + | time | ||
| + | ---- | ||
| + | 2017-12-04T14: | ||
| + | 2017-12-04T14: | ||
| + | 2017-12-04T14: | ||
| + | </ | ||
| + | |||
| + | On supprime la valeur erronée | ||
| + | <code sql> | ||
| + | DELETE FROM Temperature_temperhum WHERE " | ||
| + | </ | ||
| + | |||
| + | On vérifie que la mesure à bien été supprimée | ||
| + | <code sql> | ||
| + | > SELECT * FROM Temperature_temperhum WHERE time >= ' | ||
| + | name: Temperature_temperhum | ||
| + | time | ||
| + | ---- | ||
| + | 2017-12-04T14: | ||
| + | 2017-12-04T14: | ||
| + | </ | ||
| + | |||
| + | La **méthode 1** consiste à en rester là et éventuellement maquiller légèrement la courbe dans Grafana... | ||
| + | |||
| + | Maintenant, on va aller un peu plus loin avec la **méthode 2**. | ||
| + | <WRAP center round info> | ||
| + | **Note** : il faut savoir que si l'on insert une valeur avec un **timestamp existant**, alors l''' | ||
| + | </ | ||
| + | |||
| + | On va devoir injecter une nouvelle valeur avec comme paramètres : | ||
| + | * **'' | ||
| + | * Dans cet ex : '' | ||
| + | * **'' | ||
| + | * Dans cet ex : '' | ||
| + | |||
| + | Syntaxe générique d' | ||
| + | |||
| + | <code bash> | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | Ensuite, on peut forger la requête d' | ||
| + | * En mode **CLI** via le client '' | ||
| + | <code sql> | ||
| + | INSERT Temperature_temperhum, | ||
| + | </ | ||
| + | * En mode **HTTP API** (C'est à la mode... et et c'est pratique aussi) via '' | ||
| + | <code bash> | ||
| + | curl -i -XPOST -u USERNAME: | ||
| + | </ | ||
| + | |||
| + | Enfin, on vérifie la correction | ||
| + | <code sql> | ||
| + | > SELECT * FROM Temperature_temperhum WHERE time >= ' | ||
| + | name: Temperature_temperhum | ||
| + | time | ||
| + | ---- | ||
| + | 2017-12-04T14: | ||
| + | 2017-12-04T14: | ||
| + | 2017-12-04T14: | ||
| + | </ | ||