From afcbbc85cd9b588960334314b6a95646e6a77681 Mon Sep 17 00:00:00 2001 From: luckysideburn Date: Sat, 2 Mar 2024 02:00:42 +0000 Subject: [PATCH] fixed --- html5/chaos_report.js | 165 ++++++++++++++++++++++++++++++++++----- html5/images/favicon.ico | Bin 15406 -> 34494 bytes html5/index.html | 30 +++---- html5/kubeinvaders.js | 27 ++++++- html5/modals.js | 8 ++ 5 files changed, 195 insertions(+), 35 deletions(-) diff --git a/html5/chaos_report.js b/html5/chaos_report.js index d735380..e9d78fc 100644 --- a/html5/chaos_report.js +++ b/html5/chaos_report.js @@ -79,13 +79,15 @@ function checkIfSomeItemIsEmpty(dict, except) { return false; } +function chaosReportKeepAlive(chaosReportprojectName) { + var oReq = new XMLHttpRequest(); + oReq.open("GET", k8s_url + "/chaos/report/keepalive?project=" + chaosReportprojectName, true); + oReq.setRequestHeader("Content-Type", "application/json"); + oReq.send(); +} + function sendSavedChaosReport() { - startGameMode() - chaos_report_switch = true; - document.getElementById("httpStatsCanvasDiv").style.display = "block"; - document.getElementById("chartDiv").style.display = "block"; - drawCanvasHTTPStatusCodeStats() var presetBodyDict = { "chaosReportAuthor": $("#chaosReportAuthor").val(), "chaosReportProject": $("#chaosReportProject").val(), @@ -95,10 +97,21 @@ function sendSavedChaosReport() { "chaosReportCheckSiteURLPayload": chaos_report_post_data } + if (!isValidURL(presetBodyDict["chaosReportCheckSiteURL"])) { + alert("Invalid URL"); + return; + } + if (chaos_report_start_date == "") { chaos_report_start_date = new Date(); } + startGameMode() + chaos_report_switch = true; + document.getElementById("httpStatsCanvasDiv").style.display = "block"; + document.getElementById("chartDiv").style.display = "block"; + drawCanvasHTTPStatusCodeStats(); + chaosReportprojectName = presetBodyDict["chaosReportProject"]; $("#chaosReportAuthorDiv").html(presetBodyDict["chaosReportAuthor"]); $("#chaosReportProjectDiv").html(presetBodyDict["chaosReportProject"]); @@ -106,10 +119,6 @@ function sendSavedChaosReport() { $("#chaosReportSessionTimeDiv").html(diffBetweenTwoDates(chaos_report_start_date, new Date()) + " seconds"); $("#chaosReportCheckSiteURLDiv").html(presetBodyDict["chaosReportCheckSiteURL"]); - if (!isValidURL(presetBodyDict["chaosReportCheckSiteURL"])) { - alert("Invalid URL"); - return; - } if (headerAreLikePythonRequestHeaders(presetBodyDict["chaosReportCheckSiteURLHeaders"]) == false) { alert("Invalid headers. Insert them like this: \"Content-Type\": \"application/json; charset=utf-8\";\"Authorization\""); @@ -149,7 +158,8 @@ function sendSavedChaosReport() { if(myHTTPElapsedChart != null && myHTTPElapsedChart != undefined){ myHTTPElapsedChart.resize(); } - + document.getElementById("myCanvas").scrollIntoView(true); + document.getElementById("flagChaosReport").checked = true; } function readContentOfUploadedFile() { @@ -176,7 +186,6 @@ function saveChaosReport() { } function updateElapsedTimeArray(projectName) { - $("#chaosReportSessionTimeDiv").html(diffBetweenTwoDates(chaos_report_start_date, new Date()) + " seconds"); console.log("[SAVE-CHAOS-REPORT-CONF] Diff Between Dates: " + toString(diffBetweenTwoDates(chaos_report_start_date, new Date()))); console.log("[SAVE-CHAOS-REPORT-CONF] Updating elapsed time array for project: " + projectName); @@ -195,6 +204,94 @@ function updateElapsedTimeArray(projectName) { } };; + oReq.open("GET", k8s_url + "/chaos/redis/get?key=" + redis_key, true); + oReq.setRequestHeader("Content-Type", "application/json"); + oReq.send(); + updateStatusCodePieChart(projectName); +} + +function updateStatusCodePieChart(projectName) { + console.log("[SAVE-CHAOS-REPORT-CONF] Updating Status Code Pie Chart for project: " + projectName); + + var oReq = new XMLHttpRequest(); + var redis_key = projectName + "_check_url_status_code"; + console.log("[SAVE-CHAOS-REPORT-CONF] Redis key: " + redis_key); + + oReq.onreadystatechange = function () { + if (this.readyState === XMLHttpRequest.DONE && this.status === 200) { + var status_code = this.responseText.trim(); + console.log("[SAVE-CHAOS-REPORT-CONF] Status Code Pie Chart received from Redis: |" + status_code + "|"); + + chart_status_code_dict[status_code] = chart_status_code_dict[status_code] + 1 + + myHTTPStatusCodeChart.setOption({ + series: [ + { + type: 'pie', + data: [ + { + value: chart_status_code_dict["200"], + name: '200', + itemStyle: {color: 'green'}, + }, + { + value: chart_status_code_dict["500"], + name: '500', + itemStyle: {color: 'red'}, + }, + { + value: chart_status_code_dict["502"], + name: '502', + itemStyle: {color: 'red'}, + }, + { + value: chart_status_code_dict["503"], + name: '503', + itemStyle: {color: 'red'}, + }, + { + value: chart_status_code_dict["504"], + name: '504', + itemStyle: {color: 'red'}, + }, + { + value: chart_status_code_dict["400"], + name: '400', + itemStyle: {color: 'yellow'}, + }, + { + value: chart_status_code_dict["401"], + name: '401', + itemStyle: {color: 'yellow'}, + }, + { + value: chart_status_code_dict["403"], + name: '403', + itemStyle: {color: 'yellow'}, + }, + { + value: chart_status_code_dict["404"], + name: '404', + itemStyle: {color: 'yellow'}, + }, + { + value: chart_status_code_dict["Connection Error"], + name: 'Connection Error', + itemStyle: {color: 'black'}, + }, + { + value: chart_status_code_dict["Other"], + name: 'Other', + itemStyle: {color: 'grey'}, + }, + ], + roseType: 'area' + } + ] + }); + } + };; + oReq.open("GET", k8s_url + "/chaos/redis/get?key=" + redis_key, true); oReq.setRequestHeader("Content-Type", "application/json"); oReq.send(); @@ -416,29 +513,59 @@ option = { type: 'pie', data: [ { - value: 23, + value: chart_status_code_dict["200"], name: '200', itemStyle: {color: 'green'}, }, { - value: 34, + value: chart_status_code_dict["500"], name: '500', itemStyle: {color: 'red'}, }, { - value: 34, + value: chart_status_code_dict["502"], name: '502', - itemStyle: {color: 'grey'}, + itemStyle: {color: 'red'}, }, { - value: 34, + value: chart_status_code_dict["503"], + name: '503', + itemStyle: {color: 'red'}, + }, + { + value: chart_status_code_dict["504"], name: '504', + itemStyle: {color: 'red'}, + }, + { + value: chart_status_code_dict["400"], + name: '400', + itemStyle: {color: 'yellow'}, + }, + { + value: chart_status_code_dict["401"], + name: '401', + itemStyle: {color: 'yellow'}, + }, + { + value: chart_status_code_dict["403"], + name: '403', + itemStyle: {color: 'yellow'}, + }, + { + value: chart_status_code_dict["404"], + name: '404', + itemStyle: {color: 'yellow'}, + }, + { + value: chart_status_code_dict["Connection Error"], + name: 'Connection Error', itemStyle: {color: 'black'}, }, { - value: 34, - name: 'other', - itemStyle: {color: 'yellow'}, + value: chart_status_code_dict["Other"], + name: 'Other', + itemStyle: {color: 'grey'}, }, ], roseType: 'area' diff --git a/html5/images/favicon.ico b/html5/images/favicon.ico index 6409f644b19fecdf3fb9c12e8255799fd6c7dad0..d8e905f4064ff112d0cbb1bf12ba3a58adb8d244 100644 GIT binary patch literal 34494 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 literal 15406 zcmeHNX-rgC6n;(nyS1@4{nM5oO=Fujp-DA00ZY>5hfUmSEA~fYL)uuY*0wl=w3-SI zvM8HcYgt4X7#EfyvI$m}AjlpJ$SP%tQ$avroPk;J>pREJD3uXrm^Tjgo#f=6d)~eG zob%l~^JdPug7B2^w6J7}Ahuq@wr2!kr634iUibRTpBIE=QRnUb@AKCMp=y~REEmU! zQ^Xnf^kOqB;Rzy(#e&}6UUYYNqo=0_gM)+6YPIO>?Bsrbe?O+Dr|m{OH8ll|MuYV9 zbmZmbAwNGKIXOAV%F1Fr$&Z@<;KF*N&enZUwkhWjl)2xbtnEBA$&S*7*thU;sXe$zlZYlT5RI zDL9~{?-?(V{Y0kkCwufHV<^WaBe0ke(ChWMbm!_)z zL4AEanwpwepP8A7%F0SyxNrg2u3bYxK>JvTQ^2~;d5Xq^NrEJ+-{!?9x4cAek{gCqrB495s@PE-$oOHlDhdq^4M#KpxSIyxGA z_wMD~uu`eyepgo)l9Q8JKR!M#SqK9I0|*ER0Ofy+i;IzvkifZO@}FX&d@}h@xm?mw zo|=568gFQ5D0c1I#c?DhC2`!OkBN!lIg|&FjEuzC*qEgLQ?8r*r(AntVj_+oKaL$c zc5t6C4+{%pIXpa^V>*2JFvm)JLl{%8p7xFE)igIEB7$R~y`a3glzHjN$w~C}^>NL8 zXlMwuAGG&vZEd)9>lWJE+qw2WGBUz-c&g1)O`e`nU14~57#$rQJcnukt*xy*zPY&> zv>w$Kr1W31jrD+qr%Z-pW8}`zoaSiE`Np(4$GLkzeDN*K_v(@}KhMA4a@v zyGLTZPhxF9ig<;`c(VW2od2U**?-rcF6;TR;=bj#mC!VtL|&5$BwO{=E(ZLmX7}X@ zAF+XPgnj-=6uTjP{QhSsPL@ZCx@D~M30;b` z%2=2!&fi^ez32B=9GcK#vv}XYiuHQ&eY`R5ZCjr{3q#}D`x87+%C1Yos{PN|e743y zI(79i5A=AZO9rDJ0f`?x|luuYNOkr9v)kP(m(kP&bJ0^;=`nPdcadd an http endpoint to be analyzed during the chaos engineering session -
+
@@ -170,7 +170,7 @@
@@ -212,7 +212,7 @@
- + @@ -268,15 +268,15 @@
- Selected Namespace:  NULL
- Deleted Pods Total:  0
- Chaos Jobs Total:  0
+ Selected Namespace:  NULL
+ Deleted Pods Total:  0
+ Chaos Jobs Total:  0
- Current Chaos Pods:  0
- Not Running Pods:  0
+ Current Chaos Pods:  0
+ Not Running Pods:  0
- Current Replicas State Delay:  0 sec
- Latest Replicas State Delay:  0 sec 
+ Current Replicas State Delay:  0 sec
+ Latest Replicas State Delay:  0 sec 
@@ -384,7 +384,7 @@ experiments: