req_gatling-png--306285301.html 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <link rel="shortcut icon" type="image/x-icon" href="style/favicon.ico"/>
  6. <link href="style/style.css" rel="stylesheet" type="text/css" />
  7. <link href="style/bootstrap.min.css" rel="stylesheet" type="text/css" />
  8. <script src="js/jquery-3.5.1.min.js"></script>
  9. <script src="js/bootstrap.min.js"></script>
  10. <script src="js/gatling.js"></script>
  11. <script src="js/menu.js"></script>
  12. <script src="js/ellipsis.js"></script>
  13. <script src="js/all_sessions.js"></script>
  14. <script src="js/stats.js"></script>
  15. <script src="js/highstock.js"></script>
  16. <script src="js/highcharts-more.js"></script>
  17. <script src="js/theme.js"></script>
  18. <script src="js/unpack.js"></script>
  19. <title>Gatling Stats - gatling.png</title>
  20. </head>
  21. <body>
  22. <script>
  23. const storedTheme = localStorage.getItem('theme') || (window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light");
  24. if (storedTheme) document.documentElement.setAttribute('data-theme', storedTheme)
  25. function toggleTheme() {
  26. const currentTheme = document.documentElement.getAttribute("data-theme");
  27. const targetTheme = currentTheme === "light" ? "dark" : "light";
  28. document.documentElement.setAttribute('data-theme', targetTheme)
  29. localStorage.setItem('theme', targetTheme);
  30. };
  31. </script>
  32. <div class="app-container">
  33. <div class="frise"></div>
  34. <div class="head">
  35. <div class="gatling-open-source">
  36. <a class="gatling-logo gatling-logo-light" href="https://gatling.io" target="blank_" title="Gatling Home Page"><img alt="Gatling" src="style/logo-light.svg"/></a>
  37. <a class="gatling-logo gatling-logo-dark" href="https://gatling.io" target="blank_" title="Gatling Home Page"><img alt="Gatling" src="style/logo-dark.svg"/></a>
  38. <a class="gatling-documentation" href="https://gatling.io/docs/" target="_blank">Documentation</a>
  39. </div>
  40. <div class="nav spacer"></div>
  41. <a class="enterprise" href="https://gatling.io/enterprise/next-step/" target="_blank"><strong>Try</strong>
  42. <img class="logo-enterprise-light" alt="Gatling Enterprise" src="style/logo-enterprise-light.svg"/>
  43. <img class="logo-enterprise-dark" alt="Gatling Enterprise" src="style/logo-enterprise-dark.svg"/>
  44. </a>
  45. <button id="theme-toggle" class="theme-toggle" type="button" onclick="toggleTheme()" aria-label="Toggle user interface mode">
  46. <span class="toggle-dark"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path></svg></span>
  47. <span class="toggle-light"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg></span>
  48. </button>
  49. </div>
  50. <div class="container details">
  51. <div class="nav">
  52. <ul></ul>
  53. </div>
  54. <div class="cadre">
  55. <div class="content">
  56. <div class="content-header">
  57. <div class="onglet">
  58. CartsPageSimulation
  59. </div>
  60. <div class="sous-menu" id="sousMenu">
  61. <div class="sous-menu-spacer">
  62. <div class="item "><a href="index.html">Global</a></div>
  63. <div class="item ouvert"><a id="details_link" href="#">Details</a></div>
  64. </div>
  65. </div>
  66. </div>
  67. <div class="content-in">
  68. <div class="container-article">
  69. <div class="article">
  70. <div class="schema-container">
  71. <div id="ranges" class="schema ranges-large">
  72. </div>
  73. <div class="infos">
  74. <div class="infos-in">
  75. <div class="infos-title">Stats</div>
  76. <div class="info">
  77. <h2 class="first">Executions</h2>
  78. <table>
  79. <thead>
  80. <tr><th></th><th>Total</th><th>OK</th><th>KO</th></tr>
  81. </thead>
  82. <tbody>
  83. <tr>
  84. <td class="title">Total count</td>
  85. <td id="numberOfRequests" class="total"></td>
  86. <td id="numberOfRequestsOK" class="ok"></td>
  87. <td id="numberOfRequestsKO" class="ko"></td>
  88. </tr>
  89. <tr>
  90. <td class="title">Mean count/s</abbr></td>
  91. <td id="meanNumberOfRequestsPerSecond" class="total"></td>
  92. <td id="meanNumberOfRequestsPerSecondOK" class="ok"></td>
  93. <td id="meanNumberOfRequestsPerSecondKO" class="ko"></td>
  94. </tr>
  95. </tbody>
  96. </table>
  97. <h2 class="second">Response Time (ms)</h2>
  98. <table>
  99. <thead>
  100. <tr>
  101. <th></th>
  102. <th>Total</th>
  103. <th>OK</th>
  104. <th>KO</th>
  105. </tr>
  106. </thead>
  107. <tbody>
  108. <tr>
  109. <td class="title">Min</td>
  110. <td id="minResponseTime" class="total"></td>
  111. <td id="minResponseTimeOK" class="ok"></td>
  112. <td id="minResponseTimeKO" class="ko"></td>
  113. </tr>
  114. <tr>
  115. <td class="title">50th percentile</td>
  116. <td id="percentiles1" class="total"></td>
  117. <td id="percentiles1OK" class="ok"></td>
  118. <td id="percentiles1KO" class="ko"></td>
  119. </tr>
  120. <tr>
  121. <td class="title">75th percentile</td>
  122. <td id="percentiles2" class="total"></td>
  123. <td id="percentiles2OK" class="ok"></td>
  124. <td id="percentiles2KO" class="ko"></td>
  125. </tr>
  126. <tr>
  127. <td class="title">95th percentile</td>
  128. <td id="percentiles3" class="total"></td>
  129. <td id="percentiles3OK" class="ok"></td>
  130. <td id="percentiles3KO" class="ko"></td>
  131. </tr>
  132. <tr>
  133. <td class="title">99th percentile</td>
  134. <td id="percentiles4" class="total"></td>
  135. <td id="percentiles4OK" class="ok"></td>
  136. <td id="percentiles4KO" class="ko"></td>
  137. </tr>
  138. <tr>
  139. <td class="title">Max</td>
  140. <td id="maxResponseTime" class="total"></td>
  141. <td id="maxResponseTimeOK" class="ok"></td>
  142. <td id="maxResponseTimeKO" class="ko"></td>
  143. </tr>
  144. <tr>
  145. <td class="title">Mean</td>
  146. <td id="meanResponseTime" class="total"></td>
  147. <td id="meanResponseTimeOK" class="ok"></td>
  148. <td id="meanResponseTimeKO" class="ko"></td>
  149. </tr>
  150. <tr>
  151. <td class="title">Standard Deviation</td>
  152. <td id="standardDeviation" class="total"></td>
  153. <td id="standardDeviationOK" class="ok"></td>
  154. <td id="standardDeviationKO" class="ko"></td>
  155. </tr>
  156. </tbody>
  157. </table>
  158. </div>
  159. </div>
  160. </div>
  161. </div>
  162. <div class="statistics extensible-geant collapsed">
  163. <div class="title">
  164. Errors
  165. </div>
  166. <table id="container_errors" class="statistics-in extensible-geant">
  167. <thead>
  168. <tr>
  169. <th id="error-col-1" class="header sortable"><span>Error</span></th>
  170. <th id="error-col-2" class="header sortable"><span>Count</span></th>
  171. <th id="error-col-3" class="header sortable"><span>Percentage</span></th>
  172. </tr>
  173. </thead>
  174. <tbody>
  175. <tr>
  176. <td class="error-col-1 total ko">Request timeout to ecomm.gatling.io/18.164.246.108:443 after 60000 ms<span class="value" style="display:none">0</span></td>
  177. <td class="value error-col-2 total ko">179</td>
  178. <td class="value error-col-3 total ko">28.37%</td>
  179. </tr>
  180. <tr>
  181. <td class="error-col-1 total ko">Request timeout to ecomm.gatling.io/18.164.246.48:443 after 60000 ms<span class="value" style="display:none">1</span></td>
  182. <td class="value error-col-2 total ko">170</td>
  183. <td class="value error-col-3 total ko">26.94%</td>
  184. </tr>
  185. <tr>
  186. <td class="error-col-1 total ko">Request timeout to ecomm.gatling.io/18.164.246.56:443 after 60000 ms<span class="value" style="display:none">2</span></td>
  187. <td class="value error-col-2 total ko">147</td>
  188. <td class="value error-col-3 total ko">23.3%</td>
  189. </tr>
  190. <tr>
  191. <td class="error-col-1 total ko">Request timeout to ecomm.gatling.io/18.164.246.111:443 after 60000 ms<span class="value" style="display:none">3</span></td>
  192. <td class="value error-col-2 total ko">135</td>
  193. <td class="value error-col-3 total ko">21.39%</td>
  194. </tr>
  195. </tbody>
  196. </table>
  197. </div>
  198. <div class="schema geant">
  199. <div id="responsetimeDistributionContainer" class="geant"></div>
  200. </div>
  201. <div class="schema geant">
  202. <div id="responsetimepercentilesovertimeokPercentilesContainer" class="geant"></div>
  203. </div>
  204. <div class="schema geant">
  205. <div id="requests" class="geant"></div>
  206. </div>
  207. <div class="schema geant">
  208. <div id="responses" class="geant"></div>
  209. </div>
  210. <div class="schema geant">
  211. <div id="container_response_time_dispersion" class="geant"></div>
  212. </div>
  213. </div>
  214. </div>
  215. </div>
  216. </div>
  217. </div>
  218. </div>
  219. <script>
  220. var pageStats = stats.contents['req_gatling-png--306285301'].stats;
  221. $(document).ready(function() {
  222. $('.simulation-tooltip').popover({trigger:'hover', placement:'left'});
  223. setDetailsLinkUrl();
  224. setDetailsMenu();
  225. setActiveMenu();
  226. fillStats(pageStats);
  227. Highcharts.setOptions({
  228. global: { useUTC: false }
  229. });
  230. var rangesChart = new Highcharts.Chart({
  231. chart: {
  232. renderTo: 'ranges',
  233. marginRight: 100
  234. },
  235. credits: { enabled: false },
  236. legend: { enabled: false },
  237. title: { text: 'A title to let highcharts reserve the place for the title set later' },
  238. xAxis: {
  239. categories: [
  240. pageStats.group1.htmlName,
  241. pageStats.group2.htmlName,
  242. pageStats.group3.htmlName,
  243. pageStats.group4.htmlName
  244. ]
  245. },
  246. yAxis: {
  247. title: { text: 'Number of Requests' },
  248. reversedStacks: false
  249. },
  250. tooltip: {
  251. formatter: function() {
  252. var s;
  253. if (this.point.name) { // the pie chart
  254. s = ''+ this.point.name +': '+ this.y +'% requests';
  255. } else {
  256. s = ''+ this.y + ' requests';
  257. }
  258. return s;
  259. }
  260. },
  261. plotOptions: {
  262. series: {
  263. stacking: 'normal',
  264. shadow: true
  265. }
  266. },
  267. series: [
  268. {
  269. type: 'column',
  270. data: [{
  271. color: '#68b65c',
  272. y: pageStats.group1.count
  273. },
  274. {
  275. color: '#FFDD00',
  276. y: pageStats.group2.count
  277. },
  278. {
  279. color: '#FFA900',
  280. y: pageStats.group3.count
  281. },
  282. {
  283. color: '#f15b4f',
  284. y: pageStats.group4.count
  285. }]
  286. },
  287. {
  288. type: 'pie',
  289. name: 'Percentages',
  290. data: [
  291. {
  292. name: pageStats.group1.name,
  293. y: pageStats.group1.percentage,
  294. color: '#68b65c'
  295. },
  296. {
  297. name: pageStats.group2.name,
  298. y: pageStats.group2.percentage,
  299. color: '#FFDD00'
  300. },
  301. {
  302. name: pageStats.group3.name,
  303. y: pageStats.group3.percentage,
  304. color: '#FFA900'
  305. },
  306. {
  307. name: pageStats.group4.name,
  308. y: pageStats.group4.percentage,
  309. color: '#f15b4f'
  310. }
  311. ],
  312. center: [368, 0],
  313. size: 90,
  314. showInLegend: false,
  315. dataLabels: { enabled: false }
  316. }
  317. ]
  318. });
  319. rangesChart.setTitle({
  320. text: '<span class="chart_title">Response Time Ranges</span>',
  321. useHTML: true
  322. });
  323. $('#container_errors').sortable('#container_errors');
  324. var responsetimeDistributionChart = new Highcharts.Chart({
  325. chart: {
  326. renderTo: 'responsetimeDistributionContainer',
  327. type: 'column',
  328. marginBottom: 60
  329. },
  330. credits: { enabled: false },
  331. legend: {
  332. enabled: true,
  333. floating: true,
  334. y: 5,
  335. borderWidth: 0,
  336. itemStyle: { fontWeight: "normal" },
  337. symbolRadius: 0
  338. },
  339. title: { text: 'A title to let highcharts reserve the place for the title set later' },
  340. navigator: {
  341. maskInside: false
  342. },
  343. xAxis: {
  344. categories: ['413', '1012', '1611', '2210', '2809', '3408', '4007', '4606', '5205', '5804', '6403', '7002', '7601', '8200', '8799', '9398', '9997', '10596', '11195', '11794', '12393', '12992', '13591', '14190', '14789', '15388', '15987', '16586', '17185', '17784', '18383', '18982', '19581', '20181', '20780', '21379', '21978', '22577', '23176', '23775', '24374', '24973', '25572', '26171', '26770', '27369', '27968', '28567', '29166', '29765', '30364', '30963', '31562', '32161', '32760', '33359', '33958', '34557', '35156', '35755', '36354', '36953', '37552', '38151', '38750', '39349', '39948', '40548', '41147', '41746', '42345', '42944', '43543', '44142', '44741', '45340', '45939', '46538', '47137', '47736', '48335', '48934', '49533', '50132', '50731', '51330', '51929', '52528', '53127', '53726', '54325', '54924', '55523', '56122', '56721', '57320', '57919', '58518', '59117', '59716'],
  345. tickInterval: 20
  346. },
  347. yAxis: {
  348. min: 0,
  349. title: { text: 'Percentage of Requests' },
  350. reversedStacks: false
  351. },
  352. tooltip: {
  353. formatter: function() {
  354. return '<b>'+ this.x +' ms</b><br/>'+
  355. this.series.name +': '+ this.y +' %<br/>'+
  356. 'Total: '+ this.point.stackTotal + ' %';
  357. }
  358. },
  359. plotOptions: {
  360. series: {
  361. groupPadding: 0,
  362. stacking: 'normal',
  363. shadow: true
  364. }
  365. },
  366. series: [
  367. {
  368. type: 'column',
  369. color: '#68b65c',
  370. name: 'OK',
  371. data: [
  372. 7.88,7.29,7.12,7.22,4.33,3.61,7.46,6.49,4.09,3.31,5.22,6.12,2.22,1.2,1.01,0.79,0.44,0.25,0.25,0.22,0.51,0.74,0.4,0.37,0.27,0.22,0.14,0.11,0.27,0.2,0.22,0.22,0.09,0.12,0.11,0.05,0.12,0.12,0.29,0.24,0.35,0.35,0.4,0.33,0.33,0.25,0.09,0.2,0.14,0.2,0.05,0.05,0.03,0.11,0.03,0.09,0.05,0.09,0.12,0.11,0.11,0.05,0.05,0.03,0.05,0.01,0.05,0.07,0.07,0.01,0.07,0.03,0.05,0.09,0.05,0.07,0.01,0.14,0.09,0.09,0.05,0.05,0.05,0.01,0.03,0.09,0.12,0.07,0.03,0.07,0.11,0.14,0.05,0.14,0.12,0.16,0.03,0.12,0.16,0.29
  373. ],
  374. tooltip: { yDecimals: 0, ySuffix: 'ms' }
  375. },
  376. {
  377. type: 'column',
  378. color: '#f15b4f',
  379. name: 'KO',
  380. data: [
  381. 0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.68
  382. ],
  383. tooltip: { yDecimals: 0, ySuffix: 'ms' }
  384. }
  385. ]
  386. });
  387. responsetimeDistributionChart.setTitle({
  388. text: '<span class="chart_title">Response Time Distribution</span>',
  389. useHTML: true
  390. });
  391. var responsetimepercentilesovertimeokPercentiles = unpack([[1744913729,null],[1744913730,null],[1744913731,[4445,4462,4557,4908,4909,4911,4911,4912,4912,4912]],[1744913732,[2876,2959,3104,3255,3260,4520,4525,5406,5410,5410]],[1744913733,[3886,4254,4380,5113,5125,5227,5263,5275,5284,5286]],[1744913734,[3759,3764,3790,3792,3793,3793,3794,3794,3794,3794]],[1744913735,[2147,2734,4491,4575,4691,4700,4729,4736,4744,4747]],[1744913736,[1922,4130,4268,4436,4439,4444,4488,4602,4610,4611]],[1744913737,[1206,1470,6720,11169,13384,23709,26561,39359,49638,59721]],[1744913738,[721,5890,6901,9582,12511,19171,24314,35095,46713,59768]],[1744913739,[450,4707,6405,7171,8294,17301,24763,32249,56901,59826]],[1744913740,[164,3629,4918,6518,7060,12774,23018,31912,59458,59863]],[1744913741,[153,1953,3361,4671,5026,5708,6789,12503,33122,59006]],[1744913742,[140,461,1035,2238,2338,2440,3467,4164,55782,55782]],[1744913743,[164,325,766,1060,1060,1146,1146,53727,53727,53727]],[1744913744,[274,278,417,544,999,999,1178,1178,1178,1178]],[1744913745,[134,179,273,394,590,649,740,1627,52428,52428]],[1744913746,[113,260,482,1030,1130,1729,2133,6343,51142,51142]],[1744913747,[154,598,1092,2022,3003,3586,6816,13207,51882,51882]],[1744913748,[445,879,1128,1880,2236,2267,3726,49266,51953,51953]],[1744913749,[335,1223,2451,13284,14292,14949,26085,55089,55089,55089]],[1744913750,[451,2125,4563,13825,14085,14751,26679,28471,54922,54922]],[1744913751,[555,2038,8119,28922,51415,53403,54948,55939,58457,58457]],[1744913752,[497,2405,7544,15487,15725,36124,56058,58452,59676,59676]],[1744913753,[528,1949,4493,9313,14790,29647,54614,56190,58779,58779]],[1744913754,[452,1512,2936,9585,10624,14933,17136,51958,58042,58756]],[1744913755,[183,1662,4323,8290,8789,9063,12023,55694,59599,59637]],[1744913756,[349,1543,2750,7060,8355,10071,15396,46413,54601,56108]],[1744913757,[456,1015,2162,3920,4105,5134,7987,14717,28318,28318]],[1744913758,[311,1224,1875,2757,3572,3895,5282,7836,12066,12066]],[1744913759,[200,1006,1566,2485,3658,3867,4297,7479,56532,56532]],[1744913760,[306,577,1040,1650,1886,2152,3370,4200,7095,7095]],[1744913761,[467,811,1309,1727,2010,2146,2395,4015,56205,56205]],[1744913762,[323,576,1000,1281,1358,1768,2017,2331,3212,3212]],[1744913763,[191,457,925,1326,1416,1663,1727,3026,3941,3941]],[1744913764,[192,347,475,1039,1215,1247,2153,2825,8605,8605]],[1744913765,[230,530,1062,1475,1691,1943,2191,7689,47907,47907]],[1744913766,[171,304,430,807,1076,1162,1970,4176,47149,47149]],[1744913767,[172,390,686,1169,1361,1700,2056,3880,54813,54813]],[1744913768,[177,323,455,1231,1366,1991,2139,5536,29699,29699]],[1744913769,[290,316,554,1317,2110,2524,4169,6404,26449,26449]],[1744913770,[304,590,1111,2403,2403,2841,2841,51561,51561,51561]],[1744913771,[309,561,721,2889,2889,7764,13460,28315,28315,28315]],[1744913772,[435,740,1780,3771,3771,6698,7108,27800,27800,27800]],[1744913773,[561,954,1175,3647,9372,9372,44339,44339,44339,44339]],[1744913774,[581,851,1122,2230,2230,2230,26260,26260,26260,26260]],[1744913775,[1140,1140,1801,1801,1801,1801,1801,1801,1801,1801]],[1744913776,[914,914,3964,27614,27614,27614,27614,27614,27614,27614]],[1744913777,[2455,2455,8935,8935,8935,8935,8935,8935,8935,8935]],[1744913778,null],[1744913779,[2316,2316,2316,2316,2316,2316,2316,2316,2316,2316]],[1744913780,[3751,3751,3751,3751,3751,3751,3751,3751,3751,3751]],[1744913781,null],[1744913782,[8719,8719,8719,8719,8719,8719,8719,8719,8719,8719]],[1744913783,null],[1744913784,null],[1744913785,null],[1744913786,null],[1744913787,null],[1744913788,[5323,5323,5323,5323,5323,5323,5323,5323,5323,5323]],[1744913789,[1589,1589,1589,1589,1589,1589,1589,1589,1589,1589]],[1744913790,null],[1744913791,null],[1744913792,[1101,1101,1101,1101,1101,1101,1101,1101,1101,1101]],[1744913793,null],[1744913794,null],[1744913795,null],[1744913796,null],[1744913797,null],[1744913798,null],[1744913799,null],[1744913800,null],[1744913801,null],[1744913802,null],[1744913803,null],[1744913804,null],[1744913805,null],[1744913806,null],[1744913807,null],[1744913808,null],[1744913809,null],[1744913810,null],[1744913811,null],[1744913812,null],[1744913813,null],[1744913814,null],[1744913815,null],[1744913816,null],[1744913817,null],[1744913818,null],[1744913819,null],[1744913820,null],[1744913821,null],[1744913822,null],[1744913823,null],[1744913824,null],[1744913825,null],[1744913826,null],[1744913827,null],[1744913828,null],[1744913829,null],[1744913830,null],[1744913831,null],[1744913832,null]]);
  392. var responsetimepercentilesovertimeokPercentilesChart = new Highcharts.StockChart({
  393. chart: {
  394. renderTo: 'responsetimepercentilesovertimeokPercentilesContainer',
  395. zoomType: 'x',
  396. marginBottom: 60
  397. },
  398. colors: ['#c4fd90', '#7ff77f', '#6ff2ad', '#61ede6', '#58c7e0', '#4ea1d4', '#487ad9', '#3f52cc', '#7335dc', '#c73905', '#FFA900'],
  399. credits: { enabled: false },
  400. legend: {
  401. enabled: true,
  402. floating: true,
  403. y: -65,
  404. borderWidth: 0,
  405. itemStyle: { fontWeight: "normal" },
  406. symbolRadius: 0
  407. },
  408. title: { text: 'A title to let highcharts reserve the place for the title set later' },
  409. navigator: {
  410. maskInside: false,
  411. baseSeries: 9
  412. },
  413. rangeSelector: {
  414. rangeSelector: { align: "left" },
  415. buttonSpacing: 0,
  416. buttonTheme: {
  417. fill: '#CFC9C6',
  418. padding: 1,
  419. stroke: '#000000',
  420. 'stroke-width': 0.25,
  421. style: {
  422. color: '#000000',
  423. fontWeight: 'bold',
  424. },
  425. states: {
  426. stroke: '#92918C',
  427. 'stroke-width': 0.25,
  428. hover: {
  429. fill: '#92918C',
  430. style: { color: 'black' }
  431. },
  432. select: {
  433. fill: '#FFA900',
  434. style: { color: 'white' }
  435. }
  436. }
  437. },
  438. buttons : [
  439. {
  440. type : 'minute',
  441. count : 1,
  442. text : '1m'
  443. }, {
  444. type : 'minute',
  445. count : 10,
  446. text : '10m'
  447. }, {
  448. type : 'hour',
  449. count : 1,
  450. text : '1h'
  451. }, {
  452. type : 'all',
  453. count : 1,
  454. text : 'All'
  455. }
  456. ],
  457. selected : 3,
  458. inputEnabled : false
  459. },
  460. xAxis: {
  461. type: 'datetime',
  462. ordinal: false,
  463. maxZoom: 10000 // three days
  464. },
  465. yAxis:[
  466. {
  467. min: 0,
  468. title: { text: 'Response Time (ms)' },
  469. opposite: false
  470. }, {
  471. min: 0,
  472. title: {
  473. text: 'Active Users',
  474. style: { color: '#FFA900' }
  475. },
  476. opposite: true
  477. }
  478. ],
  479. plotOptions: {
  480. arearange: { lineWidth: 1 },
  481. series: {
  482. dataGrouping: { enabled: false }
  483. }
  484. },
  485. series: [
  486. {
  487. pointInterval: 1000,
  488. name: 'min',
  489. data: responsetimepercentilesovertimeokPercentiles[0],
  490. tooltip: { yDecimals: 0, ySuffix: 'ms' },
  491. type : 'area',
  492. yAxis: 0,
  493. zIndex: 10
  494. },
  495. {
  496. pointInterval: 1000,
  497. name: '25%',
  498. data: responsetimepercentilesovertimeokPercentiles[1],
  499. tooltip: { yDecimals: 0, ySuffix: 'ms' },
  500. type : 'area',
  501. yAxis: 0,
  502. zIndex: 9
  503. },
  504. {
  505. pointInterval: 1000,
  506. name: '50%',
  507. data: responsetimepercentilesovertimeokPercentiles[2],
  508. tooltip: { yDecimals: 0, ySuffix: 'ms' },
  509. type : 'area',
  510. yAxis: 0,
  511. zIndex: 8
  512. },
  513. {
  514. pointInterval: 1000,
  515. name: '75%',
  516. data: responsetimepercentilesovertimeokPercentiles[3],
  517. tooltip: { yDecimals: 0, ySuffix: 'ms' },
  518. type : 'area',
  519. yAxis: 0,
  520. zIndex: 7
  521. },
  522. {
  523. pointInterval: 1000,
  524. name: '80%',
  525. data: responsetimepercentilesovertimeokPercentiles[4],
  526. tooltip: { yDecimals: 0, ySuffix: 'ms' },
  527. type : 'area',
  528. yAxis: 0,
  529. zIndex: 6
  530. },
  531. {
  532. pointInterval: 1000,
  533. name: '85%',
  534. data: responsetimepercentilesovertimeokPercentiles[5],
  535. tooltip: { yDecimals: 0, ySuffix: 'ms' },
  536. type : 'area',
  537. yAxis: 0,
  538. zIndex: 5
  539. },
  540. {
  541. pointInterval: 1000,
  542. name: '90%',
  543. data: responsetimepercentilesovertimeokPercentiles[6],
  544. tooltip: { yDecimals: 0, ySuffix: 'ms' },
  545. type : 'area',
  546. yAxis: 0,
  547. zIndex: 4
  548. },
  549. {
  550. pointInterval: 1000,
  551. name: '95%',
  552. data: responsetimepercentilesovertimeokPercentiles[7],
  553. tooltip: { yDecimals: 0, ySuffix: 'ms' },
  554. type : 'area',
  555. yAxis: 0,
  556. zIndex: 3
  557. },
  558. {
  559. pointInterval: 1000,
  560. name: '99%',
  561. data: responsetimepercentilesovertimeokPercentiles[8],
  562. tooltip: { yDecimals: 0, ySuffix: 'ms' },
  563. type : 'area',
  564. yAxis: 0,
  565. zIndex: 2
  566. },
  567. {
  568. pointInterval: 1000,
  569. name: 'max',
  570. data: responsetimepercentilesovertimeokPercentiles[9],
  571. tooltip: { yDecimals: 0, ySuffix: 'ms' },
  572. type : 'area',
  573. yAxis: 0,
  574. zIndex: 1
  575. },
  576. allUsersData
  577. ]
  578. });
  579. responsetimepercentilesovertimeokPercentilesChart.setTitle({
  580. text: '<span class="chart_title chart_title_">Response Time Percentiles over Time (OK)</span>',
  581. useHTML: true
  582. });
  583. var requests = unpack([[1744913729,[0,0,0]],[1744913730,[0,0,0]],[1744913731,[13,13,0]],[1744913732,[55,55,0]],[1744913733,[142,142,0]],[1744913734,[10,10,0]],[1744913735,[120,120,0]],[1744913736,[144,144,0]],[1744913737,[635,482,153]],[1744913738,[814,602,212]],[1744913739,[606,504,102]],[1744913740,[899,783,116]],[1744913741,[323,299,24]],[1744913742,[71,71,0]],[1744913743,[12,12,0]],[1744913744,[9,9,0]],[1744913745,[38,37,1]],[1744913746,[82,82,0]],[1744913747,[83,80,3]],[1744913748,[38,38,0]],[1744913749,[20,20,0]],[1744913750,[52,52,0]],[1744913751,[49,49,0]],[1744913752,[46,44,2]],[1744913753,[89,85,4]],[1744913754,[107,103,4]],[1744913755,[156,148,8]],[1744913756,[127,126,1]],[1744913757,[77,76,1]],[1744913758,[70,70,0]],[1744913759,[47,47,0]],[1744913760,[51,51,0]],[1744913761,[37,37,0]],[1744913762,[29,29,0]],[1744913763,[33,33,0]],[1744913764,[39,39,0]],[1744913765,[71,71,0]],[1744913766,[39,39,0]],[1744913767,[47,47,0]],[1744913768,[25,25,0]],[1744913769,[21,21,0]],[1744913770,[12,12,0]],[1744913771,[16,16,0]],[1744913772,[16,16,0]],[1744913773,[9,9,0]],[1744913774,[8,8,0]],[1744913775,[2,2,0]],[1744913776,[3,3,0]],[1744913777,[2,2,0]],[1744913778,[0,0,0]],[1744913779,[1,1,0]],[1744913780,[1,1,0]],[1744913781,[0,0,0]],[1744913782,[1,1,0]],[1744913783,[0,0,0]],[1744913784,[0,0,0]],[1744913785,[0,0,0]],[1744913786,[0,0,0]],[1744913787,[0,0,0]],[1744913788,[1,1,0]],[1744913789,[1,1,0]],[1744913790,[0,0,0]],[1744913791,[0,0,0]],[1744913792,[1,1,0]],[1744913793,[0,0,0]],[1744913794,[0,0,0]],[1744913795,[0,0,0]],[1744913796,[0,0,0]],[1744913797,[0,0,0]],[1744913798,[0,0,0]],[1744913799,[0,0,0]],[1744913800,[0,0,0]],[1744913801,[0,0,0]],[1744913802,[0,0,0]],[1744913803,[0,0,0]],[1744913804,[0,0,0]],[1744913805,[0,0,0]],[1744913806,[0,0,0]],[1744913807,[0,0,0]],[1744913808,[0,0,0]],[1744913809,[0,0,0]],[1744913810,[0,0,0]],[1744913811,[0,0,0]],[1744913812,[0,0,0]],[1744913813,[0,0,0]],[1744913814,[0,0,0]],[1744913815,[0,0,0]],[1744913816,[0,0,0]],[1744913817,[0,0,0]],[1744913818,[0,0,0]],[1744913819,[0,0,0]],[1744913820,[0,0,0]],[1744913821,[0,0,0]],[1744913822,[0,0,0]],[1744913823,[0,0,0]],[1744913824,[0,0,0]],[1744913825,[0,0,0]],[1744913826,[0,0,0]],[1744913827,[0,0,0]],[1744913828,[0,0,0]],[1744913829,[0,0,0]],[1744913830,[0,0,0]],[1744913831,[0,0,0]],[1744913832,[0,0,0]]]);
  584. var requestsChart = new Highcharts.StockChart({
  585. chart: {
  586. renderTo: 'requests',
  587. zoomType: 'x',
  588. marginBottom: 60
  589. },
  590. credits: { enabled: false },
  591. legend: {
  592. enabled: true,
  593. floating: true,
  594. y: -65,
  595. borderWidth: 0,
  596. itemStyle: { fontWeight: "normal" },
  597. symbolRadius: 0
  598. },
  599. title: { text: 'A title to let highcharts reserve the place for the title set later' },
  600. navigator: {
  601. maskInside: false
  602. },
  603. rangeSelector: {
  604. buttonSpacing: 0,
  605. buttonTheme: {
  606. fill: '#CFC9C6',
  607. padding: 1,
  608. stroke: '#000000',
  609. 'stroke-width': 0.25,
  610. style: {
  611. color: '#000000',
  612. fontWeight: 'bold',
  613. },
  614. states: {
  615. stroke: '#000000',
  616. 'stroke-width': 0.25,
  617. hover: {
  618. fill: '#92918C',
  619. style: { color: 'black' }
  620. },
  621. select: {
  622. fill: '#FFA900',
  623. style: { color: 'white' }
  624. }
  625. }
  626. },
  627. buttons : [
  628. {
  629. type : 'minute',
  630. count : 1,
  631. text : '1m'
  632. }, {
  633. type : 'minute',
  634. count : 10,
  635. text : '10m'
  636. }, {
  637. type : 'hour',
  638. count : 1,
  639. text : '1h'
  640. }, {
  641. type : 'all',
  642. count : 1,
  643. text : 'All'
  644. }
  645. ],
  646. selected : 3,
  647. inputEnabled : false
  648. },
  649. plotOptions: {
  650. series: {
  651. dataGrouping: { enabled: false }
  652. },
  653. area: {
  654. stacking: 'normal'
  655. }
  656. },
  657. xAxis: {
  658. type: 'datetime',
  659. ordinal: false,
  660. maxZoom: 10000 // three days
  661. },
  662. yAxis:[
  663. {
  664. min: 0,
  665. title: { text: 'Number of requests' },
  666. opposite: false,
  667. reversedStacks: false
  668. }, {
  669. min: 0,
  670. title: {
  671. text: 'Active Users',
  672. style: { color: '#FFA900' }
  673. },
  674. opposite: true
  675. }
  676. ],
  677. series: [
  678. {
  679. color: '#5E7BE2',
  680. name: 'All',
  681. data: requests[0],
  682. tooltip: { yDecimals: 0, ySuffix: '', valueDecimals: 0 }
  683. ,type: 'area'},
  684. allUsersData
  685. ]
  686. });
  687. requestsChart.setTitle({
  688. text: '<span class="chart_title">Number of requests per second</span>',
  689. useHTML: true
  690. });
  691. var responses = unpack([[1744913729,[0,0,0]],[1744913730,[0,0,0]],[1744913731,[0,0,0]],[1744913732,[0,0,0]],[1744913733,[0,0,0]],[1744913734,[0,0,0]],[1744913735,[47,47,0]],[1744913736,[11,11,0]],[1744913737,[121,121,0]],[1744913738,[258,258,0]],[1744913739,[40,40,0]],[1744913740,[273,273,0]],[1744913741,[52,52,0]],[1744913742,[159,159,0]],[1744913743,[310,310,0]],[1744913744,[435,435,0]],[1744913745,[531,531,0]],[1744913746,[379,379,0]],[1744913747,[205,205,0]],[1744913748,[79,79,0]],[1744913749,[72,72,0]],[1744913750,[47,47,0]],[1744913751,[39,39,0]],[1744913752,[32,32,0]],[1744913753,[39,39,0]],[1744913754,[43,43,0]],[1744913755,[67,67,0]],[1744913756,[74,74,0]],[1744913757,[84,84,0]],[1744913758,[110,110,0]],[1744913759,[80,80,0]],[1744913760,[92,92,0]],[1744913761,[113,113,0]],[1744913762,[73,73,0]],[1744913763,[121,121,0]],[1744913764,[102,102,0]],[1744913765,[82,82,0]],[1744913766,[75,75,0]],[1744913767,[79,79,0]],[1744913768,[52,52,0]],[1744913769,[46,46,0]],[1744913770,[20,20,0]],[1744913771,[19,19,0]],[1744913772,[22,22,0]],[1744913773,[31,31,0]],[1744913774,[24,24,0]],[1744913775,[14,14,0]],[1744913776,[12,12,0]],[1744913777,[5,5,0]],[1744913778,[9,9,0]],[1744913779,[8,8,0]],[1744913780,[5,5,0]],[1744913781,[4,4,0]],[1744913782,[7,7,0]],[1744913783,[10,10,0]],[1744913784,[12,12,0]],[1744913785,[11,11,0]],[1744913786,[7,7,0]],[1744913787,[6,6,0]],[1744913788,[2,2,0]],[1744913789,[5,5,0]],[1744913790,[0,0,0]],[1744913791,[2,2,0]],[1744913792,[1,1,0]],[1744913793,[5,5,0]],[1744913794,[1,1,0]],[1744913795,[1,1,0]],[1744913796,[4,4,0]],[1744913797,[160,7,153]],[1744913798,[222,10,212]],[1744913799,[118,16,102]],[1744913800,[122,6,116]],[1744913801,[24,0,24]],[1744913802,[2,2,0]],[1744913803,[1,1,0]],[1744913804,[4,4,0]],[1744913805,[4,3,1]],[1744913806,[5,5,0]],[1744913807,[5,2,3]],[1744913808,[7,7,0]],[1744913809,[2,2,0]],[1744913810,[10,10,0]],[1744913811,[7,7,0]],[1744913812,[9,7,2]],[1744913813,[7,3,4]],[1744913814,[6,2,4]],[1744913815,[10,2,8]],[1744913816,[1,0,1]],[1744913817,[3,2,1]],[1744913818,[0,0,0]],[1744913819,[0,0,0]],[1744913820,[0,0,0]],[1744913821,[2,2,0]],[1744913822,[0,0,0]],[1744913823,[0,0,0]],[1744913824,[0,0,0]],[1744913825,[0,0,0]],[1744913826,[0,0,0]],[1744913827,[0,0,0]],[1744913828,[0,0,0]],[1744913829,[0,0,0]],[1744913830,[0,0,0]],[1744913831,[0,0,0]],[1744913832,[0,0,0]]]);
  692. var requestsChart = new Highcharts.StockChart({
  693. chart: {
  694. renderTo: 'responses',
  695. zoomType: 'x',
  696. marginBottom: 60
  697. },
  698. credits: { enabled: false },
  699. legend: {
  700. enabled: true,
  701. floating: true,
  702. y: -65,
  703. borderWidth: 0,
  704. itemStyle: { fontWeight: "normal" },
  705. symbolRadius: 0
  706. },
  707. title: { text: 'A title to let highcharts reserve the place for the title set later' },
  708. navigator: {
  709. maskInside: false
  710. },
  711. rangeSelector: {
  712. buttonSpacing: 0,
  713. buttonTheme: {
  714. fill: '#CFC9C6',
  715. padding: 1,
  716. stroke: '#000000',
  717. 'stroke-width': 0.25,
  718. style: {
  719. color: '#000000',
  720. fontWeight: 'bold',
  721. },
  722. states: {
  723. stroke: '#000000',
  724. 'stroke-width': 0.25,
  725. hover: {
  726. fill: '#92918C',
  727. style: { color: 'black' }
  728. },
  729. select: {
  730. fill: '#FFA900',
  731. style: { color: 'white' }
  732. }
  733. }
  734. },
  735. buttons : [
  736. {
  737. type : 'minute',
  738. count : 1,
  739. text : '1m'
  740. }, {
  741. type : 'minute',
  742. count : 10,
  743. text : '10m'
  744. }, {
  745. type : 'hour',
  746. count : 1,
  747. text : '1h'
  748. }, {
  749. type : 'all',
  750. count : 1,
  751. text : 'All'
  752. }
  753. ],
  754. selected : 3,
  755. inputEnabled : false
  756. },
  757. plotOptions: {
  758. series: {
  759. dataGrouping: { enabled: false }
  760. },
  761. area: {
  762. stacking: 'normal'
  763. }
  764. },
  765. xAxis: {
  766. type: 'datetime',
  767. ordinal: false,
  768. maxZoom: 10000 // three days
  769. },
  770. yAxis:[
  771. {
  772. min: 0,
  773. title: { text: 'Number of responses' },
  774. opposite: false,
  775. reversedStacks: false
  776. }, {
  777. min: 0,
  778. title: {
  779. text: 'Active Users',
  780. style: { color: '#FFA900' }
  781. },
  782. opposite: true
  783. }
  784. ],
  785. series: [
  786. {
  787. color: '#5E7BE2',
  788. name: 'All',
  789. data: responses[0],
  790. tooltip: { yDecimals: 0, ySuffix: '', valueDecimals: 0 }
  791. },
  792. {
  793. color: '#68b65c',
  794. name: 'OK',
  795. data: responses[1],
  796. tooltip: { yDecimals: 0, ySuffix: '', valueDecimals: 0 }
  797. ,type: 'area'},
  798. {
  799. color: '#f15b4f',
  800. name: 'KO',
  801. data: responses[2],
  802. tooltip: { yDecimals: 0, ySuffix: '', valueDecimals: 0 }
  803. ,type: 'area'},
  804. allUsersData,
  805. {
  806. type: 'pie',
  807. name: 'Distribution',
  808. data: [
  809. {name: 'OK', y: 4769.0, color: '#68b65c'},{name: 'KO', y: 631.0, color: '#f15b4f'}
  810. ],
  811. center: [775, -40],
  812. size: 70,
  813. showInLegend: false,
  814. dataLabels: { enabled: false },
  815. dataGrouping: { enabled: false }
  816. }
  817. ]
  818. });
  819. requestsChart.setTitle({
  820. text: '<span class="chart_title">Number of responses per second</span>',
  821. useHTML: true
  822. });
  823. var scatterChart = new Highcharts.Chart({
  824. chart: {
  825. renderTo: 'container_response_time_dispersion',
  826. defaultSeriesType: 'scatter',
  827. zoomType: 'xy',
  828. marginBottom: 90
  829. },
  830. credits: { enabled: false },
  831. xAxis: {
  832. title: {
  833. enabled: true,
  834. text: 'Global number of requests per second',
  835. style: { fontWeight: 'bold' }
  836. },
  837. startOnTick: true,
  838. endOnTick: true,
  839. showLastLabel: true,
  840. min: 0
  841. },
  842. title: { text: 'A title to let highcharts reserve the place for the title set later' },
  843. yAxis: {
  844. min: 0,
  845. title: { text: 'Response Time (ms)' }
  846. },
  847. tooltip: {
  848. formatter: function() {
  849. return ''+ this.y +' ms at ' + this.x + ' allreq/s';
  850. }
  851. },
  852. legend: {
  853. enabled: true,
  854. floating: true,
  855. y: 0,
  856. borderWidth: 0,
  857. itemStyle: { fontWeight: "normal" },
  858. },
  859. plotOptions: {
  860. scatter: {
  861. marker: {
  862. radius: 3,
  863. states: {
  864. hover: {
  865. enabled: true,
  866. lineColor: 'rgb(100,100,100)'
  867. }
  868. }
  869. },
  870. states: {
  871. hover: {
  872. marker: { enabled: false }
  873. }
  874. }
  875. }
  876. },
  877. series: [
  878. {
  879. type: 'scatter',
  880. color: '#68b65c',
  881. name: 'OK',
  882. data: [
  883. [2,1589],[3,2316],[3,3751],[3,8719],[3,5323],[3,1101],[6,1801],[6,8935],[9,27614],[24,26260],[27,1178],[27,44339],[36,53727],[36,51561],[48,28315],[48,27800],[60,55089],[63,6404],[76,5536],[87,2331],[99,3026],[111,4015],[114,1627],[114,49266],[117,2825],[117,4176],[138,58452],[140,3880],[141,7479],[147,55939],[153,4200],[156,28471],[210,7836],[213,4164],[213,7689],[231,14717],[246,6343],[249,13207],[267,56190],[321,51958],[381,46413],[468,55694],[969,12503],[1198,4602],[1693,4736],[1818,32249],[1905,39359],[2442,35095],[2697,31912],[3562,5406],[4882,5275],[5196,4912],[5954,3794]
  884. ]},
  885. {
  886. type: 'scatter',
  887. color: '#f15b4f',
  888. name: 'KO',
  889. data: [
  890. [114,60005],[138,60002],[231,60004],[249,60014],[267,60014],[321,60016],[381,60001],[468,60010],[969,60006],[1818,60005],[1905,60004],[2442,60006],[2697,60006]
  891. ]}
  892. ]
  893. });
  894. scatterChart.setTitle({
  895. text: '<span class="chart_title">Response Time against Global Throughput</span>',
  896. useHTML: true
  897. });
  898. });
  899. </script>
  900. </div>
  901. </body>
  902. </html>