����JFIF��x�x����'
| Server IP : 78.140.185.180 / Your IP : 216.73.216.170 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/builderbox/././www/vendor/laravel/horizon/resources/js/screens/metrics/ |
Upload File : |
<script type="text/ecmascript-6">
import LineChart from '../../components/LineChart.vue';
export default {
components: {
LineChart
},
/**
* The component's data.
*/
data() {
return {
ready: false,
rawData: {},
metric: {}
};
},
/**
* Prepare the component.
*/
mounted() {
document.title = "Horizon - Metrics";
this.loadMetric();
},
methods: {
/**
* Load the metric.
*/
loadMetric() {
this.ready = false;
this.$http.get(Horizon.basePath + '/api/metrics/' + this.$route.params.type + '/' + encodeURIComponent(this.$route.params.slug))
.then(response => {
let data = this.prepareData(response.data);
this.rawData = response.data;
this.metric.throughPutChart = this.buildChartData(data, 'throughput', 'Times');
this.metric.runTimeChart = this.buildChartData(data, 'runtime', 'Seconds');
this.ready = true;
});
},
/**
* Prepare the response data for charts.
*/
prepareData(data) {
return _.chain(data)
.map(value => {
value.time = this.formatDate(value.time).format("MMM-D hh:mmA");
return value;
})
.groupBy(value => value.time)
.map(value => {
return _.reduce(value, (sum, value) => {
return {
runtime: parseFloat(sum.runtime) + parseFloat(value.runtime),
throughput: parseInt(sum.throughput) + parseInt(value.throughput),
time: value.time
};
})
})
.value();
},
/**
* Build the given chart data.
*/
buildChartData(data, attribute, label) {
return {
labels: _.map(data, 'time'),
datasets: [
{
label: label,
data: _.map(data, attribute),
lineTension: 0,
backgroundColor: 'transparent',
pointBackgroundColor: '#fff',
pointBorderColor: '#7746ec',
borderColor: '#7746ec',
borderWidth: 2,
},
],
};
},
}
}
</script>
<template>
<div>
<div class="card">
<div class="card-header d-flex align-items-center justify-content-between">
<h5>Throughput - {{$route.params.slug}}</h5>
</div>
<div v-if="!ready" class="d-flex align-items-center justify-content-center card-bg-secondary p-5 bottom-radius">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" class="icon spin mr-2 fill-text-color">
<path d="M12 10a2 2 0 0 1-3.41 1.41A2 2 0 0 1 10 8V0a9.97 9.97 0 0 1 10 10h-8zm7.9 1.41A10 10 0 1 1 8.59.1v2.03a8 8 0 1 0 9.29 9.29h2.02zm-4.07 0a6 6 0 1 1-7.25-7.25v2.1a3.99 3.99 0 0 0-1.4 6.57 4 4 0 0 0 6.56-1.42h2.1z"></path>
</svg>
<span>Loading...</span>
</div>
<div class="card-body card-bg-secondary" v-if="ready">
<p class="text-center m-0 p-5" v-if="ready && !rawData.length">
Not Enough Data
</p>
<line-chart v-if="ready && rawData.length" :data="metric.throughPutChart"/>
</div>
</div>
<div class="card mt-4">
<div class="card-header d-flex align-items-center justify-content-between">
<h5>Runtime - {{$route.params.slug}}</h5>
</div>
<div v-if="!ready" class="d-flex align-items-center justify-content-center card-bg-secondary p-5 bottom-radius">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" class="icon spin mr-2 fill-text-color">
<path d="M12 10a2 2 0 0 1-3.41 1.41A2 2 0 0 1 10 8V0a9.97 9.97 0 0 1 10 10h-8zm7.9 1.41A10 10 0 1 1 8.59.1v2.03a8 8 0 1 0 9.29 9.29h2.02zm-4.07 0a6 6 0 1 1-7.25-7.25v2.1a3.99 3.99 0 0 0-1.4 6.57 4 4 0 0 0 6.56-1.42h2.1z"></path>
</svg>
<span>Loading...</span>
</div>
<div class="card-body card-bg-secondary" v-if="ready">
<p class="text-center m-0 p-5" v-if="ready && !rawData.length">
Not Enough Data
</p>
<line-chart v-if="ready && rawData.length" :data="metric.runTimeChart"/>
</div>
</div>
</div>
</template>