unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
2 lines (1 loc) • 2.99 kB
JavaScript
var f=Object.defineProperty;var h=(e,t,a)=>t in e?f(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a;var s=(e,t,a)=>h(e,typeof t!="symbol"?t+"":t,a);import{bp as C,b as w,r as p,cy as v,j as o,C as P,cQ as S,dq as j,Q as N,k$ as u,lw as I,dr as A,ds as M,dt as R,du as T,dv as q,lk as E,l5 as L,l4 as _,l3 as D}from"./index-Cikp5fMR.js";import{u as W,N as $}from"./NetworkPrometheusAPIWarning-qXY7ao0F.js";import{u as g}from"./unknownify-B7hmSXnj.js";const m=["circle","rect","rectRounded","rectRot","triangle"],H=(e,t)=>e.map(a=>({x:a[0],y:t(a[1])})),Q=(e,t)=>({locale:t.locale,responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},color:e.palette.text.secondary,plugins:{tooltip:{backgroundColor:e.palette.background.paper,bodyColor:e.palette.text.primary,titleColor:e.palette.action.active,borderColor:e.palette.primary.main,borderWidth:1,padding:10,boxPadding:5,usePointStyle:!0,callbacks:{title:a=>u(1e3*a[0].parsed.x,t.locale)},itemSort:(a,i)=>i.parsed.y-a.parsed.y},legend:{position:"bottom",align:"start",labels:{boxWidth:10,boxHeight:10,usePointStyle:!0,padding:24}},title:{text:"Top 10 requests per second in the last 6 hours",position:"top",align:"start",display:!0,font:{size:16,weight:"400"},color:e.palette.text.primary,padding:{bottom:32}}},scales:{y:{type:"linear",title:{display:!0,text:"Requests per second",color:e.palette.text.secondary},suggestedMin:0,ticks:{precision:0,color:e.palette.text.secondary},grid:{color:e.palette.divider,borderColor:e.palette.divider}},x:{type:"time",time:{unit:"minute"},grid:{display:!0,color:e.palette.divider,borderColor:e.palette.divider},ticks:{callback:(a,i,r)=>u(r[i].value*1e3,t.locale)}}}});class z{constructor(t){s(this,"items");s(this,"picked",new Map);this.items=new I(t)}pick(t){return this.picked.has(t)||this.picked.set(t,this.items.next()),this.picked.get(t)}}const B=(e,t)=>{var a;if((a=t==null?void 0:t.data)!=null&&a.result){const i=new z([e.palette.success,e.palette.error,e.palette.primary,e.palette.warning]);return t.data.result.map((r,x)=>{var c,d;const n=g((c=r.metric)==null?void 0:c.endpoint),y=g((d=r.metric)==null?void 0:d.appName),l=i.pick(n),b=r.values||[];return{label:`${n}: ${y}`,borderColor:l.main,backgroundColor:l.main,data:H(b,k=>Number.parseFloat(k)),elements:{point:{radius:4,pointStyle:m[x%m.length]},line:{borderDash:[8,4]}}}})}return[]},K=()=>{const{locationSettings:e}=C(),{metrics:t}=W(),a=w(),i=p.useMemo(()=>Q(a,e),[a,e]);v("Network - Traffic");const r=p.useMemo(()=>({datasets:B(a,t)}),[a,t,e]);return o.jsx(P,{condition:r.datasets.length===0,show:o.jsxs(N,{severity:"warning",children:["No data available.",o.jsx($,{})]}),elseShow:o.jsx(S,{sx:{display:"grid",gap:4},children:o.jsx("div",{style:{height:400},children:o.jsx(j,{data:r,options:i,"aria-label":"An instance metrics line chart with two lines: requests per second for admin API and requests per second for client API"})})})})};A.register(M,R,T,q,E,L,_,D);export{K as NetworkTraffic,K as default};