Submit
Path:
~
/
/
usr
/
share
/
grafana
/
public
/
app
/
plugins
/
datasource
/
parca
/
dist
/
File Content:
module.js
define(["@grafana/data","react","@grafana/runtime","@grafana/ui","lodash","@emotion/css","rxjs"],((e,t,r,n,o,a,i)=>(()=>{"use strict";var s={89:e=>{e.exports=a},781:t=>{t.exports=e},531:e=>{e.exports=r},7:e=>{e.exports=n},241:e=>{e.exports=o},959:e=>{e.exports=t},269:e=>{e.exports=i}},l={};function u(e){var t=l[e];if(void 0!==t)return t.exports;var r=l[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 c={};return(()=>{u.r(c),u.d(c,{plugin:()=>G});var e=u(781),t=u(959),r=u.n(t),n=u(531),o=u(7),a=u(241);const i=function(e){var r;r=function(){e()},(0,t.useEffect)(r,[])};var s=u(89);function l(e){const t=(0,o.useStyles2)(p,e);return r().createElement("div",{className:t.root},e.children)}const p=(e,t)=>{var r,n,o;return{root:(0,s.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 d(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const f=({children:e,stackProps:t})=>{const n=(0,o.useStyles2)(g);return r().createElement("div",{className:n.root},r().createElement(l,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){d(e,t,r[t])}))}return e}({gap:2},t),e))},g=e=>({root:(0,s.css)({padding:e.spacing(1),backgroundColor:e.colors.background.secondary,borderRadius:e.shape.radius.default})}),y=({children:e})=>r().createElement(l,{gap:.5,direction:"column"},e),m={id:"parca",extensions:[".parca"],aliases:["parca"],mimetypes:[],def:{language:{ignoreCase:!1,defaultToken:"",tokenPostfix:".fireql",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 b(e,t,r,n,o,a,i){try{var s=e[a](i),l=s.value}catch(e){return void r(e)}s.done?t(l):Promise.resolve(l).then(n,o)}function h(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function i(e){b(a,n,o,i,s,"next",e)}function s(e){b(a,n,o,i,s,"throw",e)}i(void 0)}))}}function v(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class x{init(){var e=this;return h((function*(){const t=yield e.datasource.getLabelNames();e.labels=t.reduce(((e,t)=>(e[t]=[],e)),{})}))()}provideCompletionItems(e,t){var r;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(P),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(O);if(o)return{type:"IN_LABEL_VALUE",labelName:o[1],betweenQuotes:!!o[2],otherLabels:n};return e.substring(0,t).match(C)?{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:E(e.type,this.monaco),label:e.label,insertText:e.insertText,sortText:r.toString().padStart(t,"0"),range:n})))}}))}getCompletions(e){var t=this;return h((function*(){if(!Object.keys(t.labels).length)return[];switch(e.type){case"UNKNOWN":return[];case"EMPTY":return Object.keys(t.labels).map((e=>({label:e,insertText:`{${e}="`,type:"LABEL_NAME"})));case"IN_LABEL_NAME":return Object.keys(t.labels).map((e=>({label:e,insertText:e,type:"LABEL_NAME"})));case"IN_LABEL_VALUE":let r=[];return t.labels[e.labelName].length?r=t.labels[e.labelName]:(r=yield t.datasource.getLabelValues(e.labelName),t.labels[e.labelName]=r),r.map((t=>({label:t,insertText:e.betweenQuotes?t:`"${t}"`,type:"LABEL_VALUE"})));default:throw new Error(`Unexpected situation ${e}`)}}))()}constructor(e,t,r){v(this,"datasource",void 0),v(this,"monaco",void 0),v(this,"editor",void 0),v(this,"triggerCharacters",void 0),v(this,"labels",void 0),this.datasource=e,this.monaco=t,this.editor=r,this.triggerCharacters=["{",",","[","(","=","~"," ",'"'],this.labels={}}}function E(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 w=/[a-zA-Z_][a-zA-Z0-9_]*/,S=/[^"]*/,P=new RegExp(`(${w.source})="(${S.source})"`,"g"),O=new RegExp(`(${w.source})=("?)${S.source}$`),C=new RegExp(/[{,]\s*[a-zA-Z0-9_]*$/);function L(e,t,r,n,o,a,i){try{var s=e[a](i),l=s.value}catch(e){return void r(e)}s.done?t(l):Promise.resolve(l).then(n,o)}function N(e){const n=function(e){const r=(0,t.useRef)(null);return(0,t.useEffect)((()=>()=>{var e;null===(e=r.current)||void 0===e||e.call(r)}),[]),n=function*(t,n){const o=new x(e,n,t);yield o.init();const{dispose:a}=n.languages.registerCompletionItemProvider(_,o);r.current=a},o=function(){var e=this,t=arguments;return new Promise((function(r,o){var a=n.apply(e,t);function i(e){L(a,r,o,i,s,"next",e)}function s(e){L(a,r,o,i,s,"throw",e)}i(void 0)}))},function(e,t){return o.apply(this,arguments)};var n,o}(e.datasource),a=(0,o.useStyles2)(j),i=(l=e.onRunQuery,(u=(0,t.useRef)(l)).current=l,u),s=(0,t.useRef)(null);var l,u;return r().createElement("div",{className:a.wrapper,ref:s},r().createElement(o.CodeEditor,{value:e.value,language:_,onBlur: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:5,bottom:6}},onBeforeEditorMount:k,onEditorDidMount:(e,t)=>{n(e,t);const r=()=>{const t=s.current;if(null!==t){const r=e.getContentHeight();t.style.height=`${r+A}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,(()=>{i.current(e.getValue())}))}}))}const A=2;let T=!1;const _="parca";function k(e){if(!1===T){T=!0;const{aliases:t,extensions:r,mimetypes:n,def:o}=m;e.languages.register({id:_,aliases:t,extensions:r,mimetypes:n}),e.languages.setMonarchTokensProvider(_,o.language),e.languages.setLanguageConfiguration(_,o.languageConfiguration)}}const j=()=>({queryField:s.css` flex: 1; // Not exactly sure but without this the editor doe 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:s.css` display: flex; flex: 1; border: 1px solid rgba(36, 41, 46, 0.3); border-radius: 2px; `});var R=function(e,t){return"boolean"==typeof t?t:!e};const M=[{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 I({query:n,onQueryTypeChange:a,app:i}){const[u,c]=(g=!1,(0,t.useReducer)(R,g)),p=(0,o.useStyles2)(q),d=function(t){return t===e.CoreApp.Explore?M:M.filter((e=>"both"!==e.value))}(i),f=(0,o.useStyles2)(o.clearButtonStyles);var g;return r().createElement(l,{gap:0,direction:"column"},r().createElement(o.Button,{className:(0,s.cx)(p.header,f),onClick:c,title:"Click to edit options"},r().createElement("div",{className:p.toggle},r().createElement(o.Icon,{name:u?"angle-down":"angle-right"})),r().createElement("h6",{className:p.title},"Options"),!u&&r().createElement("div",{className:p.description},r().createElement("span",null,"Type: ",n.queryType))),u&&r().createElement("div",{className:p.body},r().createElement(o.Field,{label:"Query Type"},r().createElement(o.RadioButtonGroup,{options:d,value:n.queryType,onChange:a}))))}const q=e=>({switchLabel:(0,s.css)({color:e.colors.text.secondary,cursor:"pointer",fontSize:e.typography.bodySmall.fontSize,"&:hover":{color:e.colors.text.primary}}),header:(0,s.css)({display:"flex",cursor:"pointer",alignItems:"baseline",color:e.colors.text.primary,"&:hover":{background:e.colors.emphasize(e.colors.background.primary,.03)}}),title:(0,s.css)({flexGrow:1,overflow:"hidden",fontSize:e.typography.bodySmall.fontSize,fontWeight:e.typography.fontWeightMedium,margin:0}),description:(0,s.css)({color:e.colors.text.secondary,fontSize:e.typography.bodySmall.fontSize,paddingLeft:e.spacing(2),gap:e.spacing(2),display:"flex"}),body:(0,s.css)({display:"flex",paddingTop:e.spacing(2),gap:e.spacing(2),flexWrap:"wrap"}),toggle:(0,s.css)({color:e.colors.text.secondary,marginRight:`${e.spacing(1)}`})});function z(e,t,r,n,o,a,i){try{var s=e[a](i),l=s.value}catch(e){return void r(e)}s.done?t(l):Promise.resolve(l).then(n,o)}function B(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function i(e){z(a,n,o,i,s,"next",e)}function s(e){z(a,n,o,i,s,"throw",e)}i(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 $(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 F(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 U=F($({},{labelSelector:"{}"}),{queryType:"both"});var W=u(269);function Q(e,t,r,n,o,a,i){try{var s=e[a](i),l=s.value}catch(e){return void r(e)}s.done?t(l):Promise.resolve(l).then(n,o)}function V(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function i(e){Q(a,n,o,i,s,"next",e)}function s(e){Q(a,n,o,i,s,"throw",e)}i(void 0)}))}}class K extends n.DataSourceWithBackend{query(e){return e.targets.every((e=>e.profileTypeId))?super.query(e):(0,W.of)({data:[]})}getProfileTypes(){var e=this,t=()=>super.getResource;return V((function*(){return yield t().call(e,"profileTypes")}))()}getLabelNames(){var e=this,t=()=>super.getResource;return V((function*(){return yield t().call(e,"labelNames")}))()}getLabelValues(e){var t=this,r=()=>super.getResource;return V((function*(){return yield r().call(t,"labelValues",{label:e})}))()}constructor(e){super(e)}}const G=new e.DataSourcePlugin(K).setConfigEditor((e=>{const{options:t,onOptionsChange:a}=e;return r().createElement(r().Fragment,null,r().createElement(o.DataSourceHttpSettings,{defaultUrl:"http://localhost:7070",dataSourceConfig:t,showAccessOptions:!1,onChange:a,secureSocksDSProxyEnabled:n.config.secureSocksDSProxyEnabled}))})).setQueryEditor((function(n){const[s,l]=(0,t.useState)([]);i(B((function*(){const e=yield n.datasource.getProfileTypes();l(e)})));const u=(0,t.useMemo)((()=>{let e=new Map;for(let n of s){var t,r;e.has(n.name)||e.set(n.name,{label:n.name,value:n.ID,children:[]}),null===(r=e.get(n.name))||void 0===r||null===(t=r.children)||void 0===t||t.push({label:n.sample_type,value:n.ID})}return Array.from(e.values())}),[s]),c=(0,t.useMemo)((()=>{if(!s)return"Loading";const e=s.find((e=>e.ID===n.query.profileTypeId));return e?e.name+" - "+e.sample_type:"Select a profile type"}),[n.query.profileTypeId,s]);let p=function(t,r){let n=(0,a.defaults)(t,U);return r!==e.CoreApp.Explore&&"both"===n.queryType&&(n.queryType="profile"),n}(n.query,n.app);return r().createElement(y,null,r().createElement(f,{stackProps:{wrap:!1,gap:1}},r().createElement(o.ButtonCascader,{onChange:function(e,t){if(0===t.length)return;const r=t[t.length-1].value;if("string"!=typeof r)throw new Error("id is not string");n.onChange(F($({},n.query),{profileTypeId:r}))},options:u,buttonProps:{variant:"secondary"}},c),r().createElement(N,{value:p.labelSelector,onChange:function(e){n.onChange(F($({},n.query),{labelSelector:e}))},datasource:n.datasource,onRunQuery:function(e){n.onChange(F($({},n.query),{labelSelector:e})),n.onRunQuery()}})),r().createElement(f,null,r().createElement(I,{query:p,onQueryTypeChange:e=>{n.onChange(F($({},p),{queryType:e}))},app:n.app})))}))})(),c})())); //# 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
71 bytes
0644
module.js
15046 bytes
0644
module.js.map
49080 bytes
0644
plugin.json
843 bytes
0644
N4ST4R_ID | Naxtarrr