D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
share
/
grafana
/
public
/
build
/
Filename :
opentsdbPlugin.56b4eb2f1f048c3cf1ad.js
back
Copy
"use strict";(self.webpackChunkgrafana=self.webpackChunkgrafana||[]).push([[3168],{37684:(Ue,Z,u)=>{u.r(Z),u.d(Z,{plugin:()=>Ae});var q=u(68246),t=u(27702),le=u(34667),oe=u(49257),ie=u(82367),E=u(60644);const{Select:_,Input:ce}=ie.LegacyForms,Q=[{label:"<=2.1",value:1},{label:"==2.2",value:2},{label:"==2.3",value:3}],G=[{label:"second",value:1},{label:"millisecond",value:2}],me=s=>{const{onChange:e,value:a}=s,r=(0,t.useId)();return t.createElement(t.Fragment,null,t.createElement("h5",null,"OpenTSDB settings"),t.createElement("div",{className:"gf-form"},t.createElement(E.c,{width:7,htmlFor:`select-version-${r}`},"Version"),t.createElement(_,{inputId:`select-version-${r}`,options:Q,value:Q.find(n=>n.value===a.jsonData.tsdbVersion)??Q[0],onChange:ee("tsdbVersion",a,e)})),t.createElement("div",{className:"gf-form"},t.createElement(E.c,{width:7,htmlFor:`select-resolution-${r}`},"Resolution"),t.createElement(_,{inputId:`select-resolution-${r}`,options:G,value:G.find(n=>n.value===a.jsonData.tsdbResolution)??G[0],onChange:ee("tsdbResolution",a,e)})),t.createElement("div",{className:"gf-form"},t.createElement(E.c,{width:7,htmlFor:`lookup-input-${r}`},"Lookup limit"),t.createElement(ce,{id:`lookup-input-${r}`,type:"number",value:a.jsonData.lookupLimit??1e3,onChange:ge("lookupLimit",a,e)})))},ee=(s,e,a)=>r=>{a({...e,jsonData:{...e.jsonData,[s]:r.value}})},ge=(s,e,a)=>r=>{a({...e,jsonData:{...e.jsonData,[s]:r.currentTarget.value}})},ue=s=>{const{options:e,onOptionsChange:a}=s;return t.createElement(t.Fragment,null,t.createElement(oe.E,{defaultUrl:"http://localhost:4242",dataSourceConfig:e,onChange:a,secureSocksDSProxyEnabled:le.config.secureSocksDSProxyEnabled}),t.createElement(me,{value:e,onChange:a}))};var B=u(42844),de=u(48154),$=u(66310),b=u(81078),L=u(1128),F=u(28580),U=u(53901),D=u(42074);const fe=(0,B.css)({paddingRight:"4px"});function pe({query:s,onChange:e,onRunQuery:a,aggregators:r,fillPolicies:n,tsdbVersion:o}){const c=r.map(i=>(0,b.E)(i)),l=n.map(i=>(0,b.E)(i));return t.createElement("div",{className:"gf-form-inline","data-testid":te.section},t.createElement("div",{className:"gf-form"},t.createElement(E.c,{className:"query-keyword",width:8,tooltip:t.createElement("div",null,"Leave interval blank for auto or for example use ",t.createElement("code",null,"1m"))},"Down sample"),t.createElement(L.I,{width:25,className:fe,"data-testid":te.interval,placeholder:"interval",value:s.downsampleInterval??"",onChange:i=>{const m=i.currentTarget.value;e({...s,downsampleInterval:m})},onBlur:()=>a()})),t.createElement("div",{className:"gf-form"},t.createElement(E.c,{width:"auto",className:"query-keyword"},"Aggregator"),t.createElement(F.Ph,{className:"gf-form-input",value:s.downsampleAggregator?(0,b.E)(s.downsampleAggregator):void 0,options:c,onChange:({value:i})=>{i&&(e({...s,downsampleAggregator:i}),a())}})),o>=2&&t.createElement("div",{className:"gf-form"},t.createElement(U.W,{className:"width-6 query-keyword"},"Fill"),t.createElement(F.Ph,{inputId:"opentsdb-fillpolicy-select",value:s.downsampleFillPolicy?(0,b.E)(s.downsampleFillPolicy):void 0,options:l,onChange:({value:i})=>{i&&(e({...s,downsampleFillPolicy:i}),a())}})),t.createElement("div",{className:"gf-form"},t.createElement(E.c,{className:"query-keyword"},"Disable downsampling"),t.createElement(D.x,{value:s.disableDownsampling??!1,onChange:()=>{const i=s.disableDownsampling??!1;e({...s,disableDownsampling:!i}),a()}})),t.createElement("div",{className:"gf-form gf-form--grow"},t.createElement("div",{className:"gf-form-label gf-form-label--grow"})))}const te={section:"opentsdb-downsample",interval:"downsample-interval"};var he=u(56027),z=u.n(he),g=u(89949),ae=u(66670),x=u(73453);function ve({query:s,onChange:e,onRunQuery:a,suggestTagKeys:r,filterTypes:n,suggestTagValues:o}){const c=(0,$.wW)(ae.gN),[l,i]=(0,t.useState)(),[m,h]=(0,t.useState)(),[p,y]=(0,t.useState)(!1),[T,N]=(0,t.useState)("iliteral_or"),[C,V]=(0,t.useState)(""),[v,I]=(0,t.useState)(""),[P,K]=(0,t.useState)(!1),[R,H]=(0,t.useState)(""),X=n.map(d=>(0,b.E)(d));function f(){y(!p)}function O(){if(s.tags&&(0,g.size)(s.tags)>0){H("Please remove tags to use filters, tags and filters are mutually exclusive.");return}if(!p){y(!0);return}const d={type:T,tagk:C,filter:v,groupBy:P};s.filters=s.filters?s.filters.concat([d]):[d],N("literal_or"),V(""),I(""),K(!1),e(s),a(),f()}function A(d){s.filters?.splice(d,1),e(s),a()}function De(d,S){A(S),V(d.tagk),I(d.filter),N(d.type),K(d.groupBy),O()}const Me=" ",Ke=(0,t.useCallback)((d,S)=>{const Y=d.value??"";return S.split(Me).reduce((Re,Be)=>Re&&Y.toLowerCase().includes(Be.toLowerCase()),!0)},[]),Le=z()(d=>o(d),350);return t.createElement("div",{className:"gf-form-inline","data-testid":j.section},t.createElement("div",{className:"gf-form"},t.createElement(E.c,{className:"query-keyword",width:8,tooltip:t.createElement("div",null,"Filters does not work with tags, either of the two will work but not both.")},"Filters"),s.filters&&s.filters.map((d,S)=>t.createElement(E.c,{key:S,width:"auto","data-testid":j.list+S},d.tagk," = ",d.type,"(",d.filter,"), groupBy = ",""+d.groupBy,t.createElement("button",{type:"button",className:c,onClick:()=>De(d,S)},t.createElement(x.J,{name:"pen"})),t.createElement("button",{type:"button",className:c,onClick:()=>A(S),"data-testid":j.remove},t.createElement(x.J,{name:"times"})))),!p&&t.createElement("button",{className:"gf-form-label",type:"button",onClick:f,"aria-label":"Add filter"},t.createElement(x.J,{name:"plus"}))),p&&t.createElement("div",{className:"gf-form-inline"},t.createElement("div",{className:"gf-form"},t.createElement(F.Ph,{inputId:"opentsdb-suggested-tagk-select",className:"gf-form-input",value:C?(0,b.E)(C):void 0,placeholder:"key",allowCustomValue:!0,filterOption:Ke,onOpenMenu:async()=>{h(!0);const S=(await r(s)).map(Y=>(0,b.E)(Y));i(S),h(!1)},isLoading:m,options:l,onChange:({value:d})=>{d&&V(d)}})),t.createElement("div",{className:"gf-form"},t.createElement(U.W,{className:"width-4 query-keyword"},"Type"),t.createElement(F.Ph,{inputId:"opentsdb-aggregator-select",value:T?(0,b.E)(T):void 0,options:X,onChange:({value:d})=>{d&&N(d)}})),t.createElement("div",{className:"gf-form"},t.createElement(F.qb,{inputId:"opentsdb-suggested-tagv-select",className:"gf-form-input",value:v?(0,b.E)(v):void 0,placeholder:"filter",allowCustomValue:!0,loadOptions:Le,defaultOptions:[],onChange:({value:d})=>{d&&I(d)}})),t.createElement(E.c,{width:5,className:"query-keyword"},"Group by"),t.createElement(D.x,{value:P,onChange:()=>{K(!P)}}),t.createElement("div",{className:"gf-form"},R&&t.createElement("div",{className:"gf-form-label",title:R,"data-testid":j.error},t.createElement(x.J,{name:"exclamation-triangle",color:"rgb(229, 189, 28)"})),t.createElement("div",{className:"gf-form-label"},t.createElement("button",{type:"button",className:c,onClick:O},"add filter"),t.createElement("button",{type:"button",className:c,onClick:f},t.createElement(x.J,{name:"times"}))))),t.createElement("div",{className:"gf-form gf-form--grow"},t.createElement("div",{className:"gf-form-label gf-form-label--grow"})))}const j={section:"opentsdb-filter",list:"opentsdb-filter-list",error:"opentsdb-filter-error",remove:"opentsdb-filter-remove"};function Ee({query:s,onChange:e,onRunQuery:a,suggestMetrics:r,aggregators:n}){const o=n.map(l=>(0,b.E)(l)),c=z()(l=>r(l),350);return t.createElement("div",{className:"gf-form-inline","data-testid":se.section},t.createElement("div",{className:"gf-form"},t.createElement(E.c,{width:8,className:"query-keyword"},"Metric"),t.createElement(F.qb,{width:25,inputId:"opentsdb-metric-select",className:"gf-form-input",value:s.metric?(0,b.E)(s.metric):void 0,placeholder:"Metric name",allowCustomValue:!0,loadOptions:c,defaultOptions:[],onChange:({value:l})=>{l&&(e({...s,metric:l}),a())}})),t.createElement("div",{className:"gf-form"},t.createElement(E.c,{width:"auto",className:"query-keyword"},"Aggregator"),t.createElement(F.Ph,{inputId:"opentsdb-aggregator-select",className:"gf-form-input",value:s.aggregator?(0,b.E)(s.aggregator):void 0,options:o,onChange:({value:l})=>{l&&(e({...s,aggregator:l}),a())}})),t.createElement("div",{className:"gf-form max-width-20"},t.createElement(E.c,{className:"query-keyword",width:6,tooltip:t.createElement("div",null,"Use patterns like $tag_tagname to replace part of the alias for a tag value")},"Alias"),t.createElement(L.I,{"data-testid":se.alias,placeholder:"series alias",value:s.alias??"",onChange:l=>{const i=l.currentTarget.value;e({...s,alias:i})},onBlur:()=>a()})),t.createElement("div",{className:"gf-form gf-form--grow"},t.createElement("div",{className:"gf-form-label gf-form-label--grow"})))}const se={section:"opentsdb-metricsection",alias:"metric-alias"};function be({query:s,onChange:e,onRunQuery:a,tsdbVersion:r}){return t.createElement("div",{className:"gf-form-inline","data-testid":M.section},t.createElement("div",{className:"gf-form"},t.createElement(E.c,{className:"query-keyword",width:8},"Rate"),t.createElement(D.x,{"data-testid":M.shouldComputeRate,value:s.shouldComputeRate??!1,onChange:()=>{const n=s.shouldComputeRate??!1;e({...s,shouldComputeRate:!n}),a()}})),s.shouldComputeRate&&t.createElement("div",{className:"gf-form"},t.createElement(E.c,{className:"query-keyword",width:"auto"},"Counter"),t.createElement(D.x,{"data-testid":M.isCounter,value:s.isCounter??!1,onChange:()=>{const n=s.isCounter??!1;e({...s,isCounter:!n}),a()}})),s.shouldComputeRate&&s.isCounter&&t.createElement("div",{className:"gf-form"},t.createElement(U.W,{width:"auto",className:"query-keyword"},"Counter max"),t.createElement(L.I,{"data-testid":M.counterMax,placeholder:"max value",value:s.counterMax??"",onChange:n=>{const o=n.currentTarget.value;e({...s,counterMax:o})},onBlur:()=>a()}),t.createElement(U.W,{width:"auto",className:"query-keyword"},"Reset value"),t.createElement(L.I,{"data-testid":M.counterResetValue,placeholder:"reset value",value:s.counterResetValue??"",onChange:n=>{const o=n.currentTarget.value;e({...s,counterResetValue:o})},onBlur:()=>a()})),r>2&&t.createElement("div",{className:"gf-form"},t.createElement(E.c,{className:"query-keyword",width:"auto"},"Explicit tags"),t.createElement(D.x,{"data-testid":M.explicitTags,value:s.explicitTags??!1,onChange:()=>{const n=s.explicitTags??!1;e({...s,explicitTags:!n}),a()}})),t.createElement("div",{className:"gf-form gf-form--grow"},t.createElement("div",{className:"gf-form-label gf-form-label--grow"})))}const M={section:"opentsdb-rate",shouldComputeRate:"opentsdb-shouldComputeRate",isCounter:"opentsdb-is-counter",counterMax:"opentsdb-counter-max",counterResetValue:"opentsdb-counter-reset-value",explicitTags:"opentsdb-explicit-tags"};function Te({query:s,onChange:e,onRunQuery:a,suggestTagKeys:r,suggestTagValues:n,tsdbVersion:o}){const c=(0,$.wW)(ae.gN),[l,i]=(0,t.useState)(),[m,h]=(0,t.useState)(),[p,y]=(0,t.useState)(!1),[T,N]=(0,t.useState)(""),[C,V]=(0,t.useState)(""),[v,I]=(0,t.useState)("");function P(){y(!p)}function K(){if(s.filters&&(0,g.size)(s.filters)>0){I("Please remove filters to use tags, tags and filters are mutually exclusive.");return}if(!p){y(!0);return}if(s.tags&&(0,g.has)(s.tags,T)){const f="Duplicate tag key '"+T+"'.";I(f);return}s.tags||(s.tags={}),s.tags[T]=C,N(""),V(""),e(s),a(),P()}function R(f){delete s.tags[f],e(s),a()}function H(f,O){R(f),N(f),V(O),K()}const X=z()(f=>n(f),350);return t.createElement("div",{className:"gf-form-inline","data-testid":J.section},t.createElement("div",{className:"gf-form"},t.createElement(E.c,{className:"query-keyword",width:8,tooltip:o>=2?t.createElement("div",null,"Please use filters, tags are deprecated in opentsdb 2.2"):void 0},"Tags"),s.tags&&Object.keys(s.tags).map((f,O)=>{const A=s.tags[f];return t.createElement(E.c,{key:O,width:"auto","data-testid":J.list+O},f,"=",A,t.createElement("button",{type:"button",className:c,onClick:()=>H(f,A)},t.createElement(x.J,{name:"pen"})),t.createElement("button",{type:"button",className:c,onClick:()=>R(f),"data-testid":J.remove},t.createElement(x.J,{name:"times"})))}),!p&&t.createElement("button",{className:"gf-form-label",type:"button",onClick:P,"aria-label":"Add tag"},t.createElement(x.J,{name:"plus"}))),p&&t.createElement("div",{className:"gf-form-inline"},t.createElement("div",{className:"gf-form"},t.createElement(F.Ph,{inputId:"opentsdb-suggested-tagk-select",className:"gf-form-input",value:T?(0,b.E)(""+T):void 0,placeholder:"key",allowCustomValue:!0,onOpenMenu:async()=>{h(!0);const O=(await r(s)).map(A=>(0,b.E)(A));i(O),h(!1)},isLoading:m,options:l,onChange:({value:f})=>{f&&N(f)}})),t.createElement("div",{className:"gf-form"},t.createElement(F.qb,{inputId:"opentsdb-suggested-tagv-select",className:"gf-form-input",value:C?(0,b.E)(C):void 0,placeholder:"value",allowCustomValue:!0,loadOptions:X,defaultOptions:[],onChange:({value:f})=>{f&&V(f)}})),t.createElement("div",{className:"gf-form"},v&&t.createElement("div",{className:"gf-form-label",title:v,"data-testid":J.error},t.createElement(x.J,{name:"exclamation-triangle",color:"rgb(229, 189, 28)"})),t.createElement("div",{className:"gf-form-label"},t.createElement("button",{type:"button",className:c,onClick:K},"add tag"),t.createElement("button",{type:"button",className:c,onClick:P},t.createElement(x.J,{name:"times"}))))),t.createElement("div",{className:"gf-form gf-form--grow"},t.createElement("div",{className:"gf-form-label gf-form-label--grow"})))}const J={section:"opentsdb-tag",list:"opentsdb-tag-list",error:"opentsdb-tag-error",remove:"opentsdb-tag-remove"};function Ne({datasource:s,onRunQuery:e,onChange:a,query:r,range:n,queries:o}){const c=(0,$.wW)(we),[l,i]=(0,t.useState)(["avg","sum","min","max","dev","zimsum","mimmin","mimmax"]),m=["none","nan","null","zero"],[h,p]=(0,t.useState)(["wildcard","iliteral_or","not_iliteral_or","not_literal_or","iwildcard","literal_or","regexp"]),y=s.tsdbVersion;r.aggregator||(r.aggregator="sum"),r.downsampleAggregator||(r.downsampleAggregator="avg"),r.downsampleFillPolicy||(r.downsampleFillPolicy="none"),(0,t.useEffect)(()=>{s.getAggregators().then(v=>{v.length!==0&&i(v)})},[s]),(0,t.useEffect)(()=>{s.getFilterTypes().then(v=>{v.length!==0&&p(v)})},[s]);async function T(v){return s.metricFindQuery(`metrics(${v})`).then(V)}async function N(v){return s.metricFindQuery(`suggest_tagv(${v})`).then(V)}async function C(v){return s.suggestTagKeys(v)}function V(v){return v.map(I=>({value:de.QX.escapeHtml(I.text),description:I.text}))}return t.createElement("div",{className:c.container,"data-testid":ye.editor},t.createElement("div",{className:c.visualEditor},t.createElement(Ee,{query:r,onChange:a,onRunQuery:e,suggestMetrics:T,aggregators:l}),t.createElement(pe,{query:r,onChange:a,onRunQuery:e,aggregators:l,fillPolicies:m,tsdbVersion:y}),y>=2&&t.createElement(ve,{query:r,onChange:a,onRunQuery:e,filterTypes:h,suggestTagValues:N,suggestTagKeys:C}),t.createElement(Te,{query:r,onChange:a,onRunQuery:e,suggestTagValues:N,suggestTagKeys:C,tsdbVersion:y}),t.createElement(be,{query:r,onChange:a,onRunQuery:e,tsdbVersion:y})))}function we(s){return{container:(0,B.css)` display: flex; `,visualEditor:(0,B.css)` flex-grow: 1; `,toggleButton:(0,B.css)` margin-left: ${s.spacing(.5)}; `}}const ye={editor:"opentsdb-editor"};var Ce=u(48592),Se=u(6857),W=u(45383),k=u(78209),xe=u(56469),w=u(39343),re=u(32053),Ve=u(1726),ne=u(73289),Fe=u(99386);const ke=s=>{const{query:e,onChange:a}=s,[r,n]=(0,t.useState)(e.target??""),[o,c]=(0,t.useState)(e.isGlobal??!1),l=(m,h)=>{a({...e,[m]:h,fromAnnotations:!0})},i=m=>{m=!m,c(m),l("isGlobal",m)};return t.createElement("div",{className:"gf-form-group"},t.createElement("div",{className:"gf-form"},t.createElement(E.c,{width:12},"OpenTSDB metrics query"),t.createElement(L.I,{value:r,onChange:m=>n(m.currentTarget.value??""),onBlur:()=>l("target",r),placeholder:"events.eventname"})),t.createElement("div",{className:"gf-form"},t.createElement(E.c,{width:12},"Show Global Annotations?"),t.createElement(D.x,{value:o,onChange:m=>i(o)})))},Ie=s=>({fromAnnotations:!0,target:s.target??"",name:s.name??"",isGlobal:s.isGlobal??!1}),Oe=s=>{const e=s.target&&typeof s.target!="string"?s.target:Ie(s);return s.target=e,s};class Pe extends q.MF{constructor(e,a=(0,Fe.J)()){super(e),this.templateSrv=a,this.type="opentsdb",this.url=e.url,this.name=e.name,this.withCredentials=e.withCredentials,this.basicAuth=e.basicAuth,e.jsonData=e.jsonData||{},this.tsdbVersion=e.jsonData.tsdbVersion||1,this.tsdbResolution=e.jsonData.tsdbResolution||1,this.lookupLimit=e.jsonData.lookupLimit||1e3,this.tagKeys={},this.aggregatorsPromise=null,this.filterTypesPromise=null,this.annotations={QueryEditor:ke,prepareAnnotation:Oe}}query(e){if(e.targets.some(l=>l.fromAnnotations)){const l=[];for(const i of e.targets)i.target&&l.push(new Ce.y(m=>{this.annotationEvent(e,i).then(h=>m.next({data:[(0,re.g0)(h)]})).catch(h=>m.next({data:[(0,re.g0)([])]})).finally(()=>m.complete())}));return(0,Se.T)(...l)}const a=this.convertToTSDBTime(e.range.raw.from,!1,e.timezone),r=this.convertToTSDBTime(e.range.raw.to,!0,e.timezone),n=[];(0,g.each)(e.targets,l=>{l.metric&&n.push(this.convertTargetToQuery(l,e,this.tsdbVersion))});const o=(0,g.compact)(n);if((0,g.isEmpty)(o))return(0,W.of)({data:[]});const c={};return(0,g.each)(o,l=>{l.filters&&l.filters.length>0?(0,g.each)(l.filters,i=>{c[i.tagk]=!0}):(0,g.each)(l.tags,(i,m)=>{c[m]=!0})}),e.targets=(0,g.filter)(e.targets,l=>l.hide!==!0),this.performTimeSeriesQuery(o,a,r).pipe((0,xe.K)(l=>{throw l?.data?.error?.message||"Error performing time series query."}),(0,w.U)(l=>{const i=this.mapMetricsToTargets(l.data,e,this.tsdbVersion);return{data:(0,g.map)(l.data,(h,p)=>(p=i[p],p===-1&&(p=0),this._saveTagKeys(h),this.transformMetricData(h,c,e.targets[p],e,this.tsdbResolution)))}}))}annotationEvent(e,a){const r=this.convertToTSDBTime(e.range.raw.from,!1,e.timezone),n=this.convertToTSDBTime(e.range.raw.to,!0,e.timezone),o=[],c=[];o.push({aggregator:"sum",metric:a.target});const l=(0,g.compact)(o);return(0,k.n)(this.performTimeSeriesQuery(l,r,n).pipe((0,w.U)(i=>{if(i.data[0]){let m=i.data[0].annotations;a.isGlobal&&(m=i.data[0].globalAnnotations),m&&(0,g.each)(m,h=>{const p={text:h.description,time:Math.floor(h.startTime)*1e3,annotation:a};c.push(p)})}return c})))}targetContainsTemplate(e){if(e.filters&&e.filters.length>0){for(let a=0;a<e.filters.length;a++)if(this.templateSrv.containsTemplate(e.filters[a].filter))return!0}if(e.tags&&Object.keys(e.tags).length>0){for(const a in e.tags)if(this.templateSrv.containsTemplate(e.tags[a]))return!0}return!1}performTimeSeriesQuery(e,a,r){let n=!1;this.tsdbResolution===2&&(n=!0);const o={start:a,queries:e,msResolution:n,globalAnnotations:!0};this.tsdbVersion===3&&(o.showQuery=!0),r&&(o.end=r);const c={method:"POST",url:this.url+"/api/query",data:o};return this._addCredentialOptions(c),(0,ne.i)().fetch(c)}suggestTagKeys(e){const a=e.metric??"";return Promise.resolve(this.tagKeys[a]||[])}_saveTagKeys(e){const a=Object.keys(e.tags);(0,g.each)(e.aggregateTags,r=>{a.push(r)}),this.tagKeys[e.metric]=a}_performSuggestQuery(e,a){return this._get("/api/suggest",{type:a,q:e,max:this.lookupLimit}).pipe((0,w.U)(r=>r.data))}_performMetricKeyValueLookup(e,a){if(!e||!a)return(0,W.of)([]);const r=a.split(",").map(l=>l.trim()),n=r[0];let o=n+"=*";r.length>1&&(o+=","+r.splice(1).join(","));const c=e+"{"+o+"}";return this._get("/api/search/lookup",{m:c,limit:this.lookupLimit}).pipe((0,w.U)(l=>{l=l.data.results;const i=[];return(0,g.each)(l,m=>{i.indexOf(m.tags[n])===-1&&i.push(m.tags[n])}),i}))}_performMetricKeyLookup(e){return e?this._get("/api/search/lookup",{m:e,limit:1e3}).pipe((0,w.U)(a=>{a=a.data.results;const r=[];return(0,g.each)(a,n=>{(0,g.each)(n.tags,(o,c)=>{r.indexOf(c)===-1&&r.push(c)})}),r})):(0,W.of)([])}_get(e,a){const r={method:"GET",url:this.url+e,params:a};return this._addCredentialOptions(r),(0,ne.i)().fetch(r)}_addCredentialOptions(e){(this.basicAuth||this.withCredentials)&&(e.withCredentials=!0),this.basicAuth&&(e.headers={Authorization:this.basicAuth})}metricFindQuery(e){if(!e)return Promise.resolve([]);let a;try{a=this.templateSrv.replace(e,{},"distributed")}catch(N){return Promise.reject(N)}const r=N=>(0,g.map)(N,C=>({text:C})),n=/metrics\((.*)\)/,o=/tag_names\((.*)\)/,c=/tag_values\((.*?),\s?(.*)\)/,l=/suggest_tagk\((.*)\)/,i=/suggest_tagv\((.*)\)/,m=a.match(n);if(m)return(0,k.n)(this._performSuggestQuery(m[1],"metrics").pipe((0,w.U)(r)));const h=a.match(o);if(h)return(0,k.n)(this._performMetricKeyLookup(h[1]).pipe((0,w.U)(r)));const p=a.match(c);if(p)return(0,k.n)(this._performMetricKeyValueLookup(p[1],p[2]).pipe((0,w.U)(r)));const y=a.match(l);if(y)return(0,k.n)(this._performSuggestQuery(y[1],"tagk").pipe((0,w.U)(r)));const T=a.match(i);return T?(0,k.n)(this._performSuggestQuery(T[1],"tagv").pipe((0,w.U)(r))):Promise.resolve([])}testDatasource(){return(0,k.n)(this._performSuggestQuery("cpu","metrics").pipe((0,w.U)(()=>({status:"success",message:"Data source is working"}))))}getAggregators(){return this.aggregatorsPromise?this.aggregatorsPromise:(this.aggregatorsPromise=(0,k.n)(this._get("/api/aggregators").pipe((0,w.U)(e=>e.data&&(0,g.isArray)(e.data)?e.data.sort():[]))),this.aggregatorsPromise)}getFilterTypes(){return this.filterTypesPromise?this.filterTypesPromise:(this.filterTypesPromise=(0,k.n)(this._get("/api/config/filters").pipe((0,w.U)(e=>e.data?Object.keys(e.data).sort():[]))),this.filterTypesPromise)}transformMetricData(e,a,r,n,o){const c=this.createMetricLabel(e,r,a,n),l=[];return(0,g.each)(e.dps,(i,m)=>{o===2?l.push([i,m*1]):l.push([i,m*1e3])}),{target:c,datapoints:l}}createMetricLabel(e,a,r,n){if(a.alias){const l=(0,g.clone)(n.scopedVars||{});return(0,g.each)(e.tags,(i,m)=>{l["tag_"+m]={value:i}}),this.templateSrv.replace(a.alias,l)}let o=e.metric;const c=[];return(0,g.isEmpty)(e.tags)||(0,g.each)((0,g.toPairs)(e.tags),l=>{(0,g.has)(r,l[0])&&c.push(l[0]+"="+l[1])}),(0,g.isEmpty)(c)||(o+="{"+c.join(", ")+"}"),o}convertTargetToQuery(e,a,r){if(!e.metric||e.hide)return null;const n={metric:this.templateSrv.replace(e.metric,a.scopedVars,"pipe"),aggregator:"avg"};if(e.aggregator&&(n.aggregator=this.templateSrv.replace(e.aggregator)),e.shouldComputeRate&&(n.rate=!0,n.rateOptions={counter:!!e.isCounter},e.counterMax&&e.counterMax.length&&(n.rateOptions.counterMax=parseInt(e.counterMax,10)),e.counterResetValue&&e.counterResetValue.length&&(n.rateOptions.resetValue=parseInt(e.counterResetValue,10)),r>=2&&(n.rateOptions.dropResets=!n.rateOptions.counterMax&&(!n.rateOptions.ResetValue||n.rateOptions.ResetValue===0))),!e.disableDownsampling){let o=this.templateSrv.replace(e.downsampleInterval||a.interval);o.match(/\.[0-9]+s/)&&(o=parseFloat(o)*1e3+"ms"),n.downsample=o+"-"+e.downsampleAggregator,e.downsampleFillPolicy&&e.downsampleFillPolicy!=="none"&&(n.downsample+="-"+e.downsampleFillPolicy)}if(e.filters&&e.filters.length>0)n.filters=(0,g.cloneDeep)(e.filters),n.filters&&this.interpolateVariablesInFilters(n,a);else if(n.tags=(0,g.cloneDeep)(e.tags),n.tags)for(const o in n.tags)n.tags[o]=this.templateSrv.replace(n.tags[o],a.scopedVars,"pipe");return e.explicitTags&&(n.explicitTags=!0),n}interpolateVariablesInFilters(e,a){e.filters=e.filters?.map(r=>(r.tagk=this.templateSrv.replace(r.tagk,a.scopedVars,"pipe"),r.filter=this.templateSrv.replace(r.filter,a.scopedVars,"pipe"),r))}mapMetricsToTargets(e,a,r){let n,o;return(0,g.map)(e,c=>r===3?c.query.index:(0,g.findIndex)(a.targets,l=>l.filters&&l.filters.length>0?l.metric===c.metric:l.metric===c.metric&&(0,g.every)(l.tags,(i,m)=>(n=this.templateSrv.replace(i,a.scopedVars,"pipe"),o=n.split("|"),(0,g.includes)(o,c.tags[m])||n==="*"))))}interpolateVariablesInQueries(e,a){return e.length?e.map(r=>({...r,metric:this.templateSrv.replace(r.metric,a)})):e}convertToTSDBTime(e,a,r){return e==="now"?null:(e=Ve.parse(e,a,r),e.valueOf())}}const Ae=new q.hf(Pe).setQueryEditor(Ne).setConfigEditor(ue)}}]); //# sourceMappingURL=opentsdbPlugin.56b4eb2f1f048c3cf1ad.js.map