Submit
Path:
~
/
/
usr
/
share
/
grafana
/
public
/
app
/
plugins
/
datasource
/
grafana-pyroscope-datasource
/
dist
/
File Content:
module.js
define(["@grafana/data","react","@grafana/runtime","@grafana/ui","lodash","prismjs","rxjs","@emotion/css"],((e,t,r,n,o,a,l,i)=>(()=>{"use strict";var s={513:e=>{e.exports=function e(t,r){if(t===r)return!0;if(t&&r&&"object"==typeof t&&"object"==typeof r){if(t.constructor!==r.constructor)return!1;var n,o,a;if(Array.isArray(t)){if((n=t.length)!=r.length)return!1;for(o=n;0!=o--;)if(!e(t[o],r[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if((n=(a=Object.keys(t)).length)!==Object.keys(r).length)return!1;for(o=n;0!=o--;)if(!Object.prototype.hasOwnProperty.call(r,a[o]))return!1;for(o=n;0!=o--;){var l=a[o];if(!e(t[l],r[l]))return!1}return!0}return t!=t&&r!=r}},89:e=>{e.exports=i},781:t=>{t.exports=e},531:e=>{e.exports=r},7:e=>{e.exports=n},241:e=>{e.exports=o},146:e=>{e.exports=a},959:e=>{e.exports=t},269:e=>{e.exports=l}},c={};function u(e){var t=c[e];if(void 0!==t)return t.exports;var r=c[e]={exports:{}};return s[e](r,r.exports,u),r.exports}u.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return u.d(t,{a:t}),t},u.d=(e,t)=>{for(var r in t)u.o(t,r)&&!u.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},u.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),u.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var p={};return(()=>{u.r(p),u.d(p,{plugin:()=>Ve});var e=u(781),t=u(959),r=u.n(t),n=u(531),o=u(7);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){a(e,t,r[t])}))}return e}function i(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}var s=u(513),c=u.n(s),f=u(241),d=u(146),y=u.n(d),g=u(269);function b(e,t,r,n,o,a,l){try{var i=e[a](l),s=i.value}catch(e){return void r(e)}i.done?t(s):Promise.resolve(s).then(n,o)}function m(e){const n=(a=e.profileTypes,(0,t.useMemo)((()=>{if(!a)return[];let e=new Map;for(let r of a){var t;let n=[];r.id.indexOf(":")>-1&&(n=r.id.split(":"));const[o,a]=n;e.has(o)||e.set(o,{label:o,value:o,items:[]}),null===(t=e.get(o))||void 0===t||t.items.push({label:a,value:r.id})}return Array.from(e.values())}),[a]));var a,l;return r().createElement(o.Cascader,{placeholder:e.placeholder,separator:"-",displayAllSelectedLevels:!0,initialValue:e.initialProfileTypeId,allowCustomValue:!0,onSelect:e.onChange,options:n,changeOnSelect:!1,width:null!==(l=e.width)&&void 0!==l?l:26})}function h(e,r){const[n,o]=(0,t.useState)(),a={to:6e4*Math.ceil(((null==r?void 0:r.to.valueOf())||0)/6e4),from:6e4*Math.floor(((null==r?void 0:r.from.valueOf())||0)/6e4)};return(0,t.useEffect)((()=>{var t;(t=function*(){const t=yield e.getProfileTypes(a.from.valueOf(),a.to.valueOf());o(t)},function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function l(e){b(a,n,o,l,i,"next",e)}function i(e){b(a,n,o,l,i,"throw",e)}l(void 0)}))})()}),[e,a.from,a.to]),n}function v(e,t,r,n,o,a,l){try{var i=e[a](l),s=i.value}catch(e){return void r(e)}i.done?t(s):Promise.resolve(s).then(n,o)}function O(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function w(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){O(e,t,r[t])}))}return e}function E(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}function S(e){var t,n;return r().createElement(r().Fragment,null,r().createElement(o.InlineFieldRow,null,r().createElement(o.InlineField,{label:"Query type",labelWidth:20,tooltip:r().createElement("div",null,"The Pyroscope data source plugin provides the following query types for template variables")},r().createElement(o.Select,{placeholder:"Select query type","aria-label":"Query type",width:25,options:[{label:"Profile type",value:"profileType"},{label:"Label",value:"label"},{label:"Label value",value:"labelValue"}],onChange:t=>{"profileType"===t.value&&e.onChange(E(w({},e.query),{type:t.value})),"label"===t.value&&e.onChange(E(w({},e.query),{type:t.value,profileTypeId:""})),"labelValue"===t.value&&e.onChange(E(w({},e.query),{type:t.value,profileTypeId:"",labelName:""}))},value:e.query.type}))),("labelValue"===e.query.type||"label"===e.query.type)&&r().createElement(x,{datasource:e.datasource,initialValue:e.query.profileTypeId,onChange:t=>{"label"!==e.query.type&&"labelValue"!==e.query.type||e.onChange(E(w({},e.query),{profileTypeId:t}))},range:e.range}),"labelValue"===e.query.type&&r().createElement(P,{value:e.query.labelName,datasource:e.datasource,profileTypeId:e.query.profileTypeId,onChange:t=>{"labelValue"===e.query.type&&e.onChange(E(w({},e.query),{labelName:t}))},from:(null===(t=e.range)||void 0===t?void 0:t.from.valueOf())||Date.now().valueOf()-864e5,to:(null===(n=e.range)||void 0===n?void 0:n.to.valueOf())||Date.now().valueOf()}))}function P(e){const[n,a]=(0,t.useState)();(0,t.useEffect)((()=>{var t;(t=function*(){a(yield e.datasource.getLabelNames((e.profileTypeId||"")+"{}",e.from,e.to))},function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function l(e){v(a,n,o,l,i,"next",e)}function i(e){v(a,n,o,l,i,"throw",e)}l(void 0)}))})()}),[e.datasource,e.profileTypeId,e.to,e.from]);const l=n?n.map((e=>({label:e,value:e}))):[];return n&&e.value&&!n.find((t=>t===e.value))&&l.push({value:e.value,label:e.value}),r().createElement(o.InlineFieldRow,null,r().createElement(o.InlineField,{label:"Label",labelWidth:20,tooltip:r().createElement("div",null,"Select label for which to retrieve available values")},r().createElement(o.Select,{allowCustomValue:!0,placeholder:"Select label","aria-label":"Select label",width:25,options:l,onChange:t=>e.onChange(t.value),value:e.value})))}function x(e){const t=h(e.datasource,e.range);return r().createElement(o.InlineFieldRow,null,r().createElement(o.InlineField,{label:"Profile type","aria-label":"Profile type",labelWidth:20,tooltip:r().createElement("div",null,"Select profile type for which to retrieve available labels")},t?r().createElement(m,{onChange:e.onChange,profileTypes:t,initialProfileTypeId:e.initialValue}):r().createElement(o.LoadingPlaceholder,{text:"Loading"})))}function j(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class T extends e.CustomVariableSupport{query(e){return"profileType"===e.targets[0].type?(0,g.from)(this.dataAPI.getProfileTypes(e.range.from.valueOf(),e.range.to.valueOf())).pipe((0,g.map)((e=>({data:e.map((e=>({text:e.label,value:e.id})))})))):"label"===e.targets[0].type?e.targets[0].profileTypeId?(0,g.from)(this.dataAPI.getLabelNames(e.targets[0].profileTypeId+"{}",e.range.from.valueOf(),e.range.to.valueOf())).pipe((0,g.map)((e=>({data:e.map((e=>({text:e})))})))):(0,g.of)({data:[]}):"labelValue"===e.targets[0].type&&e.targets[0].labelName&&e.targets[0].profileTypeId?(0,g.from)(this.dataAPI.getLabelValues(e.targets[0].profileTypeId+"{}",e.targets[0].labelName,e.range.from.valueOf(),e.range.to.valueOf())).pipe((0,g.map)((e=>({data:e.map((e=>({text:e})))})))):(0,g.of)({data:[]})}constructor(e){super(),j(this,"dataAPI",void 0),j(this,"editor",void 0),this.dataAPI=e,this.editor=S}}function C(e){const t=[];for(const r of e)if(r instanceof d.Token&&"context-labels"===r.type){let e="",n="",o="";const a=Array.isArray(r.content)?r.content:[r.content];for(let r of a)if("string"==typeof r){let e;e=r,"="!==e&&"!="!==e&&"=~"!==e&&"!~"!==e||(o=e)}else if(r instanceof d.Token)switch(r.type){case"label-key":e=I(r);break;case"label-value":n=I(r),n=n.substring(1,n.length-1);const a=N[o];a&&t.push({name:e,operator:a,value:n})}}return t}function L(e){const t=e.labelMatchers.map((e=>{const t=k[e.operator];return t?`${e.name}${t}"${e.value}"`:""})).filter((e=>""!==e)).join(", ");return t?`{${t}}`:""}function I(e){return"string"==typeof e.content?e.content:""}const N={"=":e.AbstractLabelOperator.Equal,"!=":e.AbstractLabelOperator.NotEqual,"=~":e.AbstractLabelOperator.EqualRegEx,"!~":e.AbstractLabelOperator.NotEqualRegEx},k=(0,f.invert)(N);function A(e,t,r,n,o,a,l){try{var i=e[a](l),s=i.value}catch(e){return void r(e)}i.done?t(s):Promise.resolve(s).then(n,o)}function q(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function l(e){A(a,n,o,l,i,"next",e)}function i(e){A(a,n,o,l,i,"throw",e)}l(void 0)}))}}function D(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function R(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){D(e,t,r[t])}))}return e}function _(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}class M extends n.DataSourceWithBackend{query(e){const t=e.targets.filter((e=>e.profileTypeId)).map((t=>""===t.labelSelector?_(R({},t),{labelSelector:"{}"}):F(t,e.app)));return t.length?super.query(_(R({},e),{targets:t})):(0,g.of)({data:[]})}getProfileTypes(e,t){var r=this;return q((function*(){return yield r.getResource("profileTypes",{start:e,end:t})}))()}getAllProfileTypes(){var e=this;return q((function*(){return yield e.getResource("profileTypes")}))()}getLabelNames(e,t,r){var n=this;return q((function*(){return yield n.getResource("labelNames",{query:n.templateSrv.replace(e),start:t,end:r})}))()}getLabelValues(e,t,r,n){var o=this;return q((function*(){return yield o.getResource("labelValues",{label:o.templateSrv.replace(t),query:o.templateSrv.replace(e),start:r,end:n})}))()}applyTemplateVariables(e,t){var r,n;return _(R({},e),{labelSelector:this.templateSrv.replace(null!==(r=e.labelSelector)&&void 0!==r?r:"",t),profileTypeId:this.templateSrv.replace(null!==(n=e.profileTypeId)&&void 0!==n?n:"",t)})}importFromAbstractQueries(e){var t=this;return q((function*(){return e.map((e=>t.importFromAbstractQuery(e)))}))()}importFromAbstractQuery(e){return{refId:e.refId,labelSelector:L(e),queryType:"both",profileTypeId:"",groupBy:[]}}exportToAbstractQueries(e){var t=this;return q((function*(){return e.map((e=>t.exportToAbstractQuery(e)))}))()}exportToAbstractQuery(e){const t=e.labelSelector;if(!t||0===t.length)return{refId:e.refId,labelMatchers:[]};const r=y().tokenize(t,B);return{refId:e.refId,labelMatchers:C(r)}}getDefaultQuery(e){return V}constructor(e,t=(0,n.getTemplateSrv)()){super(e),D(this,"templateSrv",void 0),this.templateSrv=t,this.variables=new T(this)}}const V=_(R({},{groupBy:[],labelSelector:"{}",spanSelector:[]}),{queryType:"both"});function F(t,r){let n=R({},V,t);return r!==e.CoreApp.Explore&&"both"===n.queryType&&(n.queryType="profile"),n}const B={"context-labels":{pattern:/\{[^}]*(?=}?)/,greedy:!0,inside:{comment:{pattern:/#.*/},"label-key":{pattern:/[a-zA-Z_]\w*(?=\s*(=|!=|=~|!~))/,alias:"attr-name",greedy:!0},"label-value":{pattern:/"(?:\\.|[^\\"])*"/,greedy:!0,alias:"attr-value"},punctuation:/[{]/}},punctuation:/[{}(),.]/};var $=u(89);function z(e){const t=(0,o.useStyles2)(W,e);return r().createElement("div",{className:t.root},e.children)}const W=(e,t)=>{var r,n,o;return{root:(0,$.css)({display:"flex",flexDirection:null!==(r=t.direction)&&void 0!==r?r:"row",flexWrap:null===(n=t.wrap)||void 0===n||n?"wrap":void 0,alignItems:t.alignItems,gap:e.spacing(null!==(o=t.gap)&&void 0!==o?o:2),flexGrow:t.flexGrow})}};function Q(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const U=({children:e,stackProps:t})=>{const n=(0,o.useStyles2)(G);return r().createElement("div",{className:n.root},r().createElement(z,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){Q(e,t,r[t])}))}return e}({gap:2},t),e))},G=e=>({root:(0,$.css)({padding:e.spacing(1),backgroundColor:e.colors.background.secondary,borderRadius:e.shape.radius.default})}),K=({children:e})=>r().createElement(z,{gap:.5,direction:"column"},e);var Z=function(){return Z=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},Z.apply(this,arguments)};function H(e,r){void 0===r&&(r=[]);var n=function(e,r,n){void 0===r&&(r=[]),void 0===n&&(n={loading:!1});var o,a,l=(0,t.useRef)(0),i=(o=(0,t.useRef)(!1),a=(0,t.useCallback)((function(){return o.current}),[]),(0,t.useEffect)((function(){return o.current=!0,function(){o.current=!1}}),[]),a),s=(0,t.useState)(n),c=s[0],u=s[1],p=(0,t.useCallback)((function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var n=++l.current;return c.loading||u((function(e){return Z(Z({},e),{loading:!0})})),e.apply(void 0,t).then((function(e){return i()&&n===l.current&&u({value:e,loading:!1}),e}),(function(e){return i()&&n===l.current&&u({error:e,loading:!1}),e}))}),r);return[c,p]}(e,r,{loading:!0}),o=n[0],a=n[1];return(0,t.useEffect)((function(){a()}),[a]),o}Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;const Y={id:"pyroscopeql",extensions:[".pyroscopeql"],aliases:["pyroscope","pyroscopeql"],mimetypes:[],def:{language:{ignoreCase:!1,defaultToken:"",tokenPostfix:".pyroscopeql",keywords:[],operators:[],symbols:/[=><!~?:&|+\-*\/^%]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,digits:/\d+(_+\d+)*/,octaldigits:/[0-7]+(_+[0-7]+)*/,binarydigits:/[0-1]+(_+[0-1]+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,integersuffix:/(ll|LL|u|U|l|L)?(ll|LL|u|U|l|L)?/,floatsuffix:/[fFlL]?/,tokenizer:{root:[[/[a-z_]\w*(?=\s*(=|!=|=~|!~))/,"tag"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d+/,"number"],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"]],string_double:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],string_single:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]],clauses:[[/[^(,)]/,"tag"],[/\)/,"identifier","@pop"]],whitespace:[[/[ \t\r\n]+/,"white"]]}},languageConfiguration:{wordPattern:/(-?\d*\.\d\w*)|([^`~!#%^&*()=+\[{\]}\\|;:'",<>\/?\s]+)/g,brackets:[["{","}"]],autoClosingPairs:[{open:"{",close:"}"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{}}}};function X(e,t,r,n,o,a,l){try{var i=e[a](l),s=i.value}catch(e){return void r(e)}i.done?t(s):Promise.resolve(s).then(n,o)}function J(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class ee{init(e,t){this.labels=e,this.getLabelValues=t}provideCompletionItems(e,t){var r;if(!this.monaco||!this.editor)throw new Error("provideCompletionItems called before CompletionProvider was initialized");if((null===(r=this.editor.getModel())||void 0===r?void 0:r.id)!==e.id)return{suggestions:[]};const{range:n,offset:o}=function(e,t,r){const n=t.getWordAtPosition(r),o=null!=n?e.Range.lift({startLineNumber:r.lineNumber,endLineNumber:r.lineNumber,startColumn:n.startColumn,endColumn:n.endColumn}):e.Range.fromPositions(r),a={column:r.column,lineNumber:r.lineNumber};return{offset:t.getOffsetAt(a),range:o}}(this.monaco,e,t),a=function(e,t){if(""===e)return{type:"EMPTY"};const r=e.matchAll(oe),n=Array.from(r).reduce(((e,t)=>{const[r,n,o]=t[1];return e.push({name:n,value:o}),e}),[]),o=e.substring(0,t).match(ae);if(o)return{type:"IN_LABEL_VALUE",labelName:o[1],betweenQuotes:!!o[2],otherLabels:n};return e.substring(0,t).match(le)?{type:"IN_LABEL_NAME",otherLabels:n}:{type:"UNKNOWN"}}(e.getValue(),o);return this.getCompletions(a).then((e=>{const t=e.length.toString().length;return{suggestions:e.map(((e,r)=>({kind:te(e.type,this.monaco),label:e.label,insertText:e.insertText,sortText:r.toString().padStart(t,"0"),range:n})))}}))}getCompletions(e){var t,r=this;return(t=function*(){switch(e.type){case"UNKNOWN":return[];case"EMPTY":return r.labels.map((e=>({label:e,insertText:`{${e}="`,type:"LABEL_NAME"})));case"IN_LABEL_NAME":return r.labels.map((e=>({label:e,insertText:e,type:"LABEL_NAME"})));case"IN_LABEL_VALUE":let t=yield r.getLabelValues(e.labelName);return t?t.map((t=>({label:t,insertText:e.betweenQuotes?t:`"${t}"`,type:"LABEL_VALUE"}))):[];default:throw new Error(`Unexpected situation ${e}`)}},function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function l(e){X(a,n,o,l,i,"next",e)}function i(e){X(a,n,o,l,i,"throw",e)}l(void 0)}))})()}constructor(){J(this,"triggerCharacters",["{",",","[","(","=","~"," ",'"']),J(this,"monaco",void 0),J(this,"editor",void 0),J(this,"labels",[]),J(this,"getLabelValues",(()=>Promise.resolve([])))}}function te(e,t){switch(e){case"LABEL_NAME":return t.languages.CompletionItemKind.Enum;case"LABEL_VALUE":return t.languages.CompletionItemKind.EnumMember;default:throw new Error(`Unexpected CompletionType: ${e}`)}}const re=/[a-zA-Z_][a-zA-Z0-9_]*/,ne=/[^"]*/,oe=new RegExp(`(${re.source})="(${ne.source})"`,"g"),ae=new RegExp(`(${re.source})=("?)${ne.source}$`),le=new RegExp(/[{,]\s*[a-zA-Z0-9_]*$/);function ie(e,t,r,n,o,a,l){try{var i=e[a](l),s=i.value}catch(e){return void r(e)}i.done?t(s):Promise.resolve(s).then(n,o)}function se(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function l(e){ie(a,n,o,l,i,"next",e)}function i(e){ie(a,n,o,l,i,"throw",e)}l(void 0)}))}}function ce(e){const n=function(e,r){const n=(0,t.useRef)();void 0===n.current&&(n.current=new ee),H(se((function*(){n.current&&n.current.init(r||[],e)})),[r,e]);const o=(0,t.useRef)(null);return(0,t.useEffect)((()=>()=>{var e;null===(e=o.current)||void 0===e||e.call(o)}),[]),(e,t)=>{if(n.current){n.current.editor=e,n.current.monaco=t;const{dispose:r}=t.languages.registerCompletionItemProvider(fe,n.current);o.current=r}}}(e.getLabelValues,e.labels),a=(0,o.useStyles2)(ye),l=(s=e.onRunQuery,(c=(0,t.useRef)(s)).current=s,c),i=(0,t.useRef)(null);var s,c;return r().createElement("div",{className:a.wrapper,ref:i},r().createElement(o.CodeEditor,{value:e.value,language:fe,onChange:e.onChange,containerStyles:a.queryField,monacoOptions:{folding:!1,fontSize:14,lineNumbers:"off",overviewRulerLanes:0,renderLineHighlight:"none",scrollbar:{vertical:"hidden",verticalScrollbarSize:8,horizontal:"hidden",horizontalScrollbarSize:0},scrollBeyondLastLine:!1,wordWrap:"on",padding:{top:4,bottom:5}},onBeforeEditorMount:de,onEditorDidMount:(e,t)=>{n(e,t);const r=()=>{const t=i.current;if(null!==t){const r=e.getContentHeight();t.style.height=`${r+ue}px`,t.style.width="100%";const n=t.clientWidth;e.layout({width:n,height:r})}};e.onDidContentSizeChange(r),r(),e.addCommand(t.KeyMod.Shift|t.KeyCode.Enter,(()=>{l.current(e.getValue())}))}}))}const ue=2;let pe=!1;const fe="pyroscopeql";function de(e){if(!1===pe){pe=!0;const{aliases:t,extensions:r,mimetypes:n,def:o}=Y;e.languages.register({id:fe,aliases:t,extensions:r,mimetypes:n}),e.languages.setMonarchTokensProvider(fe,o.language),e.languages.setLanguageConfiguration(fe,o.languageConfiguration)}}const ye=()=>({queryField:$.css` label: LabelsEditorQueryField; flex: 1; // Not exactly sure but without this the editor does not shrink after resizing (so you can make it bigger but not // smaller). At the same time this does not actually make the editor 100px because it has flex 1 so I assume // this should sort of act as a flex-basis (but flex-basis does not work for this). So yeah CSS magic. width: 100px; `,wrapper:$.css` label: LabelsEditorWrapper; display: flex; flex: 1; border: 1px solid rgba(36, 41, 46, 0.3); border-radius: 2px; `});function ge(e,t,r,n,o,a,l){try{var i=e[a](l),s=i.value}catch(e){return void r(e)}i.done?t(s):Promise.resolve(s).then(n,o)}function be(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function l(e){ge(a,n,o,l,i,"next",e)}function i(e){ge(a,n,o,l,i,"throw",e)}l(void 0)}))}}const me={};function he(e){const{datasource:{uid:t},query:a,range:l}=e,{value:i}=H(be((function*(){if(me[t])return me[t];const e=yield(0,n.getBackendSrv)().get(`/api/datasources/uid/${t}`);return me[t]=e,e})),[t]),s={datasourceUid:t,query:a,range:l,datasourceSettings:i},{extensions:c}=(0,n.getPluginLinkExtensions)({extensionPointId:"plugins/grafana-pyroscope-datasource/query-links",context:s}),u=(0,o.useStyles2)(ve);return 0===c.length?null:r().createElement(r().Fragment,null,c.map((e=>r().createElement(o.LinkButton,{className:u.linkButton,key:`${e.id}`,variant:"secondary",icon:e.icon||"external-link-alt",tooltip:e.description,target:"_blank",href:e.path,onClick:e.onClick},e.title))))}function ve(e){return{linkButton:(0,$.css)({marginLeft:e.spacing(1)})}}function Oe(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const we=e=>{const{label:t,optional:n,tooltip:a,children:l,width:i}=e,s=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,["label","optional","tooltip","children","width"]),c=(0,o.useStyles2)(Ee,i),u=(null==s?void 0:s.htmlFor)||(null===o.ReactUtils||void 0===o.ReactUtils?void 0:o.ReactUtils.getChildId(l)),p=r().createElement(r().Fragment,null,r().createElement("label",{className:c.label,htmlFor:u},t,n&&r().createElement("span",{className:c.optional}," - optional"),a&&r().createElement(o.Tooltip,{placement:"top",content:a,theme:"info"},r().createElement(o.Icon,{name:"info-circle",size:"sm",className:c.icon}))),r().createElement("span",{className:c.space}));return r().createElement("div",{className:c.root},r().createElement(o.Field,function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){Oe(e,t,r[t])}))}return e}({className:c.field,label:p},s),l))},Ee=(e,t)=>({space:(0,$.css)({paddingRight:e.spacing(0),paddingBottom:e.spacing(.5)}),root:(0,$.css)({minWidth:e.spacing(null!=t?t:0)}),label:(0,$.css)({fontSize:12,fontWeight:e.typography.fontWeightMedium}),optional:(0,$.css)({fontStyle:"italic",color:e.colors.text.secondary}),field:(0,$.css)({marginBottom:0}),icon:(0,$.css)({color:e.colors.text.secondary,marginLeft:e.spacing(1),":hover":{color:e.colors.text.primary}})});var Se=function(e,t){return"boolean"==typeof t?t:!e};const Pe=function(e){return(0,t.useReducer)(Se,e)};function xe({title:e,children:t,collapsedInfo:n}){const[a,l]=Pe(!1),i=(0,o.useStyles2)(je);return r().createElement("div",{className:i.wrapper},r().createElement(o.Collapse,{className:i.collapse,collapsible:!0,isOpen:a,onToggle:l,label:r().createElement(o.Stack,{gap:0},r().createElement("h6",{className:i.title},e),!a&&r().createElement("div",{className:i.description},n.map(((e,t)=>r().createElement("span",{key:t},e)))))},r().createElement("div",{className:i.body},t)))}const je=e=>({collapse:(0,$.css)({backgroundColor:"unset",border:"unset",marginBottom:0,"> button":{padding:e.spacing(0,1)}}),wrapper:(0,$.css)({width:"100%",display:"flex",justifyContent:"space-between",alignItems:"baseline"}),title:(0,$.css)({flexGrow:1,overflow:"hidden",fontSize:e.typography.bodySmall.fontSize,fontWeight:e.typography.fontWeightMedium,margin:0}),description:(0,$.css)({color:e.colors.text.secondary,fontSize:e.typography.bodySmall.fontSize,fontWeight:e.typography.bodySmall.fontWeight,paddingLeft:e.spacing(2),gap:e.spacing(2),display:"flex"}),body:(0,$.css)({display:"flex",gap:e.spacing(2),flexWrap:"wrap"})});function Te(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ce(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){Te(e,t,r[t])}))}return e}function Le(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}const Ie=[{value:"metrics",label:"Metric",description:"Return aggregated metrics"},{value:"profile",label:"Profile",description:"Return profile"},{value:"both",label:"Both",description:"Return both metric and profile data"}];function Ne(t){return t===e.CoreApp.Explore?Ie:Ie.filter((e=>"both"!==e.value))}function ke({query:e,onQueryChange:t,app:n,labels:a}){var l,i;const s=(0,o.useStyles2)(Ae),c=Ne(n),u=a?a.map((e=>({label:e,value:e}))):[];let p=[`Type: ${e.queryType}`];return(null===(l=e.groupBy)||void 0===l?void 0:l.length)&&p.push(`Group by: ${e.groupBy.join(", ")}`),(null===(i=e.spanSelector)||void 0===i?void 0:i.length)&&p.push(`Span ID: ${e.spanSelector.join(", ")}`),e.maxNodes&&p.push(`Max nodes: ${e.maxNodes}`),r().createElement(z,{gap:0,direction:"column"},r().createElement(xe,{title:"Options",collapsedInfo:p},r().createElement("div",{className:s.body},r().createElement(we,{label:"Query Type"},r().createElement(o.RadioButtonGroup,{options:c,value:e.queryType,onChange:r=>t(Le(Ce({},e),{queryType:r}))})),r().createElement(we,{label:"Group by",tooltip:r().createElement(r().Fragment,null,"Used to group the metric result by a specific label or set of labels. Does not apply to profile query.")},r().createElement(o.MultiSelect,{placeholder:"Label",value:e.groupBy,allowCustomValue:!0,options:u,onChange:r=>{const n=r.map((e=>e.value));t(Le(Ce({},e),{groupBy:n}))}})),r().createElement(we,{label:"Span ID",tooltip:r().createElement(r().Fragment,null,"Sets the span ID from which to search for profiles.")},r().createElement(o.Input,{value:e.spanSelector||[""],type:"string",placeholder:"64f170a95f537095",onChange:r=>{t(Le(Ce({},e),{spanSelector:""!==r.currentTarget.value?[r.currentTarget.value]:[]}))}})),r().createElement(we,{label:"Max Nodes",tooltip:r().createElement(r().Fragment,null,"Sets the maximum number of nodes to return in the flamegraph.")},r().createElement(o.Input,{value:e.maxNodes||"",type:"number",placeholder:"16384",onChange:r=>{let n=parseInt(r.currentTarget.value,10);n=isNaN(n)?0:n,t(Le(Ce({},e),{maxNodes:n}))}})))))}const Ae=e=>({switchLabel:(0,$.css)({color:e.colors.text.secondary,cursor:"pointer",fontSize:e.typography.bodySmall.fontSize,"&:hover":{color:e.colors.text.primary}}),body:(0,$.css)({display:"flex",paddingTop:e.spacing(2),gap:e.spacing(2),flexWrap:"wrap"})});function qe(e,t,r,n,o,a,l){try{var i=e[a](l),s=i.value}catch(e){return void r(e)}i.done?t(s):Promise.resolve(s).then(n,o)}function De(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Re(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){De(e,t,r[t])}))}return e}function _e(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}const Me=/(\w+)\s*=\s*("[^,"]+")/g,Ve=new e.DataSourcePlugin(M).setConfigEditor((e=>{const{options:t,onOptionsChange:a}=e;return r().createElement(r().Fragment,null,r().createElement(o.DataSourceHttpSettings,{defaultUrl:"http://localhost:4040",dataSourceConfig:t,showAccessOptions:!1,onChange:a,secureSocksDSProxyEnabled:n.config.secureSocksDSProxyEnabled}),r().createElement("h3",{className:"page-heading"},"Querying"),r().createElement("div",{className:"gf-form-group"},r().createElement("div",{className:"gf-form-inline"},r().createElement("div",{className:"gf-form"},r().createElement(o.LegacyForms.FormField,{label:"Minimal step",labelWidth:13,inputEl:r().createElement(o.LegacyForms.Input,{className:"width-6",value:t.jsonData.minStep,spellCheck:!1,placeholder:"15s",onChange:e=>{a(i(l({},t),{jsonData:i(l({},t.jsonData),{minStep:e.currentTarget.value})}))},validationEvents:{[o.EventsWithValidation.onBlur]:[(0,o.regexValidation)(/^$|^\d+(ms|[Mwdhmsy])$/,"Value is not valid, you can use number with time unit specifier: y, M, w, d, h, m, s")]}}),tooltip:"Minimal step used for metric query. Should be the same or higher as the scrape interval setting in the Pyroscope database."})))))})).setQueryEditor((function(e){const{onChange:n,onRunQuery:a,datasource:l,query:i,range:s,app:u}=e,p=function(e,r){const n=(0,t.useRef)(e);n.current=e;const o=(0,f.debounce)((e=>{r&&r(_e(Re({},n.current),{labelSelector:e}))}),200);return(0,t.useCallback)((e=>{o(e)}),[o])}(i,n),d=h(l,s),{labels:y,getLabelValues:g}=function(e,r,n){const o={to:1e4*Math.ceil(((null==e?void 0:e.to.valueOf())||0)/1e4),from:1e4*Math.floor(((null==e?void 0:e.from.valueOf())||0)/1e4)},a=(e,t,r)=>{let n,o=[`__profile_type__="${t}"`];for(;null!==(n=Me.exec(e));)if(n[1]&&n[2]){if(n[1]===r)continue;o.push(`${n[1]}=${n[2]}`)}return`{${o.join(",")}}`},[l,i]=(0,t.useState)((()=>[""]));(0,t.useEffect)((()=>{const e=(t=function*(){const e=yield r.getLabelNames(a(n.labelSelector,n.profileTypeId,""),o.from,o.to);i(e)},l=function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function l(e){qe(a,n,o,l,i,"next",e)}function i(e){qe(a,n,o,l,i,"throw",e)}l(void 0)}))},function(){return l.apply(this,arguments)});var t,l;e()}),[n,o.from,o.to,r,i]);return{labels:l,getLabelValues:(0,t.useCallback)((e=>{const t=a(n.labelSelector,n.profileTypeId,e);return r.getLabelValues(t,e,o.from,o.to)}),[r,n.labelSelector,n.profileTypeId,o.to,o.from])}}(s,l,i);!function(e,r,n,o){(0,t.useEffect)((()=>{if(!r)return;const t=F(e,o);e.profileTypeId||(t.profileTypeId=function(e){var t;const r=e.filter((e=>e.id.indexOf("cpu")>=0));if(r.length){const e=r.find((e=>-1===e.id.indexOf("samples")));return e?e.id:r[0].id}return(null===(t=e[0])||void 0===t?void 0:t.id)||""}(r)),c()(e,t)||n(t)}),[o,e,r,n])}(i,d,n,u);let b=r().createElement(o.LoadingPlaceholder,{text:"Loading"});return d&&void 0!==i.profileTypeId&&(b=r().createElement(m,{placeholder:0===d.length?"No profile types found":"Select profile type",profileTypes:d,initialProfileTypeId:i.profileTypeId,onChange:e=>{n(_e(Re({},i),{profileTypeId:e}))}})),r().createElement(K,null,r().createElement(U,{stackProps:{wrap:!1,gap:1}},b,r().createElement(ce,{value:i.labelSelector,onChange:p,onRunQuery:function(e){n(_e(Re({},i),{labelSelector:e})),a()},labels:y,getLabelValues:g}),r().createElement(he,e)),r().createElement(U,null,r().createElement(ke,{query:i,onQueryChange:e.onChange,app:e.app,labels:y})))}))})(),p})())); //# sourceMappingURL=module.js.map
Submit
FILE
FOLDER
INFO
Name
Size
Permission
Action
img
---
0755
CHANGELOG.md
12 bytes
0644
LICENSE
34523 bytes
0644
README.md
965 bytes
0644
module.js
33854 bytes
0644
module.js.map
118164 bytes
0644
plugin.json
1058 bytes
0644
N4ST4R_ID | Naxtarrr