From a65a1c0e867ad8d52cdbbe972548a040deea0ae2 Mon Sep 17 00:00:00 2001 From: Anso Date: Sun, 19 Apr 2026 00:17:51 -0400 Subject: [PATCH] feat(stack-view): per-container health strip and structured logs viewer (#689) * feat(stack-view): per-container health strip and structured logs viewer Replaces the flat container list with a per-container health strip showing healthcheck state, uptime, port mapping with an open-app link, and live cpu/memory/network sparklines fed by a 60-sample ring buffer on the stats WebSocket. Adds a structured logs viewer that parses docker timestamps (emitted by the -t flag on the logs stream) and classifies each line by level. Rows render as a DOM grid with filter pills (all / info / warn / err with count), following indicator, and plain-text download. A segmented toggle switches between the structured viewer and the original xterm view; the choice is persisted in localStorage. * fix(stack-view): disable no-control-regex for ANSI escape pattern ANSI escape sequences start with ESC (0x1B), which is a control character. The regex is intentional and cannot be rewritten without it. --- backend/src/services/ComposeService.ts | 2 +- docs/features/stack-management.mdx | 37 ++ docs/images/stack-view/health-strip-logs.png | Bin 0 -> 140685 bytes frontend/src/components/EditorLayout.tsx | 334 +++++++++++------- .../src/components/StructuredLogViewer.tsx | 225 ++++++++++++ 5 files changed, 478 insertions(+), 120 deletions(-) create mode 100644 docs/images/stack-view/health-strip-logs.png create mode 100644 frontend/src/components/StructuredLogViewer.tsx diff --git a/backend/src/services/ComposeService.ts b/backend/src/services/ComposeService.ts index 73de9d24..a7a03a98 100644 --- a/backend/src/services/ComposeService.ts +++ b/backend/src/services/ComposeService.ts @@ -285,7 +285,7 @@ export class ComposeService { } }; - const child = spawn('docker', ['logs', '-f', '--tail', '100', containerName], { + const child = spawn('docker', ['logs', '-f', '-t', '--tail', '100', containerName], { env: { ...process.env, PATH: process.env.PATH || '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' diff --git a/docs/features/stack-management.mdx b/docs/features/stack-management.mdx index 73cf9c1d..c883cd54 100644 --- a/docs/features/stack-management.mdx +++ b/docs/features/stack-management.mdx @@ -117,6 +117,43 @@ The header answers three questions at a glance: - `exited` (red) when no containers are up. - **What does it ship?** A mono line under the title shows the primary image tag and the short image digest, with a copy button to grab the full digest. +## Container health strip + +Below the header, each container in the stack gets a single row that answers "is this piece working, and how do I reach it?" without expanding anything. + + + Stack view showing the per-container health strip above the structured logs viewer + + +Each row includes: + +- **Health badge.** A colored glyph reports the Docker healthcheck state: `✓` green for passing, `✗` red for failing, `…` amber while the healthcheck start period is still in flight. Containers without a `healthcheck:` block show a neutral `✓`. +- **Container name** in mono. +- **Meta line.** Uptime (`up 20 hours`), healthcheck state when one is defined, and the primary port mapping (`6875 → 80/tcp`). +- **Open link.** When the container publishes a port, an `open ↗` link launches the app in a new tab using the active node's hostname. +- **Live stat tiles.** Three tiles show CPU, memory, and network I/O with a rolling 60-sample sparkline. The sparkline uses the cyan data color and refreshes roughly every 1.5 seconds. +- **Action icons.** Shortcuts to open this container's logs or a bash shell. + +## Logs viewer + +The logs area at the bottom of the stack view has two modes. Toggle between them with the segmented control in the top-right of the panel; your choice is remembered for next time. + +**Structured** (default) parses every line into a DOM row with three columns: local time, level badge, and message. Level detection is automatic: + +- `err` rows get a red left rail and a subtle rose tint. +- `warn` rows get a warm tint. +- `info` rows render plainly. + +The toolbar includes: + +- **Following indicator.** A pulsing green dot reads `following` while auto-scroll is engaged. Scrolling up stops follow; a `resume follow` link re-engages it and jumps to the bottom. +- **Level filter.** `all · info · warn · err` pills. The `err` pill shows the running error count as a badge. +- **Download.** Exports the current buffer as a plain text file. + +The structured viewer holds up to 10,000 lines; older entries are dropped from the top as new ones arrive. + +**Raw terminal** keeps the original xterm-based viewer for cases where ANSI art, control sequences, or interactive TTY output matter. Lines include the raw ISO timestamp. + ## Deploying a stack Select a stack and click **Start** (or **Deploy** from the context menu) in the stack header. This runs `docker compose up -d`, pulling images if needed and creating or recreating containers. diff --git a/docs/images/stack-view/health-strip-logs.png b/docs/images/stack-view/health-strip-logs.png new file mode 100644 index 0000000000000000000000000000000000000000..402d46248e09106628adb8667efb1c402a249e7c GIT binary patch literal 140685 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Ο|(wDRhm8Ren1P8Olp`K2s*2 zu{)as8#!lNi5^z@nEuQLRwQg3p+NQPw-Xn!O!o<{7+!L0UNeZwP5C*+Ha0#UF>|Oz ztvx#rCLEw0DO0hVdBUj$u=e5?j{BG4+j63w?UrC|sKrWwA1ol?Bscu-5dx)IC*rKH z;lV#2zaq4*9R1%%KPfeJiQx%32v_^{GJAU>4*A;SSBLM>-|_1UW6z*i{Q4r~n_<8= z`~A9o5%c()9(`de3(-G(Lrqx;3Awi;E&Z4KZr-tWe4o>mF)F!hsf=!=jDAP_wR1-Q zay%V_lHh2XuYP*2NW8z5EAFRq;o4jit{nLc8PD3^-{(7S-AOqKxi;Rs^x}LPUY5`K ztEhWdL(fOxqmKs24~z@h#%ygjDpVEEWL^4k{bWo_!RYzVAFYhfAH5^U5BG)L3ngxm z!U7NgclXNlbQ8EDZruvj&VO2uj)wNCq5>*teqnxQrn#o(^RhA*5QxB_CZAdI>J=I` z_P4KJbF;Ir+ra>PnG_7mQjMSiElPxe6FSl!i&yNyP5u1@qd?_>rg%}Ynuf>!Sz^AI zp4vvNT2Hnt;axqWjN2xbc-`^^>4O%`3beT@78Td}LO(;BQAoMHTQIc4vEAOL#;?0c2WU5D+{7cRbKJ_C`P{L6a)t{gZ!l z8Um0IwR=X!?%v+W&=A-Xv@|xN2!lOY%(G{t6_PS~YHEH~L*76biIAWI?+v%s-`! ze?LLahm#k`Bs#IEU>x8{10j+|+d6M)*>=7f_v ziAr>K_Vg5iWn@D`8k7vU2$dM{(R?>JfYQLqie=DW5G=vZ&5ci0wzD`ptE#OX_?d|D zD~$3zI44U1|0*`Q-3h!`@S}0m4pFyY<}`iu0Y2;2yrPhDazW?Tt}f}t;FFW|=(Vq3 zhXL6e$%a=JJy0Sg;)6vB$RWMyfM=`ZfU1zr@b*Mcvq)sZAH9PY7(7|~Y zX`tf|h$E#oX?lz16~Xh~+B6`Hn3&jRq%>QPICc|0+m+JouV2NxS$s_}P@?bNz1z~# zl1^E*Dfe)smMR__14H~21s)y^dl_UARc*VH#aq3)_PsBp@~% zt);mc0vB@g@-S25Lqf39K7!jbKsTfnSeTd+Vj;Je;Q?o3W7Dg47VtR`nl|BXD$=cT z%m7#yt+;2blC?S{IQSN%56Q|#mOysI;QIPHB>aK}|B}9+BbQX2PovHCw#zqYySsnKGlnkXBw<@x6i zPXjkfKwPAarnIS!^c~G1oze4KZe*0yjQHiaiFq|1V@yjckCPouTa>PUdw7Z|Os|4+ zD5JlL;=-?s6?fcV=PY-Ra5sDsu<-|`W=BWI^XEim+N?eVI5>uOc9f)~ItDu6#`)^i z6-eR)_bDJE0c9F8#L37$FD!r&%fnC51K#2-EiM*o1a!ybDh$gaBKqk)h6Y4Wa&wu> zq3?|XCy`WVX)8?jt2(>YIn!LZX(};n->MsA+unV=oRX+3UD%_ZB%_{r@zY+4q9$s2 zu25uFwY$nkEAn^F751+N)cR!1?xQ3Fs0!Z#lGHU9a={MAd1U}fljX;I=FoQTzyb7H z(ziaifmnus#>&A1B6t9VAyk?A^5r1R=Vv0mAnEo1U<~%eovlJ2#iFS#+u%^^Yp^^m?`;18rJ8EpRGsUsG1Ob~?{)YZG_K z4n~xSLx^14-Pz&i=ZCoIz(O27Dp^>1!U*-Ut^C7>4-g!fsgNwC9E?T#0er9mk`faV zz=Tj+NvQ`ydsDcbQiHMmh@a=Dk9chr|GOvbD7W5RM(Gs>}66kP-*HIz-K z3{6Ns>Jvm|7pmVh>n<{BIf-)C@B@dPOC1v%TOCjlAV|%50>+Rgn!vq+jQPHfD4~0M zTY#*Bla>hx*xZM>+}90-9AY_5(QRYF)B>dcrmf*r6ciMX&r|XayY^)%B?HI?P+IWw zN*LDzA|rHX%00nX0JO&bNkBFUZnSP{3dufOi3)I=6K0A+vIy7&SNf6q;6p9ip?l>p zBjxNk-E{6J_FLf};Dcl05AaE_Snx%^vSdqK+%o$e)HZU_p9Ls-Q%iM6N4+A-lZxCb z$0w}+F;oT~zFFyj=K%lX@ZI#UNCoH{7mMc2^2ZDeF=Zt-hM0B`r%~yF4!1$N$w-C( zz;;2mFTs;-y}ew_%oqd`1%Y8ZbJNSqffM9A0YBe2H=kK5SI?CcWstb|#Ky~y;?-4r zaA^hh2aRyci7QOO5?0DNJMp0=zI3Z=^{rdliA)?C@dj*`+k&?{J#VDGHpe)bZ%}^# z-aOHmYYz`0V?J#iz@mN&Zhl-|US1fl01@AXKM6@$A2v@WkPE*;EsU%rIik?W?rtyh z0B#PChV5v%+-rd#|3!Onj%-EU5HbYe3^bpOTNDD0voPY(Z|;LS6zN44QOQ9Gu{K&! z2wX&vKftFUBnxokW04-w0~MuAn|km4byoQmFoxRbJ9+4V!~TYZGH&P$?*}lTnC~EN z!wIW9*jssc7OR0#>S8d;+ZeMkd$3G{)%Y7=Y&oEzDYt}CB6HAmq;-c9Bod;+c?${- zZgQckzk0_pvWGNHO^D|@)m}>po@%25w2svLZ|-wMOl&qN?;qupIPbSU=Y;%>%!=Bw8yf5J23!DE5^_7Ov6i1KQiE>KQi74$YN$? z&HsSWik2!SE{>}l6xRAVT$t*XM7!7io(s2xzp16=lh5atxWuez4bV0vOiRUdA{c2{ zCH?(6NJcG2K?4HrbF)u~?z`)az=>|FL@SRAFMp*RrSj6*X>Y$oKWs}YQ9J7c!^exN zi@E*k2NfS(nUi_&X1y4FP=C)T)8(=E+{QhOU-pA)wicm(@ zld$Krpb{{_j*#nm&Vj;J1qBhlDRrh4rXXY#&EALo9mDdB&TJ33_U{1X06oQJg{0sH z%ifpw;7Q}Z3YN^mXJ3K&!_biC?e2g}4rcJwJ>d$9G9A09^|dvE2A7B0-V21PuWUH) zU97p*mBmOo0&L}nmv#W*mU_(4)GEg-boU!e0SE2m5cc`=Em7xRG=>NT-iW$PH7faN z|9kx*d18RoyQtvU>rVrJlFYda`rf9L4zY7k44A~#p<$umG7HWcgPH_$`SzmH+TLWV z4)}d?Fx{cqmlg?X`w6Zo;j%aVxrrO!2>YSDWqZ}~OyBdI06UXmxtwdj74n7e5z-VJ z-@b`>Y|`4YZ9Q?E9R$}!=-y0SUBS4vW`$INCYLy#-+`LiG8pFx7aJ{E(1y~bffn5< znrX|=)8GKn;Dq**)8opcnS!{MWtDnOrzCTdy2Ws zE&^8Im;7^ox6_i#w1p)`M)w_OO<@7JC|%&yo8oGRri|N9bu#S9lk0bw&~dA%x0g0c=kIwFS|NMEFc7AA3P-E2_OqxOQaI4~xCwTOTISQl7OMHBMP~NNeX=JO4 z`(wVXn4UABeTbH=WCT-Q;hzQEe5jvgKU=jvfXVT(Bly`0z>%YPWrXkz!jX`9}tnF@3qmq zr_b>P`~@Mz3vAV1-2*7@ML#tLuuR^(m|8-Uf8a&<^Y$ekG{Ucs&f#^RE3g@3e|~Gp z$Iff!ii)x_PAH9ptGzw)6n%1^!SeFEL->GQKFz_7AA-*_QMyi8v4=j;L1}E1dmJlq zE!ZaNAxD9~?g7-Ei@CfeB1P6wSP{)L!QgO&YA*d@VukF?2SZ5NfLR5YJt0J%U=%L% z)#vAibcc}q7}P*`)Qnmvnzw%SOl7A5Z-^sRX7%y$AtZbTPrpP0L`TJHfUrzUiovfah|Tb)n)wb1s25`*86jsTIm?Ut>#bXSE6H4~x8#%;gf=yK|DCgUnF?;DM z*^hb@uzMiqu~G#-V#Mxrl9+7Jm}_SoPvv`Luc23Ct9KV{URs7=8loj0Xn#}wQ~fSE zns3DFvU4?(B?k1NAsjyZYCTBVtWMZnrPGvpxK{#xC=~{-aiwI0%S@tCU>STbJ{v-?iH*{50^d&BXXuoAs|y-0t2q zc*+nWh6_lx9UY7Yu=5-eP#Tpkl0Wb zaqv3(3FD&mwV90@_k12HzL9(6^vEb++bTSA=0=Aj%C7SvSo&U<@cul+vE`4_RK-;l z1g9SL^yy2KlyJ;#ZP_lL#PdCf$O)qqr3iDfAM^s>i!>X!3H&jMefvmn+(YSK#_@Ts z#4;H=+^7#RJr9N(JIMI$Pjo%Dx14&K%b~?js>D#!RjtPuSGF=f$vK569G}oC{r>2Y? zJ?5@v4V2n{K1Q*9_)+*Zh2r0SCE695?wFpE1O7py4XIZCgZ+ak+W4_E^LT{%U?QNR z$0Q-qdG_#yWsXnnB&EzwSkTdr46w{M1752W)7Va#H!xF{3RgZIKz1vcw(5ya zp8o)w{zp{ce+3L@p`%WFX}CILg||#s&QoRDzwmK2?I$`_aW6X&Txvl|5gRuQpUrZR1YL_od<*UCpICJ{+(C8>+xD5;rz);1)(gBnYz&WX?u4ndYX=^)neE&hct{`WpBWF=H zBdE6Em2z=W={XDf!5-_<82ZTmY`+Q-2K<2st4v|EIc%SzOSKkr3>JPU@`&a4CU4Fn(v66x(c4k9xR{% zinV~@2FrQqxfMK8;5Wga|4|PbOC(TmVSe7f*AtjqKv_>2l?=KVLd0=O;{#Yr!HUoS z!ecRbXOJdBuKh z(vbAI&ln2~JI=1INxU|33~wnoa^V`uS(90bXP9xK;;~J$k2ksC>+5S@0z5PyScd)T zo|N9dQKQfTXf`WsrXdzYhku$^A z_O_(xA}}Seg=q$Phc7~>QXzbH=uD(VhB7e;Ng&Qoz+|K!uR>4R`!b~Ok+YzSa)FJ4 zUDY+C?9#AJCr|#SDZBB!k*myk(QygIIt00W=ow;0rUlZ*#A1SdW&*xH!Nh-39^E}Gw%~YuO+T8?%1Gp3}!5&+S zJq&MmAj#}eWp7IhDlXS_A82-|2=;4EvZZd!v;a}!lAfeli1;Vim)t*z(%tS(n8r$N z`1#b;xGP4djMX;?NJ5FZ&Jrxw1Um$W32nB*^x^Q@o%V{!J52m(V>TuxZJYaWo9@C~ z1^3DRVtUvWG1`2F7GjU3jA!=shNO4jUWzCQLL)MeOW?=7ZiCWm{2HSzJjMi*->az` zC__XZD8iR|TlRgQH1NJO1zPfA3qZIJNC##mh?6n0d+@e_qASSHZ}_J2(qk;rZ}1&p zb$0Y(B}GA|TpZ}6s#8+l^!KZAzQ$s8ym4C%K<_7T{H)3xO>cwka#BEYQwwzT)E#29 zk9R85(oPw`wu*|s&SA#?w!46KhVm2Jllh9i6cVD~7Xf5kZIrG1AHBuE^Bt0XouNj(xGbp5FQ2ZdHbF)%!UMlBc;gc>s@8(w_()AB>efHyZ9}Y7P+^ zcu_SN+_|);3+n8dFj4&)0W*bLWjp+EjFP?gmbR99Wke%b1}jve`prHh?1F_+I*!6A zsZcV;HT*7$B=_lacLKh{l|eHt!6Rg+S?$dD;h9A!177Xa=$>mJ1`7Z_=Lujl2MAnX zCN=>7Sw3IqI60!|9!FBdC*day9MGQ#DqHm8KPz#&mW|a2^)5_64NUru~e`2q_?~>YD7?yiFF*} zdaw)Jd9pGKp$|<<@3f@6o>YofG3mG#9taMiYKuuRD zrBHZ(0t5yLHn+<4Z10CWKtY{;aI#>E>+Fz8B58|z8dPjjiP;bCwD-ji0HvPYpXSB_ z#N7MS{Y@aqdSs607`DsY*;eMdKde2U&RP;Zb=snW*bh9M@f z9hx-UKR^0P_iJBJc1ITlK65Hgsmp$E2qUyW$;N*!V4Ji6P^NBfFc}b-cgxL>;wrZy_UCjB-|-aNijS^ zICif;W7BKWxQTUO9}b~MkKCWRLTQ90Ljt#Dq&8xA!JQ<2>1<4H2#g0n`anwrV4wxK zMutG$Ao>XzN%9H&4>0#2zz8l?23dq$712shOM9tN@_Fvy3X)2EI&aYnTJ}h|MBzC= zV%*CHx!0hNNGz{Jb6BGGZoYyb-3J?Lf1(ho7I#1Ct>~Z0i=H1A2qm z7t1iCXLv#;kmCS+eg=lwFYJ!!88HP01#QIq^epBOvb)ASRv!?ISe8;zw`@#fk|^MR zQIA?Ubwdz+F6C++TzjEEP(8*qd<`X@ zVq;^=4BtA?D+X#5d~sSE(4D(cc>B)E&^Lc1TWsG^Q#?5?B_;JTGc#GpL;0{i3j+Fh zgoMa$XqlP4barFHHfTPydWLT+k)&%dmIo&+fC6qCe8w22{_xU)Ct(;kf~X7A zu%_iFglp*Xj}~#?5oQdUJCdgvc}OC=k*B^M3}xZKHE)N<#|H(gW%k~KPZD~_=Ckee z@(BSlTd)IyP~A5)SgPV3fpId)bd5Lbh`6Y=g@$$jfp2!-+}vE}qN6*bL1L_q`5AUd zGLpD4)c4=L0zng!V zdsypY2s83)&vHi=PEH#3-MDot8bw6{8LZIWe-XJ?XVRL;qeV9_pKRUudg@ICJvIKf zjg9L!z_KoaiMI|F_eEf{A8aG&*u$v@d`}cLy=t=pe}ZO9Pf#M@h%@5{j*L%}wXJx! zzGnbZrXzeEQKs(h`N8|4fq^7oGy^C46^6iYlZP~e*OxH?=O9fkph*yZ0>V{z6rx*r z(G_WAX%g(zopOEXoj9&8QviRnBi?kkeellm=G^;5;@*H(7q|$3vxue%4Q1#-Pb19I zu&h&7QE?z9t!S1xHPKjl;si?04TdNG#{VdrwM4`2&{? zV&OY8SFG8!Z5-2ryZq4JuH>Dx5mG{&0Uh2~SoWI1@-N^AU_I-LGRIREwbd}JW0jo5 z*B=it94*-?1@r*+)udDR3UWU8wup>62sZW?(k_d@XpDaGc)MPP)=;2dyF5M337fXt z(P;UzI9NA~Wn=<&xSRvt;FwVrMGgj4{@bPc7t#R23Epd$0%Y)UDdt_FybVd6bM$Ik zH=nr3rn?A}%2GoMEIkuMeJDr~ex;`EU1+hvnF7wqP`!`n$5H5QfeI54Qx-zy!(HGC z4Zs~1{ntdpY#%tkl^MQ0RrDF;{)sL!L38^JmnG)`%Drh?2kSTDMUW+^eB&;*Azpoflu3zQ4GEi|T7+=s(vS*Bsexd@^JN&+jDZ8nu7` zvETG*Ep2V%5xCA-_MQX>OOOS(TQD5Rq%*Wo&1jto-2-7M5ua@WLzCn-Oo93Owc0G+ zAzXeXV{ar6)@4HMfBCx&FY>|Q(MXJ(95apuber&wz<9@ju0_g!#(>C zO2n~R!AHa`4$zK+>Mu6OM66>fUPr3rnQmwlezP_L{w_M-Pf^fC93EDN-awo!&myN5 a<;0bI*+jgz1c8WT;)bNWM1h#0@Bag>80pyn literal 0 HcmV?d00001 diff --git a/frontend/src/components/EditorLayout.tsx b/frontend/src/components/EditorLayout.tsx index fdb51aa8..8d5a0caf 100644 --- a/frontend/src/components/EditorLayout.tsx +++ b/frontend/src/components/EditorLayout.tsx @@ -37,7 +37,6 @@ import { Checkbox } from './ui/checkbox'; import { GitSourceFields, type ApplyMode } from './stack/GitSourceFields'; import { Skeleton } from './ui/skeleton'; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './ui/tooltip'; -import { HoverCard, HoverCardContent, HoverCardTrigger } from './ui/hover-card'; import { Popover, PopoverContent, PopoverTrigger } from './ui/popover'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger } from './ui/dropdown-menu'; import { ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger } from './ui/context-menu'; @@ -50,6 +49,8 @@ import { StackAutoHealSheet } from '@/components/StackAutoHealSheet'; import { GitSourcePanel } from './stack/GitSourcePanel'; import { AppStoreView } from './AppStoreView'; import { LogViewer } from './LogViewer'; +import StructuredLogViewer from './StructuredLogViewer'; +import { Sparkline } from './ui/sparkline'; import { GlobalObservabilityView } from './GlobalObservabilityView'; import { FleetView } from './FleetView'; import { AuditLogView } from './AuditLogView'; @@ -104,6 +105,23 @@ const formatBytes = (bytes: number) => { return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i]; }; +// Extract the "up X time" portion from a Docker status string like +// "Up 12 days (healthy)" → "up 12 days". Returns null when the container +// is not in an uptime-reporting state (exited, created, restarting, etc.). +const extractUptime = (status: string | undefined): string | null => { + if (!status) return null; + const match = status.match(/^\s*Up\s+(.+?)(?:\s*\(.*\))?\s*$/i); + if (!match) return null; + return `up ${match[1].trim()}`; +}; + +const healthcheckLabel = (health?: 'healthy' | 'unhealthy' | 'starting' | 'none'): string | null => { + if (!health || health === 'none') return null; + if (health === 'healthy') return 'healthcheck passing'; + if (health === 'unhealthy') return 'healthcheck failing'; + return 'healthcheck starting'; +}; + type StackPill = { label: string; dotClass: string; className: string; pulse: boolean }; const getStackStatePill = (containers: ContainerInfo[]): StackPill | null => { @@ -184,15 +202,39 @@ export default function EditorLayout() { const [envFiles, setEnvFiles] = useState([]); const [selectedEnvFile, setSelectedEnvFile] = useState(''); const [containers, setContainers] = useState([]); - const [containerStats, setContainerStats] = useState>({}); + const [containerStats, setContainerStats] = useState>({}); // Incoming WebSocket stats are written here first (no re-render), then flushed // to React state in one batched update every 1.5 s. - const pendingStatsRef = useRef>({}); + const pendingStatsRef = useRef>({}); // Raw rx/tx byte totals used for rate calculation. Never cleared on flush so // the delta is always computed against the most recent known value, avoiding // the stale-closure bug that occurs when reading containerStats directly. const rawBytesRef = useRef>({}); const [activeTab, setActiveTab] = useState<'compose' | 'env'>('compose'); + const [logsMode, setLogsMode] = useState<'structured' | 'raw'>(() => { + if (typeof window === 'undefined') return 'structured'; + return (localStorage.getItem('sencho.stackView.logsMode') as 'structured' | 'raw' | null) ?? 'structured'; + }); + useEffect(() => { + try { localStorage.setItem('sencho.stackView.logsMode', logsMode); } catch { /* ignore */ } + }, [logsMode]); const [gitSourceOpen, setGitSourceOpen] = useState(false); const [gitSourcePendingMap, setGitSourcePendingMap] = useState>({}); const monacoEditorRef = useRef(null); @@ -944,6 +986,10 @@ export default function EditorLayout() { net: netIO, lastRx: currentRx, lastTx: currentTx, + cpuNum: parseFloat(cpuPercent) || 0, + memNum: data.memory_stats.usage / (1024 * 1024), + netInNum: rxRate, + netOutNum: txRate, }; } catch { // Ignore parse errors @@ -963,16 +1009,26 @@ export default function EditorLayout() { pendingStatsRef.current = {}; setContainerStats(prev => { - let hasChanges = false; const next = { ...prev }; + const HISTORY_CAP = 60; for (const [id, newStats] of Object.entries(pending)) { - const old = prev[id]; - if (!old || old.cpu !== newStats.cpu || old.ram !== newStats.ram || old.net !== newStats.net) { - next[id] = newStats; - hasChanges = true; - } + const prior = prev[id]?.history ?? { cpu: [], mem: [], netIn: [], netOut: [] }; + const history = { + cpu: [...prior.cpu, newStats.cpuNum].slice(-HISTORY_CAP), + mem: [...prior.mem, newStats.memNum].slice(-HISTORY_CAP), + netIn: [...prior.netIn, newStats.netInNum].slice(-HISTORY_CAP), + netOut: [...prior.netOut, newStats.netOutNum].slice(-HISTORY_CAP), + }; + next[id] = { + cpu: newStats.cpu, + ram: newStats.ram, + net: newStats.net, + lastRx: newStats.lastRx, + lastTx: newStats.lastTx, + history, + }; } - return hasChanges ? next : prev; + return next; }); }, 1500); @@ -1753,19 +1809,6 @@ export default function EditorLayout() { return stackName; }; - const getContainerBadge = (container: ContainerInfo) => { - const status = (container.Status || '').toLowerCase(); - const state = (container.State || '').toLowerCase(); - - if (status.includes('(unhealthy)') || state === 'exited' || state === 'dead') { - return { variant: 'destructive' as const, text: container.State }; - } - if (status.includes('(starting)')) { - return { variant: 'secondary' as const, text: container.State }; - } - return { variant: 'default' as const, text: container.State }; - }; - return (
{/* Left Sidebar (Stacks) */} @@ -2755,113 +2798,134 @@ export default function EditorLayout() {
- {/* Containers List */} + {/* Per-container health strip */}

CONTAINERS

{safeContainers.length === 0 ? (
No containers running for this stack.
) : ( -
+
{safeContainers.map(container => { let mainPort: number | undefined; + let mainPortPrivate: number | undefined; + let mainPortProto: string | undefined; if (container.Ports && container.Ports.length > 0) { const WEB_UI_PORTS = [32400, 8989, 7878, 9696, 5055, 8080, 80, 443, 3000, 9000]; const IGNORE_PORTS = [1900, 53, 22]; - - // 1. Match typical Web UI Private ports let match = container.Ports.find(p => WEB_UI_PORTS.includes(p.PrivatePort)); - // 2. Match typical Web UI Public ports if (!match) match = container.Ports.find(p => WEB_UI_PORTS.includes(p.PublicPort)); - // 3. Fallback to any port not in ignore list if (!match) match = container.Ports.find(p => !IGNORE_PORTS.includes(p.PrivatePort) && !IGNORE_PORTS.includes(p.PublicPort)); - - mainPort = (match || container.Ports[0]).PublicPort; + const chosen = match || container.Ports[0]; + mainPort = chosen.PublicPort; + mainPortPrivate = chosen.PrivatePort; + mainPortProto = 'tcp'; } + const containerName = container?.Names?.[0]?.replace(/^\//, '') || container?.Id?.slice(0, 12) || 'container'; + const isRunning = container.State === 'running'; + const health = container.healthStatus; + const uptime = isRunning ? extractUptime(container.Status) : null; + const hcLabel = healthcheckLabel(health); + const stats = containerStats[container?.Id]; + const history = stats?.history; + + const badgeClass = health === 'unhealthy' || !isRunning + ? 'bg-destructive text-destructive-foreground' + : health === 'starting' + ? 'bg-warning text-warning-foreground' + : 'bg-success text-success-foreground'; + const badgeGlyph = health === 'unhealthy' || !isRunning ? '✗' : health === 'starting' ? '…' : '✓'; + const sparkStroke = health === 'unhealthy' ? 'var(--destructive)' : health === 'starting' ? 'var(--warning)' : 'var(--chart-1)'; + return ( -
-
-
- - -
- - {getContainerBadge(container).text || 'unknown'} - -
-
- -
-

Container Status

-

- {container?.Status || 'No status details available'} -

-
-
-
- - CPU: {container.State === 'running' ? (containerStats[container?.Id]?.cpu || 'N/A') : '0.00%'} | RAM: {container.State === 'running' ? (containerStats[container?.Id]?.ram || 'N/A') : '0.00 MB'} | NET: {container.State === 'running' ? (containerStats[container?.Id]?.net || '0 B ↓ / 0 B ↑') : '0 B/s ↓ / 0 B/s ↑'} - +
+
+
+
+ {badgeGlyph} +
+
+
{containerName}
+
+ {uptime ? {uptime} : {(container.State || 'unknown').toLowerCase()}} + {hcLabel ? <>·{hcLabel} : null} + {mainPort && mainPortPrivate ? ( + <> + · + {mainPort} → {mainPortPrivate}/{mainPortProto} + + + ) : null} +
+
+
+
+ + {isAdmin && ( + + )}
-
- {mainPort && ( - - - - - - Open App ({mainPort}) - - - )} - - - - - - View Live Logs - - - {isAdmin && ( - - - - - - Open Bash Terminal - - - )} -
+ {isRunning ? ( +
+
+
+ cpu + {stats?.cpu ?? '-'} +
+
+ +
+
+
+
+ mem + {stats?.ram ?? '-'} +
+
+ +
+
+
+
+ net i/o + {stats?.net ?? '-'} +
+
+ +
+
+
+ ) : null}
); })} @@ -2871,14 +2935,46 @@ export default function EditorLayout() { - {/* Terminal Section */} -
-

Terminal

-
- - - + {/* Logs Section */} +
+
+

Logs

+
+ + +
+ {logsMode === 'structured' ? ( + + + + ) : ( +
+
+ + + +
+
+ )}
diff --git a/frontend/src/components/StructuredLogViewer.tsx b/frontend/src/components/StructuredLogViewer.tsx new file mode 100644 index 00000000..1dcc6f62 --- /dev/null +++ b/frontend/src/components/StructuredLogViewer.tsx @@ -0,0 +1,225 @@ +import { useEffect, useMemo, useRef, useState } from 'react'; +import { Button } from './ui/button'; +import { Download } from 'lucide-react'; +import { cn } from '@/lib/utils'; + +interface StructuredLogViewerProps { + stackName: string; +} + +type LogLevel = 'info' | 'warn' | 'err'; + +interface LogRow { + id: number; + ts: string | null; + level: LogLevel; + message: string; +} + +type Filter = 'all' | LogLevel; + +const BUFFER_CAP = 10_000; +const TIMESTAMP_REGEX = /^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z)\s+(.*)$/; +// eslint-disable-next-line no-control-regex +const ANSI_REGEX = /\x1b\[[0-9;]*[A-Za-z]/g; +const ERROR_REGEX = /\b(ERROR|ERR|FATAL|Exception)\b/i; +const WARN_REGEX = /\b(WARN|WARNING|WRN)\b/i; + +function parseLine(raw: string): Omit { + const stripped = raw.replace(ANSI_REGEX, '').replace(/[\r\n]+$/, ''); + const match = stripped.match(TIMESTAMP_REGEX); + const ts = match ? match[1] : null; + const body = match ? match[2] : stripped; + let level: LogLevel = 'info'; + if (ERROR_REGEX.test(body)) level = 'err'; + else if (WARN_REGEX.test(body)) level = 'warn'; + return { ts, level, message: body }; +} + +function formatTs(iso: string | null): string { + if (!iso) return ''; + const d = new Date(iso); + if (Number.isNaN(d.getTime())) return iso; + const hh = String(d.getHours()).padStart(2, '0'); + const mm = String(d.getMinutes()).padStart(2, '0'); + const ss = String(d.getSeconds()).padStart(2, '0'); + return `${hh}:${mm}:${ss}`; +} + +export default function StructuredLogViewer({ stackName }: StructuredLogViewerProps) { + const [rows, setRows] = useState([]); + const [filter, setFilter] = useState('all'); + const [following, setFollowing] = useState(true); + const scrollRef = useRef(null); + const followingRef = useRef(true); + const rowIdRef = useRef(0); + const wsRef = useRef(null); + const pendingRef = useRef([]); + + useEffect(() => { followingRef.current = following; }, [following]); + + useEffect(() => { + const cleanStackName = stackName.replace(/\.(yml|yaml)$/, ''); + const wsProtocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:'; + const activeNodeId = localStorage.getItem('sencho-active-node') || ''; + const wsUrl = `${wsProtocol}//${window.location.host}/api/stacks/${cleanStackName}/logs${activeNodeId ? `?nodeId=${activeNodeId}` : ''}`; + + let closed = false; + const ws = new WebSocket(wsUrl); + wsRef.current = ws; + + ws.onmessage = (event) => { + if (closed) return; + const text = typeof event.data === 'string' ? event.data : ''; + if (!text) return; + for (const line of text.split(/\r?\n/)) { + if (!line) continue; + const parsed = parseLine(line); + if (!parsed.message) continue; + rowIdRef.current += 1; + pendingRef.current.push({ id: rowIdRef.current, ...parsed }); + } + }; + + ws.onerror = () => { /* surface nothing; reconnection is backend's job */ }; + + // Batch incoming lines into state every 250 ms to avoid thrashing React. + const flushInterval = window.setInterval(() => { + if (pendingRef.current.length === 0) return; + const incoming = pendingRef.current; + pendingRef.current = []; + setRows((prev) => { + const merged = prev.concat(incoming); + return merged.length > BUFFER_CAP ? merged.slice(merged.length - BUFFER_CAP) : merged; + }); + }, 250); + + return () => { + closed = true; + window.clearInterval(flushInterval); + try { ws.close(); } catch { /* ignore */ } + wsRef.current = null; + pendingRef.current = []; + }; + }, [stackName]); + + const filtered = useMemo(() => { + if (filter === 'all') return rows; + return rows.filter(r => r.level === filter); + }, [rows, filter]); + + const errCount = useMemo(() => rows.reduce((n, r) => r.level === 'err' ? n + 1 : n, 0), [rows]); + + // Auto-scroll to bottom when following. + useEffect(() => { + if (!followingRef.current) return; + const el = scrollRef.current; + if (!el) return; + el.scrollTop = el.scrollHeight; + }, [filtered]); + + const handleScroll = () => { + const el = scrollRef.current; + if (!el) return; + const distanceFromBottom = el.scrollHeight - el.scrollTop - el.clientHeight; + const atBottom = distanceFromBottom < 24; + if (atBottom !== followingRef.current) { + followingRef.current = atBottom; + setFollowing(atBottom); + } + }; + + const resumeFollow = () => { + setFollowing(true); + followingRef.current = true; + const el = scrollRef.current; + if (el) el.scrollTop = el.scrollHeight; + }; + + const downloadLogs = () => { + const text = rows.map(r => `${r.ts ?? ''} ${r.level.toUpperCase()} ${r.message}`.trim()).join('\n'); + const blob = new Blob([text], { type: 'text/plain;charset=utf-8' }); + const url = URL.createObjectURL(blob); + const a = document.createElement('a'); + a.href = url; + a.download = `${stackName.replace(/\.(yml|yaml)$/, '')}-logs.txt`; + a.click(); + URL.revokeObjectURL(url); + }; + + const label = `logs · ${stackName.replace(/\.(yml|yaml)$/, '')}`; + + return ( +
+
+
+ {label} + {following ? ( + + + following + + ) : ( + + )} +
+
+ {(['all', 'info', 'warn', 'err'] as const).map(f => ( + + ))} +
+ +
+
+
+ {filtered.length === 0 ? ( +
Waiting for log output…
+ ) : ( + filtered.map(row => ( +
+ {formatTs(row.ts)} + + {row.level} + + {row.message} +
+ )) + )} +
+
+ ); +}