Vim Online ;)

Car les fichiers textes éparpillés de partout, ça devient usant ô_Ô

Outils pour utilisateurs

Outils du site


pub_zone:linux:stack_tig

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révisionLes deux révisions suivantes
pub_zone:linux:stack_tig [13:40 07/12/2017] – [Correction d'une SERIE] nimbuspub_zone:linux:stack_tig [15:01 07/12/2017] nimbus
Ligne 8: Ligne 8:
  
 ==== Correction d'une SERIE ==== ==== Correction d'une SERIE ====
-<WRAP center round todo 60%> 
-Work in Progress 8-o 
-</WRAP> 
- 
 <WRAP center round info> <WRAP center round info>
 **Contexte : **\\ **Contexte : **\\
 J'ai des erreurs de mesures((Problème corrigé depuis... causé par une concurrence d'accès à la sonde entre Nagios et Telegraf.)) remontées par une de mes sondes de température, que je souhaite corriger à la méthode du garagiste Islandais((Fix It or Remove It :p)) (:-x Private Joke) : J'ai des erreurs de mesures((Problème corrigé depuis... causé par une concurrence d'accès à la sonde entre Nagios et Telegraf.)) remontées par une de mes sondes de température, que je souhaite corriger à la méthode du garagiste Islandais((Fix It or Remove It :p)) (:-x Private Joke) :
   * Nom de la base InfluxDB : ''influxdb''   * Nom de la base InfluxDB : ''influxdb''
-  * La SERIE est stockée dans la MEASUREMENT ''Temperature_temperhum''+  * La SERIE est stockée dans la MEASUREMENT ''Temperature_temper''
   * Fréquence de collecte : ''5 min / 300 sec''   * Fréquence de collecte : ''5 min / 300 sec''
-  * Valeurs à corriger :+  * Valeur à corriger :
     * Points de **température > 100°C** (la pièce à vivre n'est pas censée être un four ;-))     * Points de **température > 100°C** (la pièce à vivre n'est pas censée être un four ;-))
-    * Points d'**humidité > 100%** (100% étant l'humidité de l'eau, je ne vois pas bien ce que pourrait être une humidité  de 110% ^_^) 
 </WRAP> </WRAP>
  
Ligne 27: Ligne 22:
  
 __Après__ correction : __Après__ correction :
-{{ :pub_zone:linux:grafana_graph_avant_correction01.png?600 |Après correction...}}+{{ :pub_zone:linux:grafana_graph_apres_correction01.png?600 |Après correction...}}
 On commence par [[#connexion_a_la_bdd|se connecter à la base de données]] qui va bien... On commence par [[#connexion_a_la_bdd|se connecter à la base de données]] qui va bien...
  
 On affiche la structure de la **MEASUREMENT** On affiche la structure de la **MEASUREMENT**
 <code bash> <code bash>
-> SHOW SERIES FROM Temperature_temperhum+> SHOW SERIES FROM Temperature_temper
 key key
 --- ---
-Temperature_temperhum,host=drouard.eu+Temperature_temper,host=drouard.eu
  
-> SHOW TAG KEYS FROM Temperature_temperhum +> SHOW TAG KEYS FROM Temperature_temper 
-name: Temperature_temperhum+name: Temperature_temper
 tagKey tagKey
 ------ ------
 host host
  
-> SHOW FIELD KEYS FROM Temperature_temperhum +> SHOW FIELD KEYS FROM Temperature_temper 
-name: Temperature_temperhum+name: Temperature_temper
 fieldKey fieldType fieldKey fieldType
 -------- --------- -------- ---------
Ligne 55: Ligne 50:
 Commençons par évaluer l'ampleur de la tâche à réaliser (et voir si il ne serait pas plus efficace de créer un script...) Commençons par évaluer l'ampleur de la tâche à réaliser (et voir si il ne serait pas plus efficace de créer un script...)
 <code bash> <code bash>
-> SELECT COUNT("value") FROM Temperature_temperhum WHERE value > 100; +> SELECT COUNT("value") FROM Temperature_temper WHERE value > 100; 
-name: Temperature_temperhum+name: Temperature_temper
 time                 count time                 count
 ----                 ----- ----                 -----
-1970-01-01T00:00:00Z 10 +1970-01-01T00:00:00Z 1
- +
-> SELECT COUNT("value") FROM Humidity_temperhum WHERE value > 100; +
-name: Humidity_temperhum +
-time                 count +
-----                 ----- +
-1970-01-01T00:00:00Z 10+
 </code> </code>
  
-Bon ok, une vingtaine de points de mesure à corriger, //c'est pas si pire//...+Bon ok, 1 point de mesure à corriger, //c'est pas si pire//...
  
 <WRAP center round tip> <WRAP center round tip>
Ligne 77: Ligne 66:
 <code bash> <code bash>
 > PRECISION rfc3339 > PRECISION rfc3339
-> SELECT * FROM Temperature_temperhum WHERE value > 100 LIMIT 20+> SELECT * FROM Temperature_temper WHERE value > 100 LIMIT 10
-name: Temperature_temperhum+name: Temperature_temper
 time                 host       value time                 host       value
 ----                 ----       ----- ----                 ----       -----
-2017-12-04T14:50:01Z drouard.eu 568.5 +2017-12-07T11:00:04Z drouard.eu 568.5
-2017-12-04T19:25:03Z drouard.eu 568.5 +
-2017-12-04T20:05:01Z drouard.eu 568.5 +
-2017-12-04T22:15:05Z drouard.eu 568.5 +
-2017-12-04T23:40:01Z drouard.eu 568.5 +
-2017-12-04T23:50:02Z drouard.eu 568.5 +
-2017-12-05T22:10:01Z drouard.eu 568.5 +
-2017-12-06T00:00:05Z drouard.eu 568.5 +
-2017-12-06T00:10:02Z drouard.eu 568.5 +
-2017-12-06T10:45:04Z drouard.eu 568.5+
  
 > PRECISION ns > PRECISION ns
-> SELECT * FROM Temperature_temperhum WHERE value > 100 LIMIT 20+> SELECT * FROM Temperature_temper WHERE value > 100 LIMIT 10
-name: Temperature_temperhum+name: Temperature_temper
 time                host       value time                host       value
 ----                ----       ----- ----                ----       -----
-1512399001000000000 drouard.eu 568.5 +1512644404000000000 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 +
-</code> +
- +
-Liste des points d'**humidité** à corriger +
-<code bash> +
-> PRECISION rfc3339 +
-> SELECT * FROM Humidity_temperhum WHERE value > 100 LIMIT 20; +
-name: Humidity_temperhum +
-time                 host       value +
-----                 ----       ----- +
-2017-12-04T14:50:01Z drouard.eu 2517 +
-2017-12-04T19:25:03Z drouard.eu 2517 +
-2017-12-04T20:05:01Z drouard.eu 2517 +
-2017-12-04T22:15:05Z drouard.eu 2517 +
-2017-12-04T23:40:01Z drouard.eu 2517 +
-2017-12-04T23:50:02Z drouard.eu 2517 +
-2017-12-05T22:10:01Z drouard.eu 2517 +
-2017-12-06T00:00:05Z drouard.eu 2517 +
-2017-12-06T00:10:02Z drouard.eu 2517 +
-2017-12-06T10:45:04Z drouard.eu 2517 +
- +
-> 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+
 </code> </code>
  
Ligne 151: Ligne 87:
     * 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     * 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'exemple de l'erreur du **4 décembre 2017 15h50 UTC+1** (''2017-12-04T14:50:01Z''). On commence par identifier le laps de temps incriminé via une petite requête :+On commence par identifier le laps de temps incriminé via une petite requête (±1 période de collecte) :
 <code bash> <code bash>
-> SELECT * FROM Temperature_temperhum WHERE time >= '2017-12-04T14:44:01Z' AND time <= '2017-12-04T14:56:01Z+> PRECISION rfc3339 
-name: Temperature_temperhum+> SELECT * FROM Temperature_temper WHERE time >= '2017-12-07T10:54:04Z' AND time <= '2017-12-07T11:06:04Z
 +name: Temperature_temper
 time                 host       value time                 host       value
 ----                 ----       ----- ----                 ----       -----
-2017-12-04T14:45:03Z drouard.eu 20.78 +2017-12-07T10:55:01Z drouard.eu 19.29 
-2017-12-04T14:50:01Z drouard.eu 568.5 +2017-12-07T11:00:04Z drouard.eu 568.5 
-2017-12-04T14:55:04Z drouard.eu 20.72+2017-12-07T11:05:01Z drouard.eu 19.31
 </code> </code>
  
 On supprime la valeur erronée On supprime la valeur erronée
 <code bash> <code bash>
-DELETE FROM Temperature_temperhum WHERE "host" = 'drouard.eu' AND time = '2017-12-04T14:50:01Z'+DELETE FROM Temperature_temper WHERE "host" = 'drouard.eu' AND time = '2017-12-07T11:00:04Z'
 </code> </code>
  
 On vérifie que la mesure à bien été supprimée On vérifie que la mesure à bien été supprimée
 <code bash> <code bash>
-> SELECT * FROM Temperature_temperhum WHERE time >= '2017-12-04T14:44:01Z' AND time <= '2017-12-04T14:56:01Z+> SELECT * FROM Temperature_temper WHERE time >= '2017-12-07T10:54:04Z' AND time <= '2017-12-07T11:06:04Z
-name: Temperature_temperhum+name: Temperature_temper
 time                 host       value time                 host       value
 ----                 ----       ----- ----                 ----       -----
-2017-12-04T14:45:03Z drouard.eu 20.78 +2017-12-07T10:55:01Z drouard.eu 19.29 
-2017-12-04T14:55:04Z drouard.eu 20.72+2017-12-07T11:05:01Z drouard.eu 19.31
 </code> </code>
  
Ligne 186: Ligne 123:
 On va devoir injecter une nouvelle valeur avec comme paramètres : On va devoir injecter une nouvelle valeur avec comme paramètres :
   * **''value''** = Moyenne des valeurs encadrant   * **''value''** = Moyenne des valeurs encadrant
-    * Dans cet ex : ''(20.78 20.72) / 2'' = **20.75**+    * Dans cet ex : ''(19.29 19.31) / 2'' = **19.30**
   * **''timestamp''** = Timestamp au format epoch, précision à la nanoseconde   * **''timestamp''** = Timestamp au format epoch, précision à la nanoseconde
-    * Dans cet ex : ''date -d 2017-12-04T14:50:01Z +%s%N'' = **1512399001000000000**+    * Dans cet ex : ''timestamp'' = **1512644404000000000** 
 + 
 +<WRAP center round tip> 
 +A noter qu'il est possible de convertir une date au format RFC-3339 vers le format epoch avec une précision à la nanoseconde avec la commande ''date''
 +<code bash> 
 +date -d 2017-12-07T11:00:04Z +%s%N 
 +</code> 
 +</WRAP> 
  
 Syntaxe générique d'insertion de donnée dans InfluxDB (Docs de référence sur [[https://docs.influxdata.com]] : [[https://docs.influxdata.com/influxdb/v1.3/introduction/getting_started/#writing-and-exploring-data|Writing and exploring data]] et [[https://docs.influxdata.com/influxdb/v1.3/write_protocols/line_protocol_reference/|Line Protocol]]) : Syntaxe générique d'insertion de donnée dans InfluxDB (Docs de référence sur [[https://docs.influxdata.com]] : [[https://docs.influxdata.com/influxdb/v1.3/introduction/getting_started/#writing-and-exploring-data|Writing and exploring data]] et [[https://docs.influxdata.com/influxdb/v1.3/write_protocols/line_protocol_reference/|Line Protocol]]) :
Ligne 199: Ligne 144:
   * En mode **CLI** via le client ''influx''   * En mode **CLI** via le client ''influx''
 <code bash> <code bash>
-INSERT Temperature_temperhum,host=drouard.eu value=20.75 1512399001000000000+INSERT Temperature_temper,host=drouard.eu value=19.30 1512644404000000000
 </code> </code>
   * En mode **HTTP API** (C'est à la mode... et et c'est pratique aussi) via ''curl''   * En mode **HTTP API** (C'est à la mode... et et c'est pratique aussi) via ''curl''
 <code bash> <code bash>
-curl -i -XPOST -u USERNAME:PASSWORD "http://localhost:8086/write?db=db_drouard&precision=ns" --data-binary 'Temperature_temperhum,host=drouard.eu value=20.75 1512399001000000000'+curl -i -XPOST -u USERNAME:PASSWORD "http://localhost:8086/write?db=db_drouard&precision=ns" --data-binary 'Temperature_temper,host=drouard.eu value=19.30 1512644404000000000'
 </code> </code>
  
 Enfin, on vérifie la correction Enfin, on vérifie la correction
 <code bash> <code bash>
-> SELECT * FROM Temperature_temperhum WHERE time >= '2017-12-04T14:44:01Z' AND time <= '2017-12-04T14:56:01Z+> SELECT * FROM Temperature_temper WHERE time >= '2017-12-07T10:54:04Z' AND time <= '2017-12-07T11:06:04Z
-name: Temperature_temperhum +name: Temperature_temper 
-time                 host       value +time                host       value 
-----                 ----       ----- +----                ----       ----- 
-2017-12-04T14:45:03Z drouard.eu 20.78 +1512644101000000000 drouard.eu 19.29 
-2017-12-04T14:50:01Z drouard.eu 20.75 +1512644404000000000 drouard.eu 19.3 
-2017-12-04T14:55:04Z drouard.eu 20.72+1512644701000000000 drouard.eu 19.31
 </code> </code>
pub_zone/linux/stack_tig.txt · Dernière modification : 15:05 27/06/2019 de nimbus