diff --git a/src/views/charts2/charts/linkMonitor/LinkDirectionGrid.vue b/src/views/charts2/charts/linkMonitor/LinkDirectionGrid.vue index a3d040c7..a97c6a81 100644 --- a/src/views/charts2/charts/linkMonitor/LinkDirectionGrid.vue +++ b/src/views/charts2/charts/linkMonitor/LinkDirectionGrid.vue @@ -12,10 +12,10 @@ import chartMixin from '@/views/charts2/chart-mixin' import { getSecond } from '@/utils/date-util' import { api } from '@/utils/api' -import { get } from '@/utils/http' import { storageKey } from '@/utils/constants' import PopoverContent from './LinkDirectionGrid/PopoverContent' import { computeScore } from '@/utils/tools' +import axios from 'axios' export default { name: 'LinkDirectionGrid', @@ -56,11 +56,14 @@ export default { endTime: getSecond(this.timeFilter.endTime) } - const dataRequest = get(api.linkMonitor.bigramAnalysis, params) - const nextHopRequest = get(api.linkMonitor.bigramNextHopAnalysis, params) + const dataRequest = axios.get(api.linkMonitor.bigramAnalysis, { params: params }) + const nextHopRequest = axios.get(api.linkMonitor.bigramNextHopAnalysis, { params: params }) this.toggleLoading(true) - Promise.all([dataRequest, nextHopRequest]).then(res => { + Promise.all([dataRequest, nextHopRequest]).then(response => { + const res = [] + res[0] = response[0].data + res[1] = response[1].data if (res[0].code === 200) { this.isLinkShowError = false // 链路流量数据 @@ -225,13 +228,11 @@ export default { this.nextErrorMsg = res[1].message } }).catch(e => { - console.error(e) - this.isLinkShowError = true - this.linkErrorMsg = e[0].message + this.linkErrorMsg = e.message this.isNextShowError = true - this.nextErrorMsg = e[1].message + this.nextErrorMsg = e.message }).finally(() => { this.toggleLoading(false) }) diff --git a/test/views/charts2/charts/linkMonitor/LinkDirectionGrid.test.js b/test/views/charts2/charts/linkMonitor/LinkDirectionGrid.test.js new file mode 100644 index 00000000..67fdf190 --- /dev/null +++ b/test/views/charts2/charts/linkMonitor/LinkDirectionGrid.test.js @@ -0,0 +1,172 @@ +import LinkDirectionGrid from '@/views/charts2/charts/linkMonitor/LinkDirectionGrid' +import { mount } from '@vue/test-utils' +import axios from 'axios' +import { mockGet1, mockGet2, linkInfoData } from './LinkDirectionGridData' + +const linkInfo = JSON.stringify(linkInfoData) +const timeFilter = { + dateRangeValue: -1, + startTime: 1673244000000, + endTime: 1673247600000 +} + +var wrapper = null + +/** + * 进行axios请求,并挂载vue实例 + * @param list1 + * @param list2 + */ +function axiosPostAndMounted (list1, list2) { + require('vue-router').useRoute.mockReturnValue({ query: {} }) + + const data1 = list1 || mockGet1 + const data2 = list2 || mockGet2 + // 模拟axios返回数据 + axios.get.mockImplementation(url => { + switch (url) { + case '/interface/link/overview/bigramAnalysis': + return Promise.resolve(data1) + case '/interface/link/overview/bigramNextHopAnalysis': + return Promise.resolve(data2) + } + }) + + // 模拟localStorage获取数据 + jest.spyOn(localStorage.__proto__, 'getItem').mockImplementation(key => linkInfo) + + // 加载vue组件,获得实例 + wrapper = mount(LinkDirectionGrid, { + propsData: { + timeFilter + } + }) +} + +describe('views/charts2/charts/linkMonitor/LinkBlock.vue测试', () => { + test('鼠标移动到链路网格图第5行第3列,下一跳网格图第3行第1列,测试界面内容', async () => { + axiosPostAndMounted() + + await new Promise(resolve => setTimeout(() => { + /** + * 此为左侧链路网格图dom + */ + const fromLinkId5 = wrapper.find('[test-id="fromLinkId5"]') + const toLinkId3 = wrapper.find('[test-id="toLinkId3"]') + // 出入流量占比dom,egressUsage10-5-3,10-5-3表示,10行10列的左侧网格图第5行第3列的上行流量 + const egressUsage1053 = wrapper.find('[test-id="egressUsage10-5-3"]') + const ingressUsage1053 = wrapper.find('[test-id="ingressUsage10-5-3"]') + // 总流量 + const totalBitsRate1053 = wrapper.find('[test-id="totalBitsRate10-5-3"]') + // 评分 + const score1053 = wrapper.find('[test-id="score10-5-3"]') + // TCP连接建立延迟 + const tcp1053 = wrapper.find('[test-id="tcp10-5-3"]') + // HTTP响应延迟 + const http1053 = wrapper.find('[test-id="http10-5-3"]') + // SSL响应延迟 + const ssl1053 = wrapper.find('[test-id="ssl10-5-3"]') + // 数据包丢失 + const packetLoss1053 = wrapper.find('[test-id="packetLoss10-5-3"]') + // 重传率 + const packetRetrans1053 = wrapper.find('[test-id="packetRetrans10-5-3"]') + + expect(fromLinkId5.text()).toBe('Hundredgige5') + expect(toLinkId3.text()).toBe('Hundredgige3') + expect(egressUsage1053.text()).toBe('< 0.01%') + expect(ingressUsage1053.text()).toBe('< 0.01%') + expect(totalBitsRate1053.text()).toBe('576.94Kbps') + expect(score1053.text()).toBe('6') + expect(tcp1053.text()).toBe('83ms') + expect(http1053.text()).toBe('107ms') + expect(ssl1053.text()).toBe('0ms') + expect(packetLoss1053.text()).toBe('0.38%') + expect(packetRetrans1053.text()).toBe('0.91%') + + /** + * 此为右侧下一跳网络网格图dom + */ + const toNextHop3 = wrapper.find('[test-id="toNextHop3"]') + const toNextHop1 = wrapper.find('[test-id="toNextHop1"]') + // 出入流量占比dom,egressUsage3-3-1,3-3-1表示,3行3列的右侧网格图第3行第1列的上行流量 + const egressUsage331 = wrapper.find('[test-id="egressUsage3-3-1"]') + const ingressUsage331 = wrapper.find('[test-id="ingressUsage3-3-1"]') + // 总流量 + const totalBitsRate331 = wrapper.find('[test-id="totalBitsRate3-3-1"]') + // 评分 + const score331 = wrapper.find('[test-id="score3-3-1"]') + // TCP连接建立延迟 + const tcp331 = wrapper.find('[test-id="tcp3-3-1"]') + // HTTP响应延迟 + const http331 = wrapper.find('[test-id="http3-3-1"]') + // SSL响应延迟 + const ssl331 = wrapper.find('[test-id="ssl3-3-1"]') + // 数据包丢失 + const packetLoss331 = wrapper.find('[test-id="packetLoss3-3-1"]') + // 重传率 + const packetRetrans331 = wrapper.find('[test-id="packetRetrans3-3-1"]') + + expect(toNextHop3.text()).toBe('西宁') + expect(toNextHop1.text()).toBe('太原') + expect(egressUsage331.text()).toBe('< 0.01%') + expect(ingressUsage331.text()).toBe('< 0.01%') + expect(totalBitsRate331.text()).toBe('6.50Mbps') + expect(score331.text()).toBe('5') + expect(tcp331.text()).toBe('89ms') + expect(http331.text()).toBe('151ms') + expect(ssl331.text()).toBe('0ms') + expect(packetLoss331.text()).toBe('0.53%') + expect(packetRetrans331.text()).toBe('2.24%') + resolve() + }, 200)) + }) + test('鼠标移动到链路网格图第5行第3列,下一跳网格图第3行第1列,测试total和上下行流量占比', async () => { + const list1 = JSON.parse(JSON.stringify(mockGet1)) + const list2 = JSON.parse(JSON.stringify(mockGet2)) + // 5行3列的位置顺序为1053,因为数组index从0开始,在数组中键值即为43 + // totalBitsRate原为576935.76,即576.94Kbps,修改后为57.69Mbps + list1.data.data.result[43].totalBitsRate = 57693576 + list1.data.data.result[43].egressBitsRate = 100000000000 + list1.data.data.result[43].ingressBitsRate = 0 + + // 下一跳是3行3列,所以3行1列位置是7,键值为6 + list2.data.data.result[6].totalBitsRate = 87726000 + list2.data.data.result[6].egressBitsRate = 0 + list2.data.data.result[6].ingressBitsRate = 100000000000 + axiosPostAndMounted(list1, list2) + + await new Promise(resolve => setTimeout(() => { + /** + * 此为左侧链路网格图dom + */ + // 出入流量占比dom,egressUsage10-5-3,表示第5行第3列的上行流量 + const egressUsage1053 = wrapper.get('[test-id="egressUsage10-5-3"]') + const ingressUsage1053 = wrapper.get('[test-id="ingressUsage10-5-3"]') + // 总流量 + const totalBitsRate1053 = wrapper.get('[test-id="totalBitsRate10-5-3"]') + // 评分 + const score1053 = wrapper.get('[test-id="score10-5-3"]') + + expect(egressUsage1053.text()).toBe('100.00%') + expect(ingressUsage1053.text()).toBe('0%') + expect(totalBitsRate1053.text()).toBe('57.69Mbps') + expect(score1053.text()).toBe('6') + + /** + * 此为右侧下一跳网络网格图dom + */ + const egressUsage331 = wrapper.find('[test-id="egressUsage3-3-1"]') + const ingressUsage331 = wrapper.find('[test-id="ingressUsage3-3-1"]') + // 总流量 + const totalBitsRate331 = wrapper.find('[test-id="totalBitsRate3-3-1"]') + // 评分 + const score331 = wrapper.find('[test-id="score3-3-1"]') + + expect(egressUsage331.text()).toBe('0%') + expect(ingressUsage331.text()).toBe('100.00%') + expect(totalBitsRate331.text()).toBe('87.73Mbps') + expect(score331.text()).toBe('5') + resolve() + }, 200)) + }) +}) diff --git a/test/views/charts2/charts/linkMonitor/LinkDirectionGridData.js b/test/views/charts2/charts/linkMonitor/LinkDirectionGridData.js new file mode 100644 index 00000000..8da7cf1e --- /dev/null +++ b/test/views/charts2/charts/linkMonitor/LinkDirectionGridData.js @@ -0,0 +1,2232 @@ +export const mockGet1 = { + data: { + 'status': 200, + 'code': 200, + 'queryKey': '610b4a743fa62b58cf5d70dab84b8b6f', + 'success': true, + 'message': null, + 'statistics': { + 'elapsed': 5, + 'rows_read': 14027, + 'bytes_read': 1416727, + 'result_size': 25460, + 'result_rows': 101 + }, + 'job': null, + 'formatType': 'json', + 'meta': [ + { + 'name': 'egress_link_id', + 'type': 'long', + 'category': 'Dimension' + }, + { + 'name': 'ingress_link_id', + 'type': 'long', + 'category': 'Dimension' + }, + { + 'name': 'total_bytes', + 'type': 'long', + 'category': 'Metric' + }, + { + 'name': 'egress_bytes', + 'type': 'long', + 'category': 'Metric' + }, + { + 'name': 'ingress_bytes', + 'type': 'long', + 'category': 'Metric' + }, + { + 'name': 'establish_latency_ms', + 'type': 'double', + 'category': 'Metric' + }, + { + 'name': 'http_response_latency', + 'type': 'double', + 'category': 'Metric' + }, + { + 'name': 'ssl_con_latency', + 'type': 'double', + 'category': 'Metric' + }, + { + 'name': 'tcp_lostlen_percent', + 'type': 'double', + 'category': 'Metric' + }, + { + 'name': 'pkt_retrans_percent', + 'type': 'double', + 'category': 'Metric' + } + ], + 'data': { + 'resultType': 'table', + 'result': [ + { + 'egressLinkId': '0', + 'ingressLinkId': '0', + 'totalBytes': '434765502450', + 'totalBitsRate': 966145560.96, + 'egressBytes': '363544351329', + 'egressBitsRate': 807876336.32, + 'ingressBytes': '41292202303', + 'ingressBitsRate': 91760449.6, + 'establishLatencyMs': 90.0669, + 'httpResponseLatency': 184.3881, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0101, + 'pktRetransPercent': 0.0226 + }, + { + 'egressLinkId': '256', + 'ingressLinkId': '257', + 'totalBytes': '534995002', + 'totalBitsRate': 1188877.76, + 'egressBytes': '447206140', + 'egressBitsRate': 993791.44, + 'ingressBytes': '36435444', + 'ingressBitsRate': 80967.68, + 'establishLatencyMs': 75.5612, + 'httpResponseLatency': 240.396, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0029, + 'pktRetransPercent': 0.0111, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '512', + 'ingressLinkId': '257', + 'totalBytes': '382047632', + 'totalBitsRate': 848994.72, + 'egressBytes': '352856271', + 'egressBitsRate': 784125.04, + 'ingressBytes': '18385230', + 'ingressBitsRate': 40856.08, + 'establishLatencyMs': 98.59, + 'httpResponseLatency': 100.5516, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0127, + 'pktRetransPercent': 0.0137, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '768', + 'ingressLinkId': '257', + 'totalBytes': '301459240', + 'totalBitsRate': 669909.44, + 'egressBytes': '245480754', + 'egressBitsRate': 545512.8, + 'ingressBytes': '34220091', + 'ingressBitsRate': 76044.64, + 'establishLatencyMs': 108.9343, + 'httpResponseLatency': 160.9725, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0022, + 'pktRetransPercent': 0.0173, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '1024', + 'ingressLinkId': '257', + 'totalBytes': '428032397', + 'totalBitsRate': 951183.12, + 'egressBytes': '376399588', + 'egressBitsRate': 836443.52, + 'ingressBytes': '37870336', + 'ingressBitsRate': 84156.32, + 'establishLatencyMs': 88.6706, + 'httpResponseLatency': 131.524, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0019, + 'pktRetransPercent': 0.0126, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '1280', + 'ingressLinkId': '257', + 'totalBytes': '593122664', + 'totalBitsRate': 1318050.4, + 'egressBytes': '555791176', + 'egressBitsRate': 1235091.52, + 'ingressBytes': '18981210', + 'ingressBitsRate': 42180.48, + 'establishLatencyMs': 101.3537, + 'httpResponseLatency': 254.3362, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0044, + 'pktRetransPercent': 0.0135, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '1536', + 'ingressLinkId': '257', + 'totalBytes': '377183386', + 'totalBitsRate': 838185.28, + 'egressBytes': '327968719', + 'egressBitsRate': 728819.36, + 'ingressBytes': '24566904', + 'ingressBitsRate': 54593.12, + 'establishLatencyMs': 79.7386, + 'httpResponseLatency': 95.8814, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.012, + 'pktRetransPercent': 0.0086, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '1792', + 'ingressLinkId': '257', + 'totalBytes': '301778612', + 'totalBitsRate': 670619.12, + 'egressBytes': '280107213', + 'egressBitsRate': 622460.48, + 'ingressBytes': '10638455', + 'ingressBitsRate': 23641.04, + 'establishLatencyMs': 91.1497, + 'httpResponseLatency': 152.3226, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0013, + 'pktRetransPercent': 0.0181, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '2048', + 'ingressLinkId': '257', + 'totalBytes': '412927429', + 'totalBitsRate': 917616.48, + 'egressBytes': '367353610', + 'egressBitsRate': 816341.36, + 'ingressBytes': '29730481', + 'ingressBitsRate': 66067.76, + 'establishLatencyMs': 76.6838, + 'httpResponseLatency': 94.3495, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0053, + 'pktRetransPercent': 0.0198, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '2304', + 'ingressLinkId': '257', + 'totalBytes': '257255077', + 'totalBitsRate': 571677.92, + 'egressBytes': '233167830', + 'egressBitsRate': 518150.72, + 'ingressBytes': '11320646', + 'ingressBitsRate': 25156.96, + 'establishLatencyMs': 78.8745, + 'httpResponseLatency': 241.5664, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0037, + 'pktRetransPercent': 0.0113, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '2816', + 'ingressLinkId': '257', + 'totalBytes': '391380150', + 'totalBitsRate': 869733.68, + 'egressBytes': '358497570', + 'egressBitsRate': 796661.28, + 'ingressBytes': '20314164', + 'ingressBitsRate': 45142.56, + 'establishLatencyMs': 104.9262, + 'httpResponseLatency': 137.3243, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0097, + 'pktRetransPercent': 0.0107, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '256', + 'ingressLinkId': '513', + 'totalBytes': '517401256', + 'totalBitsRate': 1149780.56, + 'egressBytes': '468690408', + 'egressBitsRate': 1041534.24, + 'ingressBytes': '31206282', + 'ingressBitsRate': 69347.28, + 'establishLatencyMs': 95.7474, + 'httpResponseLatency': 117.9447, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0035, + 'pktRetransPercent': 0.0108, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '512', + 'ingressLinkId': '513', + 'totalBytes': '286609222', + 'totalBitsRate': 636909.36, + 'egressBytes': '253449086', + 'egressBitsRate': 563220.16, + 'ingressBytes': '6606987', + 'ingressBitsRate': 14682.16, + 'establishLatencyMs': 111.8724, + 'httpResponseLatency': 151.1935, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0064, + 'pktRetransPercent': 0.0181, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '768', + 'ingressLinkId': '513', + 'totalBytes': '427290221', + 'totalBitsRate': 949533.84, + 'egressBytes': '288163262', + 'egressBitsRate': 640362.8, + 'ingressBytes': '124378803', + 'ingressBitsRate': 276397.36, + 'establishLatencyMs': 84.4296, + 'httpResponseLatency': 107.7755, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0042, + 'pktRetransPercent': 0.0136, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '1024', + 'ingressLinkId': '513', + 'totalBytes': '426123014', + 'totalBitsRate': 946940, + 'egressBytes': '378583688', + 'egressBitsRate': 841297.12, + 'ingressBytes': '34027267', + 'ingressBitsRate': 75616.16, + 'establishLatencyMs': 129.1622, + 'httpResponseLatency': 135.7024, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0024, + 'pktRetransPercent': 0.0293, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '1280', + 'ingressLinkId': '513', + 'totalBytes': '480617318', + 'totalBitsRate': 1068038.48, + 'egressBytes': '355592692', + 'egressBitsRate': 790206, + 'ingressBytes': '107451059', + 'ingressBitsRate': 238780.16, + 'establishLatencyMs': 81.3479, + 'httpResponseLatency': 110.0703, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.001, + 'pktRetransPercent': 0.0122, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '1536', + 'ingressLinkId': '513', + 'totalBytes': '378829607', + 'totalBitsRate': 841843.6, + 'egressBytes': '340354481', + 'egressBitsRate': 756343.28, + 'ingressBytes': '23667236', + 'ingressBitsRate': 52593.84, + 'establishLatencyMs': 72.8997, + 'httpResponseLatency': 155.1332, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0055, + 'pktRetransPercent': 0.0192, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '1792', + 'ingressLinkId': '513', + 'totalBytes': '262609018', + 'totalBitsRate': 583575.6, + 'egressBytes': '214741913', + 'egressBitsRate': 477204.24, + 'ingressBytes': '36558657', + 'ingressBitsRate': 81241.44, + 'establishLatencyMs': 107.3446, + 'httpResponseLatency': 128.785, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0024, + 'pktRetransPercent': 0.021, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '2048', + 'ingressLinkId': '513', + 'totalBytes': '836277105', + 'totalBitsRate': 1858393.6, + 'egressBytes': '762938193', + 'egressBitsRate': 1695418.24, + 'ingressBytes': '51506746', + 'ingressBitsRate': 114459.44, + 'establishLatencyMs': 106.0485, + 'httpResponseLatency': 101.236, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.005, + 'pktRetransPercent': 0.0195, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '2304', + 'ingressLinkId': '513', + 'totalBytes': '463632587', + 'totalBitsRate': 1030294.64, + 'egressBytes': '399024852', + 'egressBitsRate': 886721.92, + 'ingressBytes': '54635227', + 'ingressBitsRate': 121411.6, + 'establishLatencyMs': 70.067, + 'httpResponseLatency': 82.2698, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0105, + 'pktRetransPercent': 0.016, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '2816', + 'ingressLinkId': '513', + 'totalBytes': '375090527', + 'totalBitsRate': 833534.48, + 'egressBytes': '337080747', + 'egressBitsRate': 749068.32, + 'ingressBytes': '19278792', + 'ingressBitsRate': 42841.76, + 'establishLatencyMs': 78.1834, + 'httpResponseLatency': 140.8154, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0026, + 'pktRetransPercent': 0.013, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '256', + 'ingressLinkId': '769', + 'totalBytes': '394768512', + 'totalBitsRate': 877263.36, + 'egressBytes': '359885579', + 'egressBitsRate': 799745.76, + 'ingressBytes': '20504968', + 'ingressBitsRate': 45566.56, + 'establishLatencyMs': 122.3644, + 'httpResponseLatency': 206.5775, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0042, + 'pktRetransPercent': 0.0242, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '512', + 'ingressLinkId': '769', + 'totalBytes': '364786783', + 'totalBitsRate': 810637.28, + 'egressBytes': '325142570', + 'egressBitsRate': 722539.04, + 'ingressBytes': '29059460', + 'ingressBitsRate': 64576.56, + 'establishLatencyMs': 72.3282, + 'httpResponseLatency': 115.4195, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0076, + 'pktRetransPercent': 0.0103, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '768', + 'ingressLinkId': '769', + 'totalBytes': '569429971', + 'totalBitsRate': 1265399.92, + 'egressBytes': '397984191', + 'egressBitsRate': 884409.28, + 'ingressBytes': '157860292', + 'ingressBitsRate': 350800.64, + 'establishLatencyMs': 71.1193, + 'httpResponseLatency': 169.7063, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0048, + 'pktRetransPercent': 0.0225, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '1024', + 'ingressLinkId': '769', + 'totalBytes': '579478002', + 'totalBitsRate': 1287728.88, + 'egressBytes': '214792325', + 'egressBitsRate': 477316.24, + 'ingressBytes': '94103478', + 'ingressBitsRate': 209118.8, + 'establishLatencyMs': 91.5207, + 'httpResponseLatency': 165.092, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.006, + 'pktRetransPercent': 0.0105, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '1280', + 'ingressLinkId': '769', + 'totalBytes': '496892965', + 'totalBitsRate': 1104206.56, + 'egressBytes': '457600850', + 'egressBitsRate': 1016890.8, + 'ingressBytes': '24748500', + 'ingressBitsRate': 54996.64, + 'establishLatencyMs': 74.9958, + 'httpResponseLatency': 584.5813, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0025, + 'pktRetransPercent': 0.014, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '1536', + 'ingressLinkId': '769', + 'totalBytes': '623165485', + 'totalBitsRate': 1384812.16, + 'egressBytes': '526692235', + 'egressBitsRate': 1170427.2, + 'ingressBytes': '70998403', + 'ingressBitsRate': 157774.24, + 'establishLatencyMs': 80.2485, + 'httpResponseLatency': 1100.2457, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0057, + 'pktRetransPercent': 0.0165, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '1792', + 'ingressLinkId': '769', + 'totalBytes': '376219195', + 'totalBitsRate': 836042.64, + 'egressBytes': '320229891', + 'egressBitsRate': 711622, + 'ingressBytes': '42082573', + 'ingressBitsRate': 93516.8, + 'establishLatencyMs': 89.2396, + 'httpResponseLatency': 176.6074, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0017, + 'pktRetransPercent': 0.0129, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '2048', + 'ingressLinkId': '769', + 'totalBytes': '537023143', + 'totalBitsRate': 1193384.8, + 'egressBytes': '485285786', + 'egressBitsRate': 1078412.88, + 'ingressBytes': '33957352', + 'ingressBitsRate': 75460.8, + 'establishLatencyMs': 161.714, + 'httpResponseLatency': 299.7771, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.009, + 'pktRetransPercent': 0.0205, + 'usageMore90': false, + 'score': 4, + 'scoreLow3': false + }, + { + 'egressLinkId': '2304', + 'ingressLinkId': '769', + 'totalBytes': '408668842', + 'totalBitsRate': 908152.96, + 'egressBytes': '364103470', + 'egressBitsRate': 809118.8, + 'ingressBytes': '27943863', + 'ingressBitsRate': 62097.44, + 'establishLatencyMs': 84.474, + 'httpResponseLatency': 233.6678, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0019, + 'pktRetransPercent': 0.0191, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '2816', + 'ingressLinkId': '769', + 'totalBytes': '281357790', + 'totalBitsRate': 625239.52, + 'egressBytes': '246576400', + 'egressBitsRate': 547947.52, + 'ingressBytes': '22861043', + 'ingressBitsRate': 50802.32, + 'establishLatencyMs': 73.8313, + 'httpResponseLatency': 101.7295, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0026, + 'pktRetransPercent': 0.0161, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '256', + 'ingressLinkId': '1025', + 'totalBytes': '298043232', + 'totalBitsRate': 662318.32, + 'egressBytes': '277239595', + 'egressBitsRate': 616088, + 'ingressBytes': '9157756', + 'ingressBitsRate': 20350.56, + 'establishLatencyMs': 76.5483, + 'httpResponseLatency': 107.388, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0029, + 'pktRetransPercent': 0.012, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '512', + 'ingressLinkId': '1025', + 'totalBytes': '437964797', + 'totalBitsRate': 973255.12, + 'egressBytes': '392328303', + 'egressBitsRate': 871840.64, + 'ingressBytes': '25486621', + 'ingressBitsRate': 56636.96, + 'establishLatencyMs': 73.2709, + 'httpResponseLatency': 124.8192, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0047, + 'pktRetransPercent': 0.0243, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '768', + 'ingressLinkId': '1025', + 'totalBytes': '464792996', + 'totalBitsRate': 1032873.36, + 'egressBytes': '429292974', + 'egressBitsRate': 953984.4, + 'ingressBytes': '24968412', + 'ingressBitsRate': 55485.36, + 'establishLatencyMs': 73.624, + 'httpResponseLatency': 143.2992, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0028, + 'pktRetransPercent': 0.0327, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '1024', + 'ingressLinkId': '1025', + 'totalBytes': '309813302', + 'totalBitsRate': 688474, + 'egressBytes': '275012816', + 'egressBitsRate': 611139.6, + 'ingressBytes': '14787925', + 'ingressBitsRate': 32862.08, + 'establishLatencyMs': 69.9228, + 'httpResponseLatency': 224.0711, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0071, + 'pktRetransPercent': 0.0086, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '1280', + 'ingressLinkId': '1025', + 'totalBytes': '625851341', + 'totalBitsRate': 1390780.72, + 'egressBytes': '533489719', + 'egressBitsRate': 1185532.72, + 'ingressBytes': '77867845', + 'ingressBitsRate': 173039.68, + 'establishLatencyMs': 117.7443, + 'httpResponseLatency': 234.0509, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.008, + 'pktRetransPercent': 0.0153, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '1536', + 'ingressLinkId': '1025', + 'totalBytes': '511034764', + 'totalBitsRate': 1135632.8, + 'egressBytes': '464176598', + 'egressBitsRate': 1031503.52, + 'ingressBytes': '31537941', + 'ingressBitsRate': 70084.32, + 'establishLatencyMs': 79.7973, + 'httpResponseLatency': 108.2308, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0097, + 'pktRetransPercent': 0.0127, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '1792', + 'ingressLinkId': '1025', + 'totalBytes': '510497154', + 'totalBitsRate': 1134438.16, + 'egressBytes': '477831366', + 'egressBitsRate': 1061847.44, + 'ingressBytes': '12705069', + 'ingressBitsRate': 28233.52, + 'establishLatencyMs': 90.772, + 'httpResponseLatency': 138.007, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0073, + 'pktRetransPercent': 0.0289, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '2048', + 'ingressLinkId': '1025', + 'totalBytes': '705186479', + 'totalBitsRate': 1567081.04, + 'egressBytes': '609149182', + 'egressBitsRate': 1353664.88, + 'ingressBytes': '61214875', + 'ingressBitsRate': 136033.04, + 'establishLatencyMs': 68.2169, + 'httpResponseLatency': 159.491, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0041, + 'pktRetransPercent': 0.0182, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '2304', + 'ingressLinkId': '1025', + 'totalBytes': '295233728', + 'totalBitsRate': 656074.96, + 'egressBytes': '211230066', + 'egressBitsRate': 469400.16, + 'ingressBytes': '25660250', + 'ingressBitsRate': 57022.8, + 'establishLatencyMs': 151.2545, + 'httpResponseLatency': 228.9587, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0031, + 'pktRetransPercent': 0.0173, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '2816', + 'ingressLinkId': '1025', + 'totalBytes': '304032381', + 'totalBitsRate': 675627.52, + 'egressBytes': '275012404', + 'egressBitsRate': 611138.64, + 'ingressBytes': '15041391', + 'ingressBitsRate': 33425.28, + 'establishLatencyMs': 87.4599, + 'httpResponseLatency': 163.9644, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0036, + 'pktRetransPercent': 0.0142, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '256', + 'ingressLinkId': '1281', + 'totalBytes': '417367176', + 'totalBitsRate': 927482.64, + 'egressBytes': '367204335', + 'egressBitsRate': 816009.6, + 'ingressBytes': '34011146', + 'ingressBitsRate': 75580.32, + 'establishLatencyMs': 76.0439, + 'httpResponseLatency': 133.8785, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0026, + 'pktRetransPercent': 0.0066, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '512', + 'ingressLinkId': '1281', + 'totalBytes': '383696444', + 'totalBitsRate': 852658.8, + 'egressBytes': '333439743', + 'egressBitsRate': 740977.2, + 'ingressBytes': '41316879', + 'ingressBitsRate': 91815.28, + 'establishLatencyMs': 74.6806, + 'httpResponseLatency': 252.2572, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0059, + 'pktRetransPercent': 0.011, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '768', + 'ingressLinkId': '1281', + 'totalBytes': '259621097', + 'totalBitsRate': 576935.76, + 'egressBytes': '232771102', + 'egressBitsRate': 517269.12, + 'ingressBytes': '16746429', + 'ingressBitsRate': 37214.32, + 'establishLatencyMs': 82.902, + 'httpResponseLatency': 107.0519, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0038, + 'pktRetransPercent': 0.0091, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '1024', + 'ingressLinkId': '1281', + 'totalBytes': '393383026', + 'totalBitsRate': 874184.48, + 'egressBytes': '351396318', + 'egressBitsRate': 780880.72, + 'ingressBytes': '31340065', + 'ingressBitsRate': 69644.56, + 'establishLatencyMs': 64.413, + 'httpResponseLatency': 85.3855, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0025, + 'pktRetransPercent': 0.0114, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '1280', + 'ingressLinkId': '1281', + 'totalBytes': '387129909', + 'totalBitsRate': 860288.72, + 'egressBytes': '302488556', + 'egressBitsRate': 672196.8, + 'ingressBytes': '72455586', + 'ingressBitsRate': 161012.4, + 'establishLatencyMs': 76.4561, + 'httpResponseLatency': 192.1006, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0052, + 'pktRetransPercent': 0.0168, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '1536', + 'ingressLinkId': '1281', + 'totalBytes': '425879588', + 'totalBitsRate': 946399.12, + 'egressBytes': '263435832', + 'egressBitsRate': 585412.96, + 'ingressBytes': '146140145', + 'ingressBitsRate': 324755.84, + 'establishLatencyMs': 144.9736, + 'httpResponseLatency': 145.7219, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0054, + 'pktRetransPercent': 0.019, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '1792', + 'ingressLinkId': '1281', + 'totalBytes': '287483397', + 'totalBitsRate': 638852, + 'egressBytes': '257365122', + 'egressBitsRate': 571922.48, + 'ingressBytes': '20811515', + 'ingressBitsRate': 46247.84, + 'establishLatencyMs': 115.147, + 'httpResponseLatency': 190.5346, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0117, + 'pktRetransPercent': 0.0218, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '2048', + 'ingressLinkId': '1281', + 'totalBytes': '261944760', + 'totalBitsRate': 582099.44, + 'egressBytes': '224739060', + 'egressBitsRate': 499420.16, + 'ingressBytes': '22733255', + 'ingressBitsRate': 50518.32, + 'establishLatencyMs': 70.5032, + 'httpResponseLatency': 88.7246, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0026, + 'pktRetransPercent': 0.0119, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '2304', + 'ingressLinkId': '1281', + 'totalBytes': '384921036', + 'totalBitsRate': 855380.08, + 'egressBytes': '287289027', + 'egressBitsRate': 638420.08, + 'ingressBytes': '85851016', + 'ingressBitsRate': 190780, + 'establishLatencyMs': 77.1338, + 'httpResponseLatency': 119.3661, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0038, + 'pktRetransPercent': 0.0157, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '2816', + 'ingressLinkId': '1281', + 'totalBytes': '747219384', + 'totalBitsRate': 1660487.52, + 'egressBytes': '711493451', + 'egressBitsRate': 1581096.56, + 'ingressBytes': '19888607', + 'ingressBitsRate': 44196.88, + 'establishLatencyMs': 94.9185, + 'httpResponseLatency': 174.1762, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0033, + 'pktRetransPercent': 0.0225, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '256', + 'ingressLinkId': '1537', + 'totalBytes': '314181123', + 'totalBitsRate': 698180.24, + 'egressBytes': '290716163', + 'egressBitsRate': 646035.92, + 'ingressBytes': '12528086', + 'ingressBitsRate': 27840.16, + 'establishLatencyMs': 64.4391, + 'httpResponseLatency': 83.7041, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0119, + 'pktRetransPercent': 0.0142, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '512', + 'ingressLinkId': '1537', + 'totalBytes': '491448414', + 'totalBitsRate': 1092107.6, + 'egressBytes': '373279539', + 'egressBitsRate': 829510.08, + 'ingressBytes': '58058567', + 'ingressBitsRate': 129019.04, + 'establishLatencyMs': 118.2363, + 'httpResponseLatency': 117.7304, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0072, + 'pktRetransPercent': 0.0116, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '768', + 'ingressLinkId': '1537', + 'totalBytes': '398005843', + 'totalBitsRate': 884457.44, + 'egressBytes': '267392714', + 'egressBitsRate': 594206, + 'ingressBytes': '101268761', + 'ingressBitsRate': 225041.68, + 'establishLatencyMs': 83.3056, + 'httpResponseLatency': 147.8219, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0032, + 'pktRetransPercent': 0.0151, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '1024', + 'ingressLinkId': '1537', + 'totalBytes': '344047174', + 'totalBitsRate': 764549.28, + 'egressBytes': '318533531', + 'egressBitsRate': 707852.32, + 'ingressBytes': '16906918', + 'ingressBitsRate': 37570.96, + 'establishLatencyMs': 121.1739, + 'httpResponseLatency': 126.4862, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0073, + 'pktRetransPercent': 0.0186, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '1280', + 'ingressLinkId': '1537', + 'totalBytes': '471587736', + 'totalBitsRate': 1047972.72, + 'egressBytes': '410880816', + 'egressBitsRate': 913068.48, + 'ingressBytes': '28281853', + 'ingressBitsRate': 62848.56, + 'establishLatencyMs': 70.9806, + 'httpResponseLatency': 185.4856, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0035, + 'pktRetransPercent': 0.0125, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '1536', + 'ingressLinkId': '1537', + 'totalBytes': '435477272', + 'totalBitsRate': 967727.28, + 'egressBytes': '354445790', + 'egressBitsRate': 787657.28, + 'ingressBytes': '57547816', + 'ingressBitsRate': 127884, + 'establishLatencyMs': 77.2037, + 'httpResponseLatency': 120.3639, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0058, + 'pktRetransPercent': 0.0211, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '1792', + 'ingressLinkId': '1537', + 'totalBytes': '421275299', + 'totalBitsRate': 936167.36, + 'egressBytes': '394027515', + 'egressBitsRate': 875616.72, + 'ingressBytes': '11330580', + 'ingressBitsRate': 25179.04, + 'establishLatencyMs': 87.0062, + 'httpResponseLatency': 185.6153, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0065, + 'pktRetransPercent': 0.0141, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '2048', + 'ingressLinkId': '1537', + 'totalBytes': '753697278', + 'totalBitsRate': 1674882.88, + 'egressBytes': '671374082', + 'egressBitsRate': 1491942.4, + 'ingressBytes': '62801227', + 'ingressBitsRate': 139558.32, + 'establishLatencyMs': 89.8664, + 'httpResponseLatency': 117.8758, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0032, + 'pktRetransPercent': 0.0144, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '2304', + 'ingressLinkId': '1537', + 'totalBytes': '460044320', + 'totalBitsRate': 1022320.72, + 'egressBytes': '389631794', + 'egressBitsRate': 865848.4, + 'ingressBytes': '51549641', + 'ingressBitsRate': 114554.72, + 'establishLatencyMs': 88.5266, + 'httpResponseLatency': 126.5988, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0012, + 'pktRetransPercent': 0.0203, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '2816', + 'ingressLinkId': '1537', + 'totalBytes': '350106467', + 'totalBitsRate': 778014.4, + 'egressBytes': '273295970', + 'egressBitsRate': 607324.4, + 'ingressBytes': '68060771', + 'ingressBitsRate': 151246.16, + 'establishLatencyMs': 73.7358, + 'httpResponseLatency': 116.135, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0045, + 'pktRetransPercent': 0.0341, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '256', + 'ingressLinkId': '1793', + 'totalBytes': '452268295', + 'totalBitsRate': 1005040.64, + 'egressBytes': '379485980', + 'egressBitsRate': 843302.16, + 'ingressBytes': '55074312', + 'ingressBitsRate': 122387.36, + 'establishLatencyMs': 78.7998, + 'httpResponseLatency': 93.5587, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.003, + 'pktRetransPercent': 0.021, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '512', + 'ingressLinkId': '1793', + 'totalBytes': '700042073', + 'totalBitsRate': 1555649.04, + 'egressBytes': '673088759', + 'egressBitsRate': 1495752.8, + 'ingressBytes': '10410544', + 'ingressBitsRate': 23134.56, + 'establishLatencyMs': 85.8763, + 'httpResponseLatency': 159.1093, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0041, + 'pktRetransPercent': 0.0157, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '768', + 'ingressLinkId': '1793', + 'totalBytes': '271912982', + 'totalBitsRate': 604251.04, + 'egressBytes': '227792078', + 'egressBitsRate': 506204.64, + 'ingressBytes': '31821353', + 'ingressBitsRate': 70714.08, + 'establishLatencyMs': 73.8296, + 'httpResponseLatency': 84.6696, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0054, + 'pktRetransPercent': 0.0084, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '1024', + 'ingressLinkId': '1793', + 'totalBytes': '502977380', + 'totalBitsRate': 1117727.52, + 'egressBytes': '324437335', + 'egressBitsRate': 720971.84, + 'ingressBytes': '167435918', + 'ingressBitsRate': 372079.84, + 'establishLatencyMs': 68.3019, + 'httpResponseLatency': 120.6175, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0083, + 'pktRetransPercent': 0.0086, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '1280', + 'ingressLinkId': '1793', + 'totalBytes': '473709275', + 'totalBitsRate': 1052687.28, + 'egressBytes': '408981966', + 'egressBitsRate': 908848.8, + 'ingressBytes': '50085555', + 'ingressBitsRate': 111301.2, + 'establishLatencyMs': 80.0523, + 'httpResponseLatency': 138.3115, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0029, + 'pktRetransPercent': 0.0205, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '1536', + 'ingressLinkId': '1793', + 'totalBytes': '419864446', + 'totalBitsRate': 933032.08, + 'egressBytes': '365874375', + 'egressBitsRate': 813054.16, + 'ingressBytes': '37465965', + 'ingressBitsRate': 83257.68, + 'establishLatencyMs': 71.3478, + 'httpResponseLatency': 77.8483, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0013, + 'pktRetransPercent': 0.0116, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '1792', + 'ingressLinkId': '1793', + 'totalBytes': '339160607', + 'totalBitsRate': 753690.24, + 'egressBytes': '301992422', + 'egressBitsRate': 671094.24, + 'ingressBytes': '23961274', + 'ingressBitsRate': 53247.28, + 'establishLatencyMs': 87.9845, + 'httpResponseLatency': 135.7731, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0036, + 'pktRetransPercent': 0.013, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '2048', + 'ingressLinkId': '1793', + 'totalBytes': '616101903', + 'totalBitsRate': 1369115.36, + 'egressBytes': '522679143', + 'egressBitsRate': 1161509.2, + 'ingressBytes': '74691412', + 'ingressBitsRate': 165980.88, + 'establishLatencyMs': 146.3266, + 'httpResponseLatency': 382.936, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.011, + 'pktRetransPercent': 0.0218, + 'usageMore90': false, + 'score': 4, + 'scoreLow3': false + }, + { + 'egressLinkId': '2304', + 'ingressLinkId': '1793', + 'totalBytes': '353905850', + 'totalBitsRate': 786457.44, + 'egressBytes': '303343002', + 'egressBitsRate': 674095.6, + 'ingressBytes': '35558267', + 'ingressBitsRate': 79018.4, + 'establishLatencyMs': 65.5383, + 'httpResponseLatency': 182.1653, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0025, + 'pktRetransPercent': 0.0176, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '2816', + 'ingressLinkId': '1793', + 'totalBytes': '310621344', + 'totalBitsRate': 690269.68, + 'egressBytes': '270045410', + 'egressBitsRate': 600100.88, + 'ingressBytes': '25119191', + 'ingressBitsRate': 55820.4, + 'establishLatencyMs': 77.1911, + 'httpResponseLatency': 100.1092, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0034, + 'pktRetransPercent': 0.0123, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '256', + 'ingressLinkId': '2049', + 'totalBytes': '388093577', + 'totalBitsRate': 862430.16, + 'egressBytes': '348827067', + 'egressBitsRate': 775171.28, + 'ingressBytes': '20464561', + 'ingressBitsRate': 45476.8, + 'establishLatencyMs': 77.5916, + 'httpResponseLatency': 147.349, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0111, + 'pktRetransPercent': 0.011, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '512', + 'ingressLinkId': '2049', + 'totalBytes': '711311059', + 'totalBitsRate': 1580691.28, + 'egressBytes': '653169387', + 'egressBitsRate': 1451487.52, + 'ingressBytes': '23736470', + 'ingressBitsRate': 52747.68, + 'establishLatencyMs': 88.1133, + 'httpResponseLatency': 442.7744, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0037, + 'pktRetransPercent': 0.0282, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '768', + 'ingressLinkId': '2049', + 'totalBytes': '544169365', + 'totalBitsRate': 1209265.28, + 'egressBytes': '480502970', + 'egressBitsRate': 1067784.4, + 'ingressBytes': '42064720', + 'ingressBitsRate': 93477.12, + 'establishLatencyMs': 86.859, + 'httpResponseLatency': 96.2626, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0041, + 'pktRetransPercent': 0.0188, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '1024', + 'ingressLinkId': '2049', + 'totalBytes': '511188364', + 'totalBitsRate': 1135974.16, + 'egressBytes': '439810340', + 'egressBitsRate': 977356.32, + 'ingressBytes': '60103971', + 'ingressBitsRate': 133564.4, + 'establishLatencyMs': 100.5463, + 'httpResponseLatency': 183.6345, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0094, + 'pktRetransPercent': 0.0087, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '1280', + 'ingressLinkId': '2049', + 'totalBytes': '666928930', + 'totalBitsRate': 1482064.32, + 'egressBytes': '626185114', + 'egressBitsRate': 1391522.48, + 'ingressBytes': '23926270', + 'ingressBitsRate': 53169.52, + 'establishLatencyMs': 119.9707, + 'httpResponseLatency': 205.3038, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0052, + 'pktRetransPercent': 0.0272, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '1536', + 'ingressLinkId': '2049', + 'totalBytes': '329173462', + 'totalBitsRate': 731496.56, + 'egressBytes': '255905021', + 'egressBitsRate': 568677.84, + 'ingressBytes': '57317526', + 'ingressBitsRate': 127372.24, + 'establishLatencyMs': 66.6872, + 'httpResponseLatency': 286.5033, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0047, + 'pktRetransPercent': 0.0227, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '1792', + 'ingressLinkId': '2049', + 'totalBytes': '308368988', + 'totalBitsRate': 685264.4, + 'egressBytes': '237340865', + 'egressBitsRate': 527424.16, + 'ingressBytes': '60510292', + 'ingressBitsRate': 134467.28, + 'establishLatencyMs': 72.5769, + 'httpResponseLatency': 255.8301, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0083, + 'pktRetransPercent': 0.014, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '2048', + 'ingressLinkId': '2049', + 'totalBytes': '321568878', + 'totalBitsRate': 714597.52, + 'egressBytes': '273035831', + 'egressBitsRate': 606746.32, + 'ingressBytes': '28038175', + 'ingressBitsRate': 62307.04, + 'establishLatencyMs': 66.0751, + 'httpResponseLatency': 312.7351, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0042, + 'pktRetransPercent': 0.0156, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '2304', + 'ingressLinkId': '2049', + 'totalBytes': '380061893', + 'totalBitsRate': 844582, + 'egressBytes': '315061822', + 'egressBitsRate': 700137.36, + 'ingressBytes': '52657744', + 'ingressBitsRate': 117017.2, + 'establishLatencyMs': 75.8593, + 'httpResponseLatency': 132.0823, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0047, + 'pktRetransPercent': 0.0101, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '2816', + 'ingressLinkId': '2049', + 'totalBytes': '433349564', + 'totalBitsRate': 962999.04, + 'egressBytes': '310273265', + 'egressBitsRate': 689496.16, + 'ingressBytes': '107419516', + 'ingressBitsRate': 238710, + 'establishLatencyMs': 79.7628, + 'httpResponseLatency': 127.4814, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0031, + 'pktRetransPercent': 0.0137, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '256', + 'ingressLinkId': '2305', + 'totalBytes': '441740953', + 'totalBitsRate': 981646.56, + 'egressBytes': '344031397', + 'egressBitsRate': 764514.24, + 'ingressBytes': '89500725', + 'ingressBitsRate': 198890.48, + 'establishLatencyMs': 83.4651, + 'httpResponseLatency': 184.2666, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.006, + 'pktRetransPercent': 0.0132, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '512', + 'ingressLinkId': '2305', + 'totalBytes': '492163025', + 'totalBitsRate': 1093695.6, + 'egressBytes': '452782283', + 'egressBitsRate': 1006182.88, + 'ingressBytes': '24458788', + 'ingressBitsRate': 54352.88, + 'establishLatencyMs': 75.3955, + 'httpResponseLatency': 120.5217, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0062, + 'pktRetransPercent': 0.0091, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '768', + 'ingressLinkId': '2305', + 'totalBytes': '412085678', + 'totalBitsRate': 915745.92, + 'egressBytes': '386711916', + 'egressBitsRate': 859359.84, + 'ingressBytes': '16901737', + 'ingressBitsRate': 37559.44, + 'establishLatencyMs': 89.1835, + 'httpResponseLatency': 188.111, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0147, + 'pktRetransPercent': 0.0127, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '1024', + 'ingressLinkId': '2305', + 'totalBytes': '493492790', + 'totalBitsRate': 1096650.64, + 'egressBytes': '452074866', + 'egressBitsRate': 1004610.8, + 'ingressBytes': '31521658', + 'ingressBitsRate': 70048.16, + 'establishLatencyMs': 82.6305, + 'httpResponseLatency': 83.2076, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0075, + 'pktRetransPercent': 0.0123, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '1280', + 'ingressLinkId': '2305', + 'totalBytes': '512733888', + 'totalBitsRate': 1139408.64, + 'egressBytes': '471200897', + 'egressBitsRate': 1047113.12, + 'ingressBytes': '28133375', + 'ingressBitsRate': 62518.64, + 'establishLatencyMs': 70.762, + 'httpResponseLatency': 101.5263, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0046, + 'pktRetransPercent': 0.0214, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '1536', + 'ingressLinkId': '2305', + 'totalBytes': '747694085', + 'totalBitsRate': 1661542.4, + 'egressBytes': '691510780', + 'egressBitsRate': 1536690.64, + 'ingressBytes': '25897699', + 'ingressBitsRate': 57550.48, + 'establishLatencyMs': 83.79, + 'httpResponseLatency': 90.0623, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0091, + 'pktRetransPercent': 0.0242, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '1792', + 'ingressLinkId': '2305', + 'totalBytes': '376892219', + 'totalBitsRate': 837538.24, + 'egressBytes': '336286147', + 'egressBitsRate': 747302.56, + 'ingressBytes': '25717104', + 'ingressBitsRate': 57149.12, + 'establishLatencyMs': 104.1186, + 'httpResponseLatency': 134.8195, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0051, + 'pktRetransPercent': 0.018, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '2048', + 'ingressLinkId': '2305', + 'totalBytes': '350689016', + 'totalBitsRate': 779308.96, + 'egressBytes': '324109790', + 'egressBitsRate': 720244, + 'ingressBytes': '14540455', + 'ingressBitsRate': 32312.16, + 'establishLatencyMs': 77.1332, + 'httpResponseLatency': 497.0389, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0063, + 'pktRetransPercent': 0.0111, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '2304', + 'ingressLinkId': '2305', + 'totalBytes': '365450281', + 'totalBitsRate': 812111.76, + 'egressBytes': '254568603', + 'egressBitsRate': 565708, + 'ingressBytes': '101035884', + 'ingressBitsRate': 224524.16, + 'establishLatencyMs': 96.1349, + 'httpResponseLatency': 127.3401, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0043, + 'pktRetransPercent': 0.0178, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '2816', + 'ingressLinkId': '2305', + 'totalBytes': '582756711', + 'totalBitsRate': 1295014.88, + 'egressBytes': '418332040', + 'egressBitsRate': 929626.72, + 'ingressBytes': '151309467', + 'ingressBitsRate': 336243.28, + 'establishLatencyMs': 92.9852, + 'httpResponseLatency': 92.9446, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0071, + 'pktRetransPercent': 0.0201, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '256', + 'ingressLinkId': '2817', + 'totalBytes': '297004684', + 'totalBitsRate': 660010.4, + 'egressBytes': '237149513', + 'egressBitsRate': 526998.88, + 'ingressBytes': '52715080', + 'ingressBitsRate': 117144.64, + 'establishLatencyMs': 75.9443, + 'httpResponseLatency': 100.3348, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.025, + 'pktRetransPercent': 0.0149, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '512', + 'ingressLinkId': '2817', + 'totalBytes': '244871384', + 'totalBitsRate': 544158.64, + 'egressBytes': '182387351', + 'egressBitsRate': 405305.2, + 'ingressBytes': '52813649', + 'ingressBitsRate': 117363.68, + 'establishLatencyMs': 90.5676, + 'httpResponseLatency': 87.4456, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0054, + 'pktRetransPercent': 0.0174, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '768', + 'ingressLinkId': '2817', + 'totalBytes': '529048700', + 'totalBitsRate': 1175663.76, + 'egressBytes': '385067667', + 'egressBitsRate': 855705.92, + 'ingressBytes': '80988511', + 'ingressBitsRate': 179974.48, + 'establishLatencyMs': 146.6385, + 'httpResponseLatency': 139.8804, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0019, + 'pktRetransPercent': 0.0126, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '1024', + 'ingressLinkId': '2817', + 'totalBytes': '361792234', + 'totalBitsRate': 803982.72, + 'egressBytes': '330465149', + 'egressBitsRate': 734366.96, + 'ingressBytes': '17966232', + 'ingressBitsRate': 39924.96, + 'establishLatencyMs': 122.4222, + 'httpResponseLatency': 136.6981, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0027, + 'pktRetransPercent': 0.0072, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '1280', + 'ingressLinkId': '2817', + 'totalBytes': '421038470', + 'totalBitsRate': 935641.04, + 'egressBytes': '324989968', + 'egressBitsRate': 722199.92, + 'ingressBytes': '84806395', + 'ingressBitsRate': 188458.64, + 'establishLatencyMs': 92.1301, + 'httpResponseLatency': 114.9592, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0039, + 'pktRetransPercent': 0.0172, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '1536', + 'ingressLinkId': '2817', + 'totalBytes': '362980681', + 'totalBitsRate': 806623.76, + 'egressBytes': '311642328', + 'egressBitsRate': 692538.48, + 'ingressBytes': '38988231', + 'ingressBitsRate': 86640.48, + 'establishLatencyMs': 97.0047, + 'httpResponseLatency': 155.4382, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0069, + 'pktRetransPercent': 0.0197, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '1792', + 'ingressLinkId': '2817', + 'totalBytes': '621237185', + 'totalBitsRate': 1380527.04, + 'egressBytes': '568359927', + 'egressBitsRate': 1263022.08, + 'ingressBytes': '41110785', + 'ingressBitsRate': 91357.28, + 'establishLatencyMs': 64.7608, + 'httpResponseLatency': 119.7391, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0044, + 'pktRetransPercent': 0.0252, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '2048', + 'ingressLinkId': '2817', + 'totalBytes': '260368736', + 'totalBitsRate': 578597.2, + 'egressBytes': '205185994', + 'egressBitsRate': 455968.88, + 'ingressBytes': '46626869', + 'ingressBitsRate': 103615.28, + 'establishLatencyMs': 99.6428, + 'httpResponseLatency': 99.8736, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.003, + 'pktRetransPercent': 0.0126, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, + { + 'egressLinkId': '2304', + 'ingressLinkId': '2817', + 'totalBytes': '318716905', + 'totalBitsRate': 708259.76, + 'egressBytes': '295082544', + 'egressBitsRate': 655738.96, + 'ingressBytes': '11859656', + 'ingressBitsRate': 26354.8, + 'establishLatencyMs': 70.4628, + 'httpResponseLatency': 110.3507, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0107, + 'pktRetransPercent': 0.0272, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, + { + 'egressLinkId': '2816', + 'ingressLinkId': '2817', + 'totalBytes': '314302936', + 'totalBitsRate': 698450.96, + 'egressBytes': '266218480', + 'egressBitsRate': 591596.64, + 'ingressBytes': '37481378', + 'ingressBitsRate': 83291.92, + 'establishLatencyMs': 73.5813, + 'httpResponseLatency': 479.376, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0054, + 'pktRetransPercent': 0.0163, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + } + ] + }, + 'originalUrl': 'http://192.168.44.55:9999?query=SELECT%20common_egress_link_id%20AS%20egress_link_id%2Ccommon_ingress_link_id%20AS%20ingress_link_id%2CSUM%28common_c2s_byte_num%20%2B%20common_s2c_byte_num%29%20AS%20total_bytes%2CSUM%28traffic_outbound_byte%29%20AS%20egress_bytes%2CSUM%28traffic_inbound_byte%29%20AS%20ingress_bytes%2CROUND%28AVG%28avg_establish_latency_ms%29%2C%204%29%20AS%20establish_latency_ms%2CROUND%28AVG%28avg_http_response_latency_ms%29%2C%204%29%20AS%20http_response_latency%2CROUND%28AVG%28avg_ssl_con_latency_ms%29%2C%204%29%20AS%20ssl_con_latency%2CROUND%28AVG%28tcp_lostlen_ratio%29%2C%204%29%20AS%20tcp_lostlen_percent%2CROUND%28AVG%28pkt_retrans_ratio%29%2C%204%29%20AS%20pkt_retrans_percent%20FROM%20metric_link%20WHERE%20stat_time%20%3E%3D%201675387137%20AND%20stat_time%20%3C%201675390737%20GROUP%20BY%20egress_link_id%2Cingress_link_id&format=json&option=real-time', + 'msg': 'OK' + } +} +export const mockGet2 = { + data: { + 'status': 200, + 'code': 200, + 'queryKey': '3b148e81873eb2621bbd77fffbd0a008', + 'success': true, + 'message': null, + 'statistics': { + 'elapsed': 4, + 'rows_read': 14027, + 'bytes_read': 1611437, + 'result_size': 2393, + 'result_rows': 9 + }, + 'job': null, + 'formatType': 'json', + 'meta': [{ + 'name': 'egress_link_direction', + 'type': 'string', + 'category': 'Dimension' + }, { + 'name': 'ingress_link_direction', + 'type': 'string', + 'category': 'Dimension' + }, { + 'name': 'total_bytes', + 'type': 'long', + 'category': 'Metric' + }, { + 'name': 'egress_bytes', + 'type': 'long', + 'category': 'Metric' + }, { + 'name': 'ingress_bytes', + 'type': 'long', + 'category': 'Metric' + }, { + 'name': 'establish_latency_ms', + 'type': 'double', + 'category': 'Metric' + }, { + 'name': 'http_response_latency', + 'type': 'double', + 'category': 'Metric' + }, { + 'name': 'ssl_con_latency', + 'type': 'double', + 'category': 'Metric' + }, { + 'name': 'tcp_lostlen_percent', + 'type': 'double', + 'category': 'Metric' + }, { + 'name': 'pkt_retrans_percent', + 'type': 'double', + 'category': 'Metric' + }], + 'data': { + 'resultType': 'table', + 'result': [{ + 'egressLinkDirection': '太原', + 'ingressLinkDirection': '太原', + 'totalBytes': '16535105415', + 'totalBitsRate': 36744678.72, + 'egressBytes': '14184016558', + 'egressBitsRate': 31520036.8, + 'ingressBytes': '1688597600', + 'ingressBitsRate': 3752439.12, + 'establishLatencyMs': 88.0242, + 'httpResponseLatency': 203.7159, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0054, + 'pktRetransPercent': 0.0166, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, { + 'egressLinkDirection': '西安', + 'ingressLinkDirection': '太原', + 'totalBytes': '7944206231', + 'totalBitsRate': 17653791.6, + 'egressBytes': '6777682761', + 'egressBitsRate': 15061517.28, + 'ingressBytes': '885954326', + 'ingressBitsRate': 1968787.36, + 'establishLatencyMs': 83.1217, + 'httpResponseLatency': 157.7391, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0046, + 'pktRetransPercent': 0.0173, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, { + 'egressLinkDirection': '西宁', + 'ingressLinkDirection': '太原', + 'totalBytes': '2857306724', + 'totalBitsRate': 6349570.48, + 'egressBytes': '2128232085', + 'egressBitsRate': 4729404.64, + 'ingressBytes': '404099210', + 'ingressBitsRate': 897998.24, + 'establishLatencyMs': 98.8892, + 'httpResponseLatency': 136.1593, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0068, + 'pktRetransPercent': 0.0147, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, { + 'egressLinkDirection': '太原', + 'ingressLinkDirection': '西安', + 'totalBytes': '6373421289', + 'totalBitsRate': 14163158.4, + 'egressBytes': '5353700094', + 'egressBitsRate': 11897111.36, + 'ingressBytes': '734848747', + 'ingressBitsRate': 1632997.2, + 'establishLatencyMs': 92.7275, + 'httpResponseLatency': 137.1145, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0057, + 'pktRetransPercent': 0.0162, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, { + 'egressLinkDirection': '西安', + 'ingressLinkDirection': '西安', + 'totalBytes': '4103560375', + 'totalBitsRate': 9119023.04, + 'egressBytes': '3571039189', + 'egressBitsRate': 7935642.64, + 'ingressBytes': '377089010', + 'ingressBitsRate': 837975.6, + 'establishLatencyMs': 85.6573, + 'httpResponseLatency': 201.6159, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0069, + 'pktRetransPercent': 0.0144, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, { + 'egressLinkDirection': '西宁', + 'ingressLinkDirection': '西安', + 'totalBytes': '1183207657', + 'totalBitsRate': 2629350.32, + 'egressBytes': '1058261055', + 'egressBitsRate': 2351691.2, + 'ingressBytes': '87176633', + 'ingressBitsRate': 193725.84, + 'establishLatencyMs': 91.4916, + 'httpResponseLatency': 117.5389, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0024, + 'pktRetransPercent': 0.0104, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, { + 'egressLinkDirection': '太原', + 'ingressLinkDirection': '西宁', + 'totalBytes': '2924709918', + 'totalBitsRate': 6499355.36, + 'egressBytes': '2584008489', + 'egressBitsRate': 5742241.12, + 'ingressBytes': '181573168', + 'ingressBitsRate': 403495.92, + 'establishLatencyMs': 89.4893, + 'httpResponseLatency': 151.1124, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0053, + 'pktRetransPercent': 0.0224, + 'usageMore90': false, + 'score': 5, + 'scoreLow3': false + }, { + 'egressLinkDirection': '西安', + 'ingressLinkDirection': '西宁', + 'totalBytes': '1227926954', + 'totalBitsRate': 2728726.56, + 'egressBytes': '1085741718', + 'egressBitsRate': 2412759.36, + 'ingressBytes': '102066992', + 'ingressBitsRate': 226815.52, + 'establishLatencyMs': 93.9175, + 'httpResponseLatency': 168.1369, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0048, + 'pktRetransPercent': 0.0139, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }, { + 'egressLinkDirection': '西宁', + 'ingressLinkDirection': '西宁', + 'totalBytes': '309813302', + 'totalBitsRate': 688474, + 'egressBytes': '275012816', + 'egressBitsRate': 611139.6, + 'ingressBytes': '14787925', + 'ingressBitsRate': 32862.08, + 'establishLatencyMs': 69.9228, + 'httpResponseLatency': 224.0711, + 'sslConLatency': 0, + 'tcpLostlenPercent': 0.0071, + 'pktRetransPercent': 0.0086, + 'usageMore90': false, + 'score': 6, + 'scoreLow3': false + }] + }, + 'originalUrl': 'http://192.168.44.55:9999?query=SELECT%20egress_link_direction%20AS%20egress_link_direction%2Cingress_link_direction%20AS%20ingress_link_direction%2CSUM%28common_c2s_byte_num%20%2B%20common_s2c_byte_num%29%20AS%20total_bytes%2CSUM%28traffic_outbound_byte%29%20AS%20egress_bytes%2CSUM%28traffic_inbound_byte%29%20AS%20ingress_bytes%2CROUND%28AVG%28avg_establish_latency_ms%29%2C%204%29%20AS%20establish_latency_ms%2CROUND%28AVG%28avg_http_response_latency_ms%29%2C%204%29%20AS%20http_response_latency%2CROUND%28AVG%28avg_ssl_con_latency_ms%29%2C%204%29%20AS%20ssl_con_latency%2CROUND%28AVG%28tcp_lostlen_ratio%29%2C%204%29%20AS%20tcp_lostlen_percent%2CROUND%28AVG%28pkt_retrans_ratio%29%2C%204%29%20AS%20pkt_retrans_percent%20FROM%20metric_link%20WHERE%20stat_time%20%3E%3D%201675387137%20AND%20stat_time%20%3C%201675390737%20AND%20%28notEmpty%28egress_link_direction%29%20AND%20notEmpty%28ingress_link_direction%29%29%20GROUP%20BY%20egress_link_direction%2Cingress_link_direction&format=json&option=real-time', + 'msg': 'OK' + } +} + +export const linkInfoData = [{ + 'originalLinkId': '256', + 'linkId': 'Hundredgige1', + 'direction': 'egress', + 'nextHop': '西安', + 'bandwidth': 100000000000 +}, { + 'originalLinkId': '257', + 'linkId': 'Hundredgige1', + 'direction': 'ingress', + 'nextHop': '西安', + 'bandwidth': 100000000000 +}, { + 'originalLinkId': '512', + 'linkId': 'Hundredgige2', + 'direction': 'egress', + 'nextHop': '太原', + 'bandwidth': 100000000000 +}, { + 'originalLinkId': '513', + 'linkId': 'Hundredgige2', + 'direction': 'ingress', + 'nextHop': '太原', + 'bandwidth': 100000000000 +}, { + 'originalLinkId': '768', + 'linkId': 'Hundredgige3', + 'direction': 'egress', + 'nextHop': '太原', + 'bandwidth': 100000000000 +}, { + 'originalLinkId': '769', + 'linkId': 'Hundredgige3', + 'direction': 'ingress', + 'nextHop': '太原', + 'bandwidth': 100000000000 +}, { + 'originalLinkId': '1024', + 'linkId': 'Hundredgige4', + 'direction': 'egress', + 'nextHop': '西宁', + 'bandwidth': 100000000000 +}, { + 'originalLinkId': '1025', + 'linkId': 'Hundredgige4', + 'direction': 'ingress', + 'nextHop': '西宁', + 'bandwidth': 100000000000 +}, { + 'originalLinkId': '1280', + 'linkId': 'Hundredgige5', + 'direction': 'egress', + 'nextHop': '西安', + 'bandwidth': 100000000000 +}, { + 'originalLinkId': '1281', + 'linkId': 'Hundredgige5', + 'direction': 'ingress', + 'nextHop': '西安', + 'bandwidth': 100000000000 +}, { + 'originalLinkId': '1536', + 'linkId': 'Hundredgige6', + 'direction': 'egress', + 'nextHop': '太原', + 'bandwidth': 100000000000 +}, { + 'originalLinkId': '1537', + 'linkId': 'Hundredgige6', + 'direction': 'ingress', + 'nextHop': '太原', + 'bandwidth': 100000000000 +}, { + 'originalLinkId': '1792', + 'linkId': 'Hundredgige7', + 'direction': 'egress', + 'nextHop': '太原', + 'bandwidth': 100000000000 +}, { + 'originalLinkId': '1793', + 'linkId': 'Hundredgige7', + 'direction': 'ingress', + 'nextHop': '太原', + 'bandwidth': 100000000000 +}, { + 'originalLinkId': '2048', + 'linkId': 'Hundredgige8', + 'direction': 'egress', + 'nextHop': '太原', + 'bandwidth': 100000000000 +}, { + 'originalLinkId': '2049', + 'linkId': 'Hundredgige8', + 'direction': 'ingress', + 'nextHop': '太原', + 'bandwidth': 100000000000 +}, { + 'originalLinkId': '2304', + 'linkId': 'Hundredgige9', + 'direction': 'egress', + 'nextHop': '太原', + 'bandwidth': 100000000000 +}, { + 'originalLinkId': '2305', + 'linkId': 'Hundredgige9', + 'direction': 'ingress', + 'nextHop': '太原', + 'bandwidth': 100000000000 +}, { + 'originalLinkId': '2816', + 'linkId': 'Hundredgige10', + 'direction': 'egress', + 'nextHop': '西安', + 'bandwidth': 100000000000 +}, { + 'originalLinkId': '2817', + 'linkId': 'Hundredgige10', + 'direction': 'ingress', + 'nextHop': '西安', + 'bandwidth': 100000000000 +}]