⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.72
Server IP:
41.128.143.86
Server:
Linux host.raqmix.cloud 6.8.0-1025-azure #30~22.04.1-Ubuntu SMP Wed Mar 12 15:28:20 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
8.3.23
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
proc
/
self
/
root
/
usr
/
share
/
grafana
/
public
/
build
/
View File Name :
zipkinPlugin.70f0f24b6d0b6e673ccb.js
"use strict";(self.webpackChunkgrafana=self.webpackChunkgrafana||[]).push([[2963],{33309:(Y,S,e)=>{e.d(S,{m:()=>R});var f=e(32196),c=e(96540),r=e(22391),W=e(29020),N=e(35931),G=e(40845),J=e(39268),C=e(14186),A=e(15292);function L({options:d,onOptionsChange:E}){const I=(0,G.of)(U);return c.createElement("div",{className:I.container},c.createElement(J.C,{className:I.row},c.createElement(C.I,{tooltip:"Displays the node graph above the trace view. Default: disabled",label:"Enable node graph",labelWidth:26},c.createElement(A.K,{id:"enableNodeGraph",value:d.jsonData.nodeGraph?.enabled,onChange:Q=>(0,r.lO)({onOptionsChange:E,options:d},"nodeGraph",{...d.jsonData.nodeGraph,enabled:Q.currentTarget.checked})}))))}const R=({options:d,onOptionsChange:E})=>{let I=d.type;return I+=d.type==="tempo"?"/configure-tempo-data-source/#node-graph":"/#node-graph",c.createElement(W.I,{title:"Node graph",description:c.createElement(N.H,{description:"Show or hide the node graph visualization.",suffix:I,feature:"the node graph"})},c.createElement(L,{options:d,onOptionsChange:E}))},U=d=>({infoText:(0,f.css)({label:"infoText",paddingBottom:d.spacing(2),color:d.colors.text.secondary}),container:(0,f.css)({label:"container",width:"100%"}),row:(0,f.css)({label:"row",alignItems:"baseline"})})},90057:(Y,S,e)=>{e.d(S,{$:()=>Q});var f=e(32196),c=e(96540),r=e(22391),W=e(91062),N=e(35931),G=e(55882),J=e(40845),C=e(39268),A=e(14186),L=e(55852),R=e(10354),U=e(20323),d=e(63009),E=e(43549);function I({options:l,onOptionsChange:m}){const F=(0,J.of)(Z);return c.createElement("div",{className:(0,f.css)({width:"100%"})},c.createElement(C.C,{className:F.row},c.createElement(A.I,{tooltip:"The Prometheus data source the trace is going to navigate to",label:"Data source",labelWidth:26},c.createElement(G.s,{inputId:"trace-to-metrics-data-source-picker",pluginId:"prometheus",current:l.jsonData.tracesToMetrics?.datasourceUid,noDefault:!0,width:40,onChange:v=>(0,r.lO)({onOptionsChange:m,options:l},"tracesToMetrics",{...l.jsonData.tracesToMetrics,datasourceUid:v.uid})})),l.jsonData.tracesToMetrics?.datasourceUid?c.createElement(L.$n,{type:"button",variant:"secondary",size:"sm",fill:"text",onClick:()=>{(0,r.lO)({onOptionsChange:m,options:l},"tracesToMetrics",{...l.jsonData.tracesToMetrics,datasourceUid:void 0})}},"Clear"):null),c.createElement(C.C,null,c.createElement(U.e,{label:(0,E.cJ)("start"),tooltip:(0,E.XX)("start","-2m"),value:l.jsonData.tracesToMetrics?.spanStartTimeShift||"",onChange:v=>{(0,r.lO)({onOptionsChange:m,options:l},"tracesToMetrics",{...l.jsonData.tracesToMetrics,spanStartTimeShift:v})},placeholder:"-2m",isInvalidError:E.FJ})),c.createElement(C.C,null,c.createElement(U.e,{label:(0,E.cJ)("end"),tooltip:(0,E.XX)("end","2m"),value:l.jsonData.tracesToMetrics?.spanEndTimeShift||"",onChange:v=>{(0,r.lO)({onOptionsChange:m,options:l},"tracesToMetrics",{...l.jsonData.tracesToMetrics,spanEndTimeShift:v})},placeholder:"2m",isInvalidError:E.FJ})),c.createElement(C.C,null,c.createElement(A.I,{tooltip:"Tags that will be used in the metrics query",label:"Tags",labelWidth:26},c.createElement(d.l,{values:l.jsonData.tracesToMetrics?.tags??[],onChange:v=>(0,r.lO)({onOptionsChange:m,options:l},"tracesToMetrics",{...l.jsonData.tracesToMetrics,tags:v})}))),l.jsonData.tracesToMetrics?.queries?.map((v,K)=>c.createElement("div",{key:K,className:F.queryRow},c.createElement(A.I,{label:"Link Label",labelWidth:26,tooltip:"Descriptive label for the linked query"},c.createElement(R.p,{label:"Link Label",type:"text",allowFullScreen:!0,value:v.name,width:40,onChange:B=>{const x=(l.jsonData.tracesToMetrics?.queries??[]).map((O,z)=>z===K?{...O,name:B.currentTarget.value}:O);(0,r.lO)({onOptionsChange:m,options:l},"tracesToMetrics",{...l.jsonData.tracesToMetrics,queries:x})}})),c.createElement(A.I,{label:"Query",labelWidth:10,tooltip:"The Prometheus query that will run when navigating from a trace to metrics. Interpolate tags using the `$__tags` keyword",grow:!0},c.createElement(R.p,{label:"Query",type:"text",allowFullScreen:!0,value:v.query,onChange:B=>{const x=(l.jsonData.tracesToMetrics?.queries??[]).map((O,z)=>z===K?{...O,query:B.currentTarget.value}:O);(0,r.lO)({onOptionsChange:m,options:l},"tracesToMetrics",{...l.jsonData.tracesToMetrics,queries:x})}})),c.createElement(L.$n,{variant:"destructive",title:"Remove query",icon:"times",type:"button",onClick:()=>{const B=l.jsonData.tracesToMetrics?.queries.filter((x,O)=>O!==K);(0,r.lO)({onOptionsChange:m,options:l},"tracesToMetrics",{...l.jsonData.tracesToMetrics,queries:B})}}))),c.createElement(L.$n,{variant:"secondary",title:"Add query",icon:"plus",type:"button",onClick:()=>{(0,r.lO)({onOptionsChange:m,options:l},"tracesToMetrics",{...l.jsonData.tracesToMetrics,queries:[...l.jsonData.tracesToMetrics?.queries??[],{query:""}]})}},"Add query"))}const Q=({options:l,onOptionsChange:m})=>{let F=l.type;return F+=l.type==="tempo"?"/configure-tempo-data-source/#trace-to-metrics":"/#trace-to-metrics",c.createElement(W.A,{title:"Trace to metrics",description:c.createElement(N.H,{description:"Navigate from a trace span to the selected data source's metrics.",suffix:F,feature:"trace to metrics"}),isCollapsible:!0,isInitiallyOpen:!0},c.createElement(I,{options:l,onOptionsChange:m}))},Z=l=>({infoText:{paddingBottom:l.spacing(2),color:l.colors.text.secondary},row:(0,f.css)({label:"row",alignItems:"baseline"}),queryRow:(0,f.css)({label:"queryRow",display:"flex",flexFlow:"wrap"})})},95616:(Y,S,e)=>{e.r(S),e.d(S,{plugin:()=>Oe});var f=e(40187),c=e(32196),r=e(96540),W=e(68704),N=e(91062),G=e(43549),J=e(90057),C=e(33309),A=e(61653),L=e(32264),R=e(40845),U=e(25994),d=e(91409),E=e(67061);const I=({options:a,onOptionsChange:t})=>{const n=(0,R.of)(Q);return r.createElement("div",{className:n.container},r.createElement(W.I,{dataSourceName:"Zipkin",docsLink:"https://grafana.com/docs/grafana/latest/datasources/zipkin",hasRequiredFields:!1}),r.createElement(U.c,{spacing:4}),r.createElement(d.t,{defaultUrl:"http://localhost:9411",dataSourceConfig:a,showAccessOptions:!1,onChange:t,secureSocksDSProxyEnabled:L.$.secureSocksDSProxyEnabled}),r.createElement(G.T0,{options:a,onOptionsChange:t}),r.createElement(U.c,{spacing:4}),L.$.featureToggles.traceToMetrics?r.createElement(r.Fragment,null,r.createElement(J.$,{options:a,onOptionsChange:t}),r.createElement(U.c,{spacing:4})):null,r.createElement(N.A,{title:"Additional settings",description:"Additional settings are optional settings that can be configured for more control over your data source.",isCollapsible:!0,isInitiallyOpen:!1},r.createElement(E.B,{gap:5,direction:"column"},r.createElement(C.m,{options:a,onOptionsChange:t}),r.createElement(A.NI,{options:a,onOptionsChange:t}))))},Q=a=>({container:(0,c.css)` label: container; margin-bottom: ${a.spacing(2)}; max-width: 900px; `});var Z=e(2543),l=e(41053),m=e(4392),F=e(1604),v=e(37390),K=e(37270),B=e(39268),x=e(14186),O=e(66864),z=e(94354),ee=e(55852),te=e(32012),ae=e(20084),b=e(82467),w=e(3169),k=e(99140);const V="/api/v2",re=a=>({tracesCascader:(0,c.css)({label:"tracesCascader",marginRight:a.spacing(1)})}),ne=({query:a,onChange:t,onRunQuery:n,datasource:s})=>{const[i,o]=(0,r.useState)(!1),$=se(s),D=(0,R.$j)(),u=(0,R.of)(re),{onLoadOptions:g,allOptions:T}=oe(s),h=(0,r.useCallback)((p,M)=>{if(M.length===3){const q=M[2].value;t({...a,query:q}),n()}},[t,n,a]);(0,r.useEffect)(()=>{a.queryType||t({...a,queryType:"traceID"})},[a,t]);const y=p=>{const M={...a,query:p};t(M)};let j=le($,T);return r.createElement(r.Fragment,null,r.createElement(v.a,{title:"Upload trace",isOpen:i,onDismiss:()=>o(!1)},r.createElement("div",{className:(0,c.css)({padding:D.spacing(2)})},r.createElement(K.gH,{options:{multiple:!1},onLoad:p=>{s.uploadedJson=p,t({...a,queryType:"upload"}),o(!1),n()}}))),r.createElement(B.C,null,r.createElement(x.I,{label:"Query type",grow:!0},r.createElement(O.Gy,{spacing:"sm",align:"center",justify:"space-between"},r.createElement(z.z,{options:[{value:"traceID",label:"TraceID"}],value:a.queryType||"traceID",onChange:p=>t({...a,queryType:p}),size:"md"}),r.createElement(ee.$n,{variant:"secondary",size:"sm",onClick:()=>{o(!0)}},"Import trace")))),a.queryType==="traceID"&&r.createElement(B.C,null,r.createElement(te.H,{options:j,onChange:h,loadData:g,variant:"secondary",buttonProps:{className:u.tracesCascader}},"Traces"),r.createElement("div",{className:"gf-form gf-form--grow flex-shrink-1 min-width-15"},r.createElement(ae.X,{query:a.query,onChange:y,onRunQuery:n,placeholder:"Insert Trace ID (run with Shift+Enter)",portalOrigin:"zipkin"}))))};function se(a){const t=`${V}/services`,[n,s]=(0,l.A)(async()=>{try{const i=await a.metadataRequest(t);return i?i.sort().map(o=>({label:o,value:o,isLeaf:!1})):[]}catch(i){const o=i instanceof Error?i:"An unknown error occurred";throw(0,k.JD)((0,b.dx)((0,w.gi)("Failed to load services from Zipkin",o))),i}},[a]);return(0,m.A)(()=>{s()}),n}function oe(a){const t=(0,F.A)(),[n,s]=(0,r.useState)({}),[,i]=(0,l.A)(async function(u){const g=`${V}/spans`;try{const T=await a.metadataRequest(g,{serviceName:u});t()&&s(h=>{const y=(0,Z.fromPairs)(T.map(j=>[j,void 0]));return{...h,[u]:y}})}catch(T){const h=T instanceof Error?T:"An unknown error occurred";throw(0,k.JD)((0,b.dx)((0,w.gi)("Failed to load spans from Zipkin",h))),T}},[a,n]),[,o]=(0,l.A)(async function(u,g){const T=`${V}/traces`,h={serviceName:u,spanName:g};try{const y=await a.metadataRequest(T,h);if(t()){const j=y.length?(0,Z.fromPairs)(y.map(p=>{const M=p.find(q=>!q.parentId);return[`${M.name} [${Math.floor(M.duration/1e3)} ms]`,M.traceId]})):de;s(p=>{const M=p[u];return{...p,[u]:{...M,[g]:j}}})}}catch(y){const j=y instanceof Error?y:"An unknown error occurred";throw(0,k.JD)((0,b.dx)((0,w.gi)("Failed to load spans from Zipkin",j))),y}},[a]);return{onLoadOptions:(0,r.useCallback)(D=>{const u=D[0].value;if(D.length===1)i(u);else if(D.length===2){const g=D[1].value;o(u,g)}},[i,o]),allOptions:n}}function le(a,t){return(0,r.useMemo)(()=>{let n=[];return a.value&&a.value.length?n=a.value.map(s=>({...s,children:t[s.value]&&Object.keys(t[s.value]).map(i=>({label:i,value:i,isLeaf:!1,children:t[s.value][i]&&Object.keys(t[s.value][i]).map(o=>({label:o,value:t[s.value][i][o]}))}))})):a.value&&!a.value.length&&(n=ie),n},[a,t])}const ce="__NO_TRACES__",ie=[{label:"No traces found",value:"no_traces",isLeaf:!0}],de={"[No traces in time range]":ce};var X=e(62467),ue=e(75505),me=e(81160),fe=e(76885),Ee=e(14236),ve=e(11261),ge=e(72574),Te=e(17172),P=e(25352),H=e(32528);function he(a){const{nodes:t,edges:n}=pe(a),[s,i]=(0,H.dY)();for(const o of t)s.add(o);for(const o of n)i.add(o);return[s,i]}function pe(a){const t=[],n=[],s=De(a),i=(0,H.pl)(o=>{if(!(o>=a.length))return{span:a[o],id:a[o].id,parentIds:a[o].parentId?[a[o].parentId]:[]}});for(const o of a){const $=i[o.id].children.map(T=>{const h=i[T].span;return[h.timestamp,h.timestamp+h.duration]}),D=(0,H.jP)($),u=o.duration-D,g=(0,H.GT)(o.duration/1e3,s/1e3,u/1e3);t.push({[P.u.id]:o.id,[P.u.title]:o.localEndpoint?.serviceName||o.remoteEndpoint?.serviceName||"unknown",[P.u.subTitle]:o.name,[P.u.mainStat]:g.main,[P.u.secondaryStat]:g.secondary,[P.u.color]:u/s}),o.parentId&&i[o.parentId].span&&n.push({[P.u.id]:o.parentId+"--"+o.id,[P.u.target]:o.id,[P.u.source]:o.parentId})}return{nodes:t,edges:n}}function De(a){let t=0,n=1/0;for(const s of a)s.timestamp
t&&(t=s.timestamp+s.duration);return t-n}var ye=e(54807);class Me extends f.mA{constructor(t,n=(0,ge.w)()){super(t),this.instanceSettings=t,this.templateSrv=n,this.uploadedJson=null,this.nodeGraph=t.jsonData.nodeGraph}query(t){const n=t.targets[0];if(n.queryType==="upload"){if(!this.uploadedJson)return(0,X.of)({data:[]});try{const s=JSON.parse(this.uploadedJson);return(0,X.of)(_({data:s},this.nodeGraph?.enabled))}catch{return(0,X.of)({error:{message:"JSON is not valid Zipkin format"},data:[]})}}if(n.query){const s=this.applyVariables(n,t.scopedVars);return this.request(`${V}/trace/${encodeURIComponent(s.query)}`).pipe((0,me.T)(i=>_(i,this.nodeGraph?.enabled)))}return(0,X.of)(Ie)}async metadataRequest(t,n){return(await(0,ue.s)(this.request(t,n,{hideFromInspector:!0}))).data}async testDatasource(){return await this.metadataRequest(`${V}/services`),{status:"success",message:"Data source is working"}}getQueryDisplayText(t){return t.query}interpolateVariablesInQueries(t,n){return!t||t.length===0?[]:t.map(s=>({...s,datasource:this.getRef(),...this.applyVariables(s,n)}))}applyVariables(t,n){return{...{...t},query:this.templateSrv.replace(t.query??"",n)}}request(t,n,s){const i=n?fe.kM.serializeParams(n):"",o=`${this.instanceSettings.url}${t}${i.length?`?${i}`:""}`,$={...s,url:o};return(0,Te.AI)().fetch($)}}function _(a,t=!1){let n=a?.data?[(0,ye.S)(a?.data)]:[];return t&&n.push(...he(a?.data)),{data:n}}const Ie={data:[(0,Ee.EI)({fields:[{name:"trace",type:ve.PU.trace,values:[]}],meta:{preferredVisualisationType:"trace",custom:{traceFormat:"zipkin"}}})]},Oe=new f.tD(Me).setQueryEditor(ne).setConfigEditor(I)},4392:(Y,S,e)=>{e.d(S,{A:()=>r});var f=e(94701),c=function(W){(0,f.A)(function(){W()})};const r=c}}]); //# sourceMappingURL=zipkinPlugin.70f0f24b6d0b6e673ccb.js.map