fix: 看板ws黄金指标UPF

This commit is contained in:
TsMask
2024-03-21 10:10:02 +08:00
parent 4ae5f64da3
commit d15b75e8fd
5 changed files with 258 additions and 164 deletions

View File

@@ -1,6 +1,40 @@
import { parseSizeFromBits } from '@/utils/parse-utils';
import { parseSizeFromBits, parseSizeFromKbs } from '@/utils/parse-utils';
import { ref } from 'vue';
/**UPF-流量数据 */
export const upfFlowData = ref<{
/**时间 */
lineXTime: string[];
/**上行 N3 */
lineYUp: number[];
/**下行 N6 */
lineYDown: number[];
/**容量 */
cap: number;
}>({
lineXTime: [],
lineYUp: [],
lineYDown: [],
cap: 0,
});
/**UPF-流量数据 数据解析 */
export function upfFlowParse(data: Record<string, string>) {
upfFlowData.value.lineXTime.push(data['timeGroup']);
const upN3 = parseSizeFromKbs(+data['UPF.03'], 5);
upfFlowData.value.lineYUp.push(upN3[0]);
const downN6 = parseSizeFromKbs(+data['UPF.06'], 5);
upfFlowData.value.lineYDown.push(downN6[0]);
upfFlowData.value.cap += 1;
// 超过 25 弹出
if (upfFlowData.value.cap > 25) {
upfFlowData.value.lineXTime.shift();
upfFlowData.value.lineYUp.shift();
upfFlowData.value.lineYDown.shift();
upfFlowData.value.cap -= 1;
}
}
type TFType = {
/**上行 N3 */
up: string;

View File

@@ -8,7 +8,7 @@ import {
eventTotal,
eventId,
} from './useUserActivity';
import { upfTotalFlow, upfTFParse } from './useUPFTotalFlow';
import { upfTotalFlow, upfTFParse, upfFlowParse } from './useUPFTotalFlow';
import { neStateParse } from './useTopology';
import PQueue from 'p-queue';
@@ -102,6 +102,12 @@ export default function useWS() {
return;
}
switch (data.groupId) {
// kpiEvent 指标UPF
case '12':
if (data.data) {
upfFlowParse(data.data);
}
break;
// ueEvent UE会话事件
case '1010':
if (data.data) {
@@ -112,7 +118,9 @@ export default function useWS() {
eventTotal.value += 1;
eventId.value = v.eId;
await new Promise(resolve => setTimeout(resolve, 800));
eventData.value.pop();
if (eventData.value.length > 20) {
eventData.value.pop();
}
}
});
}
@@ -127,7 +135,9 @@ export default function useWS() {
eventTotal.value += 1;
eventId.value = v.eId;
await new Promise(resolve => setTimeout(resolve, 800));
eventData.value.pop();
if (eventData.value.length > 20) {
eventData.value.pop();
}
}
});
}
@@ -201,10 +211,11 @@ export default function useWS() {
params: {
/**订阅通道组
*
* 指标UPF (GroupID:12)
* UE会话事件-AMF (GroupID:1010)
* CDR会话事件-IMS (GroupID:1005)
*/
subGroupID: '1010,1005',
subGroupID: '12,1010,1005',
},
onmessage: wsMessage,
onerror: wsError,