constants.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674
  1. import { metricItems } from '@Compute/views/node-alert/constants'
  2. import i18n from '@/locales'
  3. // 磁盘使用率
  4. const DISK_USED_PERCENT = {
  5. name: 'disk',
  6. label: i18n.t('compute.text_533'),
  7. seleteItem: 'used_percent',
  8. as: i18n.t('compute.text_533'),
  9. groupBy: ['device', 'path', 'fstype'],
  10. fromItem: 'agent_disk',
  11. unit: '%',
  12. transfer: 1,
  13. metric: metricItems.used_percent.key,
  14. }
  15. // 内存使用率 基础监控
  16. const BASIC_MEM_USED_PERCENT = {
  17. name: 'mem',
  18. label: i18n.t('compute.text_518'),
  19. seleteItem: 'used_percent',
  20. fromItem: 'vm_mem',
  21. unit: '%',
  22. transfer: 1,
  23. metric: metricItems['vm_mem.used_percent'].key,
  24. }
  25. // 内存使用率 agent监控
  26. const MEM_USED_PERCENT = {
  27. name: 'mem',
  28. label: i18n.t('compute.text_518'),
  29. seleteItem: 'used_percent',
  30. fromItem: 'agent_mem',
  31. unit: '%',
  32. transfer: 1,
  33. metric: metricItems['vm_mem.used_percent'].key,
  34. }
  35. // 已使用内存
  36. const MEM_USED = {
  37. name: 'mem',
  38. label: i18n.t('monitor.text_127'),
  39. seleteItem: 'used',
  40. fromItem: 'agent_mem',
  41. unit: 'G',
  42. transfer: 1024,
  43. metric: metricItems['vm_mem.used'].key,
  44. }
  45. // CPU使用率
  46. const CPU_USED_PERCENT = {
  47. name: 'cpu',
  48. label: i18n.t('compute.text_523'),
  49. seleteItem: 'usage_active',
  50. fromItem: 'agent_cpu',
  51. unit: '%',
  52. transfer: 1,
  53. metric: 'agent_cpu.usage_active',
  54. }
  55. // CPU IO 使用率
  56. const CPU_IO_USED_PERCENT = {
  57. name: 'cpu',
  58. label: i18n.t('monitor.text_128'),
  59. seleteItem: 'usage_iowait',
  60. fromItem: 'agent_cpu',
  61. unit: '%',
  62. transfer: 1,
  63. metric: metricItems['vm_cpu.usage_iowait'].key,
  64. }
  65. // 磁盘读取次数
  66. const DISK_READ_NUM = {
  67. name: 'cpu',
  68. label: i18n.t('monitor.text_129'),
  69. seleteItem: 'reads',
  70. fromItem: 'agent_diskio',
  71. unit: ' count',
  72. transfer: 1,
  73. metric: metricItems['vm_cpu.reads'].key,
  74. }
  75. // 磁盘写入次数
  76. const DISK_WRITE_NUM = {
  77. name: 'cpu',
  78. label: i18n.t('monitor.text_130'),
  79. seleteItem: 'writes',
  80. fromItem: 'agent_diskio',
  81. unit: ' count',
  82. transfer: 1,
  83. metric: metricItems['vm_cpu.writes'].key,
  84. }
  85. // CPU每核使用率
  86. // const CPU_USED_PERCENT_PER_C = {
  87. // name: 'cpu',
  88. // label: i18n.t('monitor.text_123'),
  89. // seleteItem: 'usage_active',
  90. // fromItem: 'agent_cpu',
  91. // unit: '%',
  92. // transfer: 1,
  93. // metric: metricItems['vm_cpu.usage_active'].key,
  94. // }
  95. // CPU进程下线程数
  96. // const CPU_THREAD_NUM_UNDER_PROCESS = {
  97. // name: 'cpu',
  98. // label: i18n.t('monitor.text_124'),
  99. // seleteItem: 'usage_active',
  100. // fromItem: 'agent_cpu',
  101. // unit: '%',
  102. // transfer: 1,
  103. // metric: metricItems['vm_cpu.usage_active'].key,
  104. // }
  105. // 磁盘读速度
  106. const DISK_IO_READ_RATES = {
  107. name: 'diskio',
  108. label: i18n.t('compute.text_526'),
  109. seleteItem: 'read_bps',
  110. fromItem: 'agent_diskio',
  111. groupBy: ['name'],
  112. unit: 'bps',
  113. transfer: 1024,
  114. metric: 'agent_diskio.read_bps',
  115. }
  116. // 磁盘写速度
  117. const DISK_IO_WRITE_RATES = {
  118. name: 'diskio',
  119. label: i18n.t('compute.text_527'),
  120. seleteItem: 'write_bps',
  121. fromItem: 'agent_diskio',
  122. groupBy: ['name'],
  123. unit: 'bps',
  124. transfer: 1024,
  125. metric: 'agent_diskio.read_bps',
  126. }
  127. // 网络每秒发送字节数
  128. const NET_SEND_BYTE_PER_SECEND = {
  129. name: 'net',
  130. label: i18n.t('monitor.text_131'),
  131. seleteItem: 'bps_sent',
  132. fromItem: 'agent_net',
  133. // groupBy: ['name'],
  134. unit: 'bps',
  135. transfer: 1024,
  136. metric: 'vm_net.bps_sent',
  137. }
  138. // 网络每秒接受字节数
  139. const NET_RECV_BYTE_PER_SECEND = {
  140. name: 'net',
  141. label: i18n.t('monitor.text_132'),
  142. seleteItem: 'bps_recv',
  143. fromItem: 'agent_net',
  144. // groupBy: ['name'],
  145. unit: 'bps',
  146. transfer: 1024,
  147. metric: 'vm_net.bps_recv',
  148. }
  149. // 网络接口发送数据包总数
  150. const NET_SEND_PACKETS_NUM = {
  151. name: 'net',
  152. label: i18n.t('monitor.text_133'),
  153. seleteItem: 'packets_sent',
  154. fromItem: 'agent_net',
  155. unit: 'count',
  156. transfer: 1,
  157. metric: 'vm_net.packets_sent',
  158. }
  159. // 网络接口接收数据包总数
  160. const NET_RECV_PACKETS_NUM = {
  161. name: 'net',
  162. label: i18n.t('monitor.text_134'),
  163. seleteItem: 'packets_recv',
  164. fromItem: 'agent_net',
  165. unit: 'count',
  166. transfer: 1,
  167. metric: 'vm_net.packets_recv',
  168. }
  169. // 网络接口丢失数据包总数
  170. const NET_LOST_PACKETS_NUM = {
  171. name: 'mem',
  172. label: i18n.t('monitor.text_135'),
  173. seleteItem: 'drop_out',
  174. fromItem: 'agent_net',
  175. unit: 'count',
  176. transfer: 1,
  177. metric: 'vm_net.drop_out',
  178. }
  179. // 磁盘读流量
  180. // const DISK_NET_IO_READ = {
  181. // name: 'mem',
  182. // label: i18n.t('monitor.text_125'),
  183. // seleteItem: 'read_bps',
  184. // fromItem: 'agent_diskio',
  185. // groupBy: ['name'],
  186. // unit: 'bps',
  187. // transfer: 1024,
  188. // metric: metricItems['vm_diskio.read_bps'].key,
  189. // }
  190. // 磁盘写流量
  191. // const DISK_NET_IO_WRITE = {
  192. // name: 'mem',
  193. // label: i18n.t('monitor.text_126'),
  194. // seleteItem: 'write_bps',
  195. // fromItem: 'agent_diskio',
  196. // groupBy: ['name'],
  197. // unit: 'bps',
  198. // transfer: 1024,
  199. // metric: metricItems['vm_diskio.write_bps'].key,
  200. // }
  201. // 网络入流量
  202. // const NET_RECV_BPS = {
  203. // name: 'net',
  204. // label: i18n.t('compute.text_524'),
  205. // seleteItem: 'bps_recv',
  206. // fromItem: 'agent_net',
  207. // groupBy: ['interface'],
  208. // unit: 'bps',
  209. // transfer: 1024,
  210. // }
  211. // 网络出流量
  212. // const NET_SENT_BPS = {
  213. // name: 'net',
  214. // label: i18n.t('compute.text_525'),
  215. // seleteItem: 'bps_sent',
  216. // fromItem: 'agent_net',
  217. // groupBy: ['interface'],
  218. // unit: 'bps',
  219. // transfer: 1024,
  220. // }
  221. const COND_AND = 'AND'
  222. // const COND_OR = 'OR'
  223. // const COND_NULL = ''
  224. function newWhereField (key, operator, val, cond) {
  225. return {
  226. key: key,
  227. operator: operator,
  228. value: val,
  229. condition: cond,
  230. }
  231. }
  232. export const AGENT_MONITOR = [
  233. CPU_USED_PERCENT,
  234. MEM_USED_PERCENT,
  235. MEM_USED,
  236. DISK_USED_PERCENT,
  237. CPU_IO_USED_PERCENT,
  238. DISK_IO_READ_RATES,
  239. DISK_IO_WRITE_RATES,
  240. DISK_READ_NUM,
  241. DISK_WRITE_NUM,
  242. NET_SEND_BYTE_PER_SECEND,
  243. NET_RECV_BYTE_PER_SECEND,
  244. NET_SEND_PACKETS_NUM,
  245. NET_RECV_PACKETS_NUM,
  246. NET_LOST_PACKETS_NUM,
  247. ]
  248. // CPU温度
  249. const TEMPERATURE_CPU_INPUT = {
  250. name: 'temp_input',
  251. label: i18n.t('compute.monitor.temperature.cpu'),
  252. seleteItem: 'temp_input',
  253. fromItem: 'agent_sensors',
  254. // groupBy: ['chip', 'feature'],
  255. groupBy: ['chip'],
  256. where: [
  257. newWhereField('chip', '=~', '/^coretemp-isa-/', COND_AND),
  258. ],
  259. unit: '℃',
  260. transfer: 1,
  261. metric: 'temp',
  262. }
  263. // 磁盘温度
  264. const TEMPERATURE_DISK_INPUT = {
  265. name: 'temp_c',
  266. label: i18n.t('compute.monitor.temperature.disk'),
  267. seleteItem: 'temp_c',
  268. fromItem: 'agent_smart_device',
  269. groupBy: ['device', 'device_type'],
  270. where: [
  271. newWhereField('temp_c', '>', '0', COND_AND),
  272. ],
  273. unit: '℃',
  274. transfer: 1,
  275. metric: 'temp',
  276. }
  277. // PCI接口温度
  278. const TEMPERATURE_PCI_INPUT = {
  279. name: 'temp_input',
  280. label: i18n.t('compute.monitor.temperature.pci'),
  281. seleteItem: 'temp_input',
  282. fromItem: 'agent_sensors',
  283. // groupBy: ['chip', 'feature'],
  284. groupBy: ['chip'],
  285. where: [
  286. newWhereField('chip', '=~', '/.+-pci-.+/', COND_AND),
  287. ],
  288. unit: '℃',
  289. transfer: 1,
  290. metric: 'temp',
  291. noDataHide: true,
  292. }
  293. // 其他设备温度
  294. const TEMPERATURE_VIRTUAL_INPUT = {
  295. name: 'temp_input',
  296. label: i18n.t('compute.monitor.temperature.other_device'),
  297. seleteItem: 'temp_input',
  298. fromItem: 'agent_sensors',
  299. // groupBy: ['chip', 'feature'],
  300. groupBy: ['chip'],
  301. where: [
  302. newWhereField('chip', '=~', '/.+-virtual-.+/', COND_AND),
  303. ],
  304. unit: '℃',
  305. transfer: 1,
  306. metric: 'temp',
  307. noDataHide: true,
  308. }
  309. export const AGENT_TEMPERATURE_MONITOR = [
  310. TEMPERATURE_CPU_INPUT,
  311. TEMPERATURE_DISK_INPUT,
  312. TEMPERATURE_PCI_INPUT,
  313. TEMPERATURE_VIRTUAL_INPUT,
  314. ]
  315. // OneCloud 虚拟机监控数据
  316. export const ONECLOUD_MONITOR = [
  317. {
  318. name: 'cpu',
  319. label: i18n.t('compute.text_523'),
  320. seleteItem: 'usage_active',
  321. fromItem: 'vm_cpu',
  322. unit: '%',
  323. transfer: 1,
  324. metric: metricItems['vm_cpu.usage_active'].key, // 报警指标
  325. },
  326. // 内存使用率
  327. BASIC_MEM_USED_PERCENT,
  328. // 网络入流量
  329. {
  330. name: 'netio',
  331. label: i18n.t('compute.text_524'),
  332. seleteItem: 'bps_recv',
  333. fromItem: 'vm_netio',
  334. unit: 'bps',
  335. transfer: 1024,
  336. metric: metricItems['vm_netio.bps_recv'].key,
  337. },
  338. // 网络出流量
  339. {
  340. name: 'netio',
  341. label: i18n.t('compute.text_525'),
  342. seleteItem: 'bps_sent',
  343. fromItem: 'vm_netio',
  344. unit: 'bps',
  345. transfer: 1024,
  346. metric: metricItems['vm_netio.bps_sent'].key,
  347. },
  348. // 磁盘读速度
  349. {
  350. name: 'diskio',
  351. label: i18n.t('compute.text_526'),
  352. seleteItem: 'read_bps',
  353. fromItem: 'vm_diskio',
  354. unit: 'bps',
  355. transfer: 1024,
  356. metric: metricItems['vm_diskio.read_bps'].key,
  357. },
  358. // 磁盘写速度
  359. {
  360. name: 'diskio',
  361. label: i18n.t('compute.text_527'),
  362. seleteItem: 'write_bps',
  363. fromItem: 'vm_diskio',
  364. unit: 'bps',
  365. transfer: 1024,
  366. metric: metricItems['vm_diskio.write_bps'].key,
  367. },
  368. ]
  369. // vmware 虚拟机监控数据
  370. export const VMWARE_MONITOR = [
  371. {
  372. name: 'cpu',
  373. label: i18n.t('compute.text_523'),
  374. seleteItem: 'usage_active',
  375. fromItem: 'vm_cpu',
  376. unit: '%',
  377. transfer: 1,
  378. metric: metricItems['vm_cpu.usage_active'].key,
  379. },
  380. BASIC_MEM_USED_PERCENT,
  381. {
  382. name: 'netio',
  383. label: i18n.t('compute.text_524'),
  384. seleteItem: 'bps_recv',
  385. fromItem: 'vm_netio',
  386. unit: 'bps',
  387. transfer: 1024,
  388. metric: metricItems['vm_netio.bps_recv'].key,
  389. },
  390. {
  391. name: 'netio',
  392. label: i18n.t('compute.text_525'),
  393. seleteItem: 'bps_sent',
  394. fromItem: 'vm_netio',
  395. unit: 'bps',
  396. transfer: 1024,
  397. metric: metricItems['vm_netio.bps_sent'].key,
  398. },
  399. {
  400. name: 'diskio',
  401. label: i18n.t('compute.text_526'),
  402. seleteItem: 'read_bps',
  403. fromItem: 'vm_diskio',
  404. unit: 'bps',
  405. transfer: 1024,
  406. metric: metricItems['vm_diskio.read_bps'].key,
  407. },
  408. {
  409. name: 'diskio',
  410. label: i18n.t('compute.text_527'),
  411. seleteItem: 'write_bps',
  412. fromItem: 'vm_diskio',
  413. unit: 'bps',
  414. transfer: 1024,
  415. metric: metricItems['vm_diskio.write_bps'].key,
  416. },
  417. ]
  418. // 除了 kvm、vmware 虚拟机监控数据
  419. export const OTHER_MONITOR = [
  420. {
  421. name: 'cpu',
  422. label: i18n.t('compute.text_523'),
  423. seleteItem: 'usage_active',
  424. transfer: 1,
  425. fromItem: 'vm_cpu',
  426. unit: '%',
  427. metric: metricItems['vm_cpu.usage_active'].key,
  428. },
  429. BASIC_MEM_USED_PERCENT,
  430. {
  431. name: 'netio',
  432. label: i18n.t('compute.text_524'),
  433. seleteItem: 'bps_recv',
  434. fromItem: 'vm_netio',
  435. unit: 'bps',
  436. transfer: 1024,
  437. metric: metricItems['vm_netio.bps_recv'].key,
  438. },
  439. {
  440. name: 'netio',
  441. label: i18n.t('compute.text_525'),
  442. seleteItem: 'bps_sent',
  443. fromItem: 'vm_netio',
  444. unit: 'bps',
  445. transfer: 1024,
  446. metric: metricItems['vm_netio.bps_sent'].key,
  447. },
  448. {
  449. name: 'diskio',
  450. label: i18n.t('compute.text_526'),
  451. seleteItem: 'read_bps',
  452. fromItem: 'vm_diskio',
  453. unit: 'bps',
  454. transfer: 1024,
  455. metric: metricItems['vm_diskio.read_bps'].key,
  456. },
  457. {
  458. name: 'diskio',
  459. label: i18n.t('compute.text_527'),
  460. seleteItem: 'write_bps',
  461. fromItem: 'vm_diskio',
  462. unit: 'bps',
  463. transfer: 1024,
  464. metric: metricItems['vm_diskio.write_bps'].key,
  465. },
  466. ]
  467. // 宿主机cpu使用率
  468. const HOST_CPU_USED_PERCENT = {
  469. name: 'cpu',
  470. label: i18n.t('compute.text_523'),
  471. seleteItem: 'usage_active',
  472. fromItem: 'cpu',
  473. unit: '%',
  474. transfer: 1,
  475. metric: 'cpu.usage_active',
  476. }
  477. // 宿主机内存使用率
  478. const HOST_MEM_USED_PERCENT = {
  479. name: 'mem',
  480. label: i18n.t('compute.text_518'),
  481. seleteItem: 'used_percent',
  482. fromItem: 'mem',
  483. unit: '%',
  484. transfer: 1,
  485. metric: 'mem.used_percent',
  486. }
  487. // 宿主机已使用内存
  488. const HOST_MEM_USED = {
  489. name: 'mem',
  490. label: i18n.t('monitor.text_127'),
  491. seleteItem: 'used',
  492. fromItem: 'mem',
  493. unit: 'G',
  494. transfer: 1024,
  495. metric: 'mem.used',
  496. }
  497. // 宿主机磁盘使用率
  498. const HOST_DISK_USED_PERCENT = {
  499. name: 'disk',
  500. label: i18n.t('compute.text_533'),
  501. seleteItem: 'used_percent',
  502. as: i18n.t('compute.text_533'),
  503. groupBy: ['device', 'path', 'fstype'],
  504. fromItem: 'disk',
  505. unit: '%',
  506. transfer: 1,
  507. metric: metricItems.used_percent.key,
  508. }
  509. // 宿主机 CPU IO 使用率
  510. const HOST_CPU_IO_USED_PERCENT = {
  511. name: 'cpu',
  512. label: i18n.t('monitor.text_128'),
  513. seleteItem: 'usage_iowait',
  514. fromItem: 'cpu',
  515. unit: '%',
  516. transfer: 1,
  517. metric: 'cpu.usage_iowait',
  518. }
  519. // 宿主机 磁盘读速度
  520. const HOST_DISK_IO_READ_RATES = {
  521. name: 'diskio',
  522. label: i18n.t('compute.text_526'),
  523. seleteItem: 'read_bps',
  524. fromItem: 'diskio',
  525. groupBy: ['name'],
  526. unit: 'bps',
  527. transfer: 1024,
  528. metric: metricItems.read_bps.key,
  529. }
  530. // 宿主机 磁盘写速度
  531. const HOST_DISK_IO_WRITE_RATES = {
  532. name: 'diskio',
  533. label: i18n.t('compute.text_527'),
  534. seleteItem: 'write_bps',
  535. fromItem: 'diskio',
  536. groupBy: ['name'],
  537. unit: 'bps',
  538. transfer: 1024,
  539. metric: metricItems.write_bps.key,
  540. }
  541. // 宿主机 磁盘读取次数
  542. const HOST_DISK_READ_NUM = {
  543. name: 'cpu',
  544. label: i18n.t('monitor.text_129'),
  545. seleteItem: 'reads',
  546. fromItem: 'diskio',
  547. unit: ' count',
  548. transfer: 1,
  549. metric: 'cpu.reads',
  550. }
  551. // 宿主机 磁盘写入次数
  552. const HOST_DISK_WRITE_NUM = {
  553. name: 'cpu',
  554. label: i18n.t('monitor.text_130'),
  555. seleteItem: 'writes',
  556. fromItem: 'diskio',
  557. unit: ' count',
  558. transfer: 1,
  559. metric: 'cpu.writes',
  560. }
  561. // 宿主机 网络每秒发送字节数
  562. const HOST_NET_SEND_BYTE_PER_SECEND = {
  563. name: 'net',
  564. label: i18n.t('monitor.text_131'),
  565. seleteItem: 'bps_sent',
  566. fromItem: 'net',
  567. unit: 'bps',
  568. transfer: 1024,
  569. metric: metricItems.bps_sent.key,
  570. }
  571. // 宿主机 网络每秒接受字节数
  572. const HOST_NET_RECV_BYTE_PER_SECEND = {
  573. name: 'net',
  574. label: i18n.t('monitor.text_132'),
  575. seleteItem: 'bps_recv',
  576. fromItem: 'net',
  577. unit: 'bps',
  578. transfer: 1024,
  579. metric: metricItems.bps_recv.key,
  580. }
  581. // 宿主机 网络接口发送数据包总数
  582. const HOST_NET_SEND_PACKETS_NUM = {
  583. name: 'net',
  584. label: i18n.t('monitor.text_133'),
  585. seleteItem: 'packets_sent',
  586. fromItem: 'net',
  587. unit: 'count',
  588. transfer: 1,
  589. metric: 'net.packets_sent',
  590. }
  591. // 宿主机 网络接口接收数据包总数
  592. const HOST_NET_RECV_PACKETS_NUM = {
  593. name: 'net',
  594. label: i18n.t('monitor.text_134'),
  595. seleteItem: 'packets_recv',
  596. fromItem: 'net',
  597. unit: 'count',
  598. transfer: 1,
  599. metric: 'net.packets_recv',
  600. }
  601. // 宿主机 网络接口丢失数据包总数
  602. const HOST_NET_LOST_PACKETS_NUM = {
  603. name: 'net',
  604. label: i18n.t('monitor.text_135'),
  605. seleteItem: 'drop_out',
  606. fromItem: 'net',
  607. unit: 'count',
  608. transfer: 1,
  609. metric: 'net.drop_out',
  610. }
  611. // agent 宿主机 monitor
  612. export const HOST_AGENT_MONITOR = [
  613. HOST_CPU_USED_PERCENT,
  614. HOST_MEM_USED_PERCENT,
  615. HOST_MEM_USED,
  616. HOST_DISK_USED_PERCENT,
  617. HOST_CPU_IO_USED_PERCENT,
  618. HOST_DISK_IO_READ_RATES,
  619. HOST_DISK_IO_WRITE_RATES,
  620. HOST_DISK_READ_NUM,
  621. HOST_DISK_WRITE_NUM,
  622. HOST_NET_SEND_BYTE_PER_SECEND,
  623. HOST_NET_RECV_BYTE_PER_SECEND,
  624. HOST_NET_SEND_PACKETS_NUM,
  625. HOST_NET_RECV_PACKETS_NUM,
  626. HOST_NET_LOST_PACKETS_NUM,
  627. ]