"use strict";(self.webpackChunkant_design_pro=self.webpackChunkant_design_pro||[]).push([[9219],{79219:function(C,l,a){a.r(l),a.d(l,{default:function(){return G}});var I=a(5574),s=a.n(I),c=a(67294),v=a(71230),r=a(15746),u=a(4393),S=a(96154),Z=a(63430),j=a(35099),i=a(57089),E=a(15009),g=a.n(E),D=a(99289),T=a.n(D),A=a(76772);function B(){return m.apply(this,arguments)}function m(){return m=T()(g()().mark(function f(){return g()().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.abrupt("return",(0,A.request)("/api/monitor/cache",{method:"GET"}));case 1:case"end":return n.stop()}},f)})),m.apply(this,arguments)}var e=a(85893),N=[{title:"col1",dataIndex:"col1",key:"col1"},{title:"col2",dataIndex:"col2",key:"col2"},{title:"col3",dataIndex:"col3",key:"col3"},{title:"col4",dataIndex:"col4",key:"col4"},{title:"col5",dataIndex:"col5",key:"col5"},{title:"col6",dataIndex:"col6",key:"col6"},{title:"col7",dataIndex:"col7",key:"col7"},{title:"col8",dataIndex:"col8",key:"col8"}],R=function(d){switch(d){case"10":return"100%";case"8":return"80%";case"6":return"60%";case"4":return"40%";case"2":return"20%";case"0":return"0%";default:return""}},U=function(){var d=(0,c.useState)([]),n=s()(d,2),M=n[0],K=n[1],L=(0,c.useState)(0),x=s()(L,2),h=x[0],Q=x[1],k=(0,c.useState)([]),y=s()(k,2),z=y[0],H=y[1],O=(0,c.useState)([]),F=s()(O,2),P=F[0],$=F[1];return(0,c.useEffect)(function(){B().then(function(t){if(t.code===200){var o=[];o.push({col1:"Redis\u7248\u672C",col2:t.data.info.redis_version,col3:"\u8FD0\u884C\u6A21\u5F0F",col4:t.data.info.redis_mode==="standalone"?"\u5355\u673A":"\u96C6\u7FA4",col5:"\u7AEF\u53E3",col6:t.data.info.tcp_port,col7:"\u5BA2\u6237\u7AEF\u6570",col8:t.data.info.connected_clients}),o.push({col1:"\u8FD0\u884C\u65F6\u95F4(\u5929)",col2:t.data.info.uptime_in_days,col3:"\u4F7F\u7528\u5185\u5B58",col4:t.data.info.used_memory_human,col5:"\u4F7F\u7528CPU",col6:"".concat(t.data.info.used_cpu_user_children,"%"),col7:"\u5185\u5B58\u914D\u7F6E",col8:t.data.info.maxmemory_human}),o.push({col1:"AOF\u662F\u5426\u5F00\u542F",col2:t.data.info.aof_enabled==="0"?"\u5426":"\u662F",col3:"RDB\u662F\u5426\u6210\u529F",col4:t.data.info.rdb_last_bgsave_status,col5:"Key\u6570\u91CF",col6:t.data.dbSize,col7:"\u7F51\u7EDC\u5165\u53E3/\u51FA\u53E3",col8:"".concat(t.data.info.instantaneous_input_kbps,"/").concat(t.data.info.instantaneous_output_kbps,"kps")}),K(o);var J=t.data.commandStats.map(function(p){return{x:p.name,y:Number(p.value)}});$(J),H(t.data.info.used_memory_human),Q(t.data.info.used_memory/t.data.info.total_system_memory)}})},[]),(0,e.jsxs)("div",{children:[(0,e.jsx)(v.Z,{gutter:[24,24],children:(0,e.jsx)(r.Z,{span:24,children:(0,e.jsx)(u.Z,{title:"\u57FA\u672C\u4FE1\u606F",className:i.Z.card,children:(0,e.jsx)(S.Z,{rowKey:"col1",pagination:!1,showHeader:!1,dataSource:M,columns:N})})})}),(0,e.jsxs)(v.Z,{gutter:[24,24],children:[(0,e.jsx)(r.Z,{span:12,children:(0,e.jsx)(u.Z,{title:"\u547D\u4EE4\u7EDF\u8BA1",className:i.Z.card,children:(0,e.jsx)(Z.Z,{height:320,radius:.8,innerRadius:.5,angleField:"y",colorField:"x",data:P,legend:!1,label:{position:"spider",text:function(o){return"".concat(o.x,": ").concat(o.y)}}})})}),(0,e.jsx)(r.Z,{span:12,children:(0,e.jsx)(u.Z,{title:"\u5185\u5B58\u4FE1\u606F",className:i.Z.card,children:(0,e.jsx)(j.Z,{title:z,height:320,percent:h,formatter:R,padding:-16,style:{textContent:function(){return h.toFixed(2).toString()+"%"}},data:{target:h,total:100,name:"score",thresholds:[20,40,60,80,100]},meta:{color:{range:["#C3F71F","#B5E61D","#FFC90E","#FF7F27","#FF2518"]}}})})})]})]})},G=U},57089:function(C,l){l.Z={card:"card___fGN_T",miniChart:"miniChart___Qvm3q",chartContent:"chartContent___keQ6l",chartLoading:"chartLoading___wFM1g"}}}]);
