2023-12-26 14:59:43 +05:30
|
|
|
|
|
|
|
<html>
|
|
|
|
<head>
|
|
|
|
<meta charset="utf-8">
|
|
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
|
|
<title>ghz</title>
|
|
|
|
<script src="https://d3js.org/d3.v5.min.js"></script>
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/papaparse@4.5.0/papaparse.min.js"></script>
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/britecharts@3/dist/bundled/britecharts.min.js"></script>
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/britecharts@3/dist/css/britecharts.min.css" type="text/css" /></head>
|
2024-06-07 15:32:59 +05:30
|
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.4/css/bulma.min.css" />
|
2023-12-26 14:59:43 +05:30
|
|
|
|
|
|
|
</head>
|
|
|
|
|
|
|
|
<body>
|
|
|
|
|
|
|
|
<section class="section">
|
|
|
|
|
|
|
|
<div class="container">
|
|
|
|
|
|
|
|
|
|
|
|
<h2 class="subtitle">Mon Dec 25 2023 @ 21:02:15</h2>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
<br />
|
|
|
|
|
|
|
|
<div class="container">
|
|
|
|
<nav class="breadcrumb has-bullet-separator" aria-label="breadcrumbs">
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
|
|
<a href="#summary">
|
|
|
|
<span class="icon is-small">
|
|
|
|
<i class="fas fa-clipboard-list" aria-hidden="true"></i>
|
|
|
|
</span>
|
|
|
|
<span>Summary</span>
|
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="#histogram">
|
|
|
|
<span class="icon is-small">
|
|
|
|
<i class="fas fa-chart-bar" aria-hidden="true"></i>
|
|
|
|
</span>
|
|
|
|
<span>Histogram</span>
|
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="#latency">
|
|
|
|
<span class="icon is-small">
|
|
|
|
<i class="far fa-clock" aria-hidden="true"></i>
|
|
|
|
</span>
|
|
|
|
<span>Latency Distribution</span>
|
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="#status">
|
|
|
|
<span class="icon is-small">
|
|
|
|
<i class="far fa-check-square" aria-hidden="true"></i>
|
|
|
|
</span>
|
|
|
|
<span>Status Distribution</span>
|
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
<li>
|
|
|
|
<a href="#data">
|
|
|
|
<span class="icon is-small">
|
|
|
|
<i class="far fa-file-alt" aria-hidden="true"></i>
|
|
|
|
</span>
|
|
|
|
<span>Data</span>
|
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="#options">
|
|
|
|
<span class="icon is-small">
|
|
|
|
<i class="fas fa-cog" aria-hidden="true"></i>
|
|
|
|
</span>
|
|
|
|
<span>Options</span>
|
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</nav>
|
|
|
|
<hr />
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="container">
|
|
|
|
<div class="columns">
|
|
|
|
<div class="column is-narrow">
|
|
|
|
<div class="content">
|
|
|
|
<a name="summary">
|
|
|
|
<h3>Summary</h3>
|
|
|
|
</a>
|
|
|
|
<table class="table">
|
|
|
|
<tbody>
|
|
|
|
<tr>
|
|
|
|
<th>Count</th>
|
|
|
|
<td>30000</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<th>Total</th>
|
|
|
|
<td>7.50 s</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<th>Slowest</th>
|
|
|
|
<td>3.60 ms</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<th>Fastest</th>
|
|
|
|
<td>0.13 ms</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<th>Average</th>
|
|
|
|
<td>0.53 ms</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<th>Requests / sec</th>
|
|
|
|
<td>3999.44</td>
|
|
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="column">
|
|
|
|
<div class="content">
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<br />
|
|
|
|
<div class="container">
|
|
|
|
<div class="content">
|
|
|
|
<a name="histogram">
|
|
|
|
<h3>Histogram</h3>
|
|
|
|
</a>
|
|
|
|
<p>
|
|
|
|
<div class="js-bar-container"></div>
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<br />
|
|
|
|
<div class="container">
|
|
|
|
<div class="content">
|
|
|
|
<a name="latency">
|
|
|
|
<h3>Latency distribution</h3>
|
|
|
|
</a>
|
|
|
|
<table class="table is-fullwidth">
|
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
|
|
|
|
<th>10 %</th>
|
|
|
|
|
|
|
|
<th>25 %</th>
|
|
|
|
|
|
|
|
<th>50 %</th>
|
|
|
|
|
|
|
|
<th>75 %</th>
|
|
|
|
|
|
|
|
<th>90 %</th>
|
|
|
|
|
|
|
|
<th>95 %</th>
|
|
|
|
|
|
|
|
<th>99 %</th>
|
|
|
|
|
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
<tr>
|
|
|
|
|
|
|
|
<td>0.43 ms</td>
|
|
|
|
|
|
|
|
<td>0.45 ms</td>
|
|
|
|
|
|
|
|
<td>0.50 ms</td>
|
|
|
|
|
|
|
|
<td>0.58 ms</td>
|
|
|
|
|
|
|
|
<td>0.65 ms</td>
|
|
|
|
|
|
|
|
<td>0.71 ms</td>
|
|
|
|
|
|
|
|
<td>0.89 ms</td>
|
|
|
|
|
|
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<br />
|
|
|
|
<div class="container">
|
|
|
|
<div class="columns">
|
|
|
|
<div class="column is-narrow">
|
|
|
|
<div class="content">
|
|
|
|
<a name="status">
|
|
|
|
<h3>Status distribution</h3>
|
|
|
|
</a>
|
|
|
|
<table class="table is-hoverable">
|
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
<th>Status</th>
|
|
|
|
<th>Count</th>
|
|
|
|
<th>% of Total</th>
|
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
|
|
|
|
<tr>
|
|
|
|
<td>OK</td>
|
|
|
|
<td>30000</td>
|
|
|
|
<td>100.00 %</td>
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<br />
|
|
|
|
<div class="container">
|
|
|
|
<div class="columns">
|
|
|
|
<div class="column is-narrow">
|
|
|
|
<div class="content">
|
|
|
|
<a name="data">
|
|
|
|
<h3>Data</h3>
|
|
|
|
</a>
|
|
|
|
|
|
|
|
<a class="button" id="dlJSON">JSON</a>
|
|
|
|
<a class="button" id="dlCSV">CSV</a>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<br />
|
|
|
|
|
|
|
|
<div class="container">
|
|
|
|
<div class="content">
|
|
|
|
<a name="options">
|
|
|
|
<h3>Options</h3>
|
|
|
|
</a>
|
|
|
|
<article class="message">
|
|
|
|
<div class="message-body">
|
|
|
|
<pre style="background-color: transparent;">{
|
|
|
|
"call": "dcache.DcacheService.Write",
|
|
|
|
"host": "localhost:9001",
|
|
|
|
"proto": "./proto/dcache/dcache.proto",
|
|
|
|
"import-paths": [
|
|
|
|
"proto/dcache",
|
|
|
|
"."
|
|
|
|
],
|
|
|
|
"insecure": true,
|
|
|
|
"rps": 4000,
|
|
|
|
"load-schedule": "const",
|
|
|
|
"load-start": 0,
|
|
|
|
"load-end": 0,
|
|
|
|
"load-step": 0,
|
|
|
|
"load-step-duration": 0,
|
|
|
|
"load-max-duration": 0,
|
|
|
|
"concurrency": 300,
|
|
|
|
"concurrency-schedule": "const",
|
|
|
|
"concurrency-start": 0,
|
|
|
|
"concurrency-end": 0,
|
|
|
|
"concurrency-step": 1,
|
|
|
|
"concurrency-step-duration": 0,
|
|
|
|
"concurrency-max-duration": 0,
|
|
|
|
"total": 30000,
|
|
|
|
"connections": 1,
|
|
|
|
"timeout": 20000000000,
|
|
|
|
"dial-timeout": 10000000000,
|
|
|
|
"data": {
|
|
|
|
"data": "{\"AddVisitor\": \"test_1\"}"
|
|
|
|
},
|
|
|
|
"binary": false,
|
|
|
|
"CPUs": 12
|
|
|
|
}</pre>
|
|
|
|
</div>
|
|
|
|
</article>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="container">
|
|
|
|
<hr />
|
|
|
|
<div class="content has-text-centered">
|
|
|
|
<p>
|
|
|
|
Generated by <strong>ghz</strong>
|
|
|
|
</p>
|
|
|
|
<a href="https://github.com/bojand/ghz"><i class="icon is-medium fab fa-github"></i></a>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
</body>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
|
|
|
const count = 30000;
|
|
|
|
|
|
|
|
const rawData = [{"timestamp":"2023-12-25T21:02:07.910683093+05:30","latency":1803844,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.910837754+05:30","latency":1523685,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.910958652+05:30","latency":1742758,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.911387361+05:30","latency":3600944,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.911389505+05:30","latency":2022927,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.911393603+05:30","latency":1958325,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.91139711+05:30","latency":2157111,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.911400937+05:30","latency":1792382,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.911408201+05:30","latency":3454168,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.911599952+05:30","latency":2320749,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.911822452+05:30","latency":3418841,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.912873195+05:30","latency":2064285,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.912883534+05:30","latency":1288721,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.912884616+05:30","latency":1977040,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.912892121+05:30","latency":1388049,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.912901077+05:30","latency":2775036,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.91290224+05:30","latency":2141681,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.912903302+05:30","latency":1222076,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.912954338+05:30","latency":3111481,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.913067121+05:30","latency":1127367,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.91340085+05:30","latency":423378,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.914039355+05:30","latency":1055892,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.914053111+05:30","latency":922681,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.914057259+05:30","latency":1037868,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.914060836+05:30","latency":1041576,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.914170002+05:30","latency":687998,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.914344932+05:30","latency":762980,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.914692848+05:30","latency":444899,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.914887946+05:30","latency":602096,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.915061113+05:30","latency":597427,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.915224451+05:30","latency":565186,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.915400103+05:30","latency":413040,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.915570795+05:30","latency":447394,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.915909093+05:30","latency":516575,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.91608241+05:30","latency":408240,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.916353532+05:30","latency":387271,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.916714593+05:30","latency":536312,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.916864536+05:30","latency":434640,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.917203225+05:30","latency":502438,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.917391871+05:30","latency":403532,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.917571359+05:30","latency":453084,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.917880463+05:30","latency":389986,"error":"","status":"OK"},{"timestamp":"2023-12-25T21:02:07.918057757+05:30","latency":450550,"error":"","status":"OK"},{"timestamp":"20
|
|
|
|
|
|
|
|
const data = [
|
|
|
|
|
|
|
|
{ name: '0.1290 ms', value: 1 },
|
|
|
|
|
|
|
|
{ name: '0.4762 ms', value: 11932 },
|
|
|
|
|
|
|
|
{ name: '0.8234 ms', value: 17558 },
|
|
|
|
|
|
|
|
{ name: '1.17 ms', value: 446 },
|
|
|
|
|
|
|
|
{ name: '1.52 ms', value: 45 },
|
|
|
|
|
|
|
|
{ name: '1.86 ms', value: 6 },
|
|
|
|
|
|
|
|
{ name: '2.21 ms', value: 6 },
|
|
|
|
|
|
|
|
{ name: '2.56 ms', value: 1 },
|
|
|
|
|
|
|
|
{ name: '2.91 ms', value: 1 },
|
|
|
|
|
|
|
|
{ name: '3.25 ms', value: 1 },
|
|
|
|
|
|
|
|
{ name: '3.60 ms', value: 3 },
|
|
|
|
|
|
|
|
];
|
|
|
|
|
|
|
|
function createHorizontalBarChart() {
|
|
|
|
let barChart = britecharts.bar(),
|
|
|
|
tooltip = britecharts.miniTooltip(),
|
|
|
|
barContainer = d3.select('.js-bar-container'),
|
|
|
|
containerWidth = barContainer.node() ? barContainer.node().getBoundingClientRect().width : false,
|
|
|
|
tooltipContainer,
|
|
|
|
dataset;
|
|
|
|
|
|
|
|
if (containerWidth) {
|
|
|
|
dataset = data;
|
|
|
|
barChart
|
|
|
|
.isHorizontal(true)
|
|
|
|
.isAnimated(true)
|
|
|
|
.margin({
|
|
|
|
left: 100,
|
|
|
|
right: 20,
|
|
|
|
top: 20,
|
|
|
|
bottom: 20
|
|
|
|
})
|
|
|
|
.colorSchema(britecharts.colors.colorSchemas.teal)
|
|
|
|
.width(containerWidth)
|
|
|
|
.yAxisPaddingBetweenChart(20)
|
|
|
|
.height(400)
|
|
|
|
// .hasPercentage(true)
|
|
|
|
.enableLabels(true)
|
|
|
|
.labelsNumberFormat('')
|
|
|
|
.percentageAxisToMaxRatio(1.3)
|
|
|
|
.on('customMouseOver', tooltip.show)
|
|
|
|
.on('customMouseMove', tooltip.update)
|
|
|
|
.on('customMouseOut', tooltip.hide);
|
|
|
|
|
|
|
|
barChart.orderingFunction(function(a, b) {
|
|
|
|
var nA = a.name.replace(/ms/gi, '');
|
|
|
|
var nB = b.name.replace(/ms/gi, '');
|
|
|
|
|
|
|
|
var vA = Number.parseFloat(nA);
|
|
|
|
var vB = Number.parseFloat(nB);
|
|
|
|
|
|
|
|
return vB - vA;
|
|
|
|
})
|
|
|
|
|
|
|
|
barContainer.datum(dataset).call(barChart);
|
|
|
|
|
|
|
|
tooltipContainer = d3.select('.js-bar-container .bar-chart .metadata-group');
|
|
|
|
tooltipContainer.datum([]).call(tooltip);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function setJSONDownloadLink () {
|
|
|
|
var filename = "data.json";
|
|
|
|
var btn = document.getElementById('dlJSON');
|
|
|
|
var jsonData = JSON.stringify(rawData)
|
|
|
|
var blob = new Blob([jsonData], { type: 'text/json;charset=utf-8;' });
|
|
|
|
var url = URL.createObjectURL(blob);
|
|
|
|
btn.setAttribute("href", url);
|
|
|
|
btn.setAttribute("download", filename);
|
|
|
|
}
|
|
|
|
|
|
|
|
function setCSVDownloadLink () {
|
|
|
|
var filename = "data.csv";
|
|
|
|
var btn = document.getElementById('dlCSV');
|
|
|
|
var csv = Papa.unparse(rawData)
|
|
|
|
var blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' });
|
|
|
|
var url = URL.createObjectURL(blob);
|
|
|
|
btn.setAttribute("href", url);
|
|
|
|
btn.setAttribute("download", filename);
|
|
|
|
}
|
|
|
|
|
|
|
|
createHorizontalBarChart();
|
|
|
|
|
|
|
|
setJSONDownloadLink();
|
|
|
|
|
|
|
|
setCSVDownloadLink();
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<script defer src="https://use.fontawesome.com/releases/v5.1.0/js/all.js"></script>
|
|
|
|
|
|
|
|
</html>
|