Bonsoir,
Avant de vous expliquer mon problème, je souhaite vous expliquer quel est le but de mon programme. J'utilise aws-cloudwtach avec lequel je peux afficher des datapoints (Timestamp et Average) pour les différentes sites.
Donc pour l'instant, j'ai un JSON avec 3 éléments:
Ce que je fais, c'est d'afficher 5 datapoints pour chaque éléments de JSON. Ensuite je regarde mes 5 datapoints et j'affiche la majorité de mon Average. Si la majorité est égale à 200 alors le statut est vrai sinon le statut est faux. Et justement, lorsque c'est faux, mon but est de récupérer le timestamp pour ensuite le stocker dans un fichier tmp.txt. Et donc je suis bloquer sur la façon de récupérer le timestamp quand le statut est faux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 var arr = [ { "region": "eu-west", "value": "http://****" }, { "region": "eu-west", "value": "http://****" }, { "region": "eu-west", "value": "http://****" }, ]
Exemple (avec un élement du JSON) :
(Timestamp: 14/01/2019 15:00; Average: 200)
(Timestamp: 14/01/2019 15:05; Average: 200)
(Timestamp: 14/01/2019 15:10; Average: 200)
(Timestamp: 14/01/2019 15:15; Average: 200)
(Timestamp: 14/01/2019 15:20; Average: 200)
-> Majorité: 200, Statut est vrai, on fait rien
(Timestamp: 14/01/2019 15:00; Average: 200)
(Timestamp: 14/01/2019 15:05; Average: 400)
(Timestamp: 14/01/2019 15:10; Average: 200)
(Timestamp: 14/01/2019 15:15; Average: 400)
(Timestamp: 14/01/2019 15:20; Average: 400)
-> Majorité: 400, Statut est faux, on récupère un timestamp (14/01/2019 15:20) et on le stocke dans un fichier tmp.txt
Je vous montre mon code pour mieux comprendre ma demande:
J'ai tenté de faire un truc mais c'est faux car mon timestamp récupérer est complètement aléatoire et il m'affiche uniquement un timestamp alors qu'il doit m'en afficher 3 puisque j'ai 3 éléments dans mon JSON.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 for (const key in arr) { var region= arr[key].region var Value = arr[key].value cw.getMetricStatistics(params, function(err, data) { if (err){ console.log(err, err.stack); // an error occurred } else { var status; //console.log(data.Datapoints); let downtime = data.Datapoints.slice(0,1).map(e=>e.Timestamp); let majority = data.Datapoints.slice(0,5).map(e=>e.Average); console.log(majority); /*********** SCRIPT MAJORITY***************/ console.log(item+" ( " +a+" times ) ") ; / Output 200 (up) or 400-500 (down) if(item === 200){ status = "up" check_tab[key] = status; }) } /****** NEED HELP IN THIS PART*********/ else{ status = "down" check_tab[key] = status; fs.writeFile('temp.txt',downtime, function(err, data){ if (err) console.log(err); console.log("Successfully Written to File."); } console.log("aaa: "+check_tab); } }); }
Je vous remercie de votre aide
Partager