2 lines
12 KiB
JavaScript
2 lines
12 KiB
JavaScript
import{r as d,j as e}from"./chunk-UIGDSWPH-BhuNDbxn.js";import{P as n,T as Re}from"./main-af3pcbZa.js";import{C as a}from"./ComponentCard-C2b5w2__.js";const r=s=>{switch(s){case"healthy":return"bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400";case"warning":return"bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400";case"critical":return"bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400";default:return"bg-gray-100 text-gray-800 dark:bg-gray-900/30 dark:text-gray-400"}};function Ae(){var m,y,g,o,u,h,p,j,N,k,f,v,b,w,S,_,C,$,F,L,M,P,I,B,D,G,E,R,U,z,T,A,W,Y,Q,K,O,V,q,H,J,X,Z,ee,se,te,ae,re,de,le,ne,ce,ie,xe,me,ye,ge,oe,ue,he,pe,je,Ne,ke,fe,ve,be,we,Se,_e,Ce,$e,Fe,Le,Me,Pe,Ie,Be;const[s,De]=d.useState(null),[Ge,Ee]=d.useState(!0),[c,i]=d.useState(null),x=async()=>{try{const t=await Re("/v1/system/status/");De(t),i(null)}catch(t){i(t instanceof Error?t.message:"Unknown error")}finally{Ee(!1)}};return d.useEffect(()=>{x();const t=setInterval(x,3e4);return()=>clearInterval(t)},[]),Ge?e.jsxs(e.Fragment,{children:[e.jsx(n,{title:"System Status - IGNY8",description:"System monitoring"}),e.jsx(a,{title:"System Status",desc:"Loading system information...",children:e.jsx("div",{className:"text-center py-8",children:e.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-gray-900 dark:border-white mx-auto"})})})]}):c||!s?e.jsxs(e.Fragment,{children:[e.jsx(n,{title:"System Status - IGNY8",description:"System monitoring"}),e.jsx(a,{title:"System Status",desc:"Error loading system information",children:e.jsx("div",{className:"text-center py-8 text-red-600 dark:text-red-400",children:c||"Failed to load system status"})})]}):e.jsxs(e.Fragment,{children:[e.jsx(n,{title:"System Status - IGNY8",description:"System monitoring"}),e.jsxs("div",{className:"space-y-6",children:[e.jsx(a,{title:"System Resources",desc:"CPU, Memory, and Disk Usage",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("span",{className:"text-sm font-medium text-gray-700 dark:text-gray-300",children:"CPU"}),e.jsx("span",{className:`text-xs px-2 py-1 rounded ${r(((y=(m=s.system)==null?void 0:m.cpu)==null?void 0:y.status)||"unknown")}`,children:((o=(g=s.system)==null?void 0:g.cpu)==null?void 0:o.status)||"unknown"})]}),e.jsx("div",{className:"w-full bg-gray-200 dark:bg-gray-700 rounded-full h-4",children:e.jsx("div",{className:`h-4 rounded-full ${(((h=(u=s.system)==null?void 0:u.cpu)==null?void 0:h.usage_percent)||0)<80?"bg-green-500":(((j=(p=s.system)==null?void 0:p.cpu)==null?void 0:j.usage_percent)||0)<95?"bg-yellow-500":"bg-red-500"}`,style:{width:`${((k=(N=s.system)==null?void 0:N.cpu)==null?void 0:k.usage_percent)||0}%`}})}),e.jsxs("div",{className:"text-sm text-gray-600 dark:text-gray-400",children:[(b=(v=(f=s.system)==null?void 0:f.cpu)==null?void 0:v.usage_percent)==null?void 0:b.toFixed(1),"% used (",(S=(w=s.system)==null?void 0:w.cpu)==null?void 0:S.cores," cores)"]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("span",{className:"text-sm font-medium text-gray-700 dark:text-gray-300",children:"Memory"}),e.jsx("span",{className:`text-xs px-2 py-1 rounded ${r(((C=(_=s.system)==null?void 0:_.memory)==null?void 0:C.status)||"unknown")}`,children:((F=($=s.system)==null?void 0:$.memory)==null?void 0:F.status)||"unknown"})]}),e.jsx("div",{className:"w-full bg-gray-200 dark:bg-gray-700 rounded-full h-4",children:e.jsx("div",{className:`h-4 rounded-full ${(((M=(L=s.system)==null?void 0:L.memory)==null?void 0:M.usage_percent)||0)<80?"bg-green-500":(((I=(P=s.system)==null?void 0:P.memory)==null?void 0:I.usage_percent)||0)<95?"bg-yellow-500":"bg-red-500"}`,style:{width:`${((D=(B=s.system)==null?void 0:B.memory)==null?void 0:D.usage_percent)||0}%`}})}),e.jsxs("div",{className:"text-sm text-gray-600 dark:text-gray-400",children:[(R=(E=(G=s.system)==null?void 0:G.memory)==null?void 0:E.used_gb)==null?void 0:R.toFixed(1)," GB / ",(T=(z=(U=s.system)==null?void 0:U.memory)==null?void 0:z.total_gb)==null?void 0:T.toFixed(1)," GB"]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("span",{className:"text-sm font-medium text-gray-700 dark:text-gray-300",children:"Disk"}),e.jsx("span",{className:`text-xs px-2 py-1 rounded ${r(((W=(A=s.system)==null?void 0:A.disk)==null?void 0:W.status)||"unknown")}`,children:((Q=(Y=s.system)==null?void 0:Y.disk)==null?void 0:Q.status)||"unknown"})]}),e.jsx("div",{className:"w-full bg-gray-200 dark:bg-gray-700 rounded-full h-4",children:e.jsx("div",{className:`h-4 rounded-full ${(((O=(K=s.system)==null?void 0:K.disk)==null?void 0:O.usage_percent)||0)<80?"bg-green-500":(((q=(V=s.system)==null?void 0:V.disk)==null?void 0:q.usage_percent)||0)<95?"bg-yellow-500":"bg-red-500"}`,style:{width:`${((J=(H=s.system)==null?void 0:H.disk)==null?void 0:J.usage_percent)||0}%`}})}),e.jsxs("div",{className:"text-sm text-gray-600 dark:text-gray-400",children:[(ee=(Z=(X=s.system)==null?void 0:X.disk)==null?void 0:Z.used_gb)==null?void 0:ee.toFixed(1)," GB / ",(ae=(te=(se=s.system)==null?void 0:se.disk)==null?void 0:te.total_gb)==null?void 0:ae.toFixed(1)," GB"]})]})]})}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:[e.jsx(a,{title:"Database",desc:"PostgreSQL Status",children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("span",{className:"text-sm text-gray-600 dark:text-gray-400",children:"Status"}),e.jsx("span",{className:`text-xs px-2 py-1 rounded ${r(((re=s.database)==null?void 0:re.status)||"unknown")}`,children:(de=s.database)!=null&&de.connected?"Connected":"Disconnected"})]}),((le=s.database)==null?void 0:le.version)&&e.jsxs("div",{className:"text-sm",children:[e.jsx("span",{className:"text-gray-600 dark:text-gray-400",children:"Version:"}),e.jsx("span",{className:"ml-2 text-gray-800 dark:text-gray-200",children:s.database.version.split(",")[0]})]}),((ne=s.database)==null?void 0:ne.size)&&e.jsxs("div",{className:"text-sm",children:[e.jsx("span",{className:"text-gray-600 dark:text-gray-400",children:"Size:"}),e.jsx("span",{className:"ml-2 text-gray-800 dark:text-gray-200",children:s.database.size})]}),e.jsxs("div",{className:"text-sm",children:[e.jsx("span",{className:"text-gray-600 dark:text-gray-400",children:"Active Connections:"}),e.jsx("span",{className:"ml-2 text-gray-800 dark:text-gray-200",children:((ce=s.database)==null?void 0:ce.active_connections)||0})]})]})}),e.jsx(a,{title:"Redis",desc:"Cache & Message Broker",children:e.jsx("div",{className:"space-y-3",children:e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("span",{className:"text-sm text-gray-600 dark:text-gray-400",children:"Status"}),e.jsx("span",{className:`text-xs px-2 py-1 rounded ${r(((ie=s.redis)==null?void 0:ie.status)||"unknown")}`,children:(xe=s.redis)!=null&&xe.connected?"Connected":"Disconnected"})]})})}),e.jsx(a,{title:"Celery",desc:"Task Queue Workers",children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("span",{className:"text-sm text-gray-600 dark:text-gray-400",children:"Workers"}),e.jsxs("span",{className:`text-xs px-2 py-1 rounded ${r(((me=s.celery)==null?void 0:me.status)||"unknown")}`,children:[((ye=s.celery)==null?void 0:ye.worker_count)||0," active"]})]}),e.jsxs("div",{className:"text-sm",children:[e.jsx("span",{className:"text-gray-600 dark:text-gray-400",children:"Active Tasks:"}),e.jsx("span",{className:"ml-2 text-gray-800 dark:text-gray-200",children:((oe=(ge=s.celery)==null?void 0:ge.tasks)==null?void 0:oe.active)||0})]}),e.jsxs("div",{className:"text-sm",children:[e.jsx("span",{className:"text-gray-600 dark:text-gray-400",children:"Scheduled:"}),e.jsx("span",{className:"ml-2 text-gray-800 dark:text-gray-200",children:((he=(ue=s.celery)==null?void 0:ue.tasks)==null?void 0:he.scheduled)||0})]}),e.jsxs("div",{className:"text-sm",children:[e.jsx("span",{className:"text-gray-600 dark:text-gray-400",children:"Reserved:"}),e.jsx("span",{className:"ml-2 text-gray-800 dark:text-gray-200",children:((je=(pe=s.celery)==null?void 0:pe.tasks)==null?void 0:je.reserved)||0})]})]})})]}),e.jsx(a,{title:"Process Monitoring",desc:"Resource usage by technology stack",children:e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"min-w-full divide-y divide-gray-200 dark:divide-gray-700",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-400 uppercase",children:"Stack"}),e.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-400 uppercase",children:"Processes"}),e.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-400 uppercase",children:"CPU %"}),e.jsx("th",{className:"px-4 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-400 uppercase",children:"Memory (MB)"})]})}),e.jsx("tbody",{className:"divide-y divide-gray-200 dark:divide-gray-700",children:Object.entries(((Ne=s.processes)==null?void 0:Ne.by_stack)||{}).map(([t,l])=>e.jsxs("tr",{children:[e.jsx("td",{className:"px-4 py-3 text-sm font-medium text-gray-800 dark:text-gray-200 capitalize",children:t}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-600 dark:text-gray-400",children:l.count}),e.jsxs("td",{className:"px-4 py-3 text-sm text-gray-600 dark:text-gray-400",children:[l.cpu.toFixed(2),"%"]}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-600 dark:text-gray-400",children:l.memory_mb.toFixed(2)})]},t))})]})})}),e.jsx(a,{title:"Module Statistics",desc:"Data counts by module",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsx("h4",{className:"text-sm font-semibold text-gray-800 dark:text-gray-200",children:"Planner Module"}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex justify-between text-sm",children:[e.jsx("span",{className:"text-gray-600 dark:text-gray-400",children:"Keywords:"}),e.jsx("span",{className:"text-gray-800 dark:text-gray-200",children:((ve=(fe=(ke=s.modules)==null?void 0:ke.planner)==null?void 0:fe.keywords)==null?void 0:ve.toLocaleString())||0})]}),e.jsxs("div",{className:"flex justify-between text-sm",children:[e.jsx("span",{className:"text-gray-600 dark:text-gray-400",children:"Clusters:"}),e.jsx("span",{className:"text-gray-800 dark:text-gray-200",children:((Se=(we=(be=s.modules)==null?void 0:be.planner)==null?void 0:we.clusters)==null?void 0:Se.toLocaleString())||0})]}),e.jsxs("div",{className:"flex justify-between text-sm",children:[e.jsx("span",{className:"text-gray-600 dark:text-gray-400",children:"Content Ideas:"}),e.jsx("span",{className:"text-gray-800 dark:text-gray-200",children:(($e=(Ce=(_e=s.modules)==null?void 0:_e.planner)==null?void 0:Ce.content_ideas)==null?void 0:$e.toLocaleString())||0})]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx("h4",{className:"text-sm font-semibold text-gray-800 dark:text-gray-200",children:"Writer Module"}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex justify-between text-sm",children:[e.jsx("span",{className:"text-gray-600 dark:text-gray-400",children:"Tasks:"}),e.jsx("span",{className:"text-gray-800 dark:text-gray-200",children:((Me=(Le=(Fe=s.modules)==null?void 0:Fe.writer)==null?void 0:Le.tasks)==null?void 0:Me.toLocaleString())||0})]}),e.jsxs("div",{className:"flex justify-between text-sm",children:[e.jsx("span",{className:"text-gray-600 dark:text-gray-400",children:"Images:"}),e.jsx("span",{className:"text-gray-800 dark:text-gray-200",children:((Be=(Ie=(Pe=s.modules)==null?void 0:Pe.writer)==null?void 0:Ie.images)==null?void 0:Be.toLocaleString())||0})]})]})]})]})}),e.jsxs("div",{className:"text-center text-sm text-gray-500 dark:text-gray-400",children:["Last updated: ",new Date(s.timestamp).toLocaleString()]})]})]})}export{Ae as default};
|