Показ количества стримов и пакетов в минуту

This commit is contained in:
serega6531 2021-01-13 00:39:32 +03:00
parent fdbf6ca464
commit e63daaecaa
4 changed files with 41 additions and 4 deletions

View File

@ -21,6 +21,7 @@
</div> </div>
</template> </template>
<!--suppress JSUnresolvedVariable -->
<script> <script>
export const DB_OBJSTORE_COUNTERS_HISTORY = 'countersHistory'; export const DB_OBJSTORE_COUNTERS_HISTORY = 'countersHistory';
@ -106,10 +107,12 @@
break; break;
} }
case 'COUNTERS_UPDATE': { case 'COUNTERS_UPDATE': {
const data = parsed.value;
this.$store.commit('setCurrentPacketsCount', data.totalPackets);
this.$store.commit('setCurrentStreamsCount', data.totalStreams);
console.debug('Adding new counters to DB', parsed.value); console.debug('Adding new counters to DB', parsed.value);
const tx = this.db.transaction(DB_OBJSTORE_COUNTERS_HISTORY, 'readwrite'); const tx = this.db.transaction(DB_OBJSTORE_COUNTERS_HISTORY, 'readwrite');
const data = parsed.value;
// noinspection JSUnresolvedVariable,JSCheckFunctionSignatures
tx.store.add({ tx.store.add({
newPacketsCount: data.totalPackets, newPacketsCount: data.totalPackets,
newStreamsCount: data.totalStreams, newStreamsCount: data.totalStreams,

View File

@ -1,5 +1,13 @@
<template> <template>
<nav class="navbar navbar-dark navbar-expand fixed-top bg-dark flex-md-nowrap p-0 shadow"> <nav class="navbar navbar-dark navbar-expand fixed-top bg-dark flex-md-nowrap p-0 shadow">
<span class="navbar-brand mb-0 ml-2">Packmate</span>
<span class="navbar-text">
{{ this.$store.state.currentStreamsCount }}
<u title="Streams per minute">SPM</u>
, {{ packetsPerStream }}
<u title="Packets per stream (average)">PPS</u>
</span>
<PatternsDropdown ref="patternsDropdown"/> <PatternsDropdown ref="patternsDropdown"/>
<div class="navbar-collapse collapse"> <div class="navbar-collapse collapse">
@ -41,6 +49,19 @@
export default { export default {
name: 'Navbar', name: 'Navbar',
computed: {
packetsPerStream() {
let streams = this.$store.state.currentStreamsCount;
let packets = this.$store.state.currentPacketsCount;
if (streams === 0) {
return 0;
} else {
let pps = packets / streams;
return Math.round((pps + Number.EPSILON) * 10) / 10;
}
},
},
data() { data() {
return { return {
serviceModalIsCreating: true, serviceModalIsCreating: true,
@ -110,6 +131,11 @@
overflow-x: auto; overflow-x: auto;
} }
u {
text-underline-position: under;
text-decoration-style: dotted;
}
::-webkit-scrollbar { ::-webkit-scrollbar {
height: 0.2em height: 0.2em
} }

View File

@ -1,5 +1,5 @@
<template> <template>
<b-dropdown no-flip text="Patterns" block variant="dark" class="col-sm-2 mr-0 p-0"> <b-dropdown no-flip text="Patterns" block variant="dark" class="col-sm-1 mr-0 p-0">
<li role="presentation" style="padding-left: 0.5em; padding-right: 0.5em;"> <li role="presentation" style="padding-left: 0.5em; padding-right: 0.5em;">
<button role="menuitem" type="button" class="btn btn-sm btn-primary btn-block" <button role="menuitem" type="button" class="btn btn-sm btn-primary btn-block"
@click.stop.prevent="showAddPattern"> @click.stop.prevent="showAddPattern">

View File

@ -22,6 +22,9 @@ export default new Vuex.Store({
patterns: [], patterns: [],
services: [], services: [],
currentPacketsCount: 0,
currentStreamsCount: 0,
}, },
mutations: { mutations: {
setHexdumpBlockSize: (s, p) => s.hexdumpBlockSize = p, setHexdumpBlockSize: (s, p) => s.hexdumpBlockSize = p,
@ -44,6 +47,9 @@ export default new Vuex.Store({
setServices: (s, p) => s.services = p, setServices: (s, p) => s.services = p,
addService: (s, p) => s.services.push(p), addService: (s, p) => s.services.push(p),
setCurrentPacketsCount: (s, p) => s.currentPacketsCount = p,
setCurrentStreamsCount: (s, p) => s.currentStreamsCount = p,
}, },
actions: {}, actions: {},
plugins: [ plugins: [
@ -62,7 +68,9 @@ export default new Vuex.Store({
&& mName !== 'setPatterns' && mName !== 'setPatterns'
&& mName !== 'addPattern' && mName !== 'addPattern'
&& mName !== 'setServices' && mName !== 'setServices'
&& mName !== 'addService'; && mName !== 'addService'
&& mName !== 'setCurrentPacketsCount'
&& mName !== 'setCurrentStreamsCount';
console.debug('Processing?', process); console.debug('Processing?', process);
return process; return process;
}, },