railwatch 0.9.2 → 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/app/frontend/entrypoints/inertia.tsx +5 -8
- data/app/frontend/lib/mount.ts +23 -0
- data/app/frontend/lib/railwatch.ts +10 -1
- data/lib/railwatch/version.rb +1 -1
- data/public/railwatch/assets/{app-layout-CpEbDy93.js → app-layout-by7G3sa1.js} +1 -1
- data/public/railwatch/assets/{arrow-up-DAODKT5N.js → arrow-up-DCZ7emux.js} +1 -1
- data/public/railwatch/assets/{braces-DgB4bqp0.js → braces-CykT5_5u.js} +1 -1
- data/public/railwatch/assets/{card-C4EFUWG1.js → card-C-PPSA0g.js} +1 -1
- data/public/railwatch/assets/{chart-CD6EHDjG.js → chart-Cov79YC5.js} +1 -1
- data/public/railwatch/assets/{chart-hover-B5cFOZ24.js → chart-hover-DdK4E-2h.js} +1 -1
- data/public/railwatch/assets/{chart-panel-XD8qJDmg.js → chart-panel-BPaYRXJB.js} +1 -1
- data/public/railwatch/assets/{code-CuTKEYtT.js → code-BYjC4YZ_.js} +1 -1
- data/public/railwatch/assets/{copy-id-COM9oXfT.js → copy-id-LPfoj9cC.js} +1 -1
- data/public/railwatch/assets/{cursor-load-more-CleS4nD4.js → cursor-load-more-DSdhgpGl.js} +1 -1
- data/public/railwatch/assets/{data-table-Bzj8zcao.js → data-table-CQ_YRWQs.js} +1 -1
- data/public/railwatch/assets/{env-layout-Dic4A8Kn.js → env-layout-CdMWbUkm.js} +1 -1
- data/public/railwatch/assets/{execution-path-C7Up9w4e.js → execution-path-7MYt-Qbn.js} +1 -1
- data/public/railwatch/assets/{filter-bar-B5wbix1y.js → filter-bar-CrzpQ_vD.js} +1 -1
- data/public/railwatch/assets/{flamegraph-Dve4TVkl.js → flamegraph-BIFEdTAg.js} +1 -1
- data/public/railwatch/assets/{frames-CkDFkUhi.js → frames-C5t-x4f0.js} +1 -1
- data/public/railwatch/assets/{index-Dj03Gham.js → index--NQ7us-L.js} +1 -1
- data/public/railwatch/assets/{index-DKwz3gSX.js → index-2kgYe_99.js} +1 -1
- data/public/railwatch/assets/{index-CgoVIV-m.js → index-4YEPHxtO.js} +1 -1
- data/public/railwatch/assets/{index-7fYWYI1v.js → index-AOCC1GDJ.js} +1 -1
- data/public/railwatch/assets/{index-wH-xxmJK.js → index-BEo-u0eO.js} +1 -1
- data/public/railwatch/assets/{index-CXSEiNWw.js → index-BJ1V3w2N.js} +1 -1
- data/public/railwatch/assets/{index-DJZkxYZf.js → index-BPoHsBKb.js} +1 -1
- data/public/railwatch/assets/{index-BheGBdI9.js → index-BZzyGUM3.js} +1 -1
- data/public/railwatch/assets/{index-B51WiPQg.js → index-BgVq7yKL.js} +1 -1
- data/public/railwatch/assets/{index-BxSwNl8H.js → index-BqFGEZvW.js} +1 -1
- data/public/railwatch/assets/{index-BA3nScnV.js → index-ByuHJ1CH.js} +1 -1
- data/public/railwatch/assets/{index-DwGETVLb.js → index-C2j50AL2.js} +1 -1
- data/public/railwatch/assets/{index-D7t5pSOT.js → index-CLEdTkvW.js} +1 -1
- data/public/railwatch/assets/{index-Dx7oNB2j.js → index-CWgq8qBu.js} +1 -1
- data/public/railwatch/assets/{index-YqmR-RY4.js → index-CXQ7_oVj.js} +1 -1
- data/public/railwatch/assets/{index-CEcv5bba.js → index-CmyYrjS2.js} +1 -1
- data/public/railwatch/assets/{index-B2hTf0w6.js → index-Cn9_HjDo.js} +1 -1
- data/public/railwatch/assets/{index-CG7VCShP.js → index-CsMAm9UK.js} +1 -1
- data/public/railwatch/assets/{index-Kxpc-Jju.js → index-D0Kk_oGY.js} +1 -1
- data/public/railwatch/assets/{index-DTLmaJha.js → index-DC9ZptJh.js} +1 -1
- data/public/railwatch/assets/{index-DqeNWrJc.js → index-DNzg7jmV.js} +1 -1
- data/public/railwatch/assets/{index-0glo-UpF.js → index-DQ8uJO5f.js} +1 -1
- data/public/railwatch/assets/{index-kX9K5M8z.js → index-Deq14BxB.js} +1 -1
- data/public/railwatch/assets/{index-C_3JsXHv.js → index-IaV3Blzp.js} +1 -1
- data/public/railwatch/assets/{index-6t2RLBwA.js → index-TYNWcJQs.js} +1 -1
- data/public/railwatch/assets/{index-x18ma-AF.js → index-WonH2fcZ.js} +1 -1
- data/public/railwatch/assets/{index-CnlT_aCL.js → index-WxWUaH_d.js} +1 -1
- data/public/railwatch/assets/{index-D_dUD6LY.js → index-mUNrl4ky.js} +1 -1
- data/public/railwatch/assets/{inertia-b7M33AzA.js → inertia-DfNRARuA.js} +13 -13
- data/public/railwatch/assets/{json-viewer-C0RZwcC2.js → json-viewer-DMsF5glp.js} +1 -1
- data/public/railwatch/assets/{klass-BT-gRTuY.js → klass-CmHYk5rz.js} +1 -1
- data/public/railwatch/assets/{origin-identity-ouOEvOlq.js → origin-identity-1R3bqa3R.js} +1 -1
- data/public/railwatch/assets/{percentile-picker-BYFo11OE.js → percentile-picker-73z5PAps.js} +1 -1
- data/public/railwatch/assets/{relative-time-CJX4HXBB.js → relative-time-Dsc_cCdX.js} +1 -1
- data/public/railwatch/assets/{release-health-CIxeXQ_e.js → release-health-BV5OaOWd.js} +1 -1
- data/public/railwatch/assets/{route-eUFnanVO.js → route-CWh58C7K.js} +1 -1
- data/public/railwatch/assets/{segmented-CJq8WOHZ.js → segmented-DB4zh-Am.js} +1 -1
- data/public/railwatch/assets/{select-vYjStP1q.js → select-DBKjFlOX.js} +1 -1
- data/public/railwatch/assets/{series-chart-FBOfRLhK.js → series-chart-BaiDG795.js} +1 -1
- data/public/railwatch/assets/{show-zaB17ZGC.js → show-B4ICCFGh.js} +1 -1
- data/public/railwatch/assets/{show-BJcTlqdU.js → show-B5lOU9Gv.js} +1 -1
- data/public/railwatch/assets/{show-DGPuUSHE.js → show-BYPB74t4.js} +1 -1
- data/public/railwatch/assets/{show-DNY79oEl.js → show-C7A0m2M8.js} +1 -1
- data/public/railwatch/assets/{show-D7fBqLw0.js → show-DT5X1zqE.js} +1 -1
- data/public/railwatch/assets/{show-C7w8Tnt2.js → show-D_NBdXsn.js} +1 -1
- data/public/railwatch/assets/{show-BBNCHyV9.js → show-DgPCnRg8.js} +1 -1
- data/public/railwatch/assets/{show-C5SMVt6Z.js → show-Yl69HF0x.js} +1 -1
- data/public/railwatch/assets/{show-daCAn8qV.js → show-_QxuUQCm.js} +1 -1
- data/public/railwatch/assets/{show-DeTnRall.js → show-g__jnN36.js} +1 -1
- data/public/railwatch/assets/{show-Bq4w9YtT.js → show-l4ztfjl9.js} +1 -1
- data/public/railwatch/assets/{sort-header-dslBMND2.js → sort-header-BcG8ulEH.js} +1 -1
- data/public/railwatch/assets/{sparkline-cell-C7fhjJby.js → sparkline-cell-B47ipscB.js} +1 -1
- data/public/railwatch/assets/{stat-nY8iS5q9.js → stat-DT2hhsqS.js} +1 -1
- data/public/railwatch/assets/{status-badge-D40D8TiV.js → status-badge-CmbRKlY7.js} +1 -1
- data/public/railwatch/assets/{tenant-path-UhieazCc.js → tenant-path-C4rNGauE.js} +1 -1
- data/public/railwatch/assets/{use-clipboard-T9kCBcs8.js → use-clipboard-oTNeP4ax.js} +1 -1
- data/public/railwatch/assets/{use-live-rp6jfGac.js → use-live-CLZZj245.js} +1 -1
- data/public/railwatch/manifest.json +611 -611
- metadata +75 -74
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as B,u as F,j as t,d as I,m as R,r as $,L as A}from"./inertia-
|
|
1
|
+
import{c as B,u as F,j as t,d as I,m as R,r as $,L as A}from"./inertia-DfNRARuA.js";import{E as G,B as L}from"./app-layout-by7G3sa1.js";import{F as H}from"./filter-bar-CrzpQ_vD.js";import{P as O,E as T}from"./env-layout-CdMWbUkm.js";import{S as J}from"./series-chart-BaiDG795.js";import{S as q}from"./stat-DT2hhsqS.js";import{C as K,a as M}from"./card-C-PPSA0g.js";import{e as Q}from"./execution-path-7MYt-Qbn.js";import{c as P,w as z}from"./format-B9SDkrWj.js";import"./use-live-CLZZj245.js";import"./segmented-DB4zh-Am.js";import"./chart-hover-DdK4E-2h.js";import"./chart-Cov79YC5.js";import"./arrow-up-DCZ7emux.js";function U(i){const e=B.c(51),{d:s,a:g,e:j}=i,[_,w]=$.useState(!1);let f;e[0]===Symbol.for("react.memo_cache_sentinel")?(f=()=>w(V),e[0]=f):f=e[0];let l;e[1]!==s.gem_name?(l=s.gem_name&&t.jsx(L,{variant:"secondary",className:"font-mono",children:s.gem_name}),e[1]=s.gem_name,e[2]=l):l=e[2];let a;e[3]!==s.horizon?(a=s.horizon&&t.jsxs(L,{variant:"outline",className:"font-mono",children:["removed in ",s.horizon]}),e[3]=s.horizon,e[4]=a):a=e[4];let n;e[5]!==l||e[6]!==a?(n=t.jsxs("div",{className:"flex items-center gap-2",children:[l,a]}),e[5]=l,e[6]=a,e[7]=n):n=e[7];let r;e[8]!==s.message?(r=t.jsx("p",{className:"mt-1 font-mono text-xs whitespace-pre-wrap",children:s.message}),e[8]=s.message,e[9]=r):r=e[9];let o;e[10]!==s.source?(o=s.source&&t.jsx("p",{className:"text-muted-foreground mt-1 font-mono text-xs",children:s.source}),e[10]=s.source,e[11]=o):o=e[11];let c;e[12]!==n||e[13]!==r||e[14]!==o?(c=t.jsxs("div",{className:"min-w-0 flex-1",children:[n,r,o]}),e[12]=n,e[13]=r,e[14]=o,e[15]=c):c=e[15];let x;e[16]!==s.sparkline?(x=t.jsx(J,{data:s.sparkline,className:"h-10 w-32"}),e[16]=s.sparkline,e[17]=x):x=e[17];let m;e[18]!==s.count?(m=P(s.count),e[18]=s.count,e[19]=m):m=e[19];let d;e[20]!==m?(d=t.jsx("div",{className:"text-lg font-semibold tabular-nums",children:m}),e[20]=m,e[21]=d):d=e[21];let u;e[22]===Symbol.for("react.memo_cache_sentinel")?(u=t.jsx("div",{className:"text-muted-foreground text-xs",children:"occurrences"}),e[22]=u):u=e[22];let p;e[23]!==d?(p=t.jsxs("div",{className:"text-right",children:[d,u]}),e[23]=d,e[24]=p):p=e[24];let h;e[25]!==p||e[26]!==x?(h=t.jsxs("div",{className:"flex shrink-0 items-center gap-4",children:[x,p]}),e[25]=p,e[26]=x,e[27]=h):h=e[27];let v;e[28]!==h||e[29]!==c?(v=t.jsxs("button",{type:"button",onClick:f,className:"flex flex-wrap items-start justify-between gap-4 text-left",children:[c,h]}),e[28]=h,e[29]=c,e[30]=v):v=e[30];let N;e[31]!==s.first_seen_at?(N=z(s.first_seen_at),e[31]=s.first_seen_at,e[32]=N):N=e[32];let b;e[33]!==N?(b=t.jsxs("span",{children:["First seen ",N]}),e[33]=N,e[34]=b):b=e[34];let y;e[35]!==s.last_seen_at?(y=z(s.last_seen_at),e[35]=s.last_seen_at,e[36]=y):y=e[36];let S;e[37]!==y?(S=t.jsxs("span",{children:["Last seen ",y]}),e[37]=y,e[38]=S):S=e[38];let k;e[39]!==b||e[40]!==S?(k=t.jsxs("div",{className:"text-muted-foreground flex gap-4 text-xs",children:[b,S]}),e[39]=b,e[40]=S,e[41]=k):k=e[41];let E;e[42]!==g||e[43]!==s.occurrences||e[44]!==j||e[45]!==_?(E=_&&t.jsx("div",{className:"mt-2 overflow-hidden rounded-lg border",children:t.jsx("table",{className:"w-full text-xs",children:t.jsx("tbody",{children:s.occurrences.map(D=>t.jsxs("tr",{className:"border-t first:border-t-0",children:[t.jsx("td",{className:"px-3 py-1.5 tabular-nums",children:z(D.occurred_at)}),t.jsx("td",{className:"px-3 py-1.5",children:D.execution_id?t.jsx(A,{className:"font-mono hover:underline",href:Q({applicationId:g,environmentId:j,source:D.execution_source,executionId:D.execution_id}),children:D.execution_preview}):t.jsx("span",{className:"text-muted-foreground",children:"–"})})]},D.id))})})}),e[42]=g,e[43]=s.occurrences,e[44]=j,e[45]=_,e[46]=E):E=e[46];let C;return e[47]!==v||e[48]!==k||e[49]!==E?(C=t.jsx(K,{children:t.jsxs(M,{className:"flex flex-col gap-2 pt-4",children:[v,k,E]})}),e[47]=v,e[48]=k,e[49]=E,e[50]=C):C=e[50],C}function V(i){return!i}function me(i){const e=B.c(33),{environment:s,window:g}=F().props,j=s.application_id,_=s.id;let w;e[0]===Symbol.for("react.memo_cache_sentinel")?(w=t.jsx(O,{title:"Deprecations",description:"ActiveSupport::Deprecation warnings, grouped by gem and message."}),e[0]=w):w=e[0];let f;e[1]!==i.distinct?(f=P(i.distinct),e[1]=i.distinct,e[2]=f):f=e[2];let l;e[3]!==f?(l=t.jsx(q,{label:"Distinct deprecations",value:f}),e[3]=f,e[4]=l):l=e[4];let a;e[5]!==i.total_occurrences?(a=P(i.total_occurrences),e[5]=i.total_occurrences,e[6]=a):a=e[6];let n;e[7]!==a?(n=t.jsx(q,{label:"Total occurrences",value:a}),e[7]=a,e[8]=n):n=e[8];let r;e[9]!==i.new_this_window?(r=P(i.new_this_window),e[9]=i.new_this_window,e[10]=r):r=e[10];let o;e[11]!==r?(o=t.jsx(q,{label:"New this window",value:r}),e[11]=r,e[12]=o):o=e[12];let c;e[13]!==l||e[14]!==n||e[15]!==o?(c=t.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[l,n,o]}),e[13]=l,e[14]=n,e[15]=o,e[16]=c):c=e[16];let x;e[17]===Symbol.for("react.memo_cache_sentinel")?(x=[{key:"gem",label:"Gem"}],e[17]=x):x=e[17];let m;e[18]!==j||e[19]!==_||e[20]!==g?(m=h=>I.visit(R(j,_,{window:g,q:h||void 0}),{preserveState:!0}),e[18]=j,e[19]=_,e[20]=g,e[21]=m):m=e[21];let d;e[22]!==i.q||e[23]!==m?(d=t.jsx(H,{value:i.q,fields:x,onChange:m,placeholder:"gem:rails deprecated method"}),e[22]=i.q,e[23]=m,e[24]=d):d=e[24];let u;e[25]!==j||e[26]!==_||e[27]!==i.deprecations?(u=i.deprecations.length===0?t.jsx(G,{title:"No deprecations in this window."}):t.jsx("div",{className:"flex flex-col gap-3",children:i.deprecations.map(h=>t.jsx(U,{d:h,a:j,e:_},h.group_hash))}),e[25]=j,e[26]=_,e[27]=i.deprecations,e[28]=u):u=e[28];let p;return e[29]!==d||e[30]!==u||e[31]!==c?(p=t.jsxs(T,{title:"Deprecations",children:[w,c,d,u]}),e[29]=d,e[30]=u,e[31]=c,e[32]=p):p=e[32],p}export{me as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as Ce,u as Je,j as l,B as je,t as Ee,C as Ae,d as fe,L as Me}from"./inertia-
|
|
1
|
+
import{c as Ce,u as Je,j as l,B as je,t as Ee,C as Ae,d as fe,L as Me}from"./inertia-DfNRARuA.js";import{C as Te}from"./chart-hover-DdK4E-2h.js";import{V as Ie}from"./chart-panel-BPaYRXJB.js";import{C as Fe}from"./cursor-load-more-DSdhgpGl.js";import{D as xe}from"./data-table-CQ_YRWQs.js";import{S as He,E as ke,_ as ve}from"./app-layout-by7G3sa1.js";import{F as Ke}from"./filter-bar-CrzpQ_vD.js";import{O as we}from"./origin-identity-1R3bqa3R.js";import{P as Le,E as Be}from"./env-layout-CdMWbUkm.js";import{u as De,P as Re}from"./percentile-picker-73z5PAps.js";import{S as Qe}from"./sparkline-cell-B47ipscB.js";import{S as _e}from"./status-badge-CmbRKlY7.js";import{C as Se,a as qe,b as Ne,c as Oe}from"./card-C-PPSA0g.js";import{m as he,c as Pe,w as Ve,p as We}from"./format-B9SDkrWj.js";import"./series-chart-BaiDG795.js";import"./chart-Cov79YC5.js";import"./tenant-path-C4rNGauE.js";import"./use-live-CLZZj245.js";import"./segmented-DB4zh-Am.js";function Jt(t){const e=Ce.c(114),{environment:ge,window:i,range:r}=Je().props,{percentile:c}=De(),s=ge.application_id,o=ge.id;let J;e[0]!==r?.from||e[1]!==r?.to||e[2]!==i?(J=i==="custom"?{from:r?.from,to:r?.to}:{window:i},e[0]=r?.from,e[1]=r?.to,e[2]=i,e[3]=J):J=e[3];const a=J;let E;e[4]!==r||e[5]!==a?(E=r?{from:r.from,to:r.to}:a,e[4]=r,e[5]=a,e[6]=E):E=e[6];const pe=E;let A;e[7]!==s||e[8]!==pe||e[9]!==o||e[10]!==t.pagination.limit||e[11]!==t.q?(A=n=>je(s,o,{...pe,q:t.q||void 0,cursor:n,limit:t.pagination.limit}),e[7]=s,e[8]=pe,e[9]=o,e[10]=t.pagination.limit,e[11]=t.q,e[12]=A):A=e[12];const be=A;let M;e[13]!==s||e[14]!==o?(M=n=>Ee(s,o,n.execution_id),e[13]=s,e[14]=o,e[15]=M):M=e[15];const C=M;let T;e[16]!==s||e[17]!==o||e[18]!==t.q||e[19]!==a?(T=n=>Ae(s,o,n.group_hash,{...a,q:t.q||void 0}),e[16]=s,e[17]=o,e[18]=t.q,e[19]=a,e[20]=T):T=e[20];const m=T;let I;e[21]===Symbol.for("react.memo_cache_sentinel")?(I=l.jsx(Le,{title:"Jobs",description:"Active Job attempts by class and queue, with queue latency and failures.",actions:l.jsxs(l.Fragment,{children:[l.jsx(He,{page:"jobs"}),l.jsx(Re,{})]})}),e[21]=I):I=e[21];let u;e[22]!==t.deploys||e[23]!==t.series?(u=l.jsx(Ie,{legend:"job",label:"Job attempts",seriesLabel:"Attempts",data:t.series,deploys:t.deploys}),e[22]=t.deploys,e[23]=t.series,e[24]=u):u=e[24];let F;e[25]===Symbol.for("react.memo_cache_sentinel")?(F=l.jsx(Ne,{children:l.jsx(Oe,{children:"Queues"})}),e[25]=F):F=e[25];let H;e[26]===Symbol.for("react.memo_cache_sentinel")?(H=[{key:"q",header:"Queue",cell:mt},{key:"n",header:"Attempts",align:"right",cell:ct},{key:"lat",hideOnMobile:!0,header:"Avg wait",align:"right",cell:at},{key:"f",header:"Failed",align:"right",cell:it}],e[26]=H):H=e[26];let d;e[27]!==t.queues?(d=l.jsxs(Se,{className:"lg:col-span-1",children:[F,l.jsx(qe,{children:l.jsx(xe,{rows:t.queues,rowKey:ut,columns:H})})]}),e[27]=t.queues,e[28]=d):d=e[28];let K;e[29]===Symbol.for("react.memo_cache_sentinel")?(K=l.jsx(Ne,{children:l.jsx(Oe,{children:"Recent runs"})}),e[29]=K):K=e[29];let L,B,D,R,Q;e[30]===Symbol.for("react.memo_cache_sentinel")?(L={key:"after",label:"After"},B={key:"before",label:"Before"},D={key:"user",label:"User"},R={key:"tenant",label:"Tenant"},Q={key:"deploy",label:"Deploy"},e[30]=L,e[31]=B,e[32]=D,e[33]=R,e[34]=Q):(L=e[30],B=e[31],D=e[32],R=e[33],Q=e[34]);let V,W,U,$;e[35]===Symbol.for("react.memo_cache_sentinel")?(V={key:"kind",label:"Execution kind",options:["job"]},W={key:"queue",label:"Queue"},U={key:"class",label:"Job class"},$={key:"job_id",label:"Job ID"},e[35]=V,e[36]=W,e[37]=U,e[38]=$):(V=e[35],W=e[36],U=e[37],$=e[38]);let z;e[39]===Symbol.for("react.memo_cache_sentinel")?(z=[L,B,D,R,Q,V,W,U,$,{key:"outcome",label:"Outcome",options:["processed","failed"]}],e[39]=z):z=e[39];let f;e[40]!==s||e[41]!==o||e[42]!==a?(f=n=>fe.visit(je(s,o,{...a,q:n||void 0}),{only:["recent","pagination","q"],preserveState:!0,reset:["recent"]}),e[40]=s,e[41]=o,e[42]=a,e[43]=f):f=e[43];let h;e[44]!==t.q||e[45]!==f?(h=l.jsx(Ke,{value:t.q,fields:z,onChange:f,placeholder:"queue:default outcome:failed"}),e[44]=t.q,e[45]=f,e[46]=h):h=e[46];let G;e[47]===Symbol.for("react.memo_cache_sentinel")?(G=l.jsx(ke,{icon:ve,title:"No job runs in this window",description:"Job classes appear here once Active Job executions are reported."}),e[47]=G):G=e[47];let p,b;e[48]!==C?(p=n=>fe.visit(C(n)),b={onOpen:(n,ye)=>ye?.newTab?globalThis.window.open(C(n),"_blank"):fe.visit(C(n))},e[48]=C,e[49]=p,e[50]=b):(p=e[49],b=e[50]);let X,Y,Z,ee;e[51]===Symbol.for("react.memo_cache_sentinel")?(X={key:"when",header:"When",cell:ot},Y={key:"name",header:"Job",grow:!0,cell:st},Z={key:"st",header:"Outcome",cell:nt},ee={key:"att",hideOnMobile:!0,header:"Attempt",align:"right",cell:lt},e[51]=X,e[52]=Y,e[53]=Z,e[54]=ee):(X=e[51],Y=e[52],Z=e[53],ee=e[54]);let y;e[55]!==s||e[56]!==o||e[57]!==r||e[58]!==i?(y={key:"user",className:"hidden 2xl:table-cell",header:"Origin user",cell:n=>l.jsx(we,{...n,applicationId:s,environmentId:o,kind:"user",range:r,window:i})},e[55]=s,e[56]=o,e[57]=r,e[58]=i,e[59]=y):y=e[59];let x;e[60]!==s||e[61]!==o||e[62]!==r||e[63]!==i?(x={key:"tenant",className:"hidden 2xl:table-cell",header:"Origin tenant",cell:n=>l.jsx(we,{...n,applicationId:s,environmentId:o,kind:"tenant",range:r,window:i})},e[60]=s,e[61]=o,e[62]=r,e[63]=i,e[64]=x):x=e[64];let te;e[65]===Symbol.for("react.memo_cache_sentinel")?(te={key:"ex",hideOnMobile:!0,header:"Exception",className:"max-w-48",cell:tt},e[65]=te):te=e[65];let _;e[66]!==y||e[67]!==x?(_=[X,Y,Z,ee,y,x,te],e[66]=y,e[67]=x,e[68]=_):_=e[68];let g;e[69]!==t.recent||e[70]!==p||e[71]!==b||e[72]!==_?(g=l.jsx(xe,{rows:t.recent,rowKey:rt,empty:G,onRowClick:p,keyboardNav:b,columns:_}),e[69]=t.recent,e[70]=p,e[71]=b,e[72]=_,e[73]=g):g=e[73];let le;e[74]===Symbol.for("react.memo_cache_sentinel")?(le=["recent","pagination"],e[74]=le):le=e[74];let j;e[75]!==t.pagination||e[76]!==be?(j=l.jsx(Fe,{meta:t.pagination,href:be,only:le}),e[75]=t.pagination,e[76]=be,e[77]=j):j=e[77];let k;e[78]!==h||e[79]!==g||e[80]!==j?(k=l.jsxs(Se,{className:"lg:col-span-2",children:[K,l.jsxs(qe,{className:"space-y-3",children:[h,g,j]})]}),e[78]=h,e[79]=g,e[80]=j,e[81]=k):k=e[81];let v;e[82]!==k||e[83]!==d?(v=l.jsxs("div",{className:"grid gap-4 lg:grid-cols-3",children:[d,k]}),e[82]=k,e[83]=d,e[84]=v):v=e[84];let ne;e[85]===Symbol.for("react.memo_cache_sentinel")?(ne=l.jsx(ke,{icon:ve,title:"No job attempts in this window",description:"Individual job executions appear here as they run."}),e[85]=ne):ne=e[85];let w;e[86]!==m?(w={onOpen:(n,ye)=>ye?.newTab?globalThis.window.open(m(n),"_blank"):fe.visit(m(n))},e[86]=m,e[87]=w):w=e[87];let S;e[88]!==m?(S={key:"name",header:"Job",grow:!0,cell:n=>l.jsx(Me,{className:"font-mono text-xs hover:underline",href:m(n),children:n.name})},e[88]=m,e[89]=S):S=e[89];let se,oe,re,ie,ae;e[90]===Symbol.for("react.memo_cache_sentinel")?(se={key:"trend",hideOnMobile:!0,header:"Trend",cell:Ye},oe={key:"n",header:"Attempts",align:"right",cell:Xe},re={key:"f",header:"Failed",align:"right",cell:Ge},ie={key:"fr",hideOnMobile:!0,header:"Failure %",align:"right",cell:ze},ae={key:"avg",hideOnMobile:!0,header:"Avg",align:"right",cell:$e},e[90]=se,e[91]=oe,e[92]=re,e[93]=ie,e[94]=ae):(se=e[90],oe=e[91],re=e[92],ie=e[93],ae=e[94]);let q;e[95]!==c?(q=n=>l.jsx("span",{className:"font-semibold",children:he(n[c])}),e[95]=c,e[96]=q):q=e[96];let N;e[97]!==c||e[98]!==q?(N={key:c,header:c,align:"right",cell:q},e[97]=c,e[98]=q,e[99]=N):N=e[99];let ce;e[100]===Symbol.for("react.memo_cache_sentinel")?(ce={key:"max",hideOnMobile:!0,header:"Max",align:"right",cell:Ue},e[100]=ce):ce=e[100];let O;e[101]!==S||e[102]!==N?(O=[S,se,oe,re,ie,ae,N,ce],e[101]=S,e[102]=N,e[103]=O):O=e[103];let P;e[104]!==t.classes||e[105]!==w||e[106]!==O?(P=l.jsx(xe,{rows:t.classes,rowKey:et,empty:ne,hoverKey:Ze,keyboardNav:w,columns:O}),e[104]=t.classes,e[105]=w,e[106]=O,e[107]=P):P=e[107];let me;e[108]===Symbol.for("react.memo_cache_sentinel")?(me=l.jsx(_e,{outcome:"processed"}),e[108]=me):me=e[108];let ue;e[109]===Symbol.for("react.memo_cache_sentinel")?(ue=l.jsxs("p",{className:"text-muted-foreground text-xs",children:[me," processed ·"," ",l.jsx(_e,{outcome:"failed"})," failed"]}),e[109]=ue):ue=e[109];let de;return e[110]!==v||e[111]!==P||e[112]!==u?(de=l.jsx(Be,{title:"Jobs",children:l.jsxs(Te,{children:[I,u,v,P,ue]})}),e[110]=v,e[111]=P,e[112]=u,e[113]=de):de=e[113],de}function Ue(t){return he(t.max)}function $e(t){return he(t.avg)}function ze(t){return We(t.errors,t.count)}function Ge(t){return l.jsx("span",{className:t.errors?"text-destructive":"",children:t.errors})}function Xe(t){return Pe(t.count)}function Ye(t){return l.jsx(Qe,{data:t.sparkline,hoverKey:t.group_hash})}function Ze(t){return t.group_hash}function et(t){return t.group_hash}function tt(t){return l.jsx("span",{className:"text-destructive block truncate text-xs",children:t.exception_preview})}function lt(t){return t.attempt}function nt(t){return l.jsx(_e,{outcome:t.outcome})}function st(t){return l.jsx("span",{className:"font-mono text-xs",children:t.name})}function ot(t){return l.jsx("span",{className:"text-xs",children:Ve(t.occurred_at)})}function rt(t){return t.execution_id}function it(t){return t.failed}function at(t){return he(t.avg_latency)}function ct(t){return Pe(t.count)}function mt(t){return l.jsx("span",{className:"font-mono text-xs",children:t.queue})}function ut(t){return t.queue??"-"}export{Jt as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as ae,j as t,o as ie,u as re,r as W,ab as le,ao as oe,F as G,d as O,ap as de,aq as J}from"./inertia-
|
|
1
|
+
import{c as ae,j as t,o as ie,u as re,r as W,ab as le,ao as oe,F as G,d as O,ap as de,aq as J}from"./inertia-DfNRARuA.js";import{D as Q}from"./data-table-CQ_YRWQs.js";import{ar as i,a8 as h,b as F,E as X,au as Y}from"./app-layout-by7G3sa1.js";import{P as me,E as ce}from"./env-layout-CdMWbUkm.js";import{R as ue}from"./relative-time-Dsc_cCdX.js";import{b as Z,c as ee,C as te,a as se}from"./card-C-PPSA0g.js";import"./chart-hover-DdK4E-2h.js";import"./use-live-CLZZj245.js";import"./format-B9SDkrWj.js";import"./segmented-DB4zh-Am.js";function S(s){const e=ae.c(8);let l,r,c;e[0]!==s?({messages:l,className:c,...r}=s,e[0]=s,e[1]=l,e[2]=r,e[3]=c):(l=e[1],r=e[2],c=e[3]);const d=c===void 0?"":c;let u;return e[4]!==d||e[5]!==l||e[6]!==r?(u=l?t.jsx("p",{...r,className:ie("text-sm text-red-600 dark:text-red-400",d),children:l.join(", ")}):null,e[4]=d,e[5]=l,e[6]=r,e[7]=u):u=e[7],u}function Ke(s){const e=ae.c(56),{environment:l}=re().props,[r,c]=W.useState(s.kinds[0]),[d,u]=W.useState(s.metrics[0]),[C,ne]=W.useState(s.anomaly_target_kinds[0]),[E,U]=W.useState(s.anomaly_metrics[0]),$=s.anomaly_metrics_for_kind[C]??s.anomaly_metrics,z=s.metrics_for_kind[r]??s.metrics,B=s.units[d]??"ms",H=B==="$"?"Limit (US$)":B==="%"?"Limit (%)":B===""?"Limit (count)":"Limit (ms)",a=l.application_id,n=l.id;let A;e[0]===Symbol.for("react.memo_cache_sentinel")?(A=t.jsx(me,{withWindow:!1,title:"Thresholds",description:"Performance rules. When a route, job, or query crosses one, Railwatch opens a performance issue and alerts the rules subscribed to thresholds."}),e[0]=A):A=e[0];let R;e[1]===Symbol.for("react.memo_cache_sentinel")?(R=t.jsx(Z,{children:t.jsx(ee,{children:"Add a threshold"})}),e[1]=R):R=e[1];let x;e[2]!==a||e[3]!==n?(x=le(a,n),e[2]=a,e[3]=n,e[4]=x):x=e[4];let g;e[5]!==z||e[6]!==r||e[7]!==H||e[8]!==d||e[9]!==s.jobs||e[10]!==s.kinds||e[11]!==s.llm_models||e[12]!==s.metrics||e[13]!==s.metrics_for_kind||e[14]!==s.routes?(g=o=>{const{errors:k,processing:I}=o;return t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"grid gap-1",children:[t.jsx(i,{htmlFor:"target_kind",children:"Kind"}),t.jsx("select",{id:"target_kind",name:"target_kind",value:r,onChange:m=>{c(m.target.value);const w=s.metrics_for_kind[m.target.value]??s.metrics;w.includes(d)||u(w[0])},className:"border-input h-9 rounded-md border bg-transparent px-2 text-sm",children:s.kinds.map(ke)})]}),t.jsxs("div",{className:"grid gap-1 md:col-span-2",children:[t.jsx(i,{htmlFor:"target",children:"Target"}),t.jsx(h,{id:"target",name:"target",defaultValue:"*",list:"targets",placeholder:"* for all, or a route / job name"}),t.jsxs("datalist",{id:"targets",children:[t.jsx("option",{value:"*"}),t.jsx("option",{value:"unmatched"}),s.routes.map(Ne),s.jobs.map(ve),s.llm_models.map(be)]}),t.jsx(S,{messages:k.target})]}),t.jsxs("div",{className:"grid gap-1",children:[t.jsx(i,{htmlFor:"metric",children:"Metric"}),t.jsx("select",{id:"metric",name:"metric",className:"border-input h-9 rounded-md border bg-transparent px-2 text-sm",value:d,onChange:m=>u(m.target.value),children:z.map(ye)})]}),t.jsxs("div",{className:"grid gap-1",children:[t.jsx(i,{htmlFor:"limit",children:H}),t.jsx(h,{id:"limit",name:"limit",type:"number",step:"any",defaultValue:2e3}),t.jsx(S,{messages:k.limit})]}),t.jsxs("div",{className:"grid gap-1",children:[t.jsx(i,{htmlFor:"window_minutes",children:"Window (min)"}),t.jsx(h,{id:"window_minutes",name:"window_minutes",type:"number",defaultValue:5})]}),t.jsx("div",{className:"md:col-span-6",children:t.jsx(F,{disabled:I,children:"Add threshold"})})]})},e[5]=z,e[6]=r,e[7]=H,e[8]=d,e[9]=s.jobs,e[10]=s.kinds,e[11]=s.llm_models,e[12]=s.metrics,e[13]=s.metrics_for_kind,e[14]=s.routes,e[15]=g):g=e[15];let j;e[16]!==x||e[17]!==g?(j=t.jsxs(te,{children:[R,t.jsx(se,{children:t.jsx(G,{method:"post",action:x,className:"grid gap-3 md:grid-cols-6",children:g})})]}),e[16]=x,e[17]=g,e[18]=j):j=e[18];let T,L;e[19]===Symbol.for("react.memo_cache_sentinel")?(T=t.jsx(X,{icon:Y,title:"No thresholds yet",description:"Start with requests * p95 2000ms to get alerted on regressions."}),L={key:"d",header:"Rule",cell:fe},e[19]=T,e[20]=L):(T=e[19],L=e[20]);let p;e[21]!==a||e[22]!==n?(p=[L,{key:"x",header:"",align:"right",cell:o=>t.jsx(F,{size:"sm",variant:"ghost",onClick:()=>O.delete(de(a,n,o.id)),children:"Remove"})}],e[21]=a,e[22]=n,e[23]=p):p=e[23];let f;e[24]!==s.thresholds||e[25]!==p?(f=t.jsx(Q,{rows:s.thresholds,rowKey:_e,empty:T,columns:p}),e[24]=s.thresholds,e[25]=p,e[26]=f):f=e[26];let P;e[27]===Symbol.for("react.memo_cache_sentinel")?(P=t.jsxs("div",{children:[t.jsx("h2",{className:"text-base font-semibold",children:"Anomaly rules"}),t.jsx("p",{className:"text-muted-foreground text-sm",children:"A threshold needs a number you already know. An anomaly rule learns one: it compares the last few minutes against the same clock window on each of the previous days and opens an issue when today sits more than the given number of standard deviations above that baseline."})]}),e[27]=P):P=e[27];let K;e[28]===Symbol.for("react.memo_cache_sentinel")?(K=t.jsx(Z,{children:t.jsx(ee,{children:"Add an anomaly rule"})}),e[28]=K):K=e[28];let _;e[29]!==a||e[30]!==n?(_=oe(a,n),e[29]=a,e[30]=n,e[31]=_):_=e[31];let y;e[32]!==$||e[33]!==C||e[34]!==E||e[35]!==s.anomaly_metrics||e[36]!==s.anomaly_metrics_for_kind||e[37]!==s.anomaly_target_kinds?(y=o=>{const{errors:k,processing:I}=o;return t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"grid gap-1",children:[t.jsx(i,{htmlFor:"anomaly_target_kind",children:"Kind"}),t.jsx("select",{id:"anomaly_target_kind",name:"target_kind",className:"border-input h-9 rounded-md border bg-transparent px-2 text-sm",value:C,onChange:m=>{ne(m.target.value);const w=s.anomaly_metrics_for_kind[m.target.value]??s.anomaly_metrics;w.includes(E)||U(w[0])},children:s.anomaly_target_kinds.map(pe)})]}),t.jsxs("div",{className:"grid gap-1 md:col-span-2",children:[t.jsx(i,{htmlFor:"anomaly_target",children:"Target"}),t.jsx(h,{id:"anomaly_target",name:"target",defaultValue:"*",list:"targets",placeholder:"* for all, or a route / job name"}),t.jsx(S,{messages:k.target})]}),t.jsxs("div",{className:"grid gap-1",children:[t.jsx(i,{htmlFor:"anomaly_metric",children:"Metric"}),t.jsx("select",{id:"anomaly_metric",name:"metric",className:"border-input h-9 rounded-md border bg-transparent px-2 text-sm",value:E,onChange:m=>U(m.target.value),children:$.map(je)})]}),t.jsxs("div",{className:"grid gap-1",children:[t.jsx(i,{htmlFor:"deviation",children:"Deviation (σ)"}),t.jsx(h,{id:"deviation",name:"deviation",type:"number",step:"0.5",min:"0.5",defaultValue:3}),t.jsx(S,{messages:k.deviation})]}),t.jsxs("div",{className:"grid gap-1",children:[t.jsx(i,{htmlFor:"anomaly_window_minutes",children:"Window (min)"}),t.jsx(h,{id:"anomaly_window_minutes",name:"window_minutes",type:"number",defaultValue:15})]}),t.jsxs("div",{className:"grid gap-1",children:[t.jsx(i,{htmlFor:"baseline_days",children:"Baseline (days)"}),t.jsx(h,{id:"baseline_days",name:"baseline_days",type:"number",defaultValue:7}),t.jsx(S,{messages:k.baseline_days})]}),t.jsxs("div",{className:"grid gap-1",children:[t.jsx(i,{htmlFor:"enabled",children:"Status"}),t.jsxs("select",{id:"enabled",name:"enabled",className:"border-input h-9 rounded-md border bg-transparent px-2 text-sm",children:[t.jsx("option",{value:"true",children:"enabled"}),t.jsx("option",{value:"false",children:"disabled"})]})]}),t.jsx("div",{className:"md:col-span-6",children:t.jsx(F,{disabled:I,children:"Add anomaly rule"})})]})},e[32]=$,e[33]=C,e[34]=E,e[35]=s.anomaly_metrics,e[36]=s.anomaly_metrics_for_kind,e[37]=s.anomaly_target_kinds,e[38]=y):y=e[38];let b;e[39]!==_||e[40]!==y?(b=t.jsxs(te,{children:[K,t.jsx(se,{children:t.jsx(G,{method:"post",action:_,className:"grid gap-3 md:grid-cols-6",children:y})})]}),e[39]=_,e[40]=y,e[41]=b):b=e[41];let V,M,q;e[42]===Symbol.for("react.memo_cache_sentinel")?(V=t.jsx(X,{icon:Y,title:"No anomaly rules yet",description:"Start with requests * p95 at 3σ over a 7-day baseline."}),M={key:"d",header:"Rule",cell:xe},q={key:"f",header:"Last fired",hideOnMobile:!0,cell:he},e[42]=V,e[43]=M,e[44]=q):(V=e[42],M=e[43],q=e[44]);let v;e[45]!==a||e[46]!==n?(v=[M,q,{key:"x",header:"",align:"right",cell:o=>t.jsxs("span",{className:"flex justify-end gap-1",children:[t.jsx(F,{size:"sm",variant:"ghost",onClick:()=>O.patch(J(a,n,o.id),{enabled:!o.enabled}),children:o.enabled?"Disable":"Enable"}),t.jsx(F,{size:"sm",variant:"ghost",className:"text-destructive",onClick:()=>O.delete(J(a,n,o.id)),children:"Remove"})]})}],e[45]=a,e[46]=n,e[47]=v):v=e[47];let N;e[48]!==s.anomaly_rules||e[49]!==v?(N=t.jsx(Q,{rows:s.anomaly_rules,rowKey:ge,empty:V,columns:v}),e[48]=s.anomaly_rules,e[49]=v,e[50]=N):N=e[50];let D;return e[51]!==b||e[52]!==N||e[53]!==j||e[54]!==f?(D=t.jsxs(ce,{title:"Thresholds",children:[A,j,f,P,b,N]}),e[51]=b,e[52]=N,e[53]=j,e[54]=f,e[55]=D):D=e[55],D}function he(s){return t.jsx(ue,{iso:s.last_fired_at,className:"text-muted-foreground font-mono text-xs"})}function xe(s){return t.jsxs("span",{className:"text-sm",children:[s.description,s.enabled?null:t.jsx("span",{className:"text-muted-foreground label-caps ml-2",children:"disabled"})]})}function ge(s){return s.id}function je(s){return t.jsx("option",{value:s,children:s},s)}function pe(s){return t.jsx("option",{value:s,children:s},s)}function fe(s){return t.jsx("span",{className:"text-sm",children:s.description})}function _e(s){return s.id}function ye(s){return t.jsx("option",{value:s,children:s},s)}function be(s){return t.jsx("option",{value:s},s)}function ve(s){return t.jsx("option",{value:s},s)}function Ne(s){return t.jsx("option",{value:s},s)}function ke(s){return t.jsx("option",{value:s,children:s},s)}export{Ke as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as L,j as s,o as R,T as Y}from"./inertia-b7M33AzA.js";import{C as S}from"./chart-panel-XD8qJDmg.js";import{D}from"./data-table-Bzj8zcao.js";import{E as T,a5 as P}from"./app-layout-CpEbDy93.js";import{C as G,X as I,Y as W,a as X,b as J,c as V}from"./chart-CD6EHDjG.js";import{A as Z,a as ee}from"./series-chart-FBOfRLhK.js";import{E as te,P as se}from"./env-layout-Dic4A8Kn.js";import{a as re,S as k}from"./stat-nY8iS5q9.js";import{C as $,b as B,c as F,a as E}from"./card-C4EFUWG1.js";import{c as j,m as O,b as ae,a as z,w as H}from"./format-B9SDkrWj.js";import"./chart-hover-B5cFOZ24.js";import"./use-live-rp6jfGac.js";import"./segmented-CJq8WOHZ.js";import"./arrow-up-DAODKT5N.js";const K={fontSize:10,fontFamily:"var(--font-mono)"},ne=1440*60*1e3;function le(t){return(t.length>1?new Date(t[t.length-1].t).getTime()-new Date(t[0].t).getTime():0)>2*ne?a=>new Date(a).toLocaleDateString(void 0,{month:"short",day:"numeric"}):a=>new Date(a).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"})}function A(t){return new Date(t).toLocaleString(void 0,{day:"2-digit",month:"short",hour:"2-digit",minute:"2-digit"})}function C(t){const e=L.c(28),{label:a,data:r,format:l,color:p,className:n}=t,i=p===void 0?"var(--primary)":p,b=n===void 0?"h-32":n;let c;e[0]!==i||e[1]!==a?(c={value:{label:a,color:i}},e[0]=i,e[1]=a,e[2]=c):c=e[2];const g=c;let m;e[3]!==r?(m=le(r),e[3]=r,e[4]=m):m=e[4];const o=m,d=`${b} w-full`;let h;e[5]===Symbol.for("react.memo_cache_sentinel")?(h=s.jsx(G,{vertical:!1,strokeDasharray:"2 4"}),e[5]=h):h=e[5];let u;e[6]!==o?(u=s.jsx(I,{dataKey:"t",tickFormatter:o,tickLine:!1,axisLine:!1,minTickGap:40,tick:K}),e[6]=o,e[7]=u):u=e[7];let f;e[8]!==l?(f=s.jsx(W,{width:44,tickLine:!1,axisLine:!1,tick:K,tickFormatter:q=>l(Number(q))}),e[8]=l,e[9]=f):f=e[9];let x;e[10]!==l||e[11]!==a?(x=s.jsx(X,{content:s.jsx(J,{labelFormatter:oe,formatter:q=>[l(Number(q)),a]})}),e[10]=l,e[11]=a,e[12]=x):x=e[12];let w;e[13]===Symbol.for("react.memo_cache_sentinel")?(w=s.jsx(Z,{dataKey:"value",stroke:"var(--color-value)",fill:"var(--color-value)",fillOpacity:.15,strokeWidth:1.75,isAnimationActive:!1}),e[13]=w):w=e[13];let v;e[14]!==r||e[15]!==u||e[16]!==f||e[17]!==x?(v=s.jsxs(ee,{data:r,children:[h,u,f,x,w]}),e[14]=r,e[15]=u,e[16]=f,e[17]=x,e[18]=v):v=e[18];let y;e[19]!==g||e[20]!==v||e[21]!==d?(y=s.jsx(V,{config:g,className:d,children:v}),e[19]=g,e[20]=v,e[21]=d,e[22]=y):y=e[22];let _;e[23]!==r?(_=r.length>0&&s.jsxs("div",{className:"text-muted-foreground mt-1 flex justify-between font-mono text-[10px]",children:[s.jsx("span",{children:A(r[0].t)}),s.jsx("span",{children:A(r[r.length-1].t)})]}),e[23]=r,e[24]=_):_=e[24];let N;return e[25]!==y||e[26]!==_?(N=s.jsxs("div",{children:[y,_]}),e[25]=y,e[26]=_,e[27]=N):N=e[27],N}function oe(t){return A(String(t))}function U(t){const e=L.c(21),{busy:a,max:r,className:l}=t;if(!r){let x;return e[0]===Symbol.for("react.memo_cache_sentinel")?(x=s.jsx("span",{className:"text-muted-foreground",children:"–"}),e[0]=x):x=e[0],x}const p=Math.min(1,(a??0)/r);let n;e[1]!==l?(n=R("flex items-center gap-1.5",l),e[1]=l,e[2]=n):n=e[2];const i=a??0,b=p>=.9?"bg-danger":p>=.7?"bg-warning":"bg-live";let c;e[3]!==b?(c=R("absolute inset-y-0 left-0 rounded-full",b),e[3]=b,e[4]=c):c=e[4];const g=`${Math.max(4,p*100)}%`;let m;e[5]!==g?(m={width:g},e[5]=g,e[6]=m):m=e[6];let o;e[7]!==c||e[8]!==m?(o=s.jsx("span",{className:c,style:m}),e[7]=c,e[8]=m,e[9]=o):o=e[9];let d;e[10]!==r||e[11]!==i||e[12]!==o?(d=s.jsx("span",{role:"meter","aria-label":"Utilisation","aria-valuenow":i,"aria-valuemin":0,"aria-valuemax":r,className:"bg-muted-foreground/25 relative h-1.5 w-10 shrink-0 overflow-hidden rounded-full",children:o}),e[10]=r,e[11]=i,e[12]=o,e[13]=d):d=e[13];const h=a??0;let u;e[14]!==r||e[15]!==h?(u=s.jsxs("span",{className:"font-mono tabular-nums",children:[h,"/",r]}),e[14]=r,e[15]=h,e[16]=u):u=e[16];let f;return e[17]!==n||e[18]!==u||e[19]!==d?(f=s.jsxs("span",{className:n,children:[d,u]}),e[17]=n,e[18]=u,e[19]=d,e[20]=f):f=e[20],f}const M=t=>`${t.toFixed(0)}%`;function ie(t){return t.reduce((e,a)=>e+(a??0),0)}function Q(t){return t.reduce((e,a)=>Math.max(e,a??0),0)}function et(t){const e=L.c(27);let a;if(e[0]!==t.samples){const h=t.samples.flatMap(Fe);a=h.length?h.reduce(Be,0)/h.length:0,e[0]=t.samples,e[1]=a}else a=e[1];const r=a;let l,p,n,i,b;if(e[2]!==t.queues||e[3]!==t.samples||e[4]!==t.series||e[5]!==t.silent_servers||e[6]!==r){const h=ie(t.samples.map($e)),u=Q(t.samples.map(Pe)),f=Q(t.samples.map(Re)),x=t.samples.length>0||t.series.length>0;l=te,p="Processes",e[12]===Symbol.for("react.memo_cache_sentinel")?(n=s.jsx(se,{title:"Processes",description:"What every web and worker process is doing right now: thread pools, socket backlog, queue depth, and the boots behind them."}),e[12]=n):n=e[12],e[13]!==t.silent_servers?(i=t.silent_servers.length>0&&s.jsxs($,{className:"border-warning/40",children:[s.jsx(B,{children:s.jsxs(F,{className:"flex items-center gap-2",children:[s.jsx(Y,{className:"text-warning size-4"}),t.silent_servers.length===1?"1 expected host is silent":`${t.silent_servers.length} expected hosts are silent`]})}),s.jsxs(E,{className:"space-y-2",children:[s.jsx("div",{className:"flex flex-wrap gap-1.5",children:t.silent_servers.map(Le)}),s.jsx("p",{className:"text-muted-foreground text-xs",children:"No health sample or execution from these hosts in the last 10 minutes. Expected hosts come from your Kamal post-deploy hook, or from the environment settings if you set them by hand."})]})]}),e[13]=t.silent_servers,e[14]=i):i=e[14],b=x?s.jsxs(s.Fragment,{children:[s.jsxs(re,{children:[s.jsx(k,{label:"Live processes",value:t.samples.length}),s.jsx(k,{label:"Thread utilisation",value:M(r),tone:r>=90?"destructive":r>=70?"warning":void 0,hint:"averaged across live processes"}),s.jsx(k,{label:"Backlog",value:j(h)}),s.jsx(k,{label:"Queue depth",value:j(u)}),s.jsx(k,{label:"Oldest job",value:O(f)})]}),s.jsx(D,{rows:t.samples,rowKey:Ae,empty:s.jsx(T,{title:"No process reported in the last 10 minutes",description:"Health samples are older than the live window."}),columns:[{key:"server",header:"Server",cell:Oe},{key:"role",header:"Role",cell:Me},{key:"pid",hideOnMobile:!0,header:"PID",align:"right",cell:Te},{key:"threads",header:"Threads",cell:De},{key:"pool",hideOnMobile:!0,header:"DB pool",cell:qe},{key:"mem",hideOnMobile:!0,header:"Memory",align:"right",cell:Ce},{key:"seen",header:"Last sample",align:"right",cell:Se}]}),t.queues.length>0&&s.jsxs($,{children:[s.jsx(B,{children:s.jsx(F,{children:"Queue depth"})}),s.jsx(E,{children:s.jsx(D,{rows:t.queues,rowKey:Ne,columns:[{key:"q",header:"Queue",cell:we},{key:"d",header:"Ready jobs",align:"right",cell:ke}]})})]}),s.jsxs("div",{className:"grid gap-4 lg:grid-cols-2",children:[s.jsx(S,{label:"Thread utilisation",value:M(r),children:s.jsx(C,{label:"Utilisation",format:M,data:t.series.map(_e)})}),s.jsx(S,{label:"Backlog",value:j(h),children:s.jsx(C,{label:"Backlog",color:"var(--warning)",format:j,data:t.series.map(ye)})}),s.jsx(S,{label:"Queue depth",value:j(u),children:s.jsx(C,{label:"Ready jobs",format:j,data:t.series.map(ve)})}),s.jsx(S,{label:"Oldest job",value:O(f),children:s.jsx(C,{label:"Oldest job",color:"var(--danger)",format:je,data:t.series.map(ge)})})]})]}):s.jsx(T,{icon:P,title:"No health samples yet",description:"The gem reports thread pool, backlog and queue health every 15s from each web and worker process."}),e[2]=t.queues,e[3]=t.samples,e[4]=t.series,e[5]=t.silent_servers,e[6]=r,e[7]=l,e[8]=p,e[9]=n,e[10]=i,e[11]=b}else l=e[7],p=e[8],n=e[9],i=e[10],b=e[11];let c;e[15]===Symbol.for("react.memo_cache_sentinel")?(c=s.jsx("h2",{className:"text-sm font-semibold",children:"Process boots"}),e[15]=c):c=e[15];let g,m;e[16]===Symbol.for("react.memo_cache_sentinel")?(g=s.jsx(T,{icon:P,title:"No process has booted with Railwatch yet",description:"Server processes report here once they boot with the gem installed."}),m=[{key:"b",header:"Booted",cell:xe},{key:"s",header:"Server",cell:pe},{key:"r",header:"Role",cell:fe},{key:"pid",hideOnMobile:!0,header:"PID",align:"right",cell:he},{key:"d",header:"Deploy",cell:de},{key:"v",hideOnMobile:!0,header:"Ruby / Rails / Railwatch",cell:ue},{key:"ad",hideOnMobile:!0,header:"DB / queue / cache",cell:me},{key:"boot",hideOnMobile:!0,header:"Boot",align:"right",cell:ce}],e[16]=g,e[17]=m):(g=e[16],m=e[17]);let o;e[18]!==t.processes?(o=s.jsx(D,{rows:t.processes,rowKey:be,empty:g,columns:m}),e[18]=t.processes,e[19]=o):o=e[19];let d;return e[20]!==l||e[21]!==p||e[22]!==n||e[23]!==i||e[24]!==b||e[25]!==o?(d=s.jsxs(l,{title:p,children:[n,i,b,c,o]}),e[20]=l,e[21]=p,e[22]=n,e[23]=i,e[24]=b,e[25]=o,e[26]=d):d=e[26],d}function ce(t){return t.boot_seconds?`${t.boot_seconds.toFixed(1)}s`:"–"}function me(t){return s.jsxs("span",{className:"font-mono text-xs",children:[t.detail.database_adapter," / ",t.detail.queue_adapter," /"," ",t.detail.cache_store?.replace("ActiveSupport::Cache::","")]})}function ue(t){return s.jsxs("span",{className:"font-mono text-xs",children:[t.ruby_version," / ",t.rails_version," / ",t.railwatch_version]})}function de(t){return s.jsx("span",{className:"font-mono text-xs",children:t.deploy?.slice(0,12)})}function he(t){return t.pid}function fe(t){return t.role}function pe(t){return s.jsx("span",{className:"font-mono text-xs",children:t.server})}function xe(t){return s.jsx("span",{className:"text-xs",title:H(t.booted_at),children:z(t.booted_at)})}function be(t){return t.id}function ge(t){return{t:t.t,value:t.queue_latency}}function je(t){return O(t)}function ve(t){return{t:t.t,value:t.queue_depth}}function ye(t){return{t:t.t,value:t.backlog}}function _e(t){return{t:t.t,value:t.utilisation}}function ke(t){return j(t.depth)}function we(t){return t.queue}function Ne(t){return t.queue}function Se(t){return s.jsx("span",{title:H(t.sampled_at),children:z(t.sampled_at)})}function Ce(t){return ae(t.memory)}function qe(t){return s.jsx(U,{busy:t.pool_busy,max:t.pool_size})}function De(t){return s.jsx(U,{busy:t.threads_busy,max:t.threads_max})}function Te(t){return t.pid}function Me(t){return t.role}function Oe(t){return s.jsx("span",{className:"font-mono text-xs",children:t.server})}function Ae(t){return t.id}function Le(t){return s.jsx("span",{className:"border-warning/40 bg-warning/10 text-warning rounded-sm border px-1.5 font-mono text-[11px]",children:t},t)}function Re(t){return t.queue_latency}function Pe(t){return t.queue_depth}function $e(t){return t.backlog}function Be(t,e){return t+e}function Fe(t){return t.threads_max?[(t.threads_busy??0)/t.threads_max*100]:[]}export{et as default};
|
|
1
|
+
import{c as L,j as s,o as R,T as Y}from"./inertia-DfNRARuA.js";import{C as S}from"./chart-panel-BPaYRXJB.js";import{D}from"./data-table-CQ_YRWQs.js";import{E as T,a5 as P}from"./app-layout-by7G3sa1.js";import{C as G,X as I,Y as W,a as X,b as J,c as V}from"./chart-Cov79YC5.js";import{A as Z,a as ee}from"./series-chart-BaiDG795.js";import{E as te,P as se}from"./env-layout-CdMWbUkm.js";import{a as re,S as k}from"./stat-DT2hhsqS.js";import{C as $,b as B,c as F,a as E}from"./card-C-PPSA0g.js";import{c as j,m as O,b as ae,a as z,w as H}from"./format-B9SDkrWj.js";import"./chart-hover-DdK4E-2h.js";import"./use-live-CLZZj245.js";import"./segmented-DB4zh-Am.js";import"./arrow-up-DCZ7emux.js";const K={fontSize:10,fontFamily:"var(--font-mono)"},ne=1440*60*1e3;function le(t){return(t.length>1?new Date(t[t.length-1].t).getTime()-new Date(t[0].t).getTime():0)>2*ne?a=>new Date(a).toLocaleDateString(void 0,{month:"short",day:"numeric"}):a=>new Date(a).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"})}function A(t){return new Date(t).toLocaleString(void 0,{day:"2-digit",month:"short",hour:"2-digit",minute:"2-digit"})}function C(t){const e=L.c(28),{label:a,data:r,format:l,color:p,className:n}=t,i=p===void 0?"var(--primary)":p,b=n===void 0?"h-32":n;let c;e[0]!==i||e[1]!==a?(c={value:{label:a,color:i}},e[0]=i,e[1]=a,e[2]=c):c=e[2];const g=c;let m;e[3]!==r?(m=le(r),e[3]=r,e[4]=m):m=e[4];const o=m,d=`${b} w-full`;let h;e[5]===Symbol.for("react.memo_cache_sentinel")?(h=s.jsx(G,{vertical:!1,strokeDasharray:"2 4"}),e[5]=h):h=e[5];let u;e[6]!==o?(u=s.jsx(I,{dataKey:"t",tickFormatter:o,tickLine:!1,axisLine:!1,minTickGap:40,tick:K}),e[6]=o,e[7]=u):u=e[7];let f;e[8]!==l?(f=s.jsx(W,{width:44,tickLine:!1,axisLine:!1,tick:K,tickFormatter:q=>l(Number(q))}),e[8]=l,e[9]=f):f=e[9];let x;e[10]!==l||e[11]!==a?(x=s.jsx(X,{content:s.jsx(J,{labelFormatter:oe,formatter:q=>[l(Number(q)),a]})}),e[10]=l,e[11]=a,e[12]=x):x=e[12];let w;e[13]===Symbol.for("react.memo_cache_sentinel")?(w=s.jsx(Z,{dataKey:"value",stroke:"var(--color-value)",fill:"var(--color-value)",fillOpacity:.15,strokeWidth:1.75,isAnimationActive:!1}),e[13]=w):w=e[13];let v;e[14]!==r||e[15]!==u||e[16]!==f||e[17]!==x?(v=s.jsxs(ee,{data:r,children:[h,u,f,x,w]}),e[14]=r,e[15]=u,e[16]=f,e[17]=x,e[18]=v):v=e[18];let y;e[19]!==g||e[20]!==v||e[21]!==d?(y=s.jsx(V,{config:g,className:d,children:v}),e[19]=g,e[20]=v,e[21]=d,e[22]=y):y=e[22];let _;e[23]!==r?(_=r.length>0&&s.jsxs("div",{className:"text-muted-foreground mt-1 flex justify-between font-mono text-[10px]",children:[s.jsx("span",{children:A(r[0].t)}),s.jsx("span",{children:A(r[r.length-1].t)})]}),e[23]=r,e[24]=_):_=e[24];let N;return e[25]!==y||e[26]!==_?(N=s.jsxs("div",{children:[y,_]}),e[25]=y,e[26]=_,e[27]=N):N=e[27],N}function oe(t){return A(String(t))}function U(t){const e=L.c(21),{busy:a,max:r,className:l}=t;if(!r){let x;return e[0]===Symbol.for("react.memo_cache_sentinel")?(x=s.jsx("span",{className:"text-muted-foreground",children:"–"}),e[0]=x):x=e[0],x}const p=Math.min(1,(a??0)/r);let n;e[1]!==l?(n=R("flex items-center gap-1.5",l),e[1]=l,e[2]=n):n=e[2];const i=a??0,b=p>=.9?"bg-danger":p>=.7?"bg-warning":"bg-live";let c;e[3]!==b?(c=R("absolute inset-y-0 left-0 rounded-full",b),e[3]=b,e[4]=c):c=e[4];const g=`${Math.max(4,p*100)}%`;let m;e[5]!==g?(m={width:g},e[5]=g,e[6]=m):m=e[6];let o;e[7]!==c||e[8]!==m?(o=s.jsx("span",{className:c,style:m}),e[7]=c,e[8]=m,e[9]=o):o=e[9];let d;e[10]!==r||e[11]!==i||e[12]!==o?(d=s.jsx("span",{role:"meter","aria-label":"Utilisation","aria-valuenow":i,"aria-valuemin":0,"aria-valuemax":r,className:"bg-muted-foreground/25 relative h-1.5 w-10 shrink-0 overflow-hidden rounded-full",children:o}),e[10]=r,e[11]=i,e[12]=o,e[13]=d):d=e[13];const h=a??0;let u;e[14]!==r||e[15]!==h?(u=s.jsxs("span",{className:"font-mono tabular-nums",children:[h,"/",r]}),e[14]=r,e[15]=h,e[16]=u):u=e[16];let f;return e[17]!==n||e[18]!==u||e[19]!==d?(f=s.jsxs("span",{className:n,children:[d,u]}),e[17]=n,e[18]=u,e[19]=d,e[20]=f):f=e[20],f}const M=t=>`${t.toFixed(0)}%`;function ie(t){return t.reduce((e,a)=>e+(a??0),0)}function Q(t){return t.reduce((e,a)=>Math.max(e,a??0),0)}function et(t){const e=L.c(27);let a;if(e[0]!==t.samples){const h=t.samples.flatMap(Fe);a=h.length?h.reduce(Be,0)/h.length:0,e[0]=t.samples,e[1]=a}else a=e[1];const r=a;let l,p,n,i,b;if(e[2]!==t.queues||e[3]!==t.samples||e[4]!==t.series||e[5]!==t.silent_servers||e[6]!==r){const h=ie(t.samples.map($e)),u=Q(t.samples.map(Pe)),f=Q(t.samples.map(Re)),x=t.samples.length>0||t.series.length>0;l=te,p="Processes",e[12]===Symbol.for("react.memo_cache_sentinel")?(n=s.jsx(se,{title:"Processes",description:"What every web and worker process is doing right now: thread pools, socket backlog, queue depth, and the boots behind them."}),e[12]=n):n=e[12],e[13]!==t.silent_servers?(i=t.silent_servers.length>0&&s.jsxs($,{className:"border-warning/40",children:[s.jsx(B,{children:s.jsxs(F,{className:"flex items-center gap-2",children:[s.jsx(Y,{className:"text-warning size-4"}),t.silent_servers.length===1?"1 expected host is silent":`${t.silent_servers.length} expected hosts are silent`]})}),s.jsxs(E,{className:"space-y-2",children:[s.jsx("div",{className:"flex flex-wrap gap-1.5",children:t.silent_servers.map(Le)}),s.jsx("p",{className:"text-muted-foreground text-xs",children:"No health sample or execution from these hosts in the last 10 minutes. Expected hosts come from your Kamal post-deploy hook, or from the environment settings if you set them by hand."})]})]}),e[13]=t.silent_servers,e[14]=i):i=e[14],b=x?s.jsxs(s.Fragment,{children:[s.jsxs(re,{children:[s.jsx(k,{label:"Live processes",value:t.samples.length}),s.jsx(k,{label:"Thread utilisation",value:M(r),tone:r>=90?"destructive":r>=70?"warning":void 0,hint:"averaged across live processes"}),s.jsx(k,{label:"Backlog",value:j(h)}),s.jsx(k,{label:"Queue depth",value:j(u)}),s.jsx(k,{label:"Oldest job",value:O(f)})]}),s.jsx(D,{rows:t.samples,rowKey:Ae,empty:s.jsx(T,{title:"No process reported in the last 10 minutes",description:"Health samples are older than the live window."}),columns:[{key:"server",header:"Server",cell:Oe},{key:"role",header:"Role",cell:Me},{key:"pid",hideOnMobile:!0,header:"PID",align:"right",cell:Te},{key:"threads",header:"Threads",cell:De},{key:"pool",hideOnMobile:!0,header:"DB pool",cell:qe},{key:"mem",hideOnMobile:!0,header:"Memory",align:"right",cell:Ce},{key:"seen",header:"Last sample",align:"right",cell:Se}]}),t.queues.length>0&&s.jsxs($,{children:[s.jsx(B,{children:s.jsx(F,{children:"Queue depth"})}),s.jsx(E,{children:s.jsx(D,{rows:t.queues,rowKey:Ne,columns:[{key:"q",header:"Queue",cell:we},{key:"d",header:"Ready jobs",align:"right",cell:ke}]})})]}),s.jsxs("div",{className:"grid gap-4 lg:grid-cols-2",children:[s.jsx(S,{label:"Thread utilisation",value:M(r),children:s.jsx(C,{label:"Utilisation",format:M,data:t.series.map(_e)})}),s.jsx(S,{label:"Backlog",value:j(h),children:s.jsx(C,{label:"Backlog",color:"var(--warning)",format:j,data:t.series.map(ye)})}),s.jsx(S,{label:"Queue depth",value:j(u),children:s.jsx(C,{label:"Ready jobs",format:j,data:t.series.map(ve)})}),s.jsx(S,{label:"Oldest job",value:O(f),children:s.jsx(C,{label:"Oldest job",color:"var(--danger)",format:je,data:t.series.map(ge)})})]})]}):s.jsx(T,{icon:P,title:"No health samples yet",description:"The gem reports thread pool, backlog and queue health every 15s from each web and worker process."}),e[2]=t.queues,e[3]=t.samples,e[4]=t.series,e[5]=t.silent_servers,e[6]=r,e[7]=l,e[8]=p,e[9]=n,e[10]=i,e[11]=b}else l=e[7],p=e[8],n=e[9],i=e[10],b=e[11];let c;e[15]===Symbol.for("react.memo_cache_sentinel")?(c=s.jsx("h2",{className:"text-sm font-semibold",children:"Process boots"}),e[15]=c):c=e[15];let g,m;e[16]===Symbol.for("react.memo_cache_sentinel")?(g=s.jsx(T,{icon:P,title:"No process has booted with Railwatch yet",description:"Server processes report here once they boot with the gem installed."}),m=[{key:"b",header:"Booted",cell:xe},{key:"s",header:"Server",cell:pe},{key:"r",header:"Role",cell:fe},{key:"pid",hideOnMobile:!0,header:"PID",align:"right",cell:he},{key:"d",header:"Deploy",cell:de},{key:"v",hideOnMobile:!0,header:"Ruby / Rails / Railwatch",cell:ue},{key:"ad",hideOnMobile:!0,header:"DB / queue / cache",cell:me},{key:"boot",hideOnMobile:!0,header:"Boot",align:"right",cell:ce}],e[16]=g,e[17]=m):(g=e[16],m=e[17]);let o;e[18]!==t.processes?(o=s.jsx(D,{rows:t.processes,rowKey:be,empty:g,columns:m}),e[18]=t.processes,e[19]=o):o=e[19];let d;return e[20]!==l||e[21]!==p||e[22]!==n||e[23]!==i||e[24]!==b||e[25]!==o?(d=s.jsxs(l,{title:p,children:[n,i,b,c,o]}),e[20]=l,e[21]=p,e[22]=n,e[23]=i,e[24]=b,e[25]=o,e[26]=d):d=e[26],d}function ce(t){return t.boot_seconds?`${t.boot_seconds.toFixed(1)}s`:"–"}function me(t){return s.jsxs("span",{className:"font-mono text-xs",children:[t.detail.database_adapter," / ",t.detail.queue_adapter," /"," ",t.detail.cache_store?.replace("ActiveSupport::Cache::","")]})}function ue(t){return s.jsxs("span",{className:"font-mono text-xs",children:[t.ruby_version," / ",t.rails_version," / ",t.railwatch_version]})}function de(t){return s.jsx("span",{className:"font-mono text-xs",children:t.deploy?.slice(0,12)})}function he(t){return t.pid}function fe(t){return t.role}function pe(t){return s.jsx("span",{className:"font-mono text-xs",children:t.server})}function xe(t){return s.jsx("span",{className:"text-xs",title:H(t.booted_at),children:z(t.booted_at)})}function be(t){return t.id}function ge(t){return{t:t.t,value:t.queue_latency}}function je(t){return O(t)}function ve(t){return{t:t.t,value:t.queue_depth}}function ye(t){return{t:t.t,value:t.backlog}}function _e(t){return{t:t.t,value:t.utilisation}}function ke(t){return j(t.depth)}function we(t){return t.queue}function Ne(t){return t.queue}function Se(t){return s.jsx("span",{title:H(t.sampled_at),children:z(t.sampled_at)})}function Ce(t){return ae(t.memory)}function qe(t){return s.jsx(U,{busy:t.pool_busy,max:t.pool_size})}function De(t){return s.jsx(U,{busy:t.threads_busy,max:t.threads_max})}function Te(t){return t.pid}function Me(t){return t.role}function Oe(t){return s.jsx("span",{className:"font-mono text-xs",children:t.server})}function Ae(t){return t.id}function Le(t){return s.jsx("span",{className:"border-warning/40 bg-warning/10 text-warning rounded-sm border px-1.5 font-mono text-[11px]",children:t},t)}function Re(t){return t.queue_latency}function Pe(t){return t.queue_depth}function $e(t){return t.backlog}function Be(t,e){return t+e}function Fe(t){return t.threads_max?[(t.threads_busy??0)/t.threads_max*100]:[]}export{et as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as M,u as R,j as n,f as A,d as D,L}from"./inertia-
|
|
1
|
+
import{c as M,u as R,j as n,f as A,d as D,L}from"./inertia-DfNRARuA.js";import{D as N}from"./data-table-CQ_YRWQs.js";import{E as O,as as E}from"./app-layout-by7G3sa1.js";import{P,E as H}from"./env-layout-CdMWbUkm.js";import{c as K,m as j,w as $}from"./format-B9SDkrWj.js";import"./chart-hover-DdK4E-2h.js";import"./use-live-CLZZj245.js";import"./segmented-DB4zh-Am.js";function re(t){const e=M.c(25),{environment:S}=R().props,w=S.application_id,b=S.id;let c;e[0]!==w||e[1]!==b?(c=r=>r.execution_id?A(w,b,r.execution_id):null,e[0]=w,e[1]=b,e[2]=c):c=e[2];const o=c;let m;e[3]===Symbol.for("react.memo_cache_sentinel")?(m=n.jsx(P,{title:"Storage",description:"Active Storage service operations: uploads, downloads, deletes, URL generation, analysis, and transforms."}),e[3]=m):m=e[3];let u,d;e[4]===Symbol.for("react.memo_cache_sentinel")?(u=n.jsx(O,{icon:E,title:"No storage operations in this window",description:"Active Storage reads and writes instrumented by the gem appear here."}),d=[{key:"s",header:"Service",cell:G},{key:"o",header:"Operation",cell:F},{key:"n",header:"Count",align:"right",cell:B},{key:"avg",hideOnMobile:!0,header:"Avg",align:"right",cell:z},{key:"max",hideOnMobile:!0,header:"Max",align:"right",cell:W}],e[4]=u,e[5]=d):(u=e[4],d=e[5]);let i;e[6]!==t.ops?(i=n.jsx(N,{rows:t.ops,rowKey:J,empty:u,columns:d}),e[6]=t.ops,e[7]=i):i=e[7];let p;e[8]===Symbol.for("react.memo_cache_sentinel")?(p=n.jsx("h2",{className:"text-sm font-semibold",children:"Recent"}),e[8]=p):p=e[8];let f;e[9]===Symbol.for("react.memo_cache_sentinel")?(f=n.jsx(O,{icon:E,title:"No storage operations in this window",description:"Active Storage reads and writes instrumented by the gem appear here."}),e[9]=f):f=e[9];let s;e[10]!==o?(s={onOpen:(r,v)=>{const k=o(r);k&&(v?.newTab?window.open(k,"_blank"):D.visit(k))}},e[10]=o,e[11]=s):s=e[11];let h,x,y,_;e[12]===Symbol.for("react.memo_cache_sentinel")?(y={key:"when",header:"When",cell:I},_={key:"o",header:"Op",cell:C},h={key:"k",hideOnMobile:!0,header:"Key",cell:q},x={key:"d",header:"Duration",align:"right",cell:T},e[12]=h,e[13]=x,e[14]=y,e[15]=_):(h=e[12],x=e[13],y=e[14],_=e[15]);let a;e[16]!==o?(a=[y,_,h,x,{key:"in",hideOnMobile:!0,header:"In",cell:r=>{const v=o(r);return v?n.jsx(L,{className:"font-mono text-xs hover:underline",href:v,children:r.execution_preview}):null}}],e[16]=o,e[17]=a):a=e[17];let l;e[18]!==t.recent||e[19]!==a||e[20]!==s?(l=n.jsx(N,{rows:t.recent,rowKey:U,empty:f,keyboardNav:s,columns:a}),e[18]=t.recent,e[19]=a,e[20]=s,e[21]=l):l=e[21];let g;return e[22]!==l||e[23]!==i?(g=n.jsxs(H,{title:"Storage",children:[m,i,p,l]}),e[22]=l,e[23]=i,e[24]=g):g=e[24],g}function T(t){return j(t.duration)}function q(t){return n.jsx("span",{className:"font-mono text-xs",children:t.key})}function C(t){return n.jsxs("span",{className:"font-mono text-xs",children:[t.service," ",t.op]})}function I(t){return n.jsx("span",{className:"text-xs",children:$(t.occurred_at)})}function U(t){return t.id}function W(t){return j(t.max)}function z(t){return j(t.avg)}function B(t){return K(t.count)}function F(t){return n.jsx("span",{className:"font-mono text-xs",children:t.op})}function G(t){return t.service}function J(t){return`${t.service}-${t.op}`}export{re as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c as ee,u as oe,j as s,d as ie,E as te,L as ae,f as re,r as ce,o as me}from"./inertia-
|
|
1
|
+
import{c as ee,u as oe,j as s,d as ie,E as te,L as ae,f as re,r as ce,o as me}from"./inertia-DfNRARuA.js";import{C as fe}from"./cursor-load-more-DSdhgpGl.js";import{D as de}from"./data-table-CQ_YRWQs.js";import{S as he,E as ue,a0 as ge}from"./app-layout-by7G3sa1.js";import{p as Z,F as xe,s as se}from"./filter-bar-CrzpQ_vD.js";import{P as pe,E as be}from"./env-layout-CdMWbUkm.js";import{a as le,S as ve}from"./segmented-DB4zh-Am.js";import{L as ye}from"./status-badge-CmbRKlY7.js";import{c as ne,w as je}from"./format-B9SDkrWj.js";import"./chart-hover-DdK4E-2h.js";import"./use-live-CLZZj245.js";const ke="",_e=160;function we(t){const e=ee.c(18),{message:a,highlight:i,tags:n}=t,[o,m]=ce.useState(!1);let d,c;e[0]!==a||e[1]!==o?(d=a.length>_e||a.includes(`
|
|
2
2
|
`),c=me("font-mono text-xs break-all whitespace-pre-wrap",d&&!o&&"line-clamp-3"),e[0]=a,e[1]=o,e[2]=d,e[3]=c):(d=e[2],c=e[3]);let f;e[4]!==i||e[5]!==a?(f=i?s.jsx(Se,{text:i}):a,e[4]=i,e[5]=a,e[6]=f):f=e[6];let h;e[7]!==n?(h=n.length>0&&s.jsxs("span",{className:"text-muted-foreground",children:[" [",n.join(", "),"]"]}),e[7]=n,e[8]=h):h=e[8];let u;e[9]!==c||e[10]!==f||e[11]!==h?(u=s.jsxs("span",{className:c,children:[f,h]}),e[9]=c,e[10]=f,e[11]=h,e[12]=u):u=e[12];const r=u;if(!d)return r;let g;e[13]===Symbol.for("react.memo_cache_sentinel")?(g=()=>m(qe),e[13]=g):g=e[13];const p=o?"Collapse":"Expand";let x;return e[14]!==r||e[15]!==o||e[16]!==p?(x=s.jsx("button",{type:"button",onClick:g,"aria-expanded":o,className:"block w-full cursor-pointer text-left",title:p,children:r}),e[14]=r,e[15]=o,e[16]=p,e[17]=x):x=e[17],x}function qe(t){return!t}function Se(t){const e=ee.c(4),{text:a}=t;let i;e[0]!==a?(i=a.split(ke).map(Le),e[0]=a,e[1]=i):i=e[1];let n;return e[2]!==i?(n=s.jsx(s.Fragment,{children:i}),e[2]=i,e[3]=n):n=e[3],n}function Le(t,e){return e%2===1?s.jsx("mark",{className:"fts-mark",children:t},e):s.jsx("span",{children:t},e)}function Ke(t){const e=ee.c(81),{environment:a,window:i,range:n}=oe().props,o=a.application_id,m=a.id;let d;e[0]!==n?.from||e[1]!==n?.to||e[2]!==i?(d=i==="custom"?{from:n?.from,to:n?.to}:{window:i},e[0]=n?.from,e[1]=n?.to,e[2]=i,e[3]=d):d=e[3];const c=d;let f;e[4]!==n||e[5]!==c?(f=n?{from:n.from,to:n.to}:c,e[4]=n,e[5]=c,e[6]=f):f=e[6];const h=f;let u;e[7]!==o||e[8]!==m||e[9]!==c?(u=l=>ie.visit(te(o,m,{...c,q:l||void 0}),{only:["logs","pagination","highlights","counts","q"],preserveState:!0,preserveScroll:!0,reset:["logs","highlights"]}),e[7]=o,e[8]=m,e[9]=c,e[10]=u):u=e[10];const r=u;let g;e[11]!==o||e[12]!==h||e[13]!==m||e[14]!==t.pagination.limit||e[15]!==t.q?(g=l=>te(o,m,{...h,q:t.q||void 0,cursor:l,limit:t.pagination.limit}),e[11]=o,e[12]=h,e[13]=m,e[14]=t.pagination.limit,e[15]=t.q,e[16]=g):g=e[16];const p=g;let x;e[17]!==t.q?(x=Z(t.q),e[17]=t.q,e[18]=x):x=e[18];const R=x.fields.level;let T;e[19]!==t.q||e[20]!==r?(T=l=>{const F=Z(t.q),Y={...F.fields};l?Y.level=l:delete Y.level,r(se({text:F.text,fields:Y}))},e[19]=t.q,e[20]=r,e[21]=T):T=e[21];const b=T;let A;e[22]===Symbol.for("react.memo_cache_sentinel")?(A=s.jsx(pe,{title:"Logs",description:"Rails.logger lines and Rails.event structured events, linked to the request or job that wrote them.",actions:s.jsx(he,{page:"logs"})}),e[22]=A):A=e[22];const Q=!R;let v;e[23]!==b?(v=()=>b(void 0),e[23]=b,e[24]=v):v=e[24];let y;e[25]!==Q||e[26]!==v?(y=s.jsx(le,{active:Q,onClick:v,children:"All"}),e[25]=Q,e[26]=v,e[27]=y):y=e[27];let B;e[28]===Symbol.for("react.memo_cache_sentinel")?(B=["debug","info","warn","error","fatal","event"],e[28]=B):B=e[28];let j;e[29]!==R||e[30]!==t.counts||e[31]!==b?(j=B.map(l=>s.jsxs(le,{active:R===l,onClick:()=>b(l),className:"gap-1.5",children:[l,s.jsx("span",{className:"opacity-60",children:ne(t.counts[l]??0)})]},l)),e[29]=R,e[30]=t.counts,e[31]=b,e[32]=j):j=e[32];let k;e[33]!==j||e[34]!==y?(k=s.jsx("div",{className:"-mx-3 [scrollbar-width:none] overflow-x-auto px-3 md:mx-0 md:px-0 [&::-webkit-scrollbar]:hidden",children:s.jsxs(ve,{className:"w-max",children:[y,j]})}),e[33]=j,e[34]=y,e[35]=k):k=e[35];let D,O,$,I;e[36]===Symbol.for("react.memo_cache_sentinel")?(D={key:"after",label:"After"},O={key:"before",label:"Before"},$={key:"user",label:"User"},I={key:"deploy",label:"Deploy"},e[36]=D,e[37]=O,e[38]=$,e[39]=I):(D=e[36],O=e[37],$=e[38],I=e[39]);let K;e[40]===Symbol.for("react.memo_cache_sentinel")?(K={key:"level",label:"Level",options:["debug","info","warn","error","fatal","event","unknown"]},e[40]=K):K=e[40];let z;e[41]===Symbol.for("react.memo_cache_sentinel")?(z=[D,O,$,I,K,{key:"kind",label:"Execution kind",options:["request","job","scheduled_task","command"]},{key:"source",label:"Source"},{key:"tenant",label:"Tenant"}],e[41]=z):z=e[41];let _;e[42]!==t.q||e[43]!==r?(_=s.jsx(xe,{value:t.q,fields:z,onChange:r,placeholder:"level:error kind:job source:app/jobs/sync_job.rb:12"}),e[42]=t.q,e[43]=r,e[44]=_):_=e[44];let w;e[45]!==t.logs.length?(w=ne(t.logs.length),e[45]=t.logs.length,e[46]=w):w=e[46];const X=t.logs.length===1?"line":"lines";let q;e[47]!==w||e[48]!==X?(q=s.jsxs("span",{className:"font-mono tabular-nums",children:[w," ",X]}),e[47]=w,e[48]=X,e[49]=q):q=e[49];let H;e[50]===Symbol.for("react.memo_cache_sentinel")?(H=s.jsx("span",{children:"Full-text search: quotes for phrases, -word to exclude, prefixes match"}),e[50]=H):H=e[50];let S;e[51]!==q?(S=s.jsxs("div",{className:"text-muted-foreground flex flex-wrap items-baseline gap-x-3 gap-y-1 text-xs",children:[q,H]}),e[51]=q,e[52]=S):S=e[52];let U,V,W;e[53]===Symbol.for("react.memo_cache_sentinel")?(U=s.jsx(ue,{icon:ge,title:"No log lines match",signal:"caution",description:"Log lines are captured from your app's Rails logger."}),V={key:"when",header:"When",className:"w-40",cell:Ee},W={key:"lvl",header:"Level",cell:Ne},e[53]=U,e[54]=V,e[55]=W):(U=e[53],V=e[54],W=e[55]);let L;e[56]!==t.highlights?(L={key:"msg",header:"Message",grow:!0,className:"whitespace-normal",cell:l=>s.jsx(we,{message:l.message,highlight:t.highlights[l.id],tags:l.tags})},e[56]=t.highlights,e[57]=L):L=e[57];let N;e[58]!==o||e[59]!==m?(N={key:"in",hideOnMobile:!0,header:"In",cell:l=>l.execution_id?s.jsx(ae,{className:"font-mono text-xs hover:underline",href:re(o,m,l.execution_id),children:l.execution_preview}):null},e[58]=o,e[59]=m,e[60]=N):N=e[60];let E;e[61]!==t.q||e[62]!==r?(E={key:"t",hideOnMobile:!0,header:"Tenant",cell:l=>l.tenant?s.jsx("button",{className:"font-mono text-xs hover:underline",onClick:()=>{const F=Z(t.q);r(se({text:F.text,fields:{...F.fields,tenant:l.tenant}}))},children:l.tenant}):null},e[61]=t.q,e[62]=r,e[63]=E):E=e[63];let C;e[64]!==L||e[65]!==N||e[66]!==E?(C=[V,W,L,N,E],e[64]=L,e[65]=N,e[66]=E,e[67]=C):C=e[67];let P;e[68]!==t.logs||e[69]!==C?(P=s.jsx(de,{rows:t.logs,rowKey:Ce,empty:U,columns:C}),e[68]=t.logs,e[69]=C,e[70]=P):P=e[70];let G;e[71]===Symbol.for("react.memo_cache_sentinel")?(G=["logs","pagination","highlights"],e[71]=G):G=e[71];let M;e[72]!==p||e[73]!==t.pagination?(M=s.jsx(fe,{meta:t.pagination,href:p,only:G}),e[72]=p,e[73]=t.pagination,e[74]=M):M=e[74];let J;return e[75]!==k||e[76]!==_||e[77]!==S||e[78]!==P||e[79]!==M?(J=s.jsxs(be,{title:"Logs",children:[A,k,_,S,P,M]}),e[75]=k,e[76]=_,e[77]=S,e[78]=P,e[79]=M,e[80]=J):J=e[80],J}function Ne(t){return s.jsx(ye,{level:t.level})}function Ee(t){return s.jsx("span",{className:"text-xs tabular-nums",children:je(t.occurred_at)})}function Ce(t){return t.id}export{Ke as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as U,u as V,j as s,d as X,a3 as Y,L as Z}from"./inertia-
|
|
1
|
+
import{c as U,u as V,j as s,d as X,a3 as Y,L as Z}from"./inertia-DfNRARuA.js";import{D as ee}from"./chart-panel-BPaYRXJB.js";import{D as Q}from"./data-table-CQ_YRWQs.js";import{P as te,E as ne}from"./env-layout-CdMWbUkm.js";import{u as se,P as oe}from"./percentile-picker-73z5PAps.js";import{S as L}from"./sort-header-BcG8ulEH.js";import{S as re}from"./sparkline-cell-B47ipscB.js";import{B as ie}from"./app-layout-by7G3sa1.js";import{e as ce}from"./execution-path-7MYt-Qbn.js";import{m as G,c as J,w as ae}from"./format-B9SDkrWj.js";import"./series-chart-BaiDG795.js";import"./chart-hover-DdK4E-2h.js";import"./chart-Cov79YC5.js";import"./use-live-CLZZj245.js";import"./segmented-DB4zh-Am.js";import"./arrow-up-DCZ7emux.js";function le(t){const e=U.c(3),{outcome:c}=t,a=c==="rollback"?"destructive":c==="restart"?"secondary":c==="commit"?"outline":"secondary",n=c||"open";let r;return e[0]!==n||e[1]!==a?(r=s.jsx(ie,{variant:a,className:"font-mono",children:n}),e[0]=n,e[1]=a,e[2]=r):r=e[2],r}function Ae(t){const e=U.c(70),{environment:c,window:a}=V().props,{percentile:n}=se(),r=c.application_id,l=c.id;let N;e[0]!==r||e[1]!==l||e[2]!==t.dir||e[3]!==t.sort||e[4]!==a?(N=i=>X.visit(Y(r,l,{window:a,sort:i,dir:t.sort===i&&t.dir==="desc"?"asc":"desc"}),{preserveState:!0}),e[0]=r,e[1]=l,e[2]=t.dir,e[3]=t.sort,e[4]=a,e[5]=N):N=e[5];const o=N;let P;e[6]===Symbol.for("react.memo_cache_sentinel")?(P=s.jsx(te,{title:"Transactions",description:"ActiveRecord transactions, grouped by connection and outcome.",actions:s.jsx(oe,{})}),e[6]=P):P=e[6];let m;e[7]!==t.series||e[8]!==n?(m=s.jsx(ee,{label:"Duration",data:t.series,percentile:n}),e[7]=t.series,e[8]=n,e[9]=m):m=e[9];let C,O;e[10]===Symbol.for("react.memo_cache_sentinel")?(C={key:"name",header:"Connection · outcome",cell:be},O={key:"trend",hideOnMobile:!0,header:"Trend",cell:ge},e[10]=C,e[11]=O):(C=e[10],O=e[11]);const A=t.sort==="count",H=t.dir==="asc"?"asc":"desc";let u;e[12]!==o?(u=()=>o("count"),e[12]=o,e[13]=u):u=e[13];let d;e[14]!==A||e[15]!==H||e[16]!==u?(d={key:"n",header:s.jsx(L,{label:"Count",active:A,dir:H,onClick:u}),align:"right",cell:ye},e[14]=A,e[15]=H,e[16]=u,e[17]=d):d=e[17];const K=t.sort==="errors",$=t.dir==="asc"?"asc":"desc";let f;e[18]!==o?(f=()=>o("errors"),e[18]=o,e[19]=f):f=e[19];let h;e[20]!==$||e[21]!==f||e[22]!==K?(h={key:"errors",hideOnMobile:!0,header:s.jsx(L,{label:"Rollbacks",active:K,dir:$,onClick:f}),align:"right",cell:_e},e[20]=$,e[21]=f,e[22]=K,e[23]=h):h=e[23];const W=t.sort==="avg",q=t.dir==="asc"?"asc":"desc";let x;e[24]!==o?(x=()=>o("avg"),e[24]=o,e[25]=x):x=e[25];let p;e[26]!==W||e[27]!==q||e[28]!==x?(p={key:"avg",hideOnMobile:!0,header:s.jsx(L,{label:"Avg",active:W,dir:q,onClick:x}),align:"right",cell:pe},e[26]=W,e[27]=q,e[28]=x,e[29]=p):p=e[29];const z=t.sort===n,F=t.dir==="asc"?"asc":"desc";let _;e[30]!==n||e[31]!==o?(_=()=>o(n),e[30]=n,e[31]=o,e[32]=_):_=e[32];let y;e[33]!==n||e[34]!==z||e[35]!==F||e[36]!==_?(y=s.jsx(L,{label:n,active:z,dir:F,onClick:_}),e[33]=n,e[34]=z,e[35]=F,e[36]=_,e[37]=y):y=e[37];let g;e[38]!==n?(g=i=>s.jsx("span",{className:"font-semibold",children:G(i[n],2)}),e[38]=n,e[39]=g):g=e[39];let b;e[40]!==n||e[41]!==y||e[42]!==g?(b={key:n,header:y,align:"right",cell:g},e[40]=n,e[41]=y,e[42]=g,e[43]=b):b=e[43];let j;e[44]!==h||e[45]!==p||e[46]!==b||e[47]!==d?(j=[C,O,d,h,p,b],e[44]=h,e[45]=p,e[46]=b,e[47]=d,e[48]=j):j=e[48];let k;e[49]!==t.transactions||e[50]!==j?(k=s.jsx(Q,{rows:t.transactions,rowKey:je,empty:"No transactions in this window.",columns:j}),e[49]=t.transactions,e[50]=j,e[51]=k):k=e[51];let D;e[52]===Symbol.for("react.memo_cache_sentinel")?(D=s.jsx("h2",{className:"text-sm font-semibold",children:"Recent transactions"}),e[52]=D):D=e[52];let M,T,E,R;e[53]===Symbol.for("react.memo_cache_sentinel")?(M={key:"when",header:"When",className:"w-40",cell:he},T={key:"conn",hideOnMobile:!0,header:"Connection",cell:fe},E={key:"outcome",header:"Outcome",cell:de},R={key:"statements",hideOnMobile:!0,header:"Statements",align:"right",cell:ue},e[53]=M,e[54]=T,e[55]=E,e[56]=R):(M=e[53],T=e[54],E=e[55],R=e[56]);let v;e[57]!==r||e[58]!==l?(v={key:"in",hideOnMobile:!0,header:"In",cell:i=>i.execution_id?s.jsx(Z,{className:"font-mono text-xs hover:underline",href:ce({applicationId:r,environmentId:l,source:i.execution_source,executionId:i.execution_id}),children:i.execution_preview}):s.jsx("span",{className:"text-muted-foreground text-xs",children:"–"})},e[57]=r,e[58]=l,e[59]=v):v=e[59];let B;e[60]===Symbol.for("react.memo_cache_sentinel")?(B={key:"d",header:"Duration",align:"right",cell:me},e[60]=B):B=e[60];let w;e[61]!==v?(w=[M,T,E,R,v,B],e[61]=v,e[62]=w):w=e[62];let S;e[63]!==t.recent||e[64]!==w?(S=s.jsx(Q,{rows:t.recent,rowKey:xe,columns:w}),e[63]=t.recent,e[64]=w,e[65]=S):S=e[65];let I;return e[66]!==m||e[67]!==k||e[68]!==S?(I=s.jsxs(ne,{title:"Transactions",children:[P,m,k,D,S]}),e[66]=m,e[67]=k,e[68]=S,e[69]=I):I=e[69],I}function me(t){return G(t.duration,2)}function ue(t){return t.statement_count===null?"—":J(t.statement_count)}function de(t){return s.jsx(le,{outcome:t.outcome})}function fe(t){return s.jsx("span",{className:"font-mono text-xs",children:t.connection??""})}function he(t){return s.jsx("span",{className:"text-xs tabular-nums",children:ae(t.occurred_at)})}function xe(t){return t.id}function pe(t){return G(t.avg,2)}function _e(t){return J(t.errors)}function ye(t){return J(t.count)}function ge(t){return s.jsx(re,{data:t.sparkline})}function be(t){return s.jsx("span",{className:"font-mono text-xs",children:t.name})}function je(t){return t.group_hash}export{Ae as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as x,u as _,j as o,k as b,d as u}from"./inertia-
|
|
1
|
+
import{c as x,u as _,j as o,k as b,d as u}from"./inertia-DfNRARuA.js";import{D as k}from"./data-table-CQ_YRWQs.js";import{E as w,R as j}from"./app-layout-by7G3sa1.js";import{E as v,P as N}from"./env-layout-CdMWbUkm.js";import{w as R,c as D}from"./format-B9SDkrWj.js";import"./chart-hover-DdK4E-2h.js";import"./use-live-CLZZj245.js";import"./segmented-DB4zh-Am.js";function A(t){const e=x.c(13),{environment:h}=_().props,d=h.application_id,f=h.id;let i;e[0]!==d||e[1]!==f?(i=l=>b(d,f,l.id),e[0]=d,e[1]=f,e[2]=i):i=e[2];const s=i;let a;e[3]===Symbol.for("react.memo_cache_sentinel")?(a=o.jsx(N,{withWindow:!1,title:"Deploys",description:"Recorded by bin/rails railwatch:deploy or the Kamal post-deploy hook. Click one to compare the hour before and after."}),e[3]=a):a=e[3];let c;e[4]===Symbol.for("react.memo_cache_sentinel")?(c=o.jsx(w,{icon:j,title:"No deploys recorded",description:"Run bin/rails railwatch:deploy or install the Kamal hook to track deploys."}),e[4]=c):c=e[4];let n,r;e[5]!==s?(n=l=>u.visit(s(l)),r={onOpen:(l,y)=>y?.newTab?window.open(s(l),"_blank"):u.visit(s(l))},e[5]=s,e[6]=n,e[7]=r):(n=e[6],r=e[7]);let m;e[8]===Symbol.for("react.memo_cache_sentinel")?(m=[{key:"when",header:"When",cell:C},{key:"d",header:"Deploy",cell:P},{key:"r",hideOnMobile:!0,header:"Ref",cell:M},{key:"n",hideOnMobile:!0,header:"Name",cell:g},{key:"by",hideOnMobile:!0,header:"By",cell:S},{key:"c",hideOnMobile:!0,header:"Commits",align:"right",cell:O},{key:"s",header:"Server",cell:E}],e[8]=m):m=e[8];let p;return e[9]!==t.deploys||e[10]!==n||e[11]!==r?(p=o.jsxs(v,{title:"Deploys",children:[a,o.jsx(k,{rows:t.deploys,rowKey:K,empty:c,onRowClick:n,keyboardNav:r,columns:m})]}),e[9]=t.deploys,e[10]=n,e[11]=r,e[12]=p):p=e[12],p}function E(t){return o.jsx("span",{className:"font-mono text-xs",children:t.server})}function O(t){return D(t.commits_count)}function S(t){return o.jsx("span",{className:"text-xs",children:t.performer})}function g(t){return t.name}function M(t){return o.jsx("span",{className:"font-mono text-xs",children:t.ref})}function P(t){return o.jsx("span",{className:"font-mono text-xs",children:t.deploy})}function C(t){return o.jsx("span",{className:"text-xs",children:R(t.deployed_at)})}function K(t){return t.id}export{A as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as C,u as S,r as F,j as s,L as z,i as A,a as R,b as B,d as w,e as L}from"./inertia-
|
|
1
|
+
import{c as C,u as S,r as F,j as s,L as z,i as A,a as R,b as B,d as w,e as L}from"./inertia-DfNRARuA.js";import{E as J,C as O,a as D,B as H,b as k}from"./app-layout-by7G3sa1.js";import{p as I,F as T,s as V}from"./filter-bar-CrzpQ_vD.js";import{J as W}from"./json-viewer-DMsF5glp.js";import{P as $,E as G}from"./env-layout-CdMWbUkm.js";import{R as K}from"./relative-time-Dsc_cCdX.js";import"./use-clipboard-oTNeP4ax.js";import"./use-live-CLZZj245.js";import"./format-B9SDkrWj.js";import"./segmented-DB4zh-Am.js";function ae(i){const e=C.c(30),{environment:m}=S().props,[y,E]=F.useState(null);let f;e[0]!==m?(f=t=>{const u=m?R(m.application_id,m.id,{q:t||void 0}):B({q:t||void 0});w.visit(u,{preserveState:!0,preserveScroll:!0})},e[0]=m,e[1]=f):f=e[1];const l=f,P=Q;let x;e[2]!==i.q?(x=I(i.q),e[2]=i.q,e[3]=x):x=e[3];const r=x,p=r.fields.status==="failed";let h;e[4]!==p||e[5]!==r.fields||e[6]!==r.text||e[7]!==l?(h=()=>{const t={...r.fields};p?delete t.status:t.status="failed",l(V({text:r.text,fields:t}))},e[4]=p,e[5]=r.fields,e[6]=r.text,e[7]=l,e[8]=h):h=e[8];const _=h;let v,j;e[9]===Symbol.for("react.memo_cache_sentinel")?(v=[{title:"Alerts",href:"#"}],j=s.jsx($,{withWindow:!1,title:"Alerts",description:"Fired alerts across your integrations, newest first."}),e[9]=v,e[10]=j):(v=e[9],j=e[10]);let g;e[11]===Symbol.for("react.memo_cache_sentinel")?(g={key:"event",label:"Event",options:["new_issue","regressed_issue","threshold","quota"]},e[11]=g):g=e[11];let a;e[12]!==i.statuses?(a=[g,{key:"status",label:"Status",options:i.statuses}],e[12]=i.statuses,e[13]=a):a=e[13];let n;e[14]!==i.q||e[15]!==a||e[16]!==l?(n=s.jsx(T,{value:i.q,fields:a,onChange:l,placeholder:"event:new_issue status:failed"}),e[14]=i.q,e[15]=a,e[16]=l,e[17]=n):n=e[17];const b=p?"default":"outline";let o;e[18]!==b||e[19]!==_?(o=s.jsx(k,{size:"sm",variant:b,className:"h-8",onClick:_,children:"Failed only"}),e[18]=b,e[19]=_,e[20]=o):o=e[20];let d;e[21]!==n||e[22]!==o?(d=s.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[n,o]}),e[21]=n,e[22]=o,e[23]=d):d=e[23];let c;e[24]!==y||e[25]!==i.alerts?(c=i.alerts.length===0?s.jsx(J,{title:"No alerts have fired."}):s.jsx("div",{className:"divide-y rounded-md border",children:i.alerts.map(t=>{const u=y===t.id;return s.jsxs("div",{className:"p-3",children:[s.jsxs("button",{type:"button",className:"flex w-full flex-wrap items-center gap-3 text-left text-sm",onClick:()=>E(u?null:t.id),children:[u?s.jsx(O,{className:"text-muted-foreground size-4 shrink-0"}):s.jsx(D,{className:"text-muted-foreground size-4 shrink-0"}),s.jsx("span",{className:"font-mono text-xs",children:t.event}),s.jsxs("span",{className:"text-muted-foreground text-xs",children:[t.integration.name," (",t.integration.kind,")"]}),t.issue&&s.jsxs(z,{href:A(t.issue.id),onClick:M,className:"text-xs hover:underline",children:[s.jsx("span",{className:"font-mono font-semibold",children:t.issue.key})," ",s.jsx("span",{className:"text-muted-foreground",children:t.issue.title})]}),s.jsxs("span",{className:"ml-auto flex items-center gap-2",children:[s.jsx(H,{variant:t.status==="failed"?"destructive":"outline",className:"capitalize",title:t.error??void 0,children:t.status}),s.jsx(K,{iso:t.sent_at??t.created_at,className:"text-muted-foreground text-xs"}),t.status==="failed"&&s.jsx(k,{size:"sm",variant:"outline",onClick:q=>{q.stopPropagation(),P(t.id)},children:"Retry"})]})]}),u&&s.jsxs("div",{className:"mt-3 space-y-2 pl-7",children:[t.error&&s.jsx("p",{className:"text-destructive text-xs",children:t.error}),s.jsx(W,{data:t.payload})]})]},t.id)})}),e[24]=y,e[25]=i.alerts,e[26]=c):c=e[26];let N;return e[27]!==d||e[28]!==c?(N=s.jsxs(G,{title:"Alerts",crumbs:v,children:[j,d,c]}),e[27]=d,e[28]=c,e[29]=N):N=e[29],N}function M(i){return i.stopPropagation()}function Q(i){return w.post(L(i),{},{preserveScroll:!0})}export{ae as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{x as ae,c as $,u as he,j as l,f as fe,d as le,D as pe,L as xe,o as ge,r as re}from"./inertia-b7M33AzA.js";import{V as se,D as ne}from"./chart-panel-XD8qJDmg.js";import{D as ee}from"./data-table-Bzj8zcao.js";import{E as ie,$ as ce,C as _e,a as ke}from"./app-layout-CpEbDy93.js";import{F as je}from"./filter-bar-B5wbix1y.js";import{P as ye,E as be}from"./env-layout-Dic4A8Kn.js";import{S as de}from"./sparkline-cell-C7fhjJby.js";import{S as Ne}from"./status-badge-D40D8TiV.js";import{c as f,u as ue,p as te,m as F,w as we}from"./format-B9SDkrWj.js";import"./series-chart-FBOfRLhK.js";import"./chart-hover-B5cFOZ24.js";import"./chart-CD6EHDjG.js";import"./use-live-rp6jfGac.js";import"./segmented-CJq8WOHZ.js";const ve=[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]],Me=ae("paperclip",ve);const Se=[["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M8.12 8.12 12 12",key:"1alkpv"}],["path",{d:"M20 4 8.12 15.88",key:"xgtan2"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M14.8 14.8 20 20",key:"ptml3r"}]],Oe=ae("scissors",Se),oe=l.jsx(ie,{icon:ce,title:"No model calls in this window",description:"Chats, embeddings, and other model calls your app makes through RubyLLM appear here, with the request or job that made them."}),Ce=l.jsx(ie,{icon:ce,title:"No tool calls in this window",description:"Tools your models invoke appear here, timed separately from the calls that asked for them."});function Le(t){const e=$.c(7),{reason:s}=t;if(!s||s==="stop"||s==="tool_calls")return null;const a=s==="max_tokens"||s==="content_filter"?"text-destructive":"text-muted-foreground";let n;e[0]!==a?(n=ge("ml-2 inline-flex items-center gap-1 text-xs",a),e[0]=a,e[1]=n):n=e[1];const r=s==="max_tokens"?"The answer was cut off at the output token limit":`Model stopped: ${s}`;let i;e[2]===Symbol.for("react.memo_cache_sentinel")?(i=l.jsx(Oe,{className:"size-3"}),e[2]=i):i=e[2];let c;return e[3]!==s||e[4]!==n||e[5]!==r?(c=l.jsxs("span",{className:n,title:r,children:[i,s]}),e[3]=s,e[4]=n,e[5]=r,e[6]=c):c=e[6],c}function Te(t){const e=$.c(4),{call:s}=t;if(!s.attachments)return null;const o=s.attachment_names??`${s.attachments} file(s): ${s.attachment_types}`;let a;e[0]===Symbol.for("react.memo_cache_sentinel")?(a=l.jsx(Me,{className:"size-3"}),e[0]=a):a=e[0];const n=s.attachment_types??s.attachments;let r;return e[1]!==o||e[2]!==n?(r=l.jsxs("span",{className:"text-muted-foreground ml-2 inline-flex items-center gap-1 text-xs",title:o,children:[a,n]}),e[1]=o,e[2]=n,e[3]=r):r=e[3],r}function $e(t){const e=$.c(19),{call:s}=t,[o,a]=re.useState(!1),{prompt:n,completion:r,params:i,provider_request_id:c,tools:p}=s;if(!(n!==null||r!==null||c!==null||p!==null||i!==null&&Object.keys(i).length>0)){let g;return e[0]===Symbol.for("react.memo_cache_sentinel")?(g=l.jsx("span",{className:"text-muted-foreground",children:"–"}),e[0]=g):g=e[0],g}const _=o?_e:ke;let d;e[1]!==o?(d=()=>a(!o),e[1]=o,e[2]=d):d=e[2];let u;e[3]!==_?(u=l.jsx(_,{className:"size-3"}),e[3]=_,e[4]=u):u=e[4];let m;e[5]!==o||e[6]!==d||e[7]!==u?(m=l.jsxs("button",{type:"button",onClick:d,"aria-expanded":o,className:"text-muted-foreground hover:text-foreground inline-flex items-center gap-1",children:[u,"Detail"]}),e[5]=o,e[6]=d,e[7]=u,e[8]=m):m=e[8];let h;e[9]!==r||e[10]!==o||e[11]!==i||e[12]!==n||e[13]!==c||e[14]!==p?(h=o&&l.jsxs("div",{className:"w-[70vw] max-w-[36rem] space-y-2 text-left",children:[l.jsxs("dl",{className:"grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 font-mono text-[10px]",children:[c&&l.jsxs(l.Fragment,{children:[l.jsx("dt",{className:"text-muted-foreground",children:"provider id"}),l.jsx("dd",{className:"break-all",children:c})]}),p&&l.jsxs(l.Fragment,{children:[l.jsx("dt",{className:"text-muted-foreground",children:"tools"}),l.jsx("dd",{className:"break-all",children:p})]}),i&&Object.entries(i).map(Fe)]}),[["Prompt",n],["Completion",r]].map(De)]}),e[9]=r,e[10]=o,e[11]=i,e[12]=n,e[13]=c,e[14]=p,e[15]=h):h=e[15];let x;return e[16]!==m||e[17]!==h?(x=l.jsxs("div",{className:"flex flex-col items-end gap-1",children:[m,h]}),e[16]=m,e[17]=h,e[18]=x):x=e[18],x}function De(t){const[e,s]=t;return s?l.jsxs("div",{children:[l.jsx("div",{className:"text-muted-foreground text-[10px] tracking-wide uppercase",children:e}),l.jsx("pre",{className:"bg-muted max-h-64 overflow-auto rounded p-2 font-mono text-[10px] break-all whitespace-pre-wrap",children:s})]},e):null}function Fe(t){const[e,s]=t;return l.jsxs(re.Fragment,{children:[l.jsx("dt",{className:"text-muted-foreground",children:e}),l.jsx("dd",{className:"break-all",children:typeof s=="string"||typeof s=="number"?s:JSON.stringify(s)})]},e)}function me(t){const e=$.c(9),{cost:s,unpriced:o}=t;if(s===null){let i;return e[0]!==o?(i=o>0?l.jsx("span",{className:"text-muted-foreground",title:"No registry pricing",children:"unpriced"}):l.jsx("span",{className:"text-muted-foreground",title:"Nothing here has a price",children:"–"}),e[0]=o,e[1]=i):i=e[1],i}let a;e[2]!==s?(a=ue(s),e[2]=s,e[3]=a):a=e[3];let n;e[4]!==o?(n=o>0&&l.jsxs("span",{className:"text-muted-foreground ml-1 text-xs font-normal",title:`${o} call${o===1?"":"s"} had no registry pricing and are not in this total`,children:["+",f(o)," unpriced"]}),e[4]=o,e[5]=n):n=e[5];let r;return e[6]!==a||e[7]!==n?(r=l.jsxs("span",{className:"font-semibold",children:[a,n]}),e[6]=a,e[7]=n,e[8]=r):r=e[8],r}function D(t){const e=$.c(7),{label:s,children:o}=t;let a;e[0]!==s?(a=l.jsx("div",{className:"text-muted-foreground text-xs",children:s}),e[0]=s,e[1]=a):a=e[1];let n;e[2]!==o?(n=l.jsx("div",{className:"truncate text-lg",children:o}),e[2]=o,e[3]=n):n=e[3];let r;return e[4]!==a||e[5]!==n?(r=l.jsxs("div",{className:"min-w-0",children:[a,n]}),e[4]=a,e[5]=n,e[6]=r):r=e[6],r}function wt(t){const e=$.c(79),{environment:s,window:o}=he().props,a=s.application_id,n=s.id;let r;e[0]!==a||e[1]!==n?(r=k=>k.execution_id?fe(a,n,k.execution_id):null,e[0]=a,e[1]=n,e[2]=r):r=e[2];const i=r;let c;e[3]===Symbol.for("react.memo_cache_sentinel")?(c=l.jsx(ye,{title:"LLM",description:"Model calls and tool invocations through RubyLLM, by model and by the request or job that made them."}),e[3]=c):c=e[3];let p;e[4]!==t.totals.count?(p=f(t.totals.count),e[4]=t.totals.count,e[5]=p):p=e[5];let j;e[6]!==p?(j=l.jsx(D,{label:"Model calls",children:p}),e[6]=p,e[7]=j):j=e[7];let _;e[8]!==t.totals.tool_count?(_=f(t.totals.tool_count),e[8]=t.totals.tool_count,e[9]=_):_=e[9];let d;e[10]!==_?(d=l.jsx(D,{label:"Tool calls",children:_}),e[10]=_,e[11]=d):d=e[11];let u;e[12]!==t.totals.cost||e[13]!==t.totals.unpriced?(u=l.jsx(D,{label:"Spend",children:l.jsx(me,{cost:t.totals.cost,unpriced:t.totals.unpriced})}),e[12]=t.totals.cost,e[13]=t.totals.unpriced,e[14]=u):u=e[14];let m;e[15]!==t.totals.input_tokens?(m=f(t.totals.input_tokens),e[15]=t.totals.input_tokens,e[16]=m):m=e[16];let h;e[17]!==m?(h=l.jsx(D,{label:"Tokens in",children:m}),e[17]=m,e[18]=h):h=e[18];let x;e[19]!==t.totals.output_tokens?(x=f(t.totals.output_tokens),e[19]=t.totals.output_tokens,e[20]=x):x=e[20];let g;e[21]!==x?(g=l.jsx(D,{label:"Tokens out",children:x}),e[21]=x,e[22]=g):g=e[22];let y;e[23]!==g||e[24]!==j||e[25]!==d||e[26]!==u||e[27]!==h?(y=l.jsxs("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-5",children:[j,d,u,h,g]}),e[23]=g,e[24]=j,e[25]=d,e[26]=u,e[27]=h,e[28]=y):y=e[28];let b;e[29]!==t.series?(b=l.jsxs("div",{className:"grid gap-4 lg:grid-cols-2",children:[l.jsx(se,{legend:"outcome",label:"Model calls",seriesLabel:"Calls",data:t.series}),l.jsx(ne,{label:"Model latency",data:t.series,percentile:"p95"})]}),e[29]=t.series,e[30]=b):b=e[30];let N;e[31]!==t.tool_series||e[32]!==t.totals.tool_count?(N=t.totals.tool_count>0&&l.jsxs("div",{className:"grid gap-4 lg:grid-cols-2",children:[l.jsx(se,{legend:"outcome",label:"Tool calls",seriesLabel:"Calls",data:t.tool_series}),l.jsx(ne,{label:"Tool latency",data:t.tool_series,percentile:"p95"})]}),e[31]=t.tool_series,e[32]=t.totals.tool_count,e[33]=N):N=e[33];let E;e[34]===Symbol.for("react.memo_cache_sentinel")?(E=[{key:"m",header:"Model",cell:it},{key:"trend",hideOnMobile:!0,header:"Trend",cell:rt},{key:"n",header:"Calls",align:"right",cell:at},{key:"f",hideOnMobile:!0,header:"Failed",align:"right",cell:ot},{key:"cut",hideOnMobile:!0,header:"Cut off",align:"right",cell:nt},{key:"att",hideOnMobile:!0,header:"With files",align:"right",cell:st},{key:"in",hideOnMobile:!0,header:"Tokens in",align:"right",cell:lt},{key:"out",hideOnMobile:!0,header:"Tokens out",align:"right",cell:tt},{key:"cached",hideOnMobile:!0,header:"Cached",align:"right",cell:et},{key:"p95",hideOnMobile:!0,header:"p95",align:"right",cell:Ze},{key:"cost",header:"Spend",align:"right",cell:Ye}],e[34]=E):E=e[34];let w;e[35]!==t.models?(w=l.jsx(ee,{rows:t.models,rowKey:ct,empty:oe,columns:E}),e[35]=t.models,e[36]=w):w=e[36];let v;e[37]!==t.tools?(v=t.tools.length>0&&l.jsxs(l.Fragment,{children:[l.jsx("h2",{className:"text-sm font-semibold",children:"Tools"}),l.jsx(ee,{rows:t.tools,rowKey:Xe,empty:Ce,columns:[{key:"t",header:"Tool",cell:Ue},{key:"trend",hideOnMobile:!0,header:"Trend",cell:Qe},{key:"n",header:"Calls",align:"right",cell:Ge},{key:"f",hideOnMobile:!0,header:"Failed",align:"right",cell:Je},{key:"avg",hideOnMobile:!0,header:"Avg",align:"right",cell:He},{key:"p95",header:"p95",align:"right",cell:Ve},{key:"max",hideOnMobile:!0,header:"Max",align:"right",cell:Ie}]})]}),e[37]=t.tools,e[38]=v):v=e[38];let P;e[39]===Symbol.for("react.memo_cache_sentinel")?(P=l.jsx("h2",{className:"text-sm font-semibold",children:"Recent"}),e[39]=P):P=e[39];let q,R;e[40]===Symbol.for("react.memo_cache_sentinel")?(q={key:"model",label:"Model"},R={key:"provider",label:"Provider"},e[40]=q,e[41]=R):(q=e[40],R=e[41]);let W,z;e[42]===Symbol.for("react.memo_cache_sentinel")?(W={key:"operation",label:"Operation",options:["chat","tool","embedding","image","speech","transcription","moderation","rerank","ocr"]},z={key:"workflow",label:"Workflow"},e[42]=W,e[43]=z):(W=e[42],z=e[43]);let A;e[44]===Symbol.for("react.memo_cache_sentinel")?(A={key:"finish",label:"Finish",options:["stop","max_tokens","tool_calls","content_filter"]},e[44]=A):A=e[44];let K;e[45]===Symbol.for("react.memo_cache_sentinel")?(K=[q,R,W,z,A,{key:"attachments",label:"Files",options:["any","image","pdf","audio","video"]}],e[45]=K):K=e[45];let M;e[46]!==a||e[47]!==n||e[48]!==o?(M=k=>le.visit(pe(a,n,{window:o,q:k||void 0}),{preserveState:!0}),e[46]=a,e[47]=n,e[48]=o,e[49]=M):M=e[49];let S;e[50]!==t.q||e[51]!==M?(S=l.jsx(je,{value:t.q,fields:K,onChange:M,placeholder:"model:claude-opus-5 operation:chat"}),e[50]=t.q,e[51]=M,e[52]=S):S=e[52];let O;e[53]!==i?(O={onOpen:(k,Y)=>{const Z=i(k);Z&&(Y?.newTab?globalThis.window.open(Z,"_blank"):le.visit(Z))}},e[53]=i,e[54]=O):O=e[54];let B,I,V,H,J,G,Q;e[55]===Symbol.for("react.memo_cache_sentinel")?(B={key:"when",header:"When",cell:Ke},I={key:"st",header:"Status",cell:Ae},V={key:"what",header:"Call",grow:!0,cell:ze},H={key:"wf",hideOnMobile:!0,header:"Workflow",cell:We},J={key:"tok",hideOnMobile:!0,header:"Tokens",align:"right",cell:Re},G={key:"d",header:"Duration",align:"right",cell:qe},Q={key:"cost",header:"Cost",align:"right",cell:Pe},e[55]=B,e[56]=I,e[57]=V,e[58]=H,e[59]=J,e[60]=G,e[61]=Q):(B=e[55],I=e[56],V=e[57],H=e[58],J=e[59],G=e[60],Q=e[61]);let C;e[62]!==i?(C={key:"in",hideOnMobile:!0,header:"In",cell:k=>{const Y=i(k);return Y?l.jsx(xe,{className:"font-mono text-xs hover:underline",href:Y,children:k.execution_preview}):null}},e[62]=i,e[63]=C):C=e[63];let U;e[64]===Symbol.for("react.memo_cache_sentinel")?(U={key:"content",header:"Detail",align:"right",cell:Ee},e[64]=U):U=e[64];let L;e[65]!==C?(L=[B,I,V,H,J,G,Q,C,U],e[65]=C,e[66]=L):L=e[66];let T;e[67]!==t.recent||e[68]!==O||e[69]!==L?(T=l.jsx(ee,{rows:t.recent,rowKey:Be,empty:oe,keyboardNav:O,columns:L}),e[67]=t.recent,e[68]=O,e[69]=L,e[70]=T):T=e[70];let X;return e[71]!==y||e[72]!==b||e[73]!==N||e[74]!==w||e[75]!==v||e[76]!==S||e[77]!==T?(X=l.jsxs(be,{title:"LLM",children:[c,y,b,N,w,v,P,S,T]}),e[71]=y,e[72]=b,e[73]=N,e[74]=w,e[75]=v,e[76]=S,e[77]=T,e[78]=X):X=e[78],X}function Ee(t){return l.jsx($e,{call:t})}function Pe(t){return t.cost===null&&t.operation!=="tool"&&t.status!=="failed"?l.jsx("span",{className:"text-muted-foreground",title:"No registry pricing",children:"unpriced"}):ue(t.cost)}function qe(t){return F(t.duration)}function Re(t){return t.input_tokens===null&&t.output_tokens===null?l.jsx("span",{className:"text-muted-foreground",children:"–"}):l.jsxs("span",{className:"font-mono text-xs",children:[f(t.input_tokens??0)," / ",f(t.output_tokens??0)]})}function We(t){return t.workflow_name?l.jsxs("span",{className:"text-xs",children:[t.workflow_name,t.workflow_step_name&&l.jsxs("span",{className:"text-muted-foreground",children:[" · ",t.workflow_step_name]})]}):null}function ze(t){return l.jsxs("span",{className:"font-mono text-xs",children:[t.operation==="tool"?t.tool_name:l.jsxs(l.Fragment,{children:[l.jsxs("span",{className:"text-muted-foreground",children:[t.provider,"/"]}),l.jsx("span",{className:"font-semibold",children:t.model})]}),t.error&&l.jsx("span",{className:"text-destructive ml-2",children:t.error}),l.jsx(Le,{reason:t.finish_reason}),l.jsx(Te,{call:t})]})}function Ae(t){return l.jsx(Ne,{status:null,label:t.status==="failed"?"error":t.operation,outcome:t.status==="failed"?"failed":void 0})}function Ke(t){return l.jsx("span",{className:"text-xs",children:we(t.occurred_at)})}function Be(t){return t.id}function Ie(t){return F(t.max)}function Ve(t){return l.jsx("span",{className:"font-semibold",children:F(t.p95)})}function He(t){return F(t.avg)}function Je(t){return l.jsx("span",{className:t.errors?"text-destructive":"",children:te(t.errors,t.count)})}function Ge(t){return f(t.count)}function Qe(t){return l.jsx(de,{data:t.sparkline})}function Ue(t){return l.jsx("span",{className:"font-mono text-xs",children:t.name})}function Xe(t){return t.group_hash}function Ye(t){return l.jsx(me,{cost:t.cost,unpriced:t.unpriced})}function Ze(t){return F(t.p95)}function et(t){return f(t.cache_read_tokens)}function tt(t){return f(t.output_tokens)}function lt(t){return f(t.input_tokens)}function st(t){return t.with_attachments?f(t.with_attachments):l.jsx("span",{className:"text-muted-foreground",children:"–"})}function nt(t){return t.truncated?l.jsx("span",{className:"text-destructive",title:"Answers stopped at the output token limit",children:te(t.truncated,t.count)}):l.jsx("span",{className:"text-muted-foreground",children:"–"})}function ot(t){return l.jsx("span",{className:t.errors?"text-destructive":"",children:te(t.errors,t.count)})}function at(t){return f(t.count)}function rt(t){return l.jsx(de,{data:t.sparkline})}function it(t){return l.jsx("span",{className:"font-mono text-xs",children:t.name})}function ct(t){return t.group_hash}export{wt as default};
|
|
1
|
+
import{x as ae,c as $,u as he,j as l,f as fe,d as le,D as pe,L as xe,o as ge,r as re}from"./inertia-DfNRARuA.js";import{V as se,D as ne}from"./chart-panel-BPaYRXJB.js";import{D as ee}from"./data-table-CQ_YRWQs.js";import{E as ie,$ as ce,C as _e,a as ke}from"./app-layout-by7G3sa1.js";import{F as je}from"./filter-bar-CrzpQ_vD.js";import{P as ye,E as be}from"./env-layout-CdMWbUkm.js";import{S as de}from"./sparkline-cell-B47ipscB.js";import{S as Ne}from"./status-badge-CmbRKlY7.js";import{c as f,u as ue,p as te,m as F,w as we}from"./format-B9SDkrWj.js";import"./series-chart-BaiDG795.js";import"./chart-hover-DdK4E-2h.js";import"./chart-Cov79YC5.js";import"./use-live-CLZZj245.js";import"./segmented-DB4zh-Am.js";const ve=[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]],Me=ae("paperclip",ve);const Se=[["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M8.12 8.12 12 12",key:"1alkpv"}],["path",{d:"M20 4 8.12 15.88",key:"xgtan2"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M14.8 14.8 20 20",key:"ptml3r"}]],Oe=ae("scissors",Se),oe=l.jsx(ie,{icon:ce,title:"No model calls in this window",description:"Chats, embeddings, and other model calls your app makes through RubyLLM appear here, with the request or job that made them."}),Ce=l.jsx(ie,{icon:ce,title:"No tool calls in this window",description:"Tools your models invoke appear here, timed separately from the calls that asked for them."});function Le(t){const e=$.c(7),{reason:s}=t;if(!s||s==="stop"||s==="tool_calls")return null;const a=s==="max_tokens"||s==="content_filter"?"text-destructive":"text-muted-foreground";let n;e[0]!==a?(n=ge("ml-2 inline-flex items-center gap-1 text-xs",a),e[0]=a,e[1]=n):n=e[1];const r=s==="max_tokens"?"The answer was cut off at the output token limit":`Model stopped: ${s}`;let i;e[2]===Symbol.for("react.memo_cache_sentinel")?(i=l.jsx(Oe,{className:"size-3"}),e[2]=i):i=e[2];let c;return e[3]!==s||e[4]!==n||e[5]!==r?(c=l.jsxs("span",{className:n,title:r,children:[i,s]}),e[3]=s,e[4]=n,e[5]=r,e[6]=c):c=e[6],c}function Te(t){const e=$.c(4),{call:s}=t;if(!s.attachments)return null;const o=s.attachment_names??`${s.attachments} file(s): ${s.attachment_types}`;let a;e[0]===Symbol.for("react.memo_cache_sentinel")?(a=l.jsx(Me,{className:"size-3"}),e[0]=a):a=e[0];const n=s.attachment_types??s.attachments;let r;return e[1]!==o||e[2]!==n?(r=l.jsxs("span",{className:"text-muted-foreground ml-2 inline-flex items-center gap-1 text-xs",title:o,children:[a,n]}),e[1]=o,e[2]=n,e[3]=r):r=e[3],r}function $e(t){const e=$.c(19),{call:s}=t,[o,a]=re.useState(!1),{prompt:n,completion:r,params:i,provider_request_id:c,tools:p}=s;if(!(n!==null||r!==null||c!==null||p!==null||i!==null&&Object.keys(i).length>0)){let g;return e[0]===Symbol.for("react.memo_cache_sentinel")?(g=l.jsx("span",{className:"text-muted-foreground",children:"–"}),e[0]=g):g=e[0],g}const _=o?_e:ke;let d;e[1]!==o?(d=()=>a(!o),e[1]=o,e[2]=d):d=e[2];let u;e[3]!==_?(u=l.jsx(_,{className:"size-3"}),e[3]=_,e[4]=u):u=e[4];let m;e[5]!==o||e[6]!==d||e[7]!==u?(m=l.jsxs("button",{type:"button",onClick:d,"aria-expanded":o,className:"text-muted-foreground hover:text-foreground inline-flex items-center gap-1",children:[u,"Detail"]}),e[5]=o,e[6]=d,e[7]=u,e[8]=m):m=e[8];let h;e[9]!==r||e[10]!==o||e[11]!==i||e[12]!==n||e[13]!==c||e[14]!==p?(h=o&&l.jsxs("div",{className:"w-[70vw] max-w-[36rem] space-y-2 text-left",children:[l.jsxs("dl",{className:"grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 font-mono text-[10px]",children:[c&&l.jsxs(l.Fragment,{children:[l.jsx("dt",{className:"text-muted-foreground",children:"provider id"}),l.jsx("dd",{className:"break-all",children:c})]}),p&&l.jsxs(l.Fragment,{children:[l.jsx("dt",{className:"text-muted-foreground",children:"tools"}),l.jsx("dd",{className:"break-all",children:p})]}),i&&Object.entries(i).map(Fe)]}),[["Prompt",n],["Completion",r]].map(De)]}),e[9]=r,e[10]=o,e[11]=i,e[12]=n,e[13]=c,e[14]=p,e[15]=h):h=e[15];let x;return e[16]!==m||e[17]!==h?(x=l.jsxs("div",{className:"flex flex-col items-end gap-1",children:[m,h]}),e[16]=m,e[17]=h,e[18]=x):x=e[18],x}function De(t){const[e,s]=t;return s?l.jsxs("div",{children:[l.jsx("div",{className:"text-muted-foreground text-[10px] tracking-wide uppercase",children:e}),l.jsx("pre",{className:"bg-muted max-h-64 overflow-auto rounded p-2 font-mono text-[10px] break-all whitespace-pre-wrap",children:s})]},e):null}function Fe(t){const[e,s]=t;return l.jsxs(re.Fragment,{children:[l.jsx("dt",{className:"text-muted-foreground",children:e}),l.jsx("dd",{className:"break-all",children:typeof s=="string"||typeof s=="number"?s:JSON.stringify(s)})]},e)}function me(t){const e=$.c(9),{cost:s,unpriced:o}=t;if(s===null){let i;return e[0]!==o?(i=o>0?l.jsx("span",{className:"text-muted-foreground",title:"No registry pricing",children:"unpriced"}):l.jsx("span",{className:"text-muted-foreground",title:"Nothing here has a price",children:"–"}),e[0]=o,e[1]=i):i=e[1],i}let a;e[2]!==s?(a=ue(s),e[2]=s,e[3]=a):a=e[3];let n;e[4]!==o?(n=o>0&&l.jsxs("span",{className:"text-muted-foreground ml-1 text-xs font-normal",title:`${o} call${o===1?"":"s"} had no registry pricing and are not in this total`,children:["+",f(o)," unpriced"]}),e[4]=o,e[5]=n):n=e[5];let r;return e[6]!==a||e[7]!==n?(r=l.jsxs("span",{className:"font-semibold",children:[a,n]}),e[6]=a,e[7]=n,e[8]=r):r=e[8],r}function D(t){const e=$.c(7),{label:s,children:o}=t;let a;e[0]!==s?(a=l.jsx("div",{className:"text-muted-foreground text-xs",children:s}),e[0]=s,e[1]=a):a=e[1];let n;e[2]!==o?(n=l.jsx("div",{className:"truncate text-lg",children:o}),e[2]=o,e[3]=n):n=e[3];let r;return e[4]!==a||e[5]!==n?(r=l.jsxs("div",{className:"min-w-0",children:[a,n]}),e[4]=a,e[5]=n,e[6]=r):r=e[6],r}function wt(t){const e=$.c(79),{environment:s,window:o}=he().props,a=s.application_id,n=s.id;let r;e[0]!==a||e[1]!==n?(r=k=>k.execution_id?fe(a,n,k.execution_id):null,e[0]=a,e[1]=n,e[2]=r):r=e[2];const i=r;let c;e[3]===Symbol.for("react.memo_cache_sentinel")?(c=l.jsx(ye,{title:"LLM",description:"Model calls and tool invocations through RubyLLM, by model and by the request or job that made them."}),e[3]=c):c=e[3];let p;e[4]!==t.totals.count?(p=f(t.totals.count),e[4]=t.totals.count,e[5]=p):p=e[5];let j;e[6]!==p?(j=l.jsx(D,{label:"Model calls",children:p}),e[6]=p,e[7]=j):j=e[7];let _;e[8]!==t.totals.tool_count?(_=f(t.totals.tool_count),e[8]=t.totals.tool_count,e[9]=_):_=e[9];let d;e[10]!==_?(d=l.jsx(D,{label:"Tool calls",children:_}),e[10]=_,e[11]=d):d=e[11];let u;e[12]!==t.totals.cost||e[13]!==t.totals.unpriced?(u=l.jsx(D,{label:"Spend",children:l.jsx(me,{cost:t.totals.cost,unpriced:t.totals.unpriced})}),e[12]=t.totals.cost,e[13]=t.totals.unpriced,e[14]=u):u=e[14];let m;e[15]!==t.totals.input_tokens?(m=f(t.totals.input_tokens),e[15]=t.totals.input_tokens,e[16]=m):m=e[16];let h;e[17]!==m?(h=l.jsx(D,{label:"Tokens in",children:m}),e[17]=m,e[18]=h):h=e[18];let x;e[19]!==t.totals.output_tokens?(x=f(t.totals.output_tokens),e[19]=t.totals.output_tokens,e[20]=x):x=e[20];let g;e[21]!==x?(g=l.jsx(D,{label:"Tokens out",children:x}),e[21]=x,e[22]=g):g=e[22];let y;e[23]!==g||e[24]!==j||e[25]!==d||e[26]!==u||e[27]!==h?(y=l.jsxs("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-5",children:[j,d,u,h,g]}),e[23]=g,e[24]=j,e[25]=d,e[26]=u,e[27]=h,e[28]=y):y=e[28];let b;e[29]!==t.series?(b=l.jsxs("div",{className:"grid gap-4 lg:grid-cols-2",children:[l.jsx(se,{legend:"outcome",label:"Model calls",seriesLabel:"Calls",data:t.series}),l.jsx(ne,{label:"Model latency",data:t.series,percentile:"p95"})]}),e[29]=t.series,e[30]=b):b=e[30];let N;e[31]!==t.tool_series||e[32]!==t.totals.tool_count?(N=t.totals.tool_count>0&&l.jsxs("div",{className:"grid gap-4 lg:grid-cols-2",children:[l.jsx(se,{legend:"outcome",label:"Tool calls",seriesLabel:"Calls",data:t.tool_series}),l.jsx(ne,{label:"Tool latency",data:t.tool_series,percentile:"p95"})]}),e[31]=t.tool_series,e[32]=t.totals.tool_count,e[33]=N):N=e[33];let E;e[34]===Symbol.for("react.memo_cache_sentinel")?(E=[{key:"m",header:"Model",cell:it},{key:"trend",hideOnMobile:!0,header:"Trend",cell:rt},{key:"n",header:"Calls",align:"right",cell:at},{key:"f",hideOnMobile:!0,header:"Failed",align:"right",cell:ot},{key:"cut",hideOnMobile:!0,header:"Cut off",align:"right",cell:nt},{key:"att",hideOnMobile:!0,header:"With files",align:"right",cell:st},{key:"in",hideOnMobile:!0,header:"Tokens in",align:"right",cell:lt},{key:"out",hideOnMobile:!0,header:"Tokens out",align:"right",cell:tt},{key:"cached",hideOnMobile:!0,header:"Cached",align:"right",cell:et},{key:"p95",hideOnMobile:!0,header:"p95",align:"right",cell:Ze},{key:"cost",header:"Spend",align:"right",cell:Ye}],e[34]=E):E=e[34];let w;e[35]!==t.models?(w=l.jsx(ee,{rows:t.models,rowKey:ct,empty:oe,columns:E}),e[35]=t.models,e[36]=w):w=e[36];let v;e[37]!==t.tools?(v=t.tools.length>0&&l.jsxs(l.Fragment,{children:[l.jsx("h2",{className:"text-sm font-semibold",children:"Tools"}),l.jsx(ee,{rows:t.tools,rowKey:Xe,empty:Ce,columns:[{key:"t",header:"Tool",cell:Ue},{key:"trend",hideOnMobile:!0,header:"Trend",cell:Qe},{key:"n",header:"Calls",align:"right",cell:Ge},{key:"f",hideOnMobile:!0,header:"Failed",align:"right",cell:Je},{key:"avg",hideOnMobile:!0,header:"Avg",align:"right",cell:He},{key:"p95",header:"p95",align:"right",cell:Ve},{key:"max",hideOnMobile:!0,header:"Max",align:"right",cell:Ie}]})]}),e[37]=t.tools,e[38]=v):v=e[38];let P;e[39]===Symbol.for("react.memo_cache_sentinel")?(P=l.jsx("h2",{className:"text-sm font-semibold",children:"Recent"}),e[39]=P):P=e[39];let q,R;e[40]===Symbol.for("react.memo_cache_sentinel")?(q={key:"model",label:"Model"},R={key:"provider",label:"Provider"},e[40]=q,e[41]=R):(q=e[40],R=e[41]);let W,z;e[42]===Symbol.for("react.memo_cache_sentinel")?(W={key:"operation",label:"Operation",options:["chat","tool","embedding","image","speech","transcription","moderation","rerank","ocr"]},z={key:"workflow",label:"Workflow"},e[42]=W,e[43]=z):(W=e[42],z=e[43]);let A;e[44]===Symbol.for("react.memo_cache_sentinel")?(A={key:"finish",label:"Finish",options:["stop","max_tokens","tool_calls","content_filter"]},e[44]=A):A=e[44];let K;e[45]===Symbol.for("react.memo_cache_sentinel")?(K=[q,R,W,z,A,{key:"attachments",label:"Files",options:["any","image","pdf","audio","video"]}],e[45]=K):K=e[45];let M;e[46]!==a||e[47]!==n||e[48]!==o?(M=k=>le.visit(pe(a,n,{window:o,q:k||void 0}),{preserveState:!0}),e[46]=a,e[47]=n,e[48]=o,e[49]=M):M=e[49];let S;e[50]!==t.q||e[51]!==M?(S=l.jsx(je,{value:t.q,fields:K,onChange:M,placeholder:"model:claude-opus-5 operation:chat"}),e[50]=t.q,e[51]=M,e[52]=S):S=e[52];let O;e[53]!==i?(O={onOpen:(k,Y)=>{const Z=i(k);Z&&(Y?.newTab?globalThis.window.open(Z,"_blank"):le.visit(Z))}},e[53]=i,e[54]=O):O=e[54];let B,I,V,H,J,G,Q;e[55]===Symbol.for("react.memo_cache_sentinel")?(B={key:"when",header:"When",cell:Ke},I={key:"st",header:"Status",cell:Ae},V={key:"what",header:"Call",grow:!0,cell:ze},H={key:"wf",hideOnMobile:!0,header:"Workflow",cell:We},J={key:"tok",hideOnMobile:!0,header:"Tokens",align:"right",cell:Re},G={key:"d",header:"Duration",align:"right",cell:qe},Q={key:"cost",header:"Cost",align:"right",cell:Pe},e[55]=B,e[56]=I,e[57]=V,e[58]=H,e[59]=J,e[60]=G,e[61]=Q):(B=e[55],I=e[56],V=e[57],H=e[58],J=e[59],G=e[60],Q=e[61]);let C;e[62]!==i?(C={key:"in",hideOnMobile:!0,header:"In",cell:k=>{const Y=i(k);return Y?l.jsx(xe,{className:"font-mono text-xs hover:underline",href:Y,children:k.execution_preview}):null}},e[62]=i,e[63]=C):C=e[63];let U;e[64]===Symbol.for("react.memo_cache_sentinel")?(U={key:"content",header:"Detail",align:"right",cell:Ee},e[64]=U):U=e[64];let L;e[65]!==C?(L=[B,I,V,H,J,G,Q,C,U],e[65]=C,e[66]=L):L=e[66];let T;e[67]!==t.recent||e[68]!==O||e[69]!==L?(T=l.jsx(ee,{rows:t.recent,rowKey:Be,empty:oe,keyboardNav:O,columns:L}),e[67]=t.recent,e[68]=O,e[69]=L,e[70]=T):T=e[70];let X;return e[71]!==y||e[72]!==b||e[73]!==N||e[74]!==w||e[75]!==v||e[76]!==S||e[77]!==T?(X=l.jsxs(be,{title:"LLM",children:[c,y,b,N,w,v,P,S,T]}),e[71]=y,e[72]=b,e[73]=N,e[74]=w,e[75]=v,e[76]=S,e[77]=T,e[78]=X):X=e[78],X}function Ee(t){return l.jsx($e,{call:t})}function Pe(t){return t.cost===null&&t.operation!=="tool"&&t.status!=="failed"?l.jsx("span",{className:"text-muted-foreground",title:"No registry pricing",children:"unpriced"}):ue(t.cost)}function qe(t){return F(t.duration)}function Re(t){return t.input_tokens===null&&t.output_tokens===null?l.jsx("span",{className:"text-muted-foreground",children:"–"}):l.jsxs("span",{className:"font-mono text-xs",children:[f(t.input_tokens??0)," / ",f(t.output_tokens??0)]})}function We(t){return t.workflow_name?l.jsxs("span",{className:"text-xs",children:[t.workflow_name,t.workflow_step_name&&l.jsxs("span",{className:"text-muted-foreground",children:[" · ",t.workflow_step_name]})]}):null}function ze(t){return l.jsxs("span",{className:"font-mono text-xs",children:[t.operation==="tool"?t.tool_name:l.jsxs(l.Fragment,{children:[l.jsxs("span",{className:"text-muted-foreground",children:[t.provider,"/"]}),l.jsx("span",{className:"font-semibold",children:t.model})]}),t.error&&l.jsx("span",{className:"text-destructive ml-2",children:t.error}),l.jsx(Le,{reason:t.finish_reason}),l.jsx(Te,{call:t})]})}function Ae(t){return l.jsx(Ne,{status:null,label:t.status==="failed"?"error":t.operation,outcome:t.status==="failed"?"failed":void 0})}function Ke(t){return l.jsx("span",{className:"text-xs",children:we(t.occurred_at)})}function Be(t){return t.id}function Ie(t){return F(t.max)}function Ve(t){return l.jsx("span",{className:"font-semibold",children:F(t.p95)})}function He(t){return F(t.avg)}function Je(t){return l.jsx("span",{className:t.errors?"text-destructive":"",children:te(t.errors,t.count)})}function Ge(t){return f(t.count)}function Qe(t){return l.jsx(de,{data:t.sparkline})}function Ue(t){return l.jsx("span",{className:"font-mono text-xs",children:t.name})}function Xe(t){return t.group_hash}function Ye(t){return l.jsx(me,{cost:t.cost,unpriced:t.unpriced})}function Ze(t){return F(t.p95)}function et(t){return f(t.cache_read_tokens)}function tt(t){return f(t.output_tokens)}function lt(t){return f(t.input_tokens)}function st(t){return t.with_attachments?f(t.with_attachments):l.jsx("span",{className:"text-muted-foreground",children:"–"})}function nt(t){return t.truncated?l.jsx("span",{className:"text-destructive",title:"Answers stopped at the output token limit",children:te(t.truncated,t.count)}):l.jsx("span",{className:"text-muted-foreground",children:"–"})}function ot(t){return l.jsx("span",{className:t.errors?"text-destructive":"",children:te(t.errors,t.count)})}function at(t){return f(t.count)}function rt(t){return l.jsx(de,{data:t.sparkline})}function it(t){return l.jsx("span",{className:"font-mono text-xs",children:t.name})}function ct(t){return t.group_hash}export{wt as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as oe,u as ce,j as s,d as ie,a9 as me,L as de}from"./inertia-
|
|
1
|
+
import{c as oe,u as ce,j as s,d as ie,a9 as me,L as de}from"./inertia-DfNRARuA.js";import{C as ue}from"./chart-hover-DdK4E-2h.js";import{D as fe}from"./data-table-CQ_YRWQs.js";import{E as he,at as ye}from"./app-layout-by7G3sa1.js";import{F as ge}from"./filter-bar-CrzpQ_vD.js";import{P as xe,E as _e}from"./env-layout-CdMWbUkm.js";import{S as W}from"./sort-header-BcG8ulEH.js";import{S as ve}from"./sparkline-cell-B47ipscB.js";import{S as Y,a as be}from"./stat-DT2hhsqS.js";import{c as a,m as je,a as pe}from"./format-B9SDkrWj.js";import{t as ke}from"./tenant-path-C4rNGauE.js";import"./use-live-CLZZj245.js";import"./segmented-DB4zh-Am.js";import"./arrow-up-DCZ7emux.js";import"./series-chart-BaiDG795.js";import"./chart-Cov79YC5.js";function Ve(t){const e=oe.c(91),{environment:ae,window:l}=ce().props,o=ae.application_id,c=ae.id;let P;e[0]!==o||e[1]!==c||e[2]!==t.dir||e[3]!==t.q||e[4]!==t.sort||e[5]!==l?(P=r=>ie.visit(me(o,c,{window:l,sort:t.sort,dir:t.dir,q:t.q||void 0,...r}),{preserveState:!0}),e[0]=o,e[1]=c,e[2]=t.dir,e[3]=t.q,e[4]=t.sort,e[5]=l,e[6]=P):P=e[6];const m=P;let M;e[7]!==t.dir||e[8]!==t.sort||e[9]!==m?(M=r=>m({sort:r,dir:t.sort===r&&t.dir==="desc"?"asc":"desc"}),e[7]=t.dir,e[8]=t.sort,e[9]=m,e[10]=M):M=e[10];const n=M;let F;e[11]!==o||e[12]!==c||e[13]!==l?(F=r=>ke(o,c,r.tenant,{window:l}),e[11]=o,e[12]=c,e[13]=l,e[14]=F):F=e[14];const i=F;let L;e[15]===Symbol.for("react.memo_cache_sentinel")?(L=s.jsx(xe,{title:"Tenants",description:"Your application's own tenants, aggregated from the tenant tag on every record."}),e[15]=L):L=e[15];let d;e[16]!==t.summary.tenants?(d=a(t.summary.tenants),e[16]=t.summary.tenants,e[17]=d):d=e[17];let u;e[18]!==d?(u=s.jsx(Y,{label:"Tenants active",value:d}),e[18]=d,e[19]=u):u=e[19];const z=`${t.summary.top_share}%`,G=t.summary.top_tenant??"none";let f;e[20]!==z||e[21]!==G?(f=s.jsx(Y,{label:"Top tenant",value:z,hint:G}),e[20]=z,e[21]=G,e[22]=f):f=e[22];let h;e[23]!==t.summary.with_errors?(h=a(t.summary.with_errors),e[23]=t.summary.with_errors,e[24]=h):h=e[24];const I=t.summary.with_errors?"destructive":"success";let y;e[25]!==I||e[26]!==h?(y=s.jsx(Y,{label:"With 5xx",value:h,tone:I}),e[25]=I,e[26]=h,e[27]=y):y=e[27];const Q=`${t.summary.untagged_share}%`;let g;e[28]!==Q?(g=s.jsx(Y,{label:"Untagged",value:Q,hint:"requests with no tenant"}),e[28]=Q,e[29]=g):g=e[29];let x;e[30]!==y||e[31]!==g||e[32]!==u||e[33]!==f?(x=s.jsxs(be,{children:[u,f,y,g]}),e[30]=y,e[31]=g,e[32]=u,e[33]=f,e[34]=x):x=e[34];let B;e[35]===Symbol.for("react.memo_cache_sentinel")?(B=[],e[35]=B):B=e[35];let _;e[36]!==m?(_=r=>m({q:r||void 0}),e[36]=m,e[37]=_):_=e[37];let v;e[38]!==t.q||e[39]!==_?(v=s.jsx(ge,{value:t.q,fields:B,onChange:_,placeholder:"Filter tenants"}),e[38]=t.q,e[39]=_,e[40]=v):v=e[40];let H;e[41]===Symbol.for("react.memo_cache_sentinel")?(H=s.jsx(he,{icon:ye,title:"No tenant-tagged records in this window",description:"Records carry the tenant from ActiveRecord::Tenanted / TenantRecord.current_tenant, or call Railwatch.context(tenant: org.slug)"}),e[41]=H):H=e[41];let b,j;e[42]!==i?(b=r=>ie.visit(i(r)),j={onOpen:(r,le)=>le?.newTab?globalThis.window.open(i(r),"_blank"):ie.visit(i(r))},e[42]=i,e[43]=b,e[44]=j):(b=e[43],j=e[44]);let p;e[45]!==i?(p={key:"tenant",header:"Tenant",cell:r=>s.jsx(de,{className:"font-mono text-xs hover:underline",href:i(r),children:r.tenant})},e[45]=i,e[46]=p):p=e[46];let K;e[47]===Symbol.for("react.memo_cache_sentinel")?(K={key:"trend",hideOnMobile:!0,header:"Trend",cell:Oe},e[47]=K):K=e[47];const V=t.sort==="requests",X=t.dir==="asc"?"asc":"desc";let k;e[48]!==n?(k=()=>n("requests"),e[48]=n,e[49]=k):k=e[49];let w;e[50]!==V||e[51]!==X||e[52]!==k?(w={key:"requests",header:s.jsx(W,{label:"Requests",active:V,dir:X,onClick:k}),align:"right",cell:Ne},e[50]=V,e[51]=X,e[52]=k,e[53]=w):w=e[53];const Z=t.sort==="errors",ee=t.dir==="asc"?"asc":"desc";let S;e[54]!==n?(S=()=>n("errors"),e[54]=n,e[55]=S):S=e[55];let q;e[56]!==Z||e[57]!==ee||e[58]!==S?(q={key:"5xx",header:s.jsx(W,{label:"5xx",active:Z,dir:ee,onClick:S}),align:"right",cell:Re},e[56]=Z,e[57]=ee,e[58]=S,e[59]=q):q=e[59];const te=t.sort==="p95",se=t.dir==="asc"?"asc":"desc";let T;e[60]!==n?(T=()=>n("p95"),e[60]=n,e[61]=T):T=e[61];let C;e[62]!==te||e[63]!==se||e[64]!==T?(C={key:"p95",header:s.jsx(W,{label:"p95",active:te,dir:se,onClick:T}),align:"right",cell:Ee},e[62]=te,e[63]=se,e[64]=T,e[65]=C):C=e[65];let $,D,U;e[66]===Symbol.for("react.memo_cache_sentinel")?($={key:"jobs",hideOnMobile:!0,header:"Jobs",align:"right",cell:Ce},D={key:"failed",hideOnMobile:!0,header:"Failed",align:"right",cell:Te},U={key:"exceptions",hideOnMobile:!0,header:"Exceptions",align:"right",cell:qe},e[66]=$,e[67]=D,e[68]=U):($=e[66],D=e[67],U=e[68]);const re=t.sort==="users",ne=t.dir==="asc"?"asc":"desc";let E;e[69]!==n?(E=()=>n("users"),e[69]=n,e[70]=E):E=e[70];let R;e[71]!==re||e[72]!==ne||e[73]!==E?(R={key:"users",hideOnMobile:!0,header:s.jsx(W,{label:"Users",active:re,dir:ne,onClick:E}),align:"right",cell:Se},e[71]=re,e[72]=ne,e[73]=E,e[74]=R):R=e[74];let A;e[75]===Symbol.for("react.memo_cache_sentinel")?(A={key:"seen",header:"Last seen",align:"right",cell:we},e[75]=A):A=e[75];let N;e[76]!==p||e[77]!==w||e[78]!==q||e[79]!==C||e[80]!==R?(N=[p,K,w,q,C,$,D,U,R,A],e[76]=p,e[77]=w,e[78]=q,e[79]=C,e[80]=R,e[81]=N):N=e[81];let O;e[82]!==t.tenants||e[83]!==b||e[84]!==j||e[85]!==N?(O=s.jsx(fe,{rows:t.tenants,rowKey:Me,empty:H,hoverKey:Pe,onRowClick:b,keyboardNav:j,columns:N}),e[82]=t.tenants,e[83]=b,e[84]=j,e[85]=N,e[86]=O):O=e[86];let J;return e[87]!==x||e[88]!==v||e[89]!==O?(J=s.jsx(_e,{title:"Tenants",children:s.jsxs(ue,{children:[L,x,v,O]})}),e[87]=x,e[88]=v,e[89]=O,e[90]=J):J=e[90],J}function we(t){return pe(t.last_seen_at)}function Se(t){return a(t.users)}function qe(t){return a(t.exceptions)}function Te(t){return s.jsx("span",{className:t.failed_jobs?"text-destructive":"",children:a(t.failed_jobs)})}function Ce(t){return a(t.jobs)}function Ee(t){return s.jsx("span",{className:"font-semibold",children:je(t.p95)})}function Re(t){return s.jsx("span",{className:t.errors?"text-destructive":"",children:a(t.errors)})}function Ne(t){return a(t.requests)}function Oe(t){return s.jsx(ve,{data:t.sparkline,hoverKey:t.tenant})}function Pe(t){return t.tenant}function Me(t){return t.tenant}export{Ve as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Q as te,c as ae,u as le,j as r,d as re,L as ie}from"./inertia-
|
|
1
|
+
import{Q as te,c as ae,u as le,j as r,d as re,L as ie}from"./inertia-DfNRARuA.js";import{C as oe}from"./chart-panel-BPaYRXJB.js";import{D as ne}from"./data-table-CQ_YRWQs.js";import{E as me,aa as ue}from"./app-layout-by7G3sa1.js";import{E as ce,P as fe}from"./env-layout-CdMWbUkm.js";import{b as he}from"./series-chart-BaiDG795.js";import{S as Y,a as de}from"./stat-DT2hhsqS.js";import{c as a,w as ye,m as _e}from"./format-B9SDkrWj.js";import{rate as Z,crashFreeTone as se}from"./release-health-BV5OaOWd.js";import"./chart-hover-DdK4E-2h.js";import"./use-live-CLZZj245.js";import"./segmented-DB4zh-Am.js";import"./chart-Cov79YC5.js";import"./arrow-up-DCZ7emux.js";function xe(s,e,K,q){const F=String(te(s,e,K,q)),[H,u]=F.split("?");return`${H.replace(/\./g,"%2E")}${u?`?${u}`:""}`}function Ke(s){const e=ae.c(98),{environment:K,window:q}=le().props,F=K.application_id,H=K.id;let u;e[0]!==F||e[1]!==H||e[2]!==q?(u=t=>xe(F,H,t.deploy,{window:q}),e[0]=F,e[1]=H,e[2]=q,e[3]=u):u=e[3];const l=u;let c,f,h,i,d,y,_,x,k,o,v,n;if(e[4]!==s.series||e[5]!==s.summary.crash_free_sessions||e[6]!==s.summary.crash_free_users||e[7]!==s.summary.releases||e[8]!==s.summary.sessions||e[9]!==s.summary.users){const t=s.series.reduce(Ce,{ok:0,errored:0,crashed:0});f=ce,v="Releases",e[22]===Symbol.for("react.memo_cache_sentinel")?(n=r.jsx(fe,{title:"Releases",description:"Sessions per deploy, and how many of them ended without a crash. A release is the deploy stamped on every record the gem ships."}),e[22]=n):n=e[22];let m;e[23]!==s.summary.crash_free_sessions?(m=Z(s.summary.crash_free_sessions),e[23]=s.summary.crash_free_sessions,e[24]=m):m=e[24];let N;e[25]!==s.summary.crash_free_sessions?(N=se(s.summary.crash_free_sessions),e[25]=s.summary.crash_free_sessions,e[26]=N):N=e[26];let P;e[27]!==m||e[28]!==N?(P=r.jsx(Y,{label:"Crash-free sessions",value:m,tone:N}),e[27]=m,e[28]=N,e[29]=P):P=e[29];let T;e[30]!==s.summary.crash_free_users?(T=Z(s.summary.crash_free_users),e[30]=s.summary.crash_free_users,e[31]=T):T=e[31];let $;e[32]!==s.summary.crash_free_users?($=se(s.summary.crash_free_users),e[32]=s.summary.crash_free_users,e[33]=$):$=e[33];let A;e[34]!==T||e[35]!==$?(A=r.jsx(Y,{label:"Crash-free users",value:T,tone:$}),e[34]=T,e[35]=$,e[36]=A):A=e[36];let D;e[37]!==s.summary.sessions?(D=a(s.summary.sessions),e[37]=s.summary.sessions,e[38]=D):D=e[38];let X;e[39]!==s.summary.users?(X=a(s.summary.users),e[39]=s.summary.users,e[40]=X):X=e[40];const ee=`${X} users`;let O;e[41]!==D||e[42]!==ee?(O=r.jsx(Y,{label:"Sessions",value:D,hint:ee}),e[41]=D,e[42]=ee,e[43]=O):O=e[43];let L;e[44]!==s.summary.releases?(L=a(s.summary.releases),e[44]=s.summary.releases,e[45]=L):L=e[45];let M;e[46]!==L?(M=r.jsx(Y,{label:"Active releases",value:L}),e[46]=L,e[47]=M):M=e[47],e[48]!==P||e[49]!==A||e[50]!==O||e[51]!==M?(i=r.jsxs(de,{children:[P,A,O,M]}),e[48]=P,e[49]=A,e[50]=O,e[51]=M,e[52]=i):i=e[52],c=oe,k="Sessions by status",e[53]!==s.summary.sessions?(o=a(s.summary.sessions),e[53]=s.summary.sessions,e[54]=o):o=e[54],_={key:"ok",label:"ok",value:a(t.ok),color:"var(--ok)"},x={key:"errored",label:"errored",value:a(t.errored),color:"var(--warning)"},h="crashed",d="crashed",y=a(t.crashed),e[4]=s.series,e[5]=s.summary.crash_free_sessions,e[6]=s.summary.crash_free_users,e[7]=s.summary.releases,e[8]=s.summary.sessions,e[9]=s.summary.users,e[10]=c,e[11]=f,e[12]=h,e[13]=i,e[14]=d,e[15]=y,e[16]=_,e[17]=x,e[18]=k,e[19]=o,e[20]=v,e[21]=n}else c=e[10],f=e[11],h=e[12],i=e[13],d=e[14],y=e[15],_=e[16],x=e[17],k=e[18],o=e[19],v=e[20],n=e[21];let b;e[55]!==h||e[56]!==d||e[57]!==y?(b={key:h,label:d,value:y,color:"var(--danger)"},e[55]=h,e[56]=d,e[57]=y,e[58]=b):b=e[58];let g;e[59]!==b||e[60]!==_||e[61]!==x?(g=[_,x,b],e[59]=b,e[60]=_,e[61]=x,e[62]=g):g=e[62];let w;e[63]!==s.series?(w=r.jsx(he,{data:s.series}),e[63]=s.series,e[64]=w):w=e[64];let p;e[65]!==c||e[66]!==g||e[67]!==w||e[68]!==k||e[69]!==o?(p=r.jsx(c,{label:k,value:o,legend:g,children:w}),e[65]=c,e[66]=g,e[67]=w,e[68]=k,e[69]=o,e[70]=p):p=e[70];let Q;e[71]===Symbol.for("react.memo_cache_sentinel")?(Q=r.jsx(me,{icon:ue,title:"No releases in this window",description:"A release appears once a deploy is recorded and the app reports sessions for it."}),e[71]=Q):Q=e[71];let j,S;e[72]!==l?(j=t=>re.visit(l(t)),S={onOpen:(t,m)=>m?.newTab?globalThis.window.open(l(t),"_blank"):re.visit(l(t))},e[72]=l,e[73]=j,e[74]=S):(j=e[73],S=e[74]);let C;e[75]!==l?(C={key:"ref",header:"Release",cell:t=>r.jsx(ie,{className:"font-mono text-xs hover:underline",href:l(t),children:t.ref})},e[75]=l,e[76]=C):C=e[76];let z,B,G,I,J,U,V;e[77]===Symbol.for("react.memo_cache_sentinel")?(z={key:"at",header:"Deployed",cell:je},B={key:"adoption",header:"Adoption",align:"right",cell:pe},G={key:"sessions",header:"Sessions",align:"right",cell:we},I={key:"cfs",header:"Crash-free sessions",align:"right",cell:ge},J={key:"cfu",hideOnMobile:!0,header:"Crash-free users",align:"right",cell:be},U={key:"issues",hideOnMobile:!0,header:"New issues",align:"right",cell:ve},V={key:"duration",hideOnMobile:!0,header:"Duration",align:"right",cell:ke},e[77]=z,e[78]=B,e[79]=G,e[80]=I,e[81]=J,e[82]=U,e[83]=V):(z=e[77],B=e[78],G=e[79],I=e[80],J=e[81],U=e[82],V=e[83]);let E;e[84]!==C?(E=[C,z,B,G,I,J,U,V],e[84]=C,e[85]=E):E=e[85];let R;e[86]!==s.releases||e[87]!==j||e[88]!==S||e[89]!==E?(R=r.jsx(ne,{rows:s.releases,rowKey:Se,empty:Q,onRowClick:j,keyboardNav:S,columns:E}),e[86]=s.releases,e[87]=j,e[88]=S,e[89]=E,e[90]=R):R=e[90];let W;return e[91]!==f||e[92]!==i||e[93]!==p||e[94]!==R||e[95]!==v||e[96]!==n?(W=r.jsxs(f,{title:v,children:[n,i,p,R]}),e[91]=f,e[92]=i,e[93]=p,e[94]=R,e[95]=v,e[96]=n,e[97]=W):W=e[97],W}function ke(s){return _e(s.avg_duration_ms)}function ve(s){return r.jsx("span",{className:s.new_issues?"text-destructive":"",children:a(s.new_issues)})}function be(s){return Z(s.crash_free_users)}function ge(s){return r.jsx("span",{className:se(s.crash_free_sessions)==="destructive"?"text-destructive font-semibold":"font-semibold",children:Z(s.crash_free_sessions)})}function we(s){return a(s.sessions)}function pe(s){return`${s.adoption}%`}function je(s){return r.jsx("span",{className:"text-xs",children:ye(s.deployed_at)})}function Se(s){return s.deploy}function Ce(s,e){return{ok:s.ok+e.ok,errored:s.errored+e.errored,crashed:s.crashed+e.crashed}}export{Ke as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as _,u as x,j as r,d as k,g as b}from"./inertia-
|
|
1
|
+
import{c as _,u as x,j as r,d as k,g as b}from"./inertia-DfNRARuA.js";import{V as v}from"./chart-panel-BPaYRXJB.js";import{D as j}from"./data-table-CQ_YRWQs.js";import{E as S,L as C}from"./app-layout-by7G3sa1.js";import{F as E}from"./filter-bar-CrzpQ_vD.js";import{P as w,E as M}from"./env-layout-CdMWbUkm.js";import{S as O}from"./sparkline-cell-B47ipscB.js";import{c as f,m as P}from"./format-B9SDkrWj.js";import"./series-chart-BaiDG795.js";import"./chart-hover-DdK4E-2h.js";import"./chart-Cov79YC5.js";import"./use-live-CLZZj245.js";import"./segmented-DB4zh-Am.js";function Y(t){const e=_.c(19),{environment:y,window:p}=x().props,d=y.application_id,u=y.id;let o;e[0]===Symbol.for("react.memo_cache_sentinel")?(o=r.jsx(w,{title:"Cache",description:"Rails.cache reads, writes, and hit rates by key shape (ids collapsed)."}),e[0]=o):o=e[0];let i;e[1]!==t.series?(i=r.jsx(v,{legend:"cache",label:"Cache ops",seriesLabel:"Cache ops",data:t.series}),e[1]=t.series,e[2]=i):i=e[2];let l;e[3]===Symbol.for("react.memo_cache_sentinel")?(l=[{key:"store",label:"Store"}],e[3]=l):l=e[3];let s;e[4]!==d||e[5]!==u||e[6]!==p?(s=g=>k.visit(b(d,u,{window:p,q:g||void 0}),{preserveState:!0}),e[4]=d,e[5]=u,e[6]=p,e[7]=s):s=e[7];let a;e[8]!==t.q||e[9]!==s?(a=r.jsx(E,{value:t.q,fields:l,onChange:s,placeholder:"store:MemoryStore"}),e[8]=t.q,e[9]=s,e[10]=a):a=e[10];let c,m;e[11]===Symbol.for("react.memo_cache_sentinel")?(c=r.jsx(S,{icon:C,title:"No cache activity in this window",description:"Cache reads and writes instrumented by the gem appear here."}),m=[{key:"k",header:"Store · key",cell:F},{key:"trend",hideOnMobile:!0,header:"Trend",cell:D},{key:"n",header:"Ops",align:"right",cell:R},{key:"h",header:"Hits",align:"right",cell:N},{key:"m",hideOnMobile:!0,header:"Misses",align:"right",cell:H},{key:"r",hideOnMobile:!0,header:"Hit rate",align:"right",cell:L},{key:"avg",hideOnMobile:!0,header:"Avg",align:"right",cell:q}],e[11]=c,e[12]=m):(c=e[11],m=e[12]);let n;e[13]!==t.keys?(n=r.jsx(j,{rows:t.keys,rowKey:T,empty:c,columns:m}),e[13]=t.keys,e[14]=n):n=e[14];let h;return e[15]!==i||e[16]!==a||e[17]!==n?(h=r.jsxs(M,{title:"Cache",children:[o,i,a,n]}),e[15]=i,e[16]=a,e[17]=n,e[18]=h):h=e[18],h}function q(t){return P(t.avg,3)}function L(t){return t.hit_rate==null?"–":r.jsxs("span",{className:t.hit_rate<50?"text-amber-600":"",children:[t.hit_rate,"%"]})}function H(t){return f(t.misses)}function N(t){return f(t.hits)}function R(t){return f(t.count)}function D(t){return r.jsx(O,{data:t.sparkline})}function F(t){return r.jsx("span",{className:"font-mono text-xs",children:t.key})}function T(t){return t.group_hash}export{Y as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as w,u as v,j as n,h as E,d as b}from"./inertia-
|
|
1
|
+
import{c as w,u as v,j as n,h as E,d as b}from"./inertia-DfNRARuA.js";import{D as k}from"./data-table-CQ_YRWQs.js";import{E as N,T as S}from"./app-layout-by7G3sa1.js";import{P as C,E as M}from"./env-layout-CdMWbUkm.js";import{S as O}from"./status-badge-CmbRKlY7.js";import{c as R,m as y,w as P}from"./format-B9SDkrWj.js";import"./chart-hover-DdK4E-2h.js";import"./use-live-CLZZj245.js";import"./segmented-DB4zh-Am.js";function te(t){const e=w.c(20),{environment:g}=v().props,x=g.application_id,_=g.id;let m;e[0]!==x||e[1]!==_?(m=a=>E(x,_,a.execution_id),e[0]=x,e[1]=_,e[2]=m):m=e[2];const l=m;let c;e[3]===Symbol.for("react.memo_cache_sentinel")?(c=n.jsx(C,{title:"Commands",description:"Rake tasks and rails runner executions."}),e[3]=c):c=e[3];let u,d;e[4]===Symbol.for("react.memo_cache_sentinel")?(u=n.jsx(N,{icon:S,title:"No commands ran in this window",description:"rails runner and console executions reported by the gem appear here."}),d=[{key:"n",header:"Command",cell:F},{key:"c",header:"Runs",align:"right",cell:q},{key:"f",hideOnMobile:!0,header:"Non-zero exit",align:"right",cell:$},{key:"avg",hideOnMobile:!0,header:"Avg",align:"right",cell:W},{key:"max",hideOnMobile:!0,header:"Max",align:"right",cell:L}],e[4]=u,e[5]=d):(u=e[4],d=e[5]);let r;e[6]!==t.commands?(r=n.jsx(k,{rows:t.commands,rowKey:G,empty:u,columns:d}),e[6]=t.commands,e[7]=r):r=e[7];let p;e[8]===Symbol.for("react.memo_cache_sentinel")?(p=n.jsx("h2",{className:"text-sm font-semibold",children:"Recent runs"}),e[8]=p):p=e[8];let o,s;e[9]!==l?(o=a=>b.visit(l(a)),s={onOpen:(a,j)=>j?.newTab?window.open(l(a),"_blank"):b.visit(l(a))},e[9]=l,e[10]=o,e[11]=s):(o=e[10],s=e[11]);let h;e[12]===Symbol.for("react.memo_cache_sentinel")?(h=[{key:"when",header:"When",cell:A},{key:"n",header:"Command",cell:z},{key:"x",hideOnMobile:!0,header:"Exit",cell:K},{key:"d",header:"Duration",align:"right",cell:H},{key:"s",hideOnMobile:!0,header:"Server",cell:D},{key:"ex",hideOnMobile:!0,header:"Exception",cell:T}],e[12]=h):h=e[12];let i;e[13]!==t.runs||e[14]!==o||e[15]!==s?(i=n.jsx(k,{rows:t.runs,rowKey:B,onRowClick:o,keyboardNav:s,columns:h}),e[13]=t.runs,e[14]=o,e[15]=s,e[16]=i):i=e[16];let f;return e[17]!==r||e[18]!==i?(f=n.jsxs(M,{title:"Commands",children:[c,r,p,i]}),e[17]=r,e[18]=i,e[19]=f):f=e[19],f}function T(t){return n.jsx("span",{className:"text-destructive line-clamp-1 text-xs",children:t.exception_preview??""})}function D(t){return n.jsx("span",{className:"font-mono text-xs",children:t.server})}function H(t){return y(t.duration)}function K(t){return n.jsx(O,{label:String(t.status??"?"),outcome:t.status?"failed":"processed"})}function z(t){return n.jsx("span",{className:"font-mono text-xs",children:t.name})}function A(t){return n.jsx("span",{className:"text-xs",children:P(t.occurred_at)})}function B(t){return t.execution_id}function L(t){return y(t.max)}function W(t){return y(t.avg)}function $(t){return t.errors}function q(t){return R(t.count)}function F(t){return n.jsx("span",{className:"font-mono text-xs",children:t.name})}function G(t){return t.group_hash}export{te as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as M,u as A,j as n,f as K,d as P,L as R}from"./inertia-
|
|
1
|
+
import{c as M,u as A,j as n,f as K,d as P,L as R}from"./inertia-DfNRARuA.js";import{D as S}from"./data-table-CQ_YRWQs.js";import{E as B,c as E,B as $}from"./app-layout-by7G3sa1.js";import{P as D,E as L}from"./env-layout-CdMWbUkm.js";import{c as T,b as O,m as C,w as H}from"./format-B9SDkrWj.js";import"./chart-hover-DdK4E-2h.js";import"./use-live-CLZZj245.js";import"./segmented-DB4zh-Am.js";function oe(t){const e=M.c(26),{environment:N}=A().props,j=N.application_id,w=N.id;let c;e[0]!==j||e[1]!==w?(c=a=>a.execution_id?K(j,w,a.execution_id):null,e[0]=j,e[1]=w,e[2]=c):c=e[2];const s=c;let m;e[3]===Symbol.for("react.memo_cache_sentinel")?(m=n.jsx(D,{title:"Broadcasts",description:"Action Cable broadcasts, transmits, and channel actions (covers inertia_cable and Turbo Streams)."}),e[3]=m):m=e[3];let d,u;e[4]===Symbol.for("react.memo_cache_sentinel")?(d=n.jsx(B,{icon:E,title:"No broadcasts in this window",description:"Action Cable broadcasts appear here as your app sends them."}),u=[{key:"k",header:"Kind",cell:X},{key:"n",header:"Stream / channel",cell:V},{key:"c",hideOnMobile:!0,header:"Count",align:"right",cell:U},{key:"b",hideOnMobile:!0,header:"Bytes",align:"right",cell:Q},{key:"avg",hideOnMobile:!0,header:"Avg",align:"right",cell:J}],e[4]=d,e[5]=u):(d=e[4],u=e[5]);let r;e[6]!==t.streams?(r=n.jsx(S,{rows:t.streams,rowKey:Y,empty:d,columns:u}),e[6]=t.streams,e[7]=r):r=e[7];let h;e[8]===Symbol.for("react.memo_cache_sentinel")?(h=n.jsx("h2",{className:"text-sm font-semibold",children:"Recent"}),e[8]=h):h=e[8];let f;e[9]===Symbol.for("react.memo_cache_sentinel")?(f=n.jsx(B,{icon:E,title:"No broadcasts in this window",description:"Action Cable broadcasts appear here as your app sends them."}),e[9]=f):f=e[9];let i;e[10]!==s?(i={onOpen:(a,g)=>{const v=s(a);v&&(g?.newTab?window.open(v,"_blank"):P.visit(v))}},e[10]=s,e[11]=i):i=e[11];let p,b,x,y,_;e[12]===Symbol.for("react.memo_cache_sentinel")?(y={key:"when",header:"When",cell:F},_={key:"k",header:"Kind",cell:z},p={key:"s",header:"Stream / channel",cell:W},b={key:"b",hideOnMobile:!0,header:"Bytes",align:"right",cell:I},x={key:"d",header:"Duration",align:"right",cell:q},e[12]=p,e[13]=b,e[14]=x,e[15]=y,e[16]=_):(p=e[12],b=e[13],x=e[14],y=e[15],_=e[16]);let o;e[17]!==s?(o=[y,_,p,b,x,{key:"in",hideOnMobile:!0,header:"In",cell:a=>{const g=s(a);return g?n.jsx(R,{className:"font-mono text-xs hover:underline",href:g,children:a.execution_preview}):null}}],e[17]=s,e[18]=o):o=e[18];let l;e[19]!==t.recent||e[20]!==o||e[21]!==i?(l=n.jsx(S,{rows:t.recent,rowKey:G,empty:f,keyboardNav:i,columns:o}),e[19]=t.recent,e[20]=o,e[21]=i,e[22]=l):l=e[22];let k;return e[23]!==l||e[24]!==r?(k=n.jsxs(L,{title:"Broadcasts",children:[m,r,h,l]}),e[23]=l,e[24]=r,e[25]=k):k=e[25],k}function q(t){return C(t.duration,3)}function I(t){return O(t.bytes)}function W(t){return n.jsxs("span",{className:"font-mono text-xs",children:[t.stream??t.channel,t.action?`#${t.action}`:""]})}function z(t){return t.failed?n.jsxs("span",{className:"flex items-center gap-1.5",children:[t.kind,n.jsx($,{variant:"destructive",children:"failed"})]}):t.kind}function F(t){return n.jsx("span",{className:"text-xs",children:H(t.occurred_at)})}function G(t){return t.id}function J(t){return C(t.avg,3)}function Q(t){return O(t.bytes)}function U(t){return T(t.count)}function V(t){return n.jsx("span",{className:"font-mono text-xs",children:t.name})}function X(t){return t.kind}function Y(t){return`${t.group_hash}-${t.kind}`}export{oe as default};
|