UNPKG

unleash-server

Version:

Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.

1 lines 2.83 kB
import{n as e,s as t,t as n}from"./jsx-runtime-ButemYzH.js";import{_ as r,a as i,d as a,f as o,g as s,h as c,l,o as u,u as d}from"./chart-BMc0j_v5.js";import{$l as f,Ad as p,Cd as m,Mt as h,Us as g,Xs as _,ct as v,id as y,yc as b}from"./index-B0RbDPtk.js";import{t as x}from"./unknownify-D1gvOkgV.js";import{n as S,t as C}from"./NetworkPrometheusAPIWarning-DxrGyF-4.js";var w=t(e(),1),T=n(),E=[`circle`,`rect`,`rectRounded`,`rectRot`,`triangle`],D=(e,t)=>e.map(e=>({x:e[0],y:t(e[1])})),O=(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:e=>b(1e3*e[0].parsed.x,t.locale)},itemSort:(e,t)=>t.parsed.y-e.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:(e,n,r)=>b(r[n].value*1e3,t.locale)}}}}),k=class{items;picked=new Map;constructor(e){this.items=new v(e)}pick(e){return this.picked.has(e)||this.picked.set(e,this.items.next()),this.picked.get(e)}},A=(e,t)=>{if(t?.data?.result){let n=new k([e.palette.success,e.palette.error,e.palette.primary,e.palette.warning]);return t.data.result.map((e,t)=>{let r=x(e.metric?.endpoint),i=x(e.metric?.appName),a=n.pick(r),o=e.values||[];return{label:`${r}: ${i}`,borderColor:a.main,backgroundColor:a.main,data:D(o,e=>Number.parseFloat(e)),elements:{point:{radius:4,pointStyle:E[t%E.length]},line:{borderDash:[8,4]}}}})}return[]},j=()=>{let{locationSettings:e}=_(),{metrics:t}=S(),n=m(),r=(0,w.useMemo)(()=>O(n,e),[n,e]);g(`Network - Traffic`);let i=(0,w.useMemo)(()=>({datasets:A(n,t)}),[n,t,e]);return(0,T.jsx)(f,{condition:i.datasets.length===0,show:(0,T.jsxs)(y,{severity:`warning`,children:[`No data available.`,(0,T.jsx)(C,{})]}),elseShow:(0,T.jsx)(p,{sx:{display:`grid`,gap:4},children:(0,T.jsx)(`div`,{style:{height:400},children:(0,T.jsx)(h,{data:i,options:r,"aria-label":`An instance metrics line chart with two lines: requests per second for admin API and requests per second for client API`})})})})};u.register(i,d,a,l,o,c,r,s);export{j as NetworkTraffic,j as default};