blob: 1a8e0f388fee592a799a6552dc958056854541d5 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
<h1>Timer @escape($name) (@escape($unit))</h1>
@if($message,inline:<div class="error">@escape($message)</div>)
<h2>Count</h2>
<canvas id="timer-count-chart" height="100"></canvas>
<h2>Rates</h2>
<canvas id="timer-rates-chart" height="100"></canvas>
<h2>Histogram</h2>
<canvas id="timer-histogram-chart" height="100"></canvas>
/* TODO: make it composed of meter and histogram instead of duplicating it */
@include(chartsjs.html)
<script>
var options = {
fill: false,
responsive: true,
maintainAspectRatio: true,
scales: {
xAxes: [{
type: 'time',
distribution : 'series',
display: true,
scaleLabel: {
display: true,
labelString: 'Date',
}
}],
yAxes: [{
display: true,
scaleLabel: {
display: true,
labelString: '$name',
}
}]
}
};
var labels = [ @each($points,inline:new Date($$value.timestamp).toLocaleString()@if($hasNext,inline:,)) ];
new Chart(document.getElementById('timer-count-chart').getContext('2d'), {
type: 'line',
data: {
labels: labels,
datasets: [{
label: 'count',
data: [ @each($points,inline:{t:$$value.timestamp,y:$$value.value.meter.count}@if($hasNext,inline:,)) ],
borderWidth: 1,
options: options
}]
}
});
new Chart(document.getElementById('timer-rates-chart').getContext('2d'), {
type: 'line',
data: {
labels: labels,
datasets: [{
label: 'mean',
data: [ @each($points,inline:{t:$$value.timestamp,y:$$value.value.meter.rateMean}@if($hasNext,inline:,)) ],
borderWidth: 1,
options: options,
backgroundColor: '#000',
borderColor: '#000',
fill: false
},{
label: '1 mn',
data: [ @each($points,inline:{t:$$value.timestamp,y:$$value.value.meter.rate1}@if($hasNext,inline:,)) ],
borderWidth: 1,
options: options,
backgroundColor: '#339',
borderColor: '#339',
fill: false
},{
label: '5 mn',
data: [ @each($points,inline:{t:$$value.timestamp,y:$$value.value.meter.rate5}@if($hasNext,inline:,)) ],
borderWidth: 1,
options: options,
backgroundColor: '#06f',
borderColor: '#06f',
fill: false
},{
label: '15 mn',
data: [ @each($points,inline:{t:$$value.timestamp,y:$$value.value.meter.rate15}@if($hasNext,inline:,)) ],
borderWidth: 1,
options: options,
backgroundColor: '#f00',
borderColor: '#f00',
fill: false
}]
}
});
new Chart(document.getElementById('timer-histogram-chart').getContext('2d'), {
type: 'line',
data: {
labels: labels,
datasets: [{
label: 'median',
data: [ @each($points,inline:{t:$$value.timestamp,y:$$value.value.histogram.median}@if($hasNext,inline:,)) ],
borderWidth: 1,
options: options,
backgroundColor: '#339',
borderColor: '#339',
fill: false
},{
label: 'mean',
data: [ @each($points,inline:{t:$$value.timestamp,y:$$value.value.histogram.mean}@if($hasNext,inline:,)) ],
borderWidth: 1,
options: options,
backgroundColor: '#000',
borderColor: '#000',
fill: false
},{
label: 'min',
data: [ @each($points,inline:{t:$$value.timestamp,y:$$value.value.histogram.max}@if($hasNext,inline:,)) ],
borderWidth: 1,
options: options,
backgroundColor: '#06f',
borderColor: '#06f',
fill: false
},{
label: 'max',
data: [ @each($points,inline:{t:$$value.timestamp,y:$$value.value.histogram.min}@if($hasNext,inline:,)) ],
borderWidth: 1,
options: options,
backgroundColor: '#f00',
borderColor: '#f00',
fill: false
},{
label: '75th pc',
data: [ @each($points,inline:{t:$$value.timestamp,y:$$value.value.histogram.75thPercentile}@if($hasNext,inline:,)) ],
borderWidth: 1,
options: options,
backgroundColor: '#f99',
borderColor: '#f99',
fill: false
},{
label: '95th pc',
data: [ @each($points,inline:{t:$$value.timestamp,y:$$value.value.histogram.95thPercentile}@if($hasNext,inline:,)) ],
borderWidth: 1,
options: options,
backgroundColor: '#f96',
borderColor: '#f96',
fill: false
},{
label: '98th pc',
data: [ @each($points,inline:{t:$$value.timestamp,y:$$value.value.histogram.98thPercentile}@if($hasNext,inline:,)) ],
borderWidth: 1,
options: options,
backgroundColor: '#f93',
borderColor: '#f93',
fill: false
},{
label: '99th pc',
data: [ @each($points,inline:{t:$$value.timestamp,y:$$value.value.histogram.99thPercentile}@if($hasNext,inline:,)) ],
borderWidth: 1,
options: options,
backgroundColor: '#f30',
borderColor: '#f30',
fill: false
},{
label: '999th pc',
data: [ @each($points,inline:{t:$$value.timestamp,y:$$value.value.histogram.999thPercentile}@if($hasNext,inline:,)) ],
borderWidth: 1,
options: options,
backgroundColor: '#c00',
borderColor: '#c00',
fill: false
}]
}
});
</script>