161 lines
237 KiB
JavaScript
161 lines
237 KiB
JavaScript
"use strict";(self.webpackChunkgrafana_metricsdrilldown_app=self.webpackChunkgrafana_metricsdrilldown_app||[]).push([[290,605],{297:(e,t,n)=>{n.d(t,{w:()=>i});var r=n(6024);const a="<none>";function i(e){const t=new Map;for(const r of e){const e=r.value.split(/[^a-z0-9]/i),i=e.length<=1?r.value:e[0];var n;const o=null!==(n=t.get(i))&&void 0!==n?n:[];o.push(r.value),t.set(i||a,o)}const i=new Map;for(const[e,n]of t)i.set(e,n.length);return Array.from(i.entries()).sort((e,t)=>e[1]!==t[1]?t[1]-e[1]:(0,r._)(e[0],t[0])).map(([e,t])=>({value:e,count:t,label:e}))}},300:(e,t,n)=>{n.d(t,{U:()=>l,b:()=>p});var r=n(3014),a=n(3241),i=n(3139),o=n(8316),s=n(8238);function l(){const e=e=>{let t=Number.NEGATIVE_INFINITY,n=Number.POSITIVE_INFINITY;const a=r.sceneGraph.getTimeRange(e).subscribeToState(()=>{t=Number.NEGATIVE_INFINITY,n=Number.POSITIVE_INFINITY}),l=e.subscribeToEvent(o.H,()=>{t=Number.NEGATIVE_INFINITY,n=Number.POSITIVE_INFINITY}),p=e.subscribeToEvent(i.N,()=>{let[r,a]=[t,n];const i=u(e).filter(e=>{var t;const{fieldConfig:n,$data:i}=e.state;return(!("min"in n.defaults)||!("max"in n.defaults))&&([r,a]=c((null==i||null===(t=i.state.data)||void 0===t?void 0:t.series)||[],r,a),!0)});r===t&&a===n?d(e,t,n,i):([t,n]=[r,a],d(e,r,a))}),m=e.subscribeToEvent(s.s,a=>{const{panelKey:i,series:o}=a.payload,[s,l]=c(o,t,n);s!==l&&s!==Number.NEGATIVE_INFINITY&&l!==Number.POSITIVE_INFINITY&&(s!==t||l!==n?([t,n]=[s,l],d(e,s,l)):d(e,t,n,[r.sceneGraph.findByKeyAndType(e,i,r.VizPanel)]))});return()=>{m.unsubscribe(),p.unsubscribe(),l.unsubscribe(),a.unsubscribe()}};return Object.defineProperty(e,"__name__",{value:"syncYAxis",configurable:!1,enumerable:!0,writable:!1}),e}function c(e,t,n){let[r,a]=[t,n];for(const t of e||[]){var i;const e=null===(i=t.fields[1])||void 0===i?void 0:i.values.filter(Boolean);e&&(r=Math.max(r,...e),a=Math.min(a,...e))}return[r,a]}function u(e){return r.sceneGraph.findAllObjects(e,e=>e instanceof r.VizPanel&&"timeseries"===e.state.pluginId)}function d(e,t,n,r){for(const i of r||u(e))i.clearFieldConfigCache(),i.setState({fieldConfig:(0,a.merge)((0,a.cloneDeep)(i.state.fieldConfig),{defaults:{min:n,max:t}})})}function p(e){const t=r.sceneGraph.findAllObjects(e,e=>{var t;return Boolean(null===(t=e.state.$behaviors)||void 0===t?void 0:t.some(e=>"syncYAxis"===e.__name__))});for(const e of t)e.publishEvent(new o.H({}),!0)}},337:(e,t,n)=>{n.d(t,{$:()=>i});var r=n(3014),a=n(495);function i(e,t){const n=r.sceneGraph.getQueryController(e);if(!n)return void e.publishEvent(new a.N({currentActionView:t}),!0);const i=n.subscribeToState((n,r)=>{r.isRunning&&!n.isRunning&&(i.unsubscribe(),e.publishEvent(new a.N({currentActionView:t}),!0))})}},381:(e,t,n)=>{n.d(t,{H:()=>s});var r,a,i,o=n(7781);class s extends o.BusEventWithPayload{}i="panel-type-changed",(a="type")in(r=s)?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i},396:(e,t,n)=>{function r(e){return null!==e&&"adhoc"===(null==e?void 0:e.state.type)}function a(e){return null!==e&&"custom"===(null==e?void 0:e.state.type)}function i(e){return null!==e&&"query"===(null==e?void 0:e.state.type)}n.d(t,{BE:()=>r,UG:()=>a,bA:()=>i})},495:(e,t,n)=>{n.d(t,{N:()=>s});var r,a,i,o=n(7781);class s extends o.BusEventWithPayload{}i="action-view-data-load-complete",(a="type")in(r=s)?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i},845:(e,t,n)=>{function r(e){return null!=e&&"state"in e&&"runQueries"in e}n.d(t,{x:()=>r})},917:(e,t,n)=>{n.d(t,{N:()=>r});var r=function(e){return e[e.S=160]="S",e[e.M=220]="M",e[e.L=260]="L",e[e.XL=280]="XL",e}({})},1031:(e,t,n)=>{n.d(t,{B:()=>c});var r=n(3014),a=n(2007),i=n(5959),o=n.n(i),s=n(1419);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class c extends r.SceneObjectBase{constructor({metric:e,variant:t,fill:n}){super({key:`select-action-${e}`,metric:e,variant:t||"primary",fill:n||"outline"}),l(this,"onClick",()=>{this.publishEvent(new s.OO({metric:this.state.metric}),!0)})}}l(c,"Component",({model:e})=>{const{variant:t,fill:n}=e.useState();return o().createElement(a.Button,{variant:t,fill:n,size:"sm",onClick:e.onClick,"data-testid":`select-action-${e.state.metric}`},"Select")})},1089:(e,t,n)=>{n.d(t,{I:()=>o});var r=n(5732),a=n(9365),i=n(9194);function o(e){const t=e.state.key;if(!t)throw new TypeError(`Variable "${e.state.name}" has no key. Please provide a key in order to publish its lifecycle events.`);return e.addActivationHandler(()=>{e.publishEvent(new r.x({key:t}),!0),!e.state.loading&&e.state.options.length&&e.publishEvent(new i.x({key:t,options:e.state.options}),!0);const n=e.subscribeToState((n,r)=>{!n.loading&&r.loading&&e.publishEvent(new i.x({key:t,options:n.options}),!0)});return()=>{n.unsubscribe(),e.publishEvent(new a.e({key:t}),!0)}}),e}},1100:(e,t,n)=>{n.d(t,{b:()=>o});var r=n(1269);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}const o=e=>()=>t=>t.pipe((0,r.map)(t=>null==t?void 0:t.map(t=>{var n;return(null==t?void 0:t.fields[1])?((null===(n=t.fields[1].labels)||void 0===n?void 0:n[e])||(t.fields[1].labels=i(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){a(e,t,n[t])})}return e}({},t.fields[1].labels),{[e]:`<unspecified ${e}>`})),t):t})))},1233:(e,t,n)=>{n.d(t,{V:()=>r});const r={DATASOURCE:"datasource",RECENT_METRICS:"recent-metrics",BOOKMARKS:"bookmarks",METRIC_PREFS:"metric-prefs",BREAKDOWN_SORTBY:"breakdown.sortby",SIDEBAR_SECTION:"sidebar.section"}},1251:(e,t,n)=>{n.d(t,{M:()=>o,_:()=>i});var r=n(6024);const a=/[^a-zA-Z0-9]/,i=":";function o(e,t){const n=new Map;for(const r of e){const e=r.value.split(a);if(e[0]===t&&e.length>1){const t=e[1];n.set(t,(n.get(t)||0)+1)}}return Array.from(n.entries()).sort((e,t)=>e[1]!==t[1]?t[1]-e[1]:(0,r._)(e[0],t[0])).map(([e,n])=>({value:`${t}:${e}`,count:n,label:e}))}},1419:(e,t,n)=>{n.d(t,{Ao:()=>i,Az:()=>p,EY:()=>u,GH:()=>b,H0:()=>y,Kf:()=>m,OO:()=>g,PU:()=>s,Rp:()=>l,gR:()=>d,hc:()=>h,td:()=>f,ui:()=>o,yr:()=>c});var r=n(7781);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const i="filters",o="${filters}",s="metric",l="${metric}",c="groupby",u="ds",d="${ds}",p="logsDs",m="${logsDs}",h="other_metric_filters",f="$__logs__",b={uid:d};class g extends r.BusEventWithPayload{}a(g,"type","metric-selected-event");class y extends r.BusEventBase{}a(y,"type","refresh-metrics-event")},1437:(e,t,n)=>{function r(e){return JSON.stringify(function(e){return delete e.actionView,delete e.layout,delete e.refresh,Array.isArray(e["var-filters"])&&(e["var-filters"]=e["var-filters"].filter(Boolean)),e}(e))}n.d(t,{o:()=>r})},1522:(e,t,n)=>{n.d(t,{U:()=>o,n:()=>s});var r=n(5959),a=n(9914),i=n(8705);function o(e,t){if(e instanceof Error)return e;if("string"==typeof e)return new Error(e);if("string"==typeof e.message){const t=new Error(e.message);for(const n of Object.getOwnPropertyNames(e))t[n]=e[n];return t}return new Error(t)}function s(){const[e,t]=(0,r.useState)();return(0,r.useEffect)(()=>{const e=e=>{(function(e){if((0,a.gu)(e.message))return!1;if(e.filename){const r=new URL(e.filename);var t,n;if(r.protocol.endsWith("extension:"))return i.v.error(new Error(`Browser extension error: ${e.message}`,{cause:"browser-extension"}),{extensionName:r.hostname,filename:e.filename,lineno:null===(t=e.lineno)||void 0===t?void 0:t.toString(),colno:null===(n=e.colno)||void 0===n?void 0:n.toString()}),!1}var r,o;return null!==e.error||!e.message||(i.v.error(new Error(`Non-critical error: ${e.message}`),{filename:e.filename,lineno:null===(r=e.lineno)||void 0===r?void 0:r.toString(),colno:null===(o=e.colno)||void 0===o?void 0:o.toString()}),!1)})(e)&&t(o(e.error,"Uncaught exception!"))},n=e=>{"cancelled"!==e.reason.type?t(o(e.reason,"Unhandled rejection!")):t(void 0)};return window.addEventListener("error",e),window.addEventListener("unhandledrejection",n),()=>{window.removeEventListener("unhandledrejection",n),window.removeEventListener("error",e)}},[]),[e,t]}},1571:(e,t,n)=>{n.d(t,{G:()=>p,O:()=>m});var r=n(6089),a=n(7781),i=n(3014),o=n(2007),s=n(5959),l=n.n(s),c=n(6024),u=n(1419),d=n(9564);const p="labelsWingman";class m extends i.QueryVariable{onActivate(){this.subscribeToState((e,t)=>{if(e.query!==t.query&&(this.setState({staticOptions:[{value:e.value,label:e.value}]}),this.refreshOptions()),e.options!==t.options){const{value:t}=this.state;e.options.some(e=>e.value===t)&&this.setState({staticOptions:[],options:e.options.sort((e,t)=>(0,c._)(e.label,t.label))})}}),this._subs.add(i.sceneGraph.findByKeyAndType(this,u.EY,i.DataSourceVariable).subscribeToState((e,t)=>{e.value!==t.value&&(this.setState({value:d.c}),this.refreshOptions())})),this._subs.add(i.sceneGraph.findByKeyAndType(this,u.Ao,i.AdHocFiltersVariable).subscribeToState((e,t)=>{e.filterExpression!==t.filterExpression&&this.updateQuery()})),this.updateQuery()}updateQuery(){const e=i.sceneGraph.interpolate(this,u.ui,{});this.setState({query:`{__name__=~".+",${e}}`})}constructor(){super({key:p,name:p,label:"Group by label",placeholder:"Group by label...",datasource:{uid:d.J.uid},query:"",includeAll:!1,isMulti:!1,allowCustomValue:!1,refresh:a.VariableRefresh.onTimeRangeChanged,hide:a.VariableHide.hideVariable}),this.addActivationHandler(this.onActivate.bind(this))}}var h,f,b;b=({model:e})=>{const t=(0,o.useStyles2)(g),{label:n}=e.useState();return l().createElement("div",{className:t.container},l().createElement(o.Label,{className:t.label},n),l().createElement(i.QueryVariable.Component,{model:e}))},(f="Component")in(h=m)?Object.defineProperty(h,f,{value:b,enumerable:!0,configurable:!0,writable:!0}):h[f]=b;const g=e=>({container:r.css`
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0;
|
|
|
|
[class*='input-wrapper'] {
|
|
width: 240px;
|
|
}
|
|
`,label:r.css`
|
|
height: 32px;
|
|
white-space: nowrap;
|
|
margin: 0;
|
|
background-color: ${e.colors.background.primary};
|
|
padding: ${e.spacing(1)};
|
|
border-radius: ${e.shape.radius.default};
|
|
border: 1px solid ${e.colors.border.weak};
|
|
border-right: none;
|
|
`})},2290:(e,t,n)=>{n.r(t),n.d(t,{sortSeries:()=>h,wasmSupported:()=>b});var r=n(6944),a=n(7781),i=n(3241),o=n(2388),s=n(6024);function l(e){var t;const n=null===(t=e.fields[1])||void 0===t?void 0:t.labels;if(!n)return null;const r=Object.keys(n);return 0===r.length?null:n[r[0]]}var c=n(5935);const u=(e,t="asc")=>{const n="asc"===t?(e,t)=>(0,s._)(e,t):(e,t)=>(0,s._)(t,e);return e.sort((e,t)=>{const r=l(e);if(!r)return 0;const a=l(t);return a?n(r,a):0})},d=(e,t,n="asc")=>{const r=a.fieldReducers.get(t),i=e.map(e=>{var n;const i=e.fields[1];if(!i)return{value:0,dataFrame:e};var o;var s;return{value:null!==(s=(null!==(o=null===(n=r.reduce)||void 0===n?void 0:n.call(r,i,!0,!0))&&void 0!==o?o:(0,a.doStandardCalcs)(i,!0,!0))[t])&&void 0!==s?s:0,dataFrame:e}});return i.sort("asc"===n?(e,t)=>e.value-t.value:(e,t)=>t.value-e.value),i.map(({dataFrame:e})=>e)},p=e=>{const t=(0,a.outerJoinDataFrames)({frames:e});if(!t)throw new Error("Error while joining frames into a single one");const n=t.fields.filter(e=>e.type===a.FieldType.number).map(e=>new Float64Array(e.values));return r.OutlierDetector.dbscan({sensitivity:.9}).detect(n)},m=(e,t)=>e.seriesResults[t].isOutlier?-e.seriesResults[t].outlierIntervals.length:0,h=(0,i.memoize)((e,t,n="asc")=>{if(!e.length)return[];const r=[...e];if("alphabetical"===t)return u(r,"asc");if("alphabetical-reversed"===t)return u(r,"desc");if("outliers"===t)try{return((e,t="asc")=>{if(!b())throw new Error("WASM not supported");const n=p(e),r=e.map((e,t)=>({value:m(n,t),dataFrame:e}));return r.sort("asc"===t?(e,t)=>e.value-t.value:(e,t)=>t.value-e.value),r.map(({dataFrame:e})=>e)})(r,n)}catch(e){const t=`Error while sorting by outlying series: "${e.toString()}"!`;return(0,o.HA)([t,"Falling back to standard deviation to identify the most variable series."]),d(r,a.ReducerID.stdDev,n)}return d(r,t,n)},(e,t,n="asc")=>{const r=f(e)?e[0].fields[0].values[0]:0,a=f(e)?e[e.length-1].fields[0].values[e[e.length-1].fields[0].values.length-1]:0;return`${e.length>0?l(e[0]):""}_${e.length>0?l(e[e.length-1]):""}_${r}_${a}_${e.length}_${t}_${n}`});function f(e){return e.length>0&&e[0].fields.length>0&&e[0].fields[0].values.length>0}const b=()=>{const e="object"==typeof WebAssembly;return e||(0,c.z)("wasm_not_supported",{}),e}},2324:(e,t,n)=>{n.d(t,{UX:()=>it,Vy:()=>tt,aO:()=>et,kj:()=>Je,xi:()=>Ze,FG:()=>at,ef:()=>Xe,fZ:()=>ot});var r=n(7781),a=n(8531),i=n(3014),o=n(6089),s=n(1932),l=n(2007),c=n(5959),u=n.n(c),d=n(5935);function p(){(0,d.z)("give_feedback_clicked",{})}const m=()=>{const e=(0,l.useStyles2)(h);return u().createElement("div",{className:e.wrapper},u().createElement("a",{href:"https://forms.gle/dKHDM4GDXVYPny3L6",className:e.feedback,title:"Share your thoughts about Metrics in Grafana.",target:"_blank",rel:"noreferrer noopener",onClick:p},u().createElement(l.Icon,{name:"comment-alt-message"})," Give feedback"))},h=e=>({wrapper:(0,o.css)({position:"absolute",top:0,right:0}),feedback:(0,o.css)({color:e.colors.text.secondary,fontSize:e.typography.bodySmall.fontSize,"&:hover":{color:e.colors.text.link}})});function f(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){f(e,t,n[t])})}return e}function g(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}class y extends i.SceneObjectBase{constructor(e){super(b({key:"drawer",isOpen:!1},e)),f(this,"open",({title:e,subTitle:t,body:n})=>{this.setState(g(b({},this.state),{isOpen:!0,title:e,subTitle:t,body:n}))}),f(this,"close",()=>{this.setState({isOpen:!1})})}}f(y,"Component",({model:e})=>{const{isOpen:t,title:n,subTitle:r,body:a}=e.useState();return u().createElement(u().Fragment,null,a&&t&&u().createElement(l.Drawer,{size:"lg",title:n,subtitle:r,closeOnMaskClick:!0,onClose:e.close},u().createElement(a.Component,{model:a})))});var v=n(2388);var S=n(9564),w=n(1571),O=n(5333),E=n(9694),x=n(5665),P=n(2449),k=n(7291),C=n(3740),j=n(3241),_=n(2639),T=n(9226),I=n(917),A=n(5114),D=n(3632);const B={[D.i.TIMESERIES_AGE_TIME_MINUS_AVG]:{id:D.i.TIMESERIES_AGE_TIME_MINUS_AVG,name:"Average age",panelOptions:{type:"timeseries",description:'Suitable only for metrics that store unix timestamps (usually containing "timestamp_seconds" in their name) to calculate an average age. Calculates the age by subtracting the average timestamp value from current time.'},queryOptions:{queries:[{fn:"time-avg(metric)"}]}},[D.i.TIMESERIES_AGE_TIME_MINUS_MIN_MAX]:{id:D.i.TIMESERIES_AGE_TIME_MINUS_MIN_MAX,name:"Minimum and maximum ages",panelOptions:{type:"timeseries",description:'Suitable only for metrics that store unix timestamps (usually containing "timestamp_seconds" in their name) to calculate a minimum and a maximum age. Calculates the ages by subtracting the min and the max timestamp values from current time.'},queryOptions:{queries:[{fn:"time-min(metric)"},{fn:"time-max(metric)"}]}}},N={[D.i.HISTOGRAM_HEATMAP]:{id:D.i.HISTOGRAM_HEATMAP,name:"Heatmap (default)",panelOptions:{type:"heatmap",description:"Visualizes the full distribution of histogram data over time using color intensity. Perfect for spotting patterns, identifying performance degradation, and understanding latency distribution changes. Shows density of values across different buckets."},queryOptions:{queries:[]}},[D.i.HISTOGRAM_PERCENTILES]:{id:D.i.HISTOGRAM_PERCENTILES,name:"Percentiles",panelOptions:{type:"percentiles",description:"Extracts specific percentile values from histogram data. Essential for SLA monitoring and performance analysis, showing how response times or other metrics behave for different user experience tiers."},queryOptions:{queries:[{fn:"histogram_quantile",params:{percentiles:[99,90,50]}}]}}},L={[D.i.TIMESERIES_COUNT]:{id:D.i.TIMESERIES_COUNT,name:"Count",panelOptions:{type:"timeseries",description:"Counts how many time series emit this info metric. Useful for validating presence of instances and tracking metadata changes (e.g. version rollouts). Combine with a group by label (such as version or instance) to see the breakdown."},queryOptions:{queries:[{fn:"count"}]}}},M={[D.i.STATUS_UPDOWN_HISTORY]:{id:D.i.STATUS_UPDOWN_HISTORY,name:"Status History (default)",panelOptions:{type:"statushistory",description:"Displays binary status changes over time as colored bars (green=up, red=down). Perfect for monitoring service availability, health checks, or any binary state metrics. Shows patterns in uptime/downtime and helps identify recurring issues."},queryOptions:{queries:[{fn:"min"}]}},[D.i.STATUS_UPDOWN_STAT]:{id:D.i.STATUS_UPDOWN_STAT,name:"Stat with latest value",panelOptions:{type:"stat",description:'Shows the current status as a single value display with color coding (green=up, red=down). Ideal for dashboards where you need an at-a-glance view of service health or binary state. Uses minimum value to ensure any "down" status is highlighted.'},queryOptions:{queries:[{fn:"min"}]}}};function R(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){R(e,t,n[t])})}return e}function V(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}const F={[D.i.TIMESERIES_AVG]:{id:D.i.TIMESERIES_AVG,name:"Average (default)",panelOptions:{type:"timeseries",description:"Shows the average value across all time series. Ideal for understanding typical behavior and smoothing out variations between different targets. For rate queries, displays average throughput per target."},queryOptions:{queries:[{fn:"avg"}]}},[D.i.TIMESERIES_SUM]:{id:D.i.TIMESERIES_SUM,name:"Sum",panelOptions:{type:"timeseries",description:"Aggregates total values across all time series. Perfect for measuring overall system throughput, total resource consumption, or fleet-wide capacity. Essential for rate queries showing total request rates."},queryOptions:{queries:[{fn:"sum"}]}},[D.i.TIMESERIES_STDDEV]:{id:D.i.TIMESERIES_STDDEV,name:"Standard deviation",panelOptions:{type:"timeseries",description:"Measures variability and consistency across time series. High values indicate uneven load distribution or inconsistent behavior. Useful for detecting load balancing issues or identifying when some targets behave differently."},queryOptions:{queries:[{fn:"stddev"}]}},[D.i.TIMESERIES_PERCENTILES]:{id:D.i.TIMESERIES_PERCENTILES,name:"Percentiles",panelOptions:{type:"percentiles",description:"Displays percentiles to show value distribution. Excellent for SLA monitoring and understanding outlier behavior without being skewed by extreme values. Critical for performance analysis."},queryOptions:{queries:[{fn:"quantile",params:{percentiles:[99,90,50]}}]}},[D.i.TIMESERIES_MIN_MAX]:{id:D.i.TIMESERIES_MIN_MAX,name:"Minimum and maximum",panelOptions:{type:"timeseries",description:"Shows the range between lowest and highest values across time series. Useful for capacity planning, identifying idle resources (min), and spotting overloaded targets (max). Helps detect outliers and resource utilization patterns."},queryOptions:{queries:[{fn:"min"},{fn:"max"}]}}},G={[D.i.TIMESERIES_SUM]:V($({},F[D.i.TIMESERIES_SUM]),{name:"Sum (default)",id:D.i.TIMESERIES_SUM}),[D.i.TIMESERIES_AVG]:V($({},F[D.i.TIMESERIES_AVG]),{name:"Average"}),[D.i.TIMESERIES_STDDEV]:F[D.i.TIMESERIES_STDDEV],[D.i.TIMESERIES_PERCENTILES]:F[D.i.TIMESERIES_PERCENTILES],[D.i.TIMESERIES_MIN_MAX]:F[D.i.TIMESERIES_MIN_MAX]};function q(e,t,n,r,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function U(e,t){return(n=function*(){switch(yield(0,A.B)(e,t)){case"counter":return Object.values(G);case"classic-histogram":case"native-histogram":return Object.values(N);case"age":return[Object.values(F)[0],...Object.values(B)];case"status-updown":return Object.values(M);case"info":return Object.values(L);default:return Object.values(F)}},function(){var e=this,t=arguments;return new Promise(function(r,a){var i=n.apply(e,t);function o(e){q(i,r,a,o,s,"next",e)}function s(e){q(i,r,a,o,s,"throw",e)}o(void 0)})})();var n}var H,z,K,W=n(4758),Q=n(1233),Y=n(5693);class J extends r.BusEventWithPayload{}K="apply-panel-config",(z="type")in(H=J)?Object.defineProperty(H,z,{value:K,enumerable:!0,configurable:!0,writable:!0}):H[z]=K;class X extends r.BusEventWithPayload{}!function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(X,"type","cancel-configure-panel");const Z=[{value:99,label:"P99"},{value:95,label:"P95"},{value:90,label:"P90"},{value:75,label:"P75"},{value:50,label:"P50"}];function ee(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function te(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}class ne extends i.SceneObjectBase{onActivate(){this.initPercentilesParams()}initPercentilesParams(){var e,t,n;const r=this.state.body.state.queryConfig,a=new Set((null===(n=r.queries)||void 0===n||null===(t=n.find(e=>{var t;return null===(t=e.params)||void 0===t?void 0:t.percentiles}))||void 0===t||null===(e=t.params)||void 0===e?void 0:e.percentiles)||[]),i=a.size>0?Z.map(e=>te(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){ee(e,t,n[t])})}return e}({},e),{checked:a.has(e.value)})):[];this.setState({queryParams:{show:i.length>0,options:i}})}constructor({body:e,presetId:t,isSelected:n,onSelect:r}){super({presetId:t,body:e,isSelected:n,onSelect:r,queryParams:{show:!1,options:[]}}),ee(this,"onTogglePercentile",e=>{var t;const{queryParams:n,body:r}=this.state,a=Number(e.target.value),i=n.options.find(e=>e.value===a);if(!i)return;i.checked=!i.checked;const o=n.options.filter(e=>e.checked);if(!o.length)return;const s=(0,j.cloneDeep)(r.state.queryConfig);null===(t=s.queries)||void 0===t||t.some(e=>{var t;return!!(null===(t=e.params)||void 0===t?void 0:t.percentiles)&&(e.params.percentiles=o.map(e=>e.value),!0)}),r.update({},s),this.setState({queryParams:n})}),ee(this,"onClickPreset",()=>{this.state.onSelect(this.state.presetId)}),this.addActivationHandler(this.onActivate.bind(this))}}function re(e){return{container:o.css`
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: ${e.spacing(1)};
|
|
padding: ${e.spacing(1,1,1.25,1)};
|
|
border: 1px solid transparent;
|
|
transition: all 0.2s ease-in-out;
|
|
|
|
&:hover {
|
|
border: 1px solid ${e.colors.border.weak};
|
|
border-color: ${e.colors.primary.border};
|
|
}
|
|
&:focus {
|
|
border: 1px solid ${e.colors.border.weak};
|
|
outline: 1px solid ${e.colors.primary.main};
|
|
outline-offset: 1px;
|
|
}
|
|
`,selected:o.css`
|
|
cursor: default;
|
|
border: 1px solid ${e.colors.border.weak};
|
|
border-color: ${e.colors.primary.border};
|
|
`,bodyAndParams:o.css`
|
|
display: flex;
|
|
flex-direction: row;
|
|
gap: ${e.spacing(1.25)};
|
|
width: 100%;
|
|
`,paramsContainer:o.css`
|
|
margin-top: ${e.spacing(1)};
|
|
`,param:o.css`
|
|
display: flex;
|
|
align-items: center;
|
|
gap: ${e.spacing(.5)};
|
|
margin-bottom: ${e.spacing(.5)};
|
|
font-size: 12px;
|
|
cursor: pointer;
|
|
|
|
& [type='checkbox'] {
|
|
cursor: pointer;
|
|
}
|
|
`,radioContainer:o.css`
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
|
|
& [type='radio'] {
|
|
cursor: pointer;
|
|
}
|
|
`}}function ae(e,t,n,r,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function ie(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function oe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){ie(e,t,n[t])})}return e}function se(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}ee(ne,"Component",({model:e})=>{const t=(0,l.useStyles2)(re),{body:n,isSelected:r,queryParams:a}=e.useState();return u().createElement("div",{className:(0,o.cx)(t.container,r&&t.selected),onClick:r?void 0:e.onClickPreset},u().createElement("div",{className:(0,o.cx)(t.bodyAndParams)},u().createElement(n.Component,{model:n}),a.show&&u().createElement("div",{className:t.paramsContainer},a.options.map(n=>u().createElement("label",{key:n.value,className:(0,o.cx)("param",t.param),htmlFor:`checkbox-${n.value}`},u().createElement("input",{id:`checkbox-${n.value}`,type:"checkbox",value:n.value,checked:n.checked,onChange:e.onTogglePercentile}),u().createElement("span",null,n.label))))),u().createElement("div",{className:t.radioContainer},u().createElement(l.Tooltip,{content:r?"Current configuration":"Click to select this configuration",placement:"top"},u().createElement("input",{type:"radio",name:"select-config",checked:r}))))});class le extends i.SceneObjectBase{onActivate(){this.syncTimeRange(),this.buildBody(),this.subscribeToEvents()}syncTimeRange(){const e=i.sceneGraph.getAncestor(this,Le),{from:t,to:n,timeZone:r,value:a}=i.sceneGraph.getTimeRange(e).state;i.sceneGraph.getTimeRange(this).setState({from:t,to:n,timeZone:r,value:a})}buildBody(){return(e=function*(){const{metric:e}=this.state,t=(0,T.N)(e.name),n=yield U(e.name,Je(this)),a=(t||n[0]).id,o=new i.SceneCSSGridLayout({templateColumns:_.MV,autoRows:I.N.M+46,isLazy:!0,$behaviors:[new i.behaviors.CursorSync({key:"metricCrosshairSync",sync:r.DashboardCursorSync.Crosshair})],children:n.map((n,r)=>new i.SceneCSSGridItem({body:new ne({presetId:n.id,isSelected:a===n.id,onSelect:e=>this.onSelectPreset(e),body:new W.m({key:`panel-${n.id}`,discardUserPrefs:n.id!==(null==t?void 0:t.id),metric:e.name,panelOptions:se(oe({},n.panelOptions),{title:n.name,fixedColorIndex:r,headerActions:()=>[]}),queryOptions:n.queryOptions})})}))});this.setState({presets:n,selectedPresetId:a,body:o})},function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function o(e){ae(i,r,a,o,s,"next",e)}function s(e){ae(i,r,a,o,s,"throw",e)}o(void 0)})}).call(this);var e}subscribeToEvents(){const{metric:e}=this.state;this.subscribeToEvent(J,t=>{const{config:n,restoreDefault:r}=t.payload,a=Y.x.getItem(Q.V.METRIC_PREFS)||{},i=a[e.name];r&&i?delete a[e.name].config:a[e.name]=se(oe({},i),{config:n}),Y.x.setItem(Q.V.METRIC_PREFS,a)})}static getPanelConfigFromPreset(e){return(0,j.omit)(e,["name","panelOptions.description"])}constructor({metric:e}){super({metric:e,$timeRange:new i.SceneTimeRange({}),controls:[new i.SceneTimePicker({}),new i.SceneRefreshPicker({})],isConfirmModalOpen:!1,presets:[],selectedPresetId:void 0,body:void 0}),ie(this,"onSelectPreset",e=>{for(const t of i.sceneGraph.findDescendents(this,ne))t.setState({isSelected:t.state.presetId===e});this.setState({selectedPresetId:e})}),ie(this,"onClickRestoreDefault",()=>{this.setState({isConfirmModalOpen:!0})}),ie(this,"onClickConfirmRestoreDefault",()=>{const{metric:e,presets:t}=this.state,[n]=t;n?(this.publishEvent(new J({metric:e,config:le.getPanelConfigFromPreset(n),restoreDefault:!0}),!0),this.closeConfirmModal()):(0,v.jx)(new Error(`No default config found for metric ${e}!`),["Cannot restore default configuration."])}),ie(this,"closeConfirmModal",()=>{this.setState({isConfirmModalOpen:!1})}),ie(this,"onClickCancel",()=>{this.publishEvent(new X({metric:this.state.metric}),!0)}),ie(this,"onClickApplyConfig",()=>{const{metric:e,presets:t,selectedPresetId:n}=this.state,r=i.sceneGraph.findByKeyAndType(this,`panel-${n}`,W.m);if(!r)throw new Error(`Panel not found for preset id="${n}"!`);const a=t.find(e=>e.id===n);if(!a)throw new Error(`Preset with id="${n}" not found!`);const o=(0,j.cloneDeep)(a);o.queryOptions.queries=r.state.queryConfig.queries,this.publishEvent(new J({metric:e,config:le.getPanelConfigFromPreset(o)}),!0)}),this.addActivationHandler(this.onActivate.bind(this))}}function ce(e){return{controlsContainer:o.css`
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
gap: ${e.spacing(1)};
|
|
margin-bottom: ${e.spacing(2)};
|
|
`,messageContainer:o.css`
|
|
margin: ${e.spacing(2.5,0,1,0)};
|
|
`,controls:o.css`
|
|
display: flex;
|
|
`,formButtonsContainer:o.css`
|
|
display: flex;
|
|
justify-content: center;
|
|
gap: ${e.spacing(2)};
|
|
position: sticky;
|
|
bottom: 0;
|
|
background: ${e.colors.background.primary};
|
|
padding: ${e.spacing(2,0)};
|
|
border-top: 1px solid ${e.colors.border.weak};
|
|
`}}ie(le,"Component",({model:e})=>{const t=(0,l.useStyles2)(ce),{metric:n,body:r,controls:a,isConfirmModalOpen:i}=e.useState();return u().createElement("div",null,u().createElement("div",{className:t.controlsContainer},u().createElement(l.Button,{variant:"secondary",size:"md",onClick:e.onClickRestoreDefault},"Restore default config"),u().createElement("div",{className:t.controls},a.map(e=>u().createElement(e.Component,{key:e.state.key,model:e})))),u().createElement("div",{className:t.messageContainer},u().createElement("p",null,"Select a Prometheus function that will be used by default to display the ",n.name," metric.")),r&&u().createElement(r.Component,{model:r}),u().createElement("div",{className:t.formButtonsContainer},u().createElement(l.Button,{variant:"primary",size:"md",onClick:e.onClickApplyConfig},"Apply"),u().createElement(l.Button,{variant:"secondary",size:"md",onClick:e.onClickCancel},"Cancel")),u().createElement(l.ConfirmModal,{isOpen:i,title:"Restore default configuration",body:`Are you sure you want to restore the default configuration for the ${n} metric?`,confirmText:"Restore",onConfirm:e.onClickConfirmRestoreDefault,onDismiss:e.closeConfirmModal}))});var ue=n(5622),de=n(8705),pe=n(300),me=n(6359),he=n(1419),fe=n(7401),be=n(7791),ge=n(396),ye=n(5176);const ve=(0,c.memo)(function({size:e}){const t=(0,l.useStyles2)(Se);return u().createElement("img",{className:(0,o.cx)(t.logo,e),src:"public/plugins/grafana-metricsdrilldown-app/img/logo.svg"})}),Se=()=>({logo:o.css`
|
|
&.small {
|
|
width: 24px;
|
|
height: 24px;
|
|
margin-right: 4px;
|
|
position: relative;
|
|
top: -2px;
|
|
}
|
|
|
|
&.large {
|
|
width: 40px;
|
|
height: 40px;
|
|
}
|
|
`}),we=ye.t,Oe=`https://github.com/grafana/metrics-drilldown/commit/${we}`,{buildInfo:Ee}=a.config;function xe(){const e=(0,l.useStyles2)(Ce),{meta:{info:{version:t,updated:n}}}=(0,r.usePluginContext)()||{meta:{info:{version:"?.?.?",updated:"?"}}};return u().createElement("div",{className:e.menuHeader},u().createElement("h5",null,u().createElement(ve,{size:"small"}),"Grafana Metrics Drilldown v",t),u().createElement("div",{className:e.subTitle},"Last update: ",n))}function Pe({getPrometheusBuildInfo:e}){const t=(0,l.useStyles2)(Ce),n="dev"===we,r=n?we:we.slice(0,8),[a,i]=(0,c.useState)();return(0,c.useEffect)(()=>{e().then(e=>i(e)).catch(e=>{de.v.warn("Error while fetching Prometheus build info!"),de.v.warn(e),i(void 0)})},[e]),u().createElement(l.Menu,{header:u().createElement(xe,null)},u().createElement(l.Menu.Item,{label:`Commit SHA: ${r}`,icon:"github",onClick:()=>window.open(Oe),disabled:n}),u().createElement(l.Menu.Item,{label:"Changelog",icon:"list-ul",onClick:()=>window.open("https://github.com/grafana/metrics-drilldown/blob/main/CHANGELOG.md","_blank","noopener,noreferrer")}),u().createElement(l.Menu.Item,{label:"Contribute",icon:"external-link-alt",onClick:()=>window.open("https://github.com/grafana/metrics-drilldown/blob/main/docs/contributing.md","_blank","noopener,noreferrer")}),u().createElement(l.Menu.Item,{label:"Documentation",icon:"document-info",onClick:()=>window.open("https://grafana.com/docs/grafana/latest/explore/simplified-exploration/metrics","_blank","noopener,noreferrer")}),u().createElement(l.Menu.Item,{label:"Report an issue",icon:"bug",onClick:()=>window.open("https://github.com/grafana/metrics-drilldown/issues/new?template=bug_report.md","_blank","noopener,noreferrer")}),u().createElement(l.Menu.Divider,null),u().createElement(l.Menu.Item,{label:`Grafana ${Ee.edition} v${Ee.version} (${Ee.env})`,icon:"grafana",onClick:()=>window.open(`https://github.com/grafana/grafana/commit/${Ee.commit}`,"_blank","noopener,noreferrer")}),a&&u().createElement(l.Menu.Item,{className:t.promBuildInfo,label:`${a.application||"?"} ${a.version} ${a.buildDate?`(${a.buildDate})`:""}`,icon:"gf-prometheus",onClick:()=>window.open(`${a.repository}/commit/${a.revision}`,"_blank","noopener,noreferrer")}))}function ke({getPrometheusBuildInfo:e}){return u().createElement(l.Dropdown,{overlay:()=>u().createElement(Pe,{getPrometheusBuildInfo:e}),placement:"bottom-end"},u().createElement(l.Button,{icon:"info-circle",variant:"secondary",tooltip:"Plugin info",tooltipPlacement:"top",title:"Plugin info","data-testid":"plugin-info-button"}))}const Ce=e=>({button:o.css`
|
|
position: relative;
|
|
display: flex;
|
|
align-items: center;
|
|
width: 32px;
|
|
height: 32px;
|
|
line-height: 30px;
|
|
border: 1px solid ${e.colors.border.weak};
|
|
border-radius: 2px;
|
|
border-left: 0;
|
|
color: ${e.colors.text.primary};
|
|
background: ${e.colors.background.secondary};
|
|
|
|
&:hover {
|
|
border-color: ${e.colors.border.medium};
|
|
background-color: ${e.colors.background.canvas};
|
|
}
|
|
`,menuHeader:o.css`
|
|
padding: ${e.spacing(.5,1)};
|
|
white-space: nowrap;
|
|
`,subTitle:o.css`
|
|
color: ${e.colors.text.secondary};
|
|
font-size: ${e.typography.bodySmall.fontSize};
|
|
`,promBuildInfo:o.css`
|
|
& svg {
|
|
color: #e5502a;
|
|
}
|
|
`});var je=n(3781);const _e={OPEN_EXPLORE_LABEL:"Open in explore",COPY_URL_LABEL:"Copy url",BOOKMARK_LABEL:"Bookmark",SELECT_NEW_METRIC_TOOLTIP:"Remove existing metric and choose a new metric"};function Te(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class Ie extends i.SceneObjectBase{constructor(e={}){super(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){Te(e,t,n[t])})}return e}({},e)),Te(this,"onSelectNewMetric",()=>{const e=Je(this);(0,d.z)("selected_metric_action_clicked",{action:"unselect"}),e.publishEvent(new he.OO({}))})}}Te(Ie,"Component",({model:e})=>{const t=Je(e),{embedded:n}=t.useState();return n?u().createElement(l.LinkButton,{href:(0,je.Rk)(Ze(t)),variant:"secondary",icon:"arrow-right",tooltip:"Open in Metrics Drilldown",onClick:()=>(0,d.z)("selected_metric_action_clicked",{action:"open_from_embedded"}),"data-testid":"open-metrics-drilldown-button"},"Metrics Drilldown"):u().createElement(l.ToolbarButton,{variant:"canvas",tooltip:_e.SELECT_NEW_METRIC_TOOLTIP,onClick:e.onSelectNewMetric,"data-testid":"select-new-metric-button"},"Select new metric")});var Ae=n(9697);function De(e,t,n,r,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function Be(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function o(e){De(i,r,a,o,s,"next",e)}function s(e){De(i,r,a,o,s,"throw",e)}o(void 0)})}}function Ne(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class Le extends i.SceneObjectBase{getUrlState(){return{metric:this.state.metric}}updateFromUrl(e){this.updateStateForNewMetric(e.metric||void 0)}onActivate(){!function(e){try{for(const t of e)(0,i.registerRuntimeDataSource)({dataSource:t})}catch(e){const{message:t}=e;/A runtime data source with uid (.+) has already been registered/.test(t)||(0,v.jx)(e,["Fail to register all the runtime data sources!","The application cannot work as expected, please try reloading the page or if the problem persists, contact your organization admin."])}}([new S.J]),setTimeout(()=>{this.datasourceHelper.init()},0),this.updateStateForNewMetric(this.state.metric),this.subscribeToEvent(he.OO,e=>this.handleMetricSelectedEvent(e)),this.subscribeToEvent(C.Z,e=>{this.openAddToDashboardModal(e.payload.panelData)}),this.initFilters(),this.initConfigPrometheusFunction()}updateStateForNewMetric(e){if(!this.state.topScene||e!==this.state.metric){const t=[new i.VariableValueSelectors({layout:"vertical"}),new i.SceneControlsSpacer],n=e?[...t,new Ie,new i.SceneTimePicker({}),new i.SceneRefreshPicker({})]:[...t,new i.SceneTimePicker({}),new i.SceneRefreshPicker({})];this.setState({metric:e,topScene:e?new me.R({metric:e}):new P.m,controls:n})}}initFilters(){const e=i.sceneGraph.lookupVariable(he.Ao,this);(0,ge.BE)(e)&&(at(this,e,this.datasourceHelper),null==e||e.setState({useQueriesAsFilterForOptions:Boolean(this.state.metric)}),this.subscribeToState((e,t)=>{if(e.metric!==t.metric){const t=i.sceneGraph.lookupVariable(he.Ao,this);(0,ge.BE)(t)&&t.setState({useQueriesAsFilterForOptions:Boolean(e.metric)})}}),this._subs.add(null==e?void 0:e.subscribeToState((e,t)=>{this.disableReportFiltersInteraction||e.filters===t.filters||(0,d.h)(e.filters,t.filters)})))}initConfigPrometheusFunction(){this.subscribeToState((e,t)=>{e.metric!==t.metric&&this.state.drawer.close()}),this.subscribeToEvent(ue.H,e=>Be(function*(){const{metric:t}=e.payload;(0,d.z)("configure_panel_opened",{metricType:t.type}),this.state.drawer.open({title:"Configure the Prometheus function",subTitle:`${t.name} (${t.type})`,body:new le({metric:t})})}).call(this)),this.subscribeToEvent(X,()=>{this.state.drawer.close()}),this.subscribeToEvent(J,e=>Be(function*(){const{metric:t,config:n,restoreDefault:r}=e.payload;r?(0,d.z)("default_panel_config_restored",{metricType:t.type}):(0,d.z)("panel_config_applied",{metricType:t.type,configId:n.id}),this.state.drawer.close(),(0,pe.b)(this.state.topScene||this);const a=i.sceneGraph.findAllObjects(this.state.topScene||this,e=>e instanceof W.m&&e.state.metric===t.name&&!e.state.queryConfig.groupBy);for(const e of a)e.update(n.panelOptions,n.queryOptions);(0,v.qq)([`Configuration successfully ${r?"restored":"applied"} for metric ${t.name}!`])}).call(this))}handleMetricSelectedEvent(e){return Be(function*(){const{metric:t,urlValues:n}=e.payload;if(t){var a;(0,O.VN)(t);const e=((null===(a=new URLSearchParams(window.location.search).get("filters-prefix"))||void 0===a?void 0:a.split(",").filter(e=>e))||[]).filter(e=>e.includes(":"));(0,d.z)("metric_selected",{from:"metric_list",searchTermCount:null,has_hierarchical_filter:e.length>0,hierarchical_filter_count:e.length})}else i.sceneGraph.findByKeyAndType(this,x.$,x.s).fetchAllOrRecentMetrics();const o=i.sceneGraph.lookupVariable(he.Ao,this);(0,ge.BE)(o)&&o.setState({baseFilters:$e(t)}),this._urlSync.performBrowserHistoryAction(()=>{if(this.updateStateForNewMetric(t),n){var e;(null===(e=n[`var-${he.Ao}`])||void 0===e?void 0:e.length)||(n[`var-${he.Ao}`]=[""]);const t=r.urlUtil.renderUrl("",n);i.sceneUtils.syncStateFromSearchParams(this,new URLSearchParams(t))}})}).call(this)}addFilterWithoutReportingInteraction(e){const t=i.sceneGraph.lookupVariable(he.Ao,this);(0,ge.BE)(t)&&(this.disableReportFiltersInteraction=!0,t.setState({filters:[...t.state.filters,e]}),this.disableReportFiltersInteraction=!1)}getMetadataForMetric(e){return Be(function*(){return this.datasourceHelper.getMetadataForMetric(e)}).call(this)}fetchRecentMetrics(e){return Be(function*({interval:e,extraFilter:t}){return this.datasourceHelper.fetchRecentMetrics({interval:e,extraFilter:t})}).apply(this,arguments)}openAddToDashboardModal(e){(0,d.z)("add_to_dashboard_modal_opened",{}),this.setState({isAddToDashboardModalOpen:!0,addToDashboardPanelData:e})}constructor(e){var t,n,r,a,o;super(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){Ne(e,t,n[t])})}return e}({$timeRange:null!==(n=e.$timeRange)&&void 0!==n?n:new i.SceneTimeRange({}),$variables:null!==(r=e.$variables)&&void 0!==r?r:Me(e.initialDS,e.metric,e.initialFilters),controls:null!==(a=e.controls)&&void 0!==a?a:[new i.VariableValueSelectors({layout:"vertical"}),new i.SceneControlsSpacer,new i.SceneTimePicker({}),new i.SceneRefreshPicker({})],createdAt:null!==(o=e.createdAt)&&void 0!==o?o:(new Date).getTime(),dashboardMetrics:{},alertingMetrics:{},drawer:new y({}),isAddToDashboardAvailable:!1,isAddToDashboardModalOpen:!1},e)),Ne(t=this,"disableReportFiltersInteraction",!1),Ne(t,"datasourceHelper",new fe.q(t)),Ne(t,"_variableDependency",new i.VariableDependencyConfig(t,{variableNames:[he.EY],onReferencedVariableValueChanged:()=>{t.datasourceHelper.reset()}})),Ne(t,"_urlSync",new i.SceneObjectUrlSyncConfig(t,{keys:["metric"]})),Ne(t,"getPrometheusBuildInfo",()=>Be(function*(){return t.datasourceHelper.getPrometheusBuildInfo()})()),Ne(t,"closeAddToDashboardModal",()=>{t.setState({isAddToDashboardModalOpen:!1,addToDashboardPanelData:void 0})}),t.addActivationHandler(t.onActivate.bind(t))}}function Me(e,t,n){let o=[new Ae.i({initialDS:e}),new x.s,new E.P,new i.AdHocFiltersVariable({key:he.Ao,name:he.Ao,label:"Filters",addFilterButtonText:"Add label",datasource:he.GH,hide:r.VariableHide.dontHide,layout:"combobox",filters:null!=n?n:[],baseFilters:$e(t),applyMode:"manual",allowCustomValue:!0,useQueriesAsFilterForOptions:!1,expressionBuilder:e=>e.filter(e=>"__name__"!==e.key).map(e=>`${(0,s.Nc)(e.key)}${e.operator}"${e.value}"`).join(",")}),new w.O];return Boolean(a.config.featureToggles.scopeFilters&&a.config.featureToggles.enableScopesInMetricsExplore&&!a.config.buildInfo.version.startsWith("11."))&&o.unshift(new i.ScopesVariable({enable:!0})),new i.SceneVariableSet({variables:o})}function Re(e,t,n){const r=(0,be.T)(e,n);return{container:(0,o.css)({flexGrow:1,padding:e.spacing(1,2),position:"relative",background:r}),body:(0,o.css)({flexGrow:1,minHeight:0}),controls:(0,o.css)({padding:e.spacing(1,0),position:"sticky",background:r,zIndex:e.zIndex.navbarFixed,top:t,borderBottom:`1px solid ${e.colors.border.weak}`})}}function $e(e){return e?[{key:"__name__",operator:"=",value:e}]:[]}function Ve(){const e=document.querySelector('[data-testid="app-controls"]');if(!e)return;const{height:t}=e.getBoundingClientRect();document.documentElement.style.setProperty("--app-controls-height",`${t}px`)}Ne(Le,"Component",({model:e})=>{const{controls:t,topScene:n,embedded:r,drawer:o,isAddToDashboardModalOpen:s,addToDashboardPanelData:p}=e.useState();var h;const f=null!==(h=(0,a.useChromeHeaderHeight)())&&void 0!==h?h:0,b=r?0:f,g=(0,l.useStyles2)(Re,b,e),{component:y,isLoading:v}=(0,a.usePluginComponent)(k.N);return(0,c.useEffect)(()=>{const t=!v&&Boolean(y);v||y||de.v.warn(`Failed to load add to dashboard component: ${k.N}`),e.state.isAddToDashboardAvailable!==t&&e.setState({isAddToDashboardAvailable:t})},[v,y,e]),(0,c.useEffect)(()=>{Ve();const e=document.querySelector('[data-testid="app-controls"]');if(!e)return;const t=new ResizeObserver(Ve);return t.observe(e),()=>{t.disconnect(),document.documentElement.style.removeProperty("--app-controls-height")}},[r,t]),u().createElement(u().Fragment,null,u().createElement("div",{className:g.container},u().createElement(l.Stack,{direction:"column",gap:1,grow:1},t&&u().createElement("div",{className:g.controls,"data-testid":"app-controls"},u().createElement(l.Stack,{direction:"row",gap:1,alignItems:"flex-end",wrap:"wrap"},u().createElement(m,null),t.map(e=>u().createElement(e.Component,{key:e.state.key,model:e})),u().createElement(l.Stack,{direction:"row",gap:.5},u().createElement(ke,{getPrometheusBuildInfo:e.getPrometheusBuildInfo})))),n&&u().createElement(i.UrlSyncContextProvider,{scene:n,createBrowserHistorySteps:!0,updateUrlOnInit:!0,namespace:e.state.urlNamespace},u().createElement("div",{className:g.body},u().createElement(l.Stack,{direction:"column",grow:1},n&&u().createElement(n.Component,{model:n})))))),u().createElement(o.Component,{model:o}),s&&y&&p&&u().createElement(l.Modal,{title:k.E,isOpen:!0,onDismiss:e.closeAddToDashboardModal},(0,c.createElement)(y,{onClose:e.closeAddToDashboardModal,buildPanel:()=>{var e,t,n,r;const a=null!==(r=String(null==p||null===(n=p.panel)||void 0===n||null===(t=n.targets)||void 0===t||null===(e=t[0])||void 0===e?void 0:e.expr))&&void 0!==r?r:"";return(0,d.z)("add_to_dashboard_build_panel",{expr:a}),p.panel},timeRange:p.range,options:{useAbsolutePath:!0}})))});var Fe=n(845),Ge=n(3498);function qe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ue(){return new He}class He extends i.SceneObjectBase{getSelectedScopes(){return this.selectedScopes}getSelectedScopesNames(){return this.selectedScopes.map(({scope:e})=>e.metadata.name)}setSelectedScopes(e){this.selectedScopes=e,this.notifySubscribers()}onScopesChange(e){return this.onScopesChangeCallbacks.push(e),()=>{this.onScopesChangeCallbacks=this.onScopesChangeCallbacks.filter(t=>t!==e)}}notifySubscribers(){for(const e of this.onScopesChangeCallbacks)e(this.selectedScopes)}get value(){return[]}constructor(){super({}),qe(this,"selectedScopes",[]),qe(this,"onScopesChangeCallbacks",[])}}function ze(e,t,n,r,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function Ke(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function o(e){ze(i,r,a,o,s,"next",e)}function s(e){ze(i,r,a,o,s,"throw",e)}o(void 0)})}}function We(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Qe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){We(e,t,n[t])})}return e}function Ye(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function Je(e){return i.sceneGraph.getAncestor(e,Le)}function Xe(e){var t,n;return new Le(Qe({initialDS:null==e?void 0:e.initialDS,$timeRange:null!==(t=null==e?void 0:e.$timeRange)&&void 0!==t?t:new i.SceneTimeRange({from:"now-1h",to:"now"}),embedded:null!==(n=null==e?void 0:e.embedded)&&void 0!==n&&n,urlNamespace:(null==e?void 0:e.embedded)?"gmd":void 0},e))}function Ze(e){const t=i.sceneUtils.getUrlState(e);return r.urlUtil.renderUrl(Ge.b.Drilldown,t)}function et(e){return e?e===he.td?"Logs":e:"All metrics"}function tt(e){const t=a.config.theme2.visualization;return t.getColorByName(t.palette[e%8])}function nt(e){return i.sceneGraph.findAllObjects(e,Fe.x).flatMap(e=>e.state.queries.map(t=>Ye(Qe({},t),{expr:i.sceneGraph.interpolate(e,t.expr)})))}const rt=1e4;function at(e,t,n){(0,ge.BE)(t)&&t.setState({getTagKeysProvider:()=>Ke(function*(){var r;const a={filters:t.state.filters,scopes:null===(r=Ue())||void 0===r?void 0:r.value,queries:t.state.useQueriesAsFilterForOptions?nt(e):[]};return a.queries.length>20&&(a.queries=[]),{replace:!0,values:(yield n.getTagKeys(a)).slice(0,rt)}})(),getTagValuesProvider:(r,a)=>Ke(function*(){var r;const i=t.state.filters.filter(e=>e.key!==a.key),o={key:a.key,filters:i,scopes:null===(r=Ue())||void 0===r?void 0:r.value,queries:t.state.useQueriesAsFilterForOptions?nt(e):[]};o.queries.length>20&&(o.queries=[]);return{replace:!0,values:(yield n.getTagValues(o)).slice(0,rt)}})()})}function it(e,t,n){const r=i.sceneGraph.findObject(e,t);return r instanceof n?r:(null!==r&&de.v.warn(`invalid return type: ${n.toString()}`),null)}function ot(){}},2388:(e,t,n)=>{n.d(t,{HA:()=>c,jx:()=>l,qq:()=>u});var r=n(7781),a=n(8531),i=n(8705);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function l(e,t){const n=t.reduce((e,t,n)=>s(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){o(e,t,n[t])})}return e}({},e),{[`info${n+1}`]:t}),{handheldBy:"displayError"});i.v.error(e,n),(0,a.getAppEvents)().publish({type:r.AppEvents.alertError.name,payload:t})}function c(e){i.v.warn(e),(0,a.getAppEvents)().publish({type:r.AppEvents.alertWarning.name,payload:e})}function u(e){(0,a.getAppEvents)().publish({type:r.AppEvents.alertSuccess.name,payload:e})}},2413:(e,t,n)=>{n.d(t,{d:()=>o});var r=n(2007),a=n(5959),i=n.n(a);function o({label:e,batchSizes:t,onClick:n,tooltip:a}){return i().createElement(r.Button,{variant:"secondary",fill:"outline",onClick:n,tooltip:a,tooltipPlacement:"top"},"Show ",t.increment," more ",1===t.increment?e:`${e}s`," (",t.current,"/",t.total,")")}},2449:(e,t,n)=>{n.d(t,{m:()=>et});var r=n(6089),a=n(8531),i=n(3014),o=n(2007),s=n(5959),l=n.n(s),c=n(5935),u=n(9564),d=n(1571),p=n(2457),m=n(5333),h=n(9331),f=n(8489);function b(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function g(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}class y extends i.EmbeddedScene{constructor(e){super(g(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){b(e,t,n[t])})}return e}({},e),{key:"list-controls",body:new i.SceneFlexLayout({direction:"row",width:"100%",maxHeight:"32px",children:[new i.SceneFlexItem({body:new f.I({urlSearchParamName:"search_txt",targetName:"metric",countsProvider:new h.s})}),new i.SceneFlexItem({width:"auto",body:new m.fD({})}),new i.SceneFlexItem({width:"auto",body:new p.U({})})]})}))}}b(y,"Component",({model:e})=>{const{body:t}=e.useState();return l().createElement(o.Stack,{direction:"row",alignItems:"center"},l().createElement(t.Component,{model:t}))});var v=n(5272),S=n(4293),w=n(5732),O=n(9365),E=n(9194),x=n(3916),P=n(7145),k=n(9512),C=n(5190),j=n(2413),_=n(7781),T=n(5665),I=n(7957);function A(){return l().createElement("svg",{stroke:"currentColor",width:"17",height:"16",viewBox:"0 0 17 16",fill:"none"},l().createElement("circle",{cx:"8.92688",cy:"3.63132",r:"2.375",strokeWidth:"1.5"}),l().createElement("path",{d:"M13.6469 4.37965C14.6813 4.76699 15.3235 7.03139 14.9362 8.06582",strokeWidth:"1.5"}),l().createElement("path",{d:"M4.35309 4.37965C3.31866 4.76699 2.67651 7.03139 3.06384 8.06582",strokeWidth:"1.5"}),l().createElement("path",{d:"M10.3408 14.2531C9.75237 14.8415 8.11813 14.7799 7.50903 14.1708",strokeWidth:"1.5"}),l().createElement("circle",{cx:"4.00195",cy:"12.251",r:"2.375",strokeWidth:"1.5"}),l().createElement("circle",{cx:"13.8478",cy:"12.251",r:"2.375",strokeWidth:"1.5"}))}var D,B,N,L=n(6773),M=n(1031),R=n(4758),$=n(1419),V=n(2639),F=n(6503);class G extends i.SceneObjectBase{onActivate(){this.subscribeToLayoutChange()}subscribeToLayoutChange(){const e=i.sceneGraph.findByKeyAndType(this,"layout-switcher",p.U),t=this.state.body.state.body,n=(e,n)=>{e.layout!==(null==n?void 0:n.layout)&&t.setState({templateColumns:e.layout===p.p.ROWS?V._O:V.MV})};n(e.state),this._subs.add(e.subscribeToState(n))}constructor({index:e,labelName:t,labelValue:n,labelCardinality:r}){const a=`var-metrics-${t}-${n}`;super({index:e,labelName:t,labelValue:n,labelCardinality:r,key:`${t}-${n}`,$variables:new i.SceneVariableSet({variables:[new T.s({key:a,name:a,labelMatcher:{key:t,operator:"=",value:n},addLifeCycleEvents:!0})]}),body:new C.k({variableName:a,initialPageSize:3,body:new i.SceneCSSGridLayout({children:[],isLazy:!0,templateColumns:V.MV,autoRows:I.On,$behaviors:[new i.behaviors.CursorSync({key:"metricCrosshairSync",sync:_.DashboardCursorSync.Crosshair})]}),getLayoutLoading:()=>new i.SceneReactObject({reactNode:l().createElement(o.Spinner,{inline:!0})}),getLayoutEmpty:()=>new i.SceneReactObject({reactNode:l().createElement(F._,{title:"",severity:"info"},"No metrics found for the current filters and time range.")}),getLayoutError:e=>new i.SceneReactObject({reactNode:l().createElement(F._,{severity:"error",title:"Error while loading metrics!",error:e})}),getLayoutChild:(e,r)=>new i.SceneCSSGridItem({body:new I.c0({metric:e.value,vizPanelInGridItem:new R.m({metric:e.value,panelOptions:{fixedColorIndex:r,headerActions:({metric:e})=>[new M.B({metric:e.name}),new L.F({metric:e})]},queryOptions:{labelMatchers:[{key:t,operator:"=",value:n}]}})})})})}),this.addActivationHandler(this.onActivate.bind(this))}}function q(e){return{container:(0,r.css)({background:e.colors.background.canvas,margin:e.spacing(1,0,0,0),"& div:focus-within":{boxShadow:"none !important"}}),containerHeader:(0,r.css)({marginBottom:"-36px",paddingBottom:e.spacing(1.5),borderBottom:`1px solid ${e.colors.border.medium}`}),headerButtons:(0,r.css)({position:"relative",top:"3px",marginLeft:"auto",marginRight:"30px",zIndex:100}),selectButton:(0,r.css)({height:"28px"}),collapsableSectionBody:(0,r.css)({padding:e.spacing(1)}),groupName:(0,r.css)({fontSize:"1.3rem",lineHeight:"1.3rem"}),labelValue:(0,r.css)({fontSize:"16px",marginLeft:"8px"}),index:(0,r.css)({fontSize:"12px",color:e.colors.text.secondary,marginLeft:"8px"}),footer:(0,r.css)({marginTop:e.spacing(1),"& button":{height:"40px"}}),variable:(0,r.css)({display:"none"})}}N=({model:e})=>{const[t,n]=(0,s.useState)(!1),r=(0,o.useStyles2)(q),{index:a,labelName:c,labelValue:p,labelCardinality:m,$variables:h,body:f}=e.useState(),b=h.state.variables[0],{loading:g,error:y}=b.useState(),v=f.useSizes(),S=!g&&!y&&v.total>0&&v.current<v.total;return l().createElement("div",{className:r.container,"data-testid":`${c}-${p}-metrics-group`},l().createElement("div",{className:r.containerHeader},l().createElement(o.Stack,{direction:"row",alignItems:"center",gap:1},l().createElement("div",{className:r.headerButtons},l().createElement(o.Button,{className:r.selectButton,variant:"secondary",onClick:()=>{var t;const n=i.sceneGraph.lookupVariable($.Ao,e);n.setState({filters:[...n.state.filters,{key:c,operator:"=",value:p}]}),null===(t=i.sceneGraph.lookupVariable(d.G,e))||void 0===t||t.changeValueTo(u.c)},tooltip:`See metrics with ${c}=${p}`,tooltipPlacement:"top"},"Select")))),l().createElement(o.CollapsableSection,{isOpen:!t,onToggle:()=>n(!t),label:l().createElement("div",{className:r.groupName},l().createElement(o.Stack,{direction:"row",alignItems:"center"},l().createElement(A,null),l().createElement("div",{className:r.labelValue},p),m>1&&l().createElement("div",{className:r.index},"(",a+1,"/",m,")")))},l().createElement("div",{className:r.collapsableSectionBody},l().createElement(o.Stack,{direction:"column",gap:3},l().createElement(f.Component,{model:f}))),S&&l().createElement("div",{className:r.footer},l().createElement(o.Stack,{direction:"row",justifyContent:"center",alignItems:"center"},l().createElement(j.d,{label:"metric",batchSizes:v,onClick:()=>{f.increaseBatchSize()},tooltip:`Show more metrics for ${c}="${p}"`})))),l().createElement("div",{className:r.variable},l().createElement(b.Component,{key:b.state.name,model:b})))},(B="Component")in(D=G)?Object.defineProperty(D,B,{value:N,enumerable:!0,configurable:!0,writable:!0}):D[B]=N;const U="wingmanLabelValues";class H extends i.QueryVariable{constructor({labelName:e}){super({name:U,datasource:{uid:u.J.uid},query:`valuesOf(${e})`,isMulti:!1,allowCustomValue:!1,refresh:_.VariableRefresh.onTimeRangeChanged,hide:_.VariableHide.hideVariable,value:"$__all",includeAll:!0})}}!function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(H,"Component",()=>l().createElement(l().Fragment,null));class z extends i.SceneObjectBase{constructor({labelName:e}){super({key:"metrics-group-list",labelName:e,$variables:new i.SceneVariableSet({variables:[new H({labelName:e})]}),body:new C.k({variableName:U,initialPageSize:20,pageSizeIncrement:10,body:new i.SceneCSSGridLayout({children:[],isLazy:!0,templateColumns:"1fr",autoRows:"auto",rowGap:1}),getLayoutLoading:()=>new i.SceneReactObject({reactNode:l().createElement(o.Spinner,{inline:!0})}),getLayoutEmpty:()=>new i.SceneReactObject({reactNode:l().createElement(F._,{title:"",severity:"info"},'No label values found for label "',e,'".')}),getLayoutError:t=>new i.SceneReactObject({reactNode:l().createElement(F._,{severity:"error",title:`Error while loading label "${e}" values!`,error:t})}),getLayoutChild:(t,n,r)=>new i.SceneCSSGridItem({body:new G({index:n,labelName:e,labelValue:t.value,labelCardinality:r.length})})})})}}function K(e){return{footer:(0,r.css)({display:"flex",justifyContent:"center",alignItems:"center",margin:e.spacing(3,0,1,0),"& button":{height:"40px"}}),variable:(0,r.css)({display:"none"})}}!function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(z,"Component",({model:e})=>{const t=(0,o.useStyles2)(K),{body:n,$variables:r,labelName:a}=e.useState(),i=r.state.variables[0],{loading:s,error:c}=i.useState(),u=n.useSizes(),d=!s&&!c&&u.total>0&&u.current<u.total;return l().createElement("div",{"data-testid":"metrics-groupby-list"},l().createElement(n.Component,{model:n}),d&&l().createElement("div",{className:t.footer},l().createElement(j.d,{label:`"${a}" value`,batchSizes:u,onClick:()=>{n.increaseBatchSize()}})),l().createElement("div",{className:t.variable},l().createElement(i.Component,{key:i.state.name,model:i})))});var W=n(3424),Q=n(1251);const Y="Non-rules metrics",J="Recording rules";var X=n(8705);class Z extends _.BusEventWithPayload{}function ee({title:e,description:t}){const n=(0,o.useStyles2)(te);return l().createElement("h6",{className:n.title},l().createElement("span",null,e),l().createElement(o.Tooltip,{content:t,placement:"top"},l().createElement(o.Icon,{name:"info-circle",size:"sm",className:n.infoIcon})))}function te(e){return{title:(0,r.css)({fontSize:"15px",fontWeight:e.typography.fontWeightLight,borderBottom:`1px solid ${e.colors.border.weak}`,paddingBottom:e.spacing(.5)}),infoIcon:(0,r.css)({marginLeft:e.spacing(1),cursor:"pointer",color:e.colors.text.secondary,position:"relative",top:"-4px"})}}function ne(e){return{listHeader:(0,r.css)({display:"flex",justifyContent:"space-between",alignItems:"center",color:e.colors.text.secondary,padding:e.spacing(0,0,0,1)}),list:(0,r.css)({height:"100%",padding:e.spacing(0,1,1,1),overflowY:"auto",listStyle:"none",margin:0,"&::-webkit-scrollbar":{WebkitAppearance:"none",width:"7px"},"&::-webkit-scrollbar-thumb":{borderRadius:"4px",backgroundColor:e.colors.secondary.main,WebkitBoxShadow:`0 0 1px ${e.colors.secondary.shade}`}}),listItem:(0,r.css)({display:"flex",alignItems:"center",padding:e.spacing(.5,0)}),noResults:(0,r.css)({fontStyle:"italic",padding:e.spacing(0,1,1,1)})}}!function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(Z,"type","section-value-changed");const re=({label:e,count:t,checked:n,onChange:r})=>{const a=(0,o.useStyles2)(ae);return l().createElement("div",{className:a.checkboxWrapper,title:e},l().createElement(o.Checkbox,{label:e,checked:n,onChange:r}),l().createElement("span",{className:a.count},"(",t,")"))};function ae(e){return{checkboxWrapper:(0,r.css)({display:"flex",alignItems:"center",width:"100%","& label *":{fontSize:"14px !important",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}}),count:(0,r.css)({color:e.colors.text.secondary,marginLeft:e.spacing(.5),display:"inline-block"})}}function ie({groups:e,selectedGroups:t,onSelectionChange:n}){const r=(0,o.useStyles2)(ne);return l().createElement(l().Fragment,null,l().createElement("div",{className:r.listHeader},l().createElement("div",null,t.length," selected"),l().createElement(o.Button,{variant:"secondary",fill:"text",onClick:()=>n([]),disabled:!t.length},"clear")),!e.length&&l().createElement("div",{className:r.noResults},"No results."),e.length>0&&l().createElement("ul",{className:r.list,"data-testid":"checkbox-filters-list"},e.map(e=>l().createElement("li",{key:e.value,className:r.listItem},l().createElement(re,{label:e.label,count:e.count,checked:t.some(t=>t.value===e.value),onChange:r=>{const a=r.currentTarget.checked?[...t,{label:e.label,value:e.value}]:t.filter(t=>t.value!==e.value);n(a)}})))))}function oe({groups:e,selectedGroups:t,expandedPrefixes:n,computedSublevels:a,onSelectionChange:i,onExpandToggle:s}){const u=(0,o.useStyles2)(ne),d=(0,o.useStyles2)(se);return l().createElement(l().Fragment,null,l().createElement("div",{className:u.listHeader},l().createElement("div",null,t.length," selected"),l().createElement(o.Button,{variant:"secondary",fill:"text",onClick:()=>i([]),disabled:!t.length},"clear")),!e.length&&l().createElement("div",{className:u.noResults},"No results."),e.length>0&&l().createElement("ul",{className:u.list,"data-testid":"checkbox-filters-tree"},e.map(p=>{const m=n.has(p.value),h=(f=p.value,a.get(f)||[]);var f;const b=(e=>t.some(t=>t.value===e||t.value.startsWith(e+Q._)))(p.value);return l().createElement(l().Fragment,{key:p.value},l().createElement("li",{className:(0,r.cx)(u.listItem,m&&d.stickyParent)},l().createElement("div",{className:d.parentRow},l().createElement("button",{className:d.expandButton,onClick:()=>s(p.value),"aria-label":m?"Collapse":"Expand","data-testid":`expand-${p.value}`},l().createElement(o.Icon,{name:m?"angle-down":"angle-right"})),l().createElement(re,{label:p.label,count:p.count,checked:b,onChange:e=>e.currentTarget.checked?(e=>{const n=[...t.filter(t=>!t.value.startsWith(e.value+Q._)),{label:e.label,value:e.value}];i(n)})(p):(e=>{const n=t.filter(t=>t.value!==e&&!t.value.startsWith(e+Q._));i(n)})(p.value)}))),m&&h.length>0&&l().createElement("ul",{className:d.childrenList},h.map(n=>l().createElement("li",{key:n.value,className:d.childItem},l().createElement(re,{label:n.label,count:n.count,checked:t.some(e=>e.value===n.value),onChange:r=>((n,r)=>{const[a,o]=n.value.split(Q._);if(r){const e=`${a} > ${o}`,r=[...t.filter(e=>e.value!==a),{label:e,value:n.value}];i(r),(0,c.z)("sidebar_hierarchical_child_filter_applied",{prefix:a,child:o})}else if(0===t.filter(e=>e.value.startsWith(a+Q._)&&e.value!==n.value).length){const r=e.find(e=>e.value===a);if(r){const e=[...t.filter(e=>!e.value.startsWith(a+Q._)),{label:r.label,value:r.value}];i(e)}else{const e=t.filter(e=>e.value!==n.value);i(e)}}else{const e=t.filter(e=>e.value!==n.value);i(e)}})(n,r.currentTarget.checked)})))))})))}function se(e){return{stickyParent:(0,r.css)({position:"sticky",top:0,"&::before":{content:'""',position:"absolute",top:0,left:0,right:0,bottom:0,backgroundColor:e.colors.background.canvas,zIndex:-1},backgroundColor:e.colors.background.canvas,zIndex:10,borderBottom:`1px solid ${e.colors.border.weak}`,marginLeft:e.spacing(-1),marginRight:e.spacing(-1),paddingLeft:e.spacing(1),paddingRight:e.spacing(1),paddingTop:e.spacing(.5),paddingBottom:e.spacing(.5),boxShadow:"0 2px 4px rgba(0, 0, 0, 0.1)"}),parentRow:(0,r.css)({display:"flex",alignItems:"center",width:"100%",position:"relative",zIndex:1}),expandButton:(0,r.css)({background:"none",border:"none",cursor:"pointer",padding:e.spacing(.5),display:"flex",alignItems:"center",color:e.colors.text.primary,minWidth:"24px",justifyContent:"center","&:hover":{color:e.colors.text.maxContrast}}),childrenList:(0,r.css)({listStyle:"none",paddingLeft:e.spacing(4),margin:0}),childItem:(0,r.css)({display:"flex",alignItems:"center",padding:e.spacing(.5,0)})}}function le(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ce(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){le(e,t,n[t])})}return e}function ue(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}class de extends i.SceneObjectBase{getUrlState(){return{[this.state.key]:this.state.selectedGroups.map(e=>e.value).join(",")}}updateFromUrl(e){const t={};"string"==typeof e[this.state.key]&&e[this.state.key]!==this.state.selectedGroups.map(e=>e.value).join(",")&&(t.selectedGroups=e[this.state.key].split(",").map(e=>e.trim()).filter(e=>e).map(e=>({label:this.parseLabel(e),value:e}))),this.setState(t)}onActivate(){const e=i.sceneGraph.lookupVariable(T.$,this),t=i.sceneGraph.lookupVariable(x.h,this);this.updateLists(e.state.options),this.updateCounts();const{selectedGroups:n,hierarchical:r}=this.state;if(this.setState({loading:t.state.loading,active:n.length>0}),r){const t=new Set;if(n.forEach(e=>{if(e.value.includes(Q._)){const[n]=e.value.split(Q._);t.add(n)}}),t.size>0){const n=e.state.options,r=new Map(this.state.computedSublevels);t.forEach(e=>{if(!r.has(e)){const t=(0,Q.M)(n,e);r.set(e,t)}}),this.setState({expandedPrefixes:t,computedSublevels:r})}}}updateLists(e){this.setState({groups:this.state.computeGroups(e),loading:!1})}updateCounts(){var e;const{groups:t,computeGroups:n,type:r}=this.state,a=i.sceneGraph.lookupVariable(T.$,this).state.options,o=null===(e=i.sceneGraph.getAncestor(this,et).state.enginesMap.get(x.h))||void 0===e?void 0:e.filterEngine;if(!o)return void X.v.warn("MetricsFilterSection: No filter engine found");const s=ue(ce({},o.getFilters()),{[r]:[]}),l=P.k.getFilteredOptions(a,s),c=new Map(n(l).map(e=>[e.label,e.count])),u=t.map(e=>{var t;return ue(ce({},e),{count:null!==(t=c.get(e.label))&&void 0!==t?t:0})});this.setState({groups:u,loading:!1}),this.state.hierarchical&&this.updateSublevelCounts(l)}updateSublevelCounts(e){const{computedSublevels:t}=this.state,n=new Map(t);for(const[r,a]of t.entries()){const t=(0,Q.M)(e,r),i=new Map(t.map(e=>[e.label,e.count])),o=a.map(e=>{var t;return ue(ce({},e),{count:null!==(t=i.get(e.label))&&void 0!==t?t:0})});n.set(r,o)}this.setState({computedSublevels:n})}parseLabel(e){if(e.includes(Q._)){const[t,n]=e.split(Q._);return`${t} > ${n}`}return e}constructor({key:e,type:t,title:n,description:r,icon:a,computeGroups:o,showHideEmpty:s,showSearch:l,disabled:u,active:d,hierarchical:p}){super({key:e,type:t,title:n,description:r,icon:a,groups:[],computeGroups:o,selectedGroups:[],loading:!0,showHideEmpty:null==s||s,showSearch:null==l||l,disabled:null!=u&&u,active:null!=d&&d,hierarchical:null!=p&&p,expandedPrefixes:new Set,computedSublevels:new Map}),le(this,"_variableDependency",new i.VariableDependencyConfig(this,{variableNames:[T.$,x.h],onReferencedVariableValueChanged:e=>{const{name:t,options:n}=e.state;t!==T.$?t===x.h&&this.updateCounts():this.updateLists(n)}})),le(this,"_urlSync",new i.SceneObjectUrlSyncConfig(this,{keys:[this.state.key]})),le(this,"onExpandToggle",e=>{const{expandedPrefixes:t,computedSublevels:n}=this.state,r=new Set(t);let a=n;if(r.has(e))r.delete(e);else{if(r.add(e),!n.has(e)){const t=i.sceneGraph.lookupVariable(T.$,this).state.options,r=(0,Q.M)(t,e);a=new Map(n),a.set(e,r)}(0,c.z)("sidebar_hierarchical_prefix_opened",{prefix:e})}this.setState({expandedPrefixes:r,computedSublevels:a})}),le(this,"onSelectionChange",e=>{this.setState({selectedGroups:e,active:e.length>0}),this.publishEvent(new W.Y({type:this.state.type,filters:e.map(e=>e.value)}),!0),this.publishEvent(new Z({key:this.state.key,values:e.map(e=>e.label)}),!0),"prefixes"===this.state.type?(0,c.z)("sidebar_prefix_filter_applied",{filter_count:e.length}):"suffixes"===this.state.type&&(0,c.z)("sidebar_suffix_filter_applied",{filter_count:e.length}),"filters-rule"===this.state.key&&e.length>0&&e.forEach(e=>{let t;switch(e.label){case Y:t="non_rules_metrics";break;case J:t="recording_rules";break;default:return}(0,c.z)("sidebar_rules_filter_selected",{filter_type:t})})}),this.addActivationHandler(this.onActivate.bind(this))}}function pe(e){return{container:(0,r.css)({display:"flex",flexDirection:"column",gap:e.spacing(1),height:"100%",overflowY:"hidden"}),switchContainer:(0,r.css)({display:"flex",alignItems:"center",justifyContent:"flex-end",gap:e.spacing(1)}),switchLabel:(0,r.css)({fontSize:"12px",color:e.colors.text.primary}),searchInput:(0,r.css)({flexBasis:"32px",flexShrink:0,marginBottom:e.spacing(1),padding:e.spacing(0,.5)})}}le(de,"Component",({model:e})=>{const t=(0,o.useStyles2)(pe),{groups:n,selectedGroups:r,loading:a,title:i,description:c,showHideEmpty:u,showSearch:d,hierarchical:p,expandedPrefixes:m,computedSublevels:h}=e.useState(),[f,b]=(0,s.useState)(!1),[g,y]=(0,s.useState)(""),v=(0,s.useMemo)(()=>{const e=[];return f&&e.push(e=>e.count>0),e.push(e=>e.label.toLowerCase().includes(g.toLowerCase())),n.filter(t=>e.every(e=>e(t)))},[f,n,g]);return l().createElement("div",{className:t.container},l().createElement(ee,{title:i,description:c}),u&&l().createElement("div",{className:t.switchContainer},l().createElement("span",{className:t.switchLabel},"Hide empty"),l().createElement(o.Switch,{value:f,onChange:e=>b(e.currentTarget.checked)})),d&&l().createElement(o.Input,{className:t.searchInput,prefix:l().createElement(o.Icon,{name:"search"}),placeholder:"Search...",value:g,onChange:e=>y(e.currentTarget.value),onKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),y(""))},suffix:l().createElement(o.IconButton,{name:"times",variant:"secondary",tooltip:"Clear search",onClick:()=>y("")})}),a&&l().createElement(o.Spinner,{inline:!0}),!a&&p&&l().createElement(oe,{groups:v,selectedGroups:r,expandedPrefixes:m,computedSublevels:h,onSelectionChange:e.onSelectionChange,onExpandToggle:e.onExpandToggle}),!a&&!p&&l().createElement(ie,{groups:v,selectedGroups:r,onSelectionChange:e.onSelectionChange}))});var me=n(297),he=n(6024);function fe(e){const t=new Map;for(const r of e){const e=r.value.split(/[^a-z0-9]/i),a=e.length<=1?r.value:e[e.length-1];var n;const i=null!==(n=t.get(a))&&void 0!==n?n:[];i.push(r.value),t.set(a||"<none>",i)}const r=new Map;for(const[e,n]of t)r.set(e,n.length);return Array.from(r.entries()).sort((e,t)=>e[1]!==t[1]?t[1]-e[1]:(0,he._)(e[0],t[0])).map(([e,t])=>({value:e,count:t,label:e}))}function be(e){return/^\w*:.*?(?::\w+)?$/.test(e)}function ge(e){const t=new Map([["metrics",[]],["rules",[]]]);for(const r of e){const{value:e}=r,a=be(e)?"rules":"metrics";var n;const i=null!==(n=t.get(a))&&void 0!==n?n:[];i.push(e),t.set(a,i)}return[{value:"^(?!.*:.*)",label:Y,count:t.get("metrics").length},{value:":",label:J,count:t.get("rules").length}]}var ye=n(1233),ve=n(5693),Se=n(2324),we=n(3179),Oe=n(396),Ee=n(9697),xe=n(2388),Pe=n(1437);function ke(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ce(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){ke(e,t,n[t])})}return e}function je(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}const _e=(e,t,n)=>e.length+2+t.length>n?t.substring(0,n-e.length-5)+"...":t;function Te(e){const t=(0,o.useStyles2)(Ie),{onSelect:n,onDelete:r,bookmark:a}=e,{createdAt:i,urlValues:s}=a,c=s.metric||"?",u=(e=>{const t=e[`var-${$.Ao}`];return t.length?t.map(e=>e.split("|")):[]})(s),d=_e("",(0,Se.aO)(c),27),p=`${e.compactHeight&&u.length>0?t.cardTall:""}`,m=`${t.card} ${e.wide?t.cardWide:""} ${p}`;return l().createElement("article",{"data-testid":`data-trail-card ${c}`},l().createElement(o.Card,{onClick:n,className:m},l().createElement(o.Card.Heading,null,l().createElement("div",null,d)),l().createElement(o.Card.Meta,{className:t.meta},u.map(([e,n,r],a)=>l().createElement("div",{key:a,className:t.filter},l().createElement(o.Text,{variant:"bodySmall",color:"secondary"},e," ",n),l().createElement(o.Text,{variant:"bodySmall",color:"primary",weight:"medium"}," ",_e(e,r,44))))),l().createElement("div",{className:t.deleteButton},l().createElement(o.Card.SecondaryActions,null,l().createElement(o.IconButton,{key:"delete",name:"trash-alt",className:t.secondary,tooltip:"Remove bookmark",tooltipPlacement:"top",onClick:r})))),l().createElement("div",{className:t.date},l().createElement(o.Text,{variant:"bodySmall",color:"secondary"},"Date created:"," "),l().createElement(o.Text,{variant:"bodySmall",color:"primary",weight:"medium"},i>0&&(0,_.dateTimeFormat)(i,{format:"YYYY-MM-DD"}))))}function Ie(e){return{card:(0,r.css)({padding:`12px ${e.spacing(2)} ${e.spacing(1)} ${e.spacing(2)}`,alignItems:"start",marginBottom:0,borderTop:`1px solid ${e.colors.border.weak}`,borderRight:`1px solid ${e.colors.border.weak}`,borderLeft:`1px solid ${e.colors.border.weak}`,borderBottom:"none",borderRadius:"2px 2px 0 0"}),cardWide:(0,r.css)({width:"100%"}),cardTall:(0,r.css)({height:"110px"}),secondary:(0,r.css)({color:e.colors.text.secondary,fontSize:"12px"}),date:(0,r.css)({border:`1px solid ${e.colors.border.weak}`,borderRadius:"0 0 2px 2px",padding:`${e.spacing(1)} ${e.spacing(2)}`,backgroundColor:e.colors.background.primary}),meta:(0,r.css)({flexWrap:"wrap",overflow:"hidden",textOverflow:"ellipsis",maxHeight:"36px",gridArea:"Meta",color:e.colors.text.secondary,whiteSpace:"nowrap"}),filter:(0,r.css)({overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),deleteButton:(0,r.css)({position:"absolute",bottom:e.spacing(1.5),right:e.spacing(.5)})}}class Ae extends i.SceneObjectBase{constructor({key:e,title:t,description:n,icon:r,disabled:a}){super({key:e,title:t,description:n,icon:r,disabled:null!=a&&a,active:!1})}}function De(e){return{bookmarksList:(0,r.css)({overflowY:"auto",paddingRight:e.spacing(1)}),emptyState:(0,r.css)({height:"100px"})}}function Be({labels:e,selectedLabel:t,onSelectLabel:n,onClearSelection:r}){const a=(0,o.useStyles2)(Ne);return l().createElement(l().Fragment,null,l().createElement("div",{className:a.listHeader},l().createElement("div",{className:a.selected},t===u.c?"No selection":`Selected: "${t}"`),l().createElement(o.Button,{variant:"secondary",fill:"text",onClick:r,disabled:t===u.c},"clear")),!e.length&&l().createElement("div",{className:a.noResults},"No results."),e.length>0&&l().createElement("div",{className:a.list,"data-testid":"labels-list"},l().createElement(o.RadioButtonList,{name:"labels-list",options:e,onChange:n,value:t})))}function Ne(e){return{listHeader:(0,r.css)({display:"flex",justifyContent:"space-between",alignItems:"center",color:e.colors.text.secondary,margin:e.spacing(0),padding:e.spacing(0,0,0,1)}),selected:(0,r.css)({overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"}),list:(0,r.css)({display:"flex",flex:1,flexDirection:"column",gap:0,overflowY:"auto",'& [role="radiogroup"]':{gap:0},"& label":{cursor:"pointer",padding:e.spacing(.5,1),"&:hover":{background:e.colors.background.secondary}},"& label div":{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}}),noResults:(0,r.css)({fontStyle:"italic",padding:e.spacing(0,1,1,1)})}}function Le(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}!function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(Ae,"Component",({model:e})=>{const t=(0,o.useStyles2)(De),{title:n,description:r}=e.useState(),{bookmarks:a,gotoBookmark:u,removeBookmark:d}=function(e){const[t,n]=(0,s.useState)({}),r=(0,Se.kj)(e);(0,s.useEffect)(()=>{const e=ve.x.getItem(ye.V.BOOKMARKS)||[],t={};for(const n of e){const e=(0,Pe.o)(n.urlValues);t[e]=je(Ce({},n),{key:e})}n(t)},[]);const{value:a}=i.sceneGraph.findByKeyAndType(r,$.EY,Ee.i).useState();return{bookmarks:(0,s.useMemo)(()=>Object.values(t).filter(e=>e.urlValues[`var-${$.EY}`]===a),[t,a]),addBookmark:()=>{const e={urlValues:i.sceneUtils.getUrlState(r),createdAt:Date.now()},a=Object.values(t).map(e=>je(Ce({},e),{key:void 0}));ve.x.setItem(ye.V.BOOKMARKS,[...a,e]);const o=(0,Pe.o)(e.urlValues);n(je(Ce({},t),{[o]:je(Ce({},e),{key:o})}))},removeBookmark:e=>{delete t[e];const r=Object.values(t).map(e=>je(Ce({},e),{key:void 0}));ve.x.setItem(ye.V.BOOKMARKS,r),n(Ce({},t))},gotoBookmark:e=>{const n=t[e];if(!n){const e=new Error("Bookmark not found!");return void(0,xe.jx)(e,[e.toString()])}r.publishEvent(new $.OO({metric:n.urlValues.metric,urlValues:n.urlValues}),!0)}}}(e);return l().createElement(o.Stack,{direction:"column",gap:1,height:"100%"},l().createElement(ee,{title:n,description:r,"data-testid":"bookmarks-list-sidebar"}),a.length>0?l().createElement("div",{className:t.bookmarksList},l().createElement(o.Stack,{direction:"column",gap:1.5},a.map(e=>l().createElement(Te,{key:e.key,bookmark:e,onSelect:()=>{return t=e.key,(0,c.z)("exploration_started",{cause:"bookmark_clicked"}),void u(t);var t},onDelete:()=>{return t=e.key,(0,c.z)("bookmark_changed",{action:"deleted"}),void d(t);var t},wide:!0,compactHeight:!0})))):l().createElement("div",{className:t.emptyState},l().createElement(o.Stack,{direction:"column",alignItems:"center"},l().createElement(o.Text,{color:"secondary",italic:!0},"No bookmarks yet for the"),l().createElement(o.Text,{color:"secondary",italic:!0},"current data source."))))});class Me extends i.SceneObjectBase{selectLabel(e){i.sceneGraph.lookupVariable(this.state.variableName,this).changeValueTo(e);const t=Boolean(e&&e!==u.c);this.setState({active:t})}constructor({key:e,variableName:t,title:n,description:r,icon:a,disabled:o,active:l}){super({key:e,variableName:t,title:n,description:r,icon:a,disabled:null!=o&&o,active:null!=l&&l}),Le(this,"onSelectLabel",e=>{(0,c.z)("sidebar_group_by_label_filter_applied",{label:e}),this.selectLabel(e)}),Le(this,"onClearSelection",()=>{this.selectLabel(u.c)}),Le(this,"useLabelsBrowser",()=>{const{variableName:e,title:t,description:n}=this.useState(),r=i.sceneGraph.lookupVariable(e,this),{loading:a,options:o,value:l}=r.useState(),[c,d]=(0,s.useState)("");return{title:t,description:n,loading:a,selectedLabel:l,labelsList:(0,s.useMemo)(()=>{const e=[e=>e!==u.c,e=>e.toLowerCase().includes(c.toLowerCase())];return o.filter(t=>e.every(e=>e(t.value)))},[o,c]),searchValue:c,onInputChange:e=>{d(e.currentTarget.value)},onInputKeyDown:e=>{"Escape"===e.key&&(e.preventDefault(),d(""))},onInputClear:()=>{d("")}}})}}function Re(e){return{container:(0,r.css)({display:"flex",flexDirection:"column",gap:e.spacing(1),height:"100%",overflowY:"hidden"}),search:(0,r.css)({marginBottom:e.spacing(1),padding:e.spacing(0,.5)})}}function $e(e,t,n,r,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function Ve(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Le(Me,"Component",({model:e})=>{const t=(0,o.useStyles2)(Re),{title:n,description:r,loading:a,labelsList:i,selectedLabel:s,searchValue:c,onInputChange:u,onInputKeyDown:d,onInputClear:p}=e.useLabelsBrowser();return l().createElement("div",{className:t.container,"data-testid":"labels-browser"},l().createElement(ee,{title:n,description:r}),l().createElement(o.Input,{className:t.search,prefix:l().createElement(o.Icon,{name:"search"}),placeholder:"Search...",value:c,onChange:u,onKeyDown:d,suffix:l().createElement(o.IconButton,{name:"times",variant:"secondary",tooltip:"Clear search",onClick:p})}),a&&l().createElement(o.Spinner,{inline:!0}),!a&&l().createElement(Be,{labels:i,selectedLabel:s,onSelectLabel:e.onSelectLabel,onClearSelection:e.onClearSelection}))});const Fe=[{value:"all",label:"All time"},...["1m","3m","5m","15m","30m","1h","3h","6h","12h","24h"].map(e=>({value:e,label:`Past ${e}`}))];class Ge extends i.SceneObjectBase{getUrlState(){const e="all"===this.state.currentInterval?"":this.state.currentInterval;return{[this.state.key]:e}}updateFromUrl(e){const t=e[this.state.key]||"all";t!==this.state.currentInterval&&Fe.some(e=>e.value===t)&&this.setState({currentInterval:t})}onActivate(){this.subscribeToState((e,t)=>{return(n=function*(){e.currentInterval!==t.currentInterval&&(this.setState({active:Boolean("all"!==e.currentInterval)}),this.publishEvent(new Z({key:this.state.key,values:"all"!==e.currentInterval?[e.currentInterval]:[]}),!0))},function(){var e=this,t=arguments;return new Promise(function(r,a){var i=n.apply(e,t);function o(e){$e(i,r,a,o,s,"next",e)}function s(e){$e(i,r,a,o,s,"throw",e)}o(void 0)})}).call(this);var n})}update(e){this.setState({currentInterval:e});const t=[...i.sceneGraph.findAllObjects(i.sceneGraph.getAncestor(this,et),e=>e instanceof T.s),i.sceneGraph.findByKeyAndType(this,T.$,T.s)];"all"===e?t.forEach(e=>e.fetchAllMetrics()):t.forEach(t=>t.fetchRecentMetrics(e))}constructor({key:e,title:t,description:n,icon:r,active:a,disabled:o}){super({key:e,title:t,description:n,icon:r,active:null!=a&&a,disabled:null!=o&&o,intervalOptions:Fe,currentInterval:"all"}),Ve(this,"_urlSync",new i.SceneObjectUrlSyncConfig(this,{keys:[this.state.key]})),Ve(this,"onChangeInterval",e=>{(0,c.z)("sidebar_recent_filter_selected",{interval:e}),this.update(e)}),this.addActivationHandler(this.onActivate.bind(this))}}function qe(e){return{container:(0,r.css)({display:"flex",flexDirection:"column",gap:e.spacing(1),height:"100%",overflowY:"hidden"}),list:(0,r.css)({height:"100%",padding:e.spacing(0,1,1,1),overflowY:"auto"})}}Ve(Ge,"Component",({model:e})=>{const t=(0,o.useStyles2)(qe),{title:n,description:r,intervalOptions:a,currentInterval:i}=e.useState();return l().createElement("div",{className:t.container,"data-testid":"new-metrics"},l().createElement(ee,{title:n,description:r}),l().createElement("div",{className:t.list},l().createElement(o.RadioButtonList,{name:"offsets",value:i,options:a,onChange:e.onChangeInterval})))});class Ue extends i.SceneObjectBase{onActivate(){}constructor({key:e,title:t,description:n,icon:r,disabled:a}){super({key:e,title:t,description:n,icon:r,disabled:null!=a&&a,active:!1}),this.addActivationHandler(this.onActivate.bind(this))}}function He(e){return{container:(0,r.css)({display:"flex",flexDirection:"column",gap:e.spacing(1),height:"100%",overflowY:"hidden"})}}!function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(Ue,"Component",({model:e})=>{const t=(0,o.useStyles2)(He),{title:n,description:r}=e.useState();return l().createElement("div",{className:t.container},l().createElement(ee,{title:n,description:r}))});const ze=new Map([["rules",function(){return l().createElement("svg",{stroke:"currentColor",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none"},l().createElement("rect",{x:"1.25",y:"1.625",width:"5.25",height:"5.25",rx:"1",strokeWidth:"1.5"}),l().createElement("circle",{cx:"12.25",cy:"4.25",r:"2.75",strokeWidth:"1.5"}),l().createElement("circle",{cx:"3.75",cy:"11.75",r:"2.75",strokeWidth:"1.5"}),l().createElement("rect",{x:"9.5",y:"9.125",width:"5.25",height:"5.25",rx:"1",strokeWidth:"1.5"}))}],["groups",A]]);function Ke({ariaLabel:e,disabled:t,visible:n,active:a,tooltip:i,iconOrText:s,onClick:c}){const u=(0,o.useStyles2)(We);let d,p;return s in _.availableIconsIndex?d=s:p=ze.has(s)?ze.get(s):function(){return l().createElement(l().Fragment,null,s)},l().createElement(o.Button,{className:(0,r.cx)(u.button,t&&"disabled",n&&"visible",a&&"active"),size:"md",variant:"secondary",fill:"text",icon:d,"aria-label":e,tooltip:i,tooltipPlacement:"right",onClick:c,disabled:t},p&&l().createElement(p,null))}function We(e){return{button:(0,r.css)({color:e.colors.text.secondary,"&:hover":{color:e.colors.text.maxContrast,background:"transparent"},"&.disabled":{opacity:.5},"&.disabled:hover":{color:e.colors.text.secondary},"&.visible":{color:e.colors.text.maxContrast},"&.active":{color:e.colors.text.maxContrast}})}}function Qe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Ye=["filters-rule","filters-prefix","filters-suffix","filters-recent"];class Je extends i.SceneObjectBase{onActivate(){var e;const t=this.initOtherMetricsVar();return this.subscribeToEvent(Z,e=>{const{key:t,values:n}=e.payload,{sectionValues:r}=this.state,a=new Map(r).set(t,n);this.setOtherMetricFilters(a),this.setState({sectionValues:a})}),!(null===(e=this.state.visibleSection)||void 0===e?void 0:e.state.key)&&(0,we.A)(we.j.sidebarOpenByDefault)&&this.setActiveSection(ve.x.getItem(ye.V.SIDEBAR_SECTION)||"filters-prefix"),()=>{t()}}setOtherMetricFilters(e){const t=i.sceneGraph.lookupVariable($.hc,this);if(!(0,Oe.BE)(t))return;const n={"filters-rule":"rule group","filters-prefix":"prefix","filters-suffix":"suffix","filters-recent":"recent"},r=Array.from(e.entries()).reduce((e,[t,r])=>(r.length&&Ye.includes(t)&&e.push({key:t,operator:"=",value:r.join(", "),keyLabel:n[t]}),e),[]);t.setState({filters:r,hide:r.length?_.VariableHide.hideLabel:_.VariableHide.hideVariable})}initOtherMetricsVar(){const e=(0,Se.kj)(this).state.$variables;if(!e)return()=>{};const t=new i.AdHocFiltersVariable({name:$.hc,readOnly:!0,skipUrlSync:!0,datasource:null,hide:_.VariableHide.hideVariable,layout:"combobox",applyMode:"manual",allowCustomValue:!0});return e.setState({variables:[...e.state.variables,t]}),this.setOtherMetricFilters(this.state.sectionValues),()=>{e.setState({variables:[...e.state.variables.filter(e=>e!==t)]})}}static getSectionValuesFromUrl(){const e=new URLSearchParams(window.location.search),t=new Map;for(const n of Ye){const r=e.get(n);t.set(n,r?r.split(",").map(e=>e.trim()):[])}return t}setActiveSection(e){const{visibleSection:t,sections:n}=this.state;if(!e||e===(null==t?void 0:t.state.key))return(0,c.z)("metrics_sidebar_toggled",{action:"closed",section:null==t?void 0:t.state.key}),void this.setState({visibleSection:null});var r;ve.x.setItem(ye.V.SIDEBAR_SECTION,e),(0,c.z)("metrics_sidebar_toggled",{action:"opened",section:e}),"filters-prefix"===e?(0,c.z)("sidebar_prefix_filter_section_clicked",{}):"filters-suffix"===e?(0,c.z)("sidebar_suffix_filter_section_clicked",{}):"filters-recent"===e&&(0,c.z)("sidebar_recent_filter_section_clicked",{}),this.setState({visibleSection:null!==(r=n.find(t=>t.state.key===e))&&void 0!==r?r:null})}constructor(e){var t,n,r,a;const i=Je.getSectionValuesFromUrl(),o=(0,we.A)(we.j.hierarchicalPrefixFiltering);super(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){Qe(e,t,n[t])})}return e}({key:"sidebar",visibleSection:null,sections:[new de({key:"filters-rule",type:"categories",title:"Rules filters",description:"Filter metrics and recording rules",icon:"rules",computeGroups:ge,showHideEmpty:!1,showSearch:!1,active:Boolean(null===(t=i.get("filters-rule"))||void 0===t?void 0:t.length)}),new de({key:"filters-prefix",type:"prefixes",title:"Prefix filters",description:"Filter metrics based on their name prefix (Prometheus namespace)",icon:"A_",computeGroups:me.w,hierarchical:o,active:Boolean(null===(n=i.get("filters-prefix"))||void 0===n?void 0:n.length)}),new de({key:"filters-suffix",type:"suffixes",title:"Suffix filters",description:"Filter metrics based on their name suffix",icon:"_Z",computeGroups:fe,active:Boolean(null===(r=i.get("filters-suffix"))||void 0===r?void 0:r.length)}),new Ge({key:"filters-recent",title:"Recent metrics filters",description:"Filter metrics based on when they started being ingested",icon:"clock-nine",active:Boolean(null===(a=i.get("filters-recent"))||void 0===a?void 0:a.length)}),new Me({key:"groupby-labels",variableName:d.G,title:"Group by labels",description:"Group metrics by their label values",icon:"groups"}),new Ae({key:"bookmarks",title:"Bookmarks",description:"Access your saved metrics for quick reference",icon:"star"}),new Ue({key:"settings",title:"Settings",description:"Settings",icon:"cog",disabled:!0})],sectionValues:i},e)),i.set("filters-rule",[]),this.addActivationHandler(this.onActivate.bind(this))}}function Xe(e){return{container:(0,r.css)({position:"relative",height:"100%",overflow:"hidden"}),buttonsBar:(0,r.css)({width:"42px",border:`1px solid ${e.colors.border.weak}`,borderRadius:e.shape.radius.default,backgroundColor:e.colors.background.primary,position:"relative"}),buttonContainer:(0,r.css)({marginTop:e.spacing(1),"&::before":{transition:"0.5s ease",content:'""',position:"absolute",left:0,height:"32px",borderLeft:`2px solid ${e.colors.action.selectedBorder}`,boxSizing:"border-box",opacity:0,visibility:"hidden"},"&:hover::before":{opacity:1,visibility:"visible"},"&.visible::before":{opacity:1,visibility:"visible"},"&.disabled::before":{opacity:0,visibility:"hidden"},"&.active::after":{content:'""',position:"absolute",right:0,width:"8px",height:"8px",backgroundColor:e.colors.action.selectedBorder,borderRadius:"50%",margin:"2px 4px 0 0"}}),content:(0,r.css)({width:"calc(300px - 42px)",boxSizing:"border-box",border:`1px solid ${e.colors.border.weak}`,borderLeft:"none",borderRadius:e.shape.radius.default,backgroundColor:e.colors.background.canvas,padding:e.spacing(1.5)}),closeButton:(0,r.css)({position:"absolute",top:e.spacing(1.5),right:e.spacing(1)})}}function Ze(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Qe(Je,"Component",({model:e})=>{const t=(0,o.useStyles2)(Xe),{sections:n,visibleSection:a,sectionValues:s}=e.useState(),c=i.sceneGraph.findByKeyAndType(e,d.G,d.O).useState().value;return l().createElement("div",{className:t.container},l().createElement(o.Stack,{direction:"row",height:"100%",gap:0},l().createElement("div",{className:t.buttonsBar,"data-testid":"sidebar-buttons"},l().createElement(o.Stack,{direction:"column",alignItems:"center",gap:0},n.map(n=>{const{key:i,title:o,icon:d,disabled:p,active:m}=n.state,h=(null==a?void 0:a.state.key)===i;let f,b;var g,y;"groupby-labels"===i?(f=Boolean(c&&c!==u.c),b=`${o}: ${c}`):(f=m,b=(null===(g=s.get(i))||void 0===g?void 0:g.length)?`${o}: ${null===(y=s.get(i))||void 0===y?void 0:y.join(", ")}`:o);return l().createElement("div",{key:i,className:(0,r.cx)(t.buttonContainer,h&&"visible",f&&"active",p&&"disabled")},l().createElement(Ke,{key:i,ariaLabel:o,disabled:p,visible:h,active:f,tooltip:b,onClick:()=>e.setActiveSection(i),iconOrText:d}))}))),a&&l().createElement("div",{className:t.content,"data-testid":"sidebar-content"},l().createElement(o.IconButton,{className:t.closeButton,name:"times","aria-label":"Close",tooltip:"Close",tooltipPlacement:"top",onClick:()=>e.setActiveSection("")}),a instanceof de&&l().createElement(a.Component,{model:a}),a instanceof Ge&&l().createElement(a.Component,{model:a}),a instanceof Me&&l().createElement(a.Component,{model:a}),a instanceof Ae&&l().createElement(a.Component,{model:a}),a instanceof Ue&&l().createElement(a.Component,{model:a}))))});class et extends i.SceneObjectBase{onActivate(){const e=i.sceneGraph.lookupVariable(d.G,this).state.value;this.updateBasedOnGroupBy(e),this.subscribeToEvents()}updateBasedOnGroupBy(e){const t=Boolean(e&&e!==u.c);i.sceneGraph.findByKeyAndType(this,"quick-search",f.I).toggleCountsDisplay(!t),!t&&this.state.body instanceof V.Qs||t&&this.state.body instanceof z&&this.state.body.state.labelName===e||this.setState({body:t?new z({labelName:e}):new V.Qs({variableName:x.h})})}subscribeToEvents(){this.initVariablesFilteringAndSorting()}initVariablesFilteringAndSorting(){this.subscribeToEvent(w.x,e=>{const{key:t}=e.payload,n=i.sceneGraph.findByKey(this,t);this.state.enginesMap.set(t,{filterEngine:new P.k(n),sortEngine:new k.c(n)})}),this.subscribeToEvent(O.e,e=>{this.state.enginesMap.delete(e.payload.key)});const e=i.sceneGraph.findByKeyAndType(this,"quick-search",f.I),t=i.sceneGraph.findAllObjects(this,e=>e instanceof de),n=i.sceneGraph.findByKeyAndType(this,"metrics-sorter",m.fD).state.$variables.getByName(m.NJ);this.subscribeToEvent(E.x,r=>{const{key:a,options:i}=r.payload,{filterEngine:o,sortEngine:s}=this.state.enginesMap.get(a);o.setInitOptions(i);const l={names:e.state.value?[e.state.value]:[]};for(const e of t)l[e.state.type]=e.state.selectedGroups.map(e=>e.value);o.applyFilters(l,{forceUpdate:!0,notify:!1}),s.sort(n.state.value)}),this.subscribeToEvent(S.W,e=>{const{searchText:t}=e.payload;for(const[,{filterEngine:e,sortEngine:r}]of this.state.enginesMap)e.applyFilters({names:t?[t]:[]}),r.sort(n.state.value)}),this.subscribeToEvent(W.Y,e=>{const{type:t,filters:r}=e.payload;for(const[,{filterEngine:e,sortEngine:a}]of this.state.enginesMap)e.applyFilters({[t]:r}),a.sort(n.state.value)}),this.subscribeToEvent(v.S,e=>{const{sortBy:t}=e.payload;(0,c.z)("sorting_changed",{from:"metrics-reducer",sortBy:t});for(const[,{sortEngine:e}]of this.state.enginesMap)e.sort(t)})}constructor(){super({$variables:new i.SceneVariableSet({variables:[new x.V]}),listControls:new y({}),sidebar:new Je({}),body:void 0,enginesMap:new Map}),Ze(this,"_variableDependency",new i.VariableDependencyConfig(this,{variableNames:[d.G],onReferencedVariableValueChanged:e=>{this.updateBasedOnGroupBy(e.state.value)}})),this.addActivationHandler(this.onActivate.bind(this))}}Ze(et,"Component",({model:e})=>{var t;const n=null!==(t=(0,a.useChromeHeaderHeight)())&&void 0!==t?t:0,r=(0,o.useStyles2)(nt),{$variables:i,body:s,listControls:c,sidebar:u}=e.useState();return l().createElement(l().Fragment,null,l().createElement("div",{className:r.listControls,"data-testid":"list-controls"},l().createElement(c.Component,{model:c})),l().createElement(o.Stack,{direction:"row",gap:1,height:`calc(100vh - ${n+tt}px)`},l().createElement("div",{className:r.sidebar,"data-testid":"sidebar"},l().createElement(u.Component,{model:u})),l().createElement("div",{className:r.list},s&&l().createElement(s.Component,{model:s}))),l().createElement("div",{className:r.variables},null==i?void 0:i.state.variables.map(e=>l().createElement(e.Component,{key:e.state.name,model:e}))))});const tt=144;function nt(e){return{listControls:(0,r.css)({marginBottom:e.spacing(1.5)}),list:(0,r.css)({width:"100%",overflowY:"auto"}),sidebar:(0,r.css)({flex:"0 0 auto",overflowY:"auto"}),variables:(0,r.css)({display:"none"})}}},2457:(e,t,n)=>{n.d(t,{U:()=>u,p:()=>c});var r=n(3014),a=n(2007),i=n(5959),o=n.n(i),s=n(5935);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var c=function(e){return e.GRID="grid",e.ROWS="rows",e.SINGLE="single",e}({});class u extends r.SceneObjectBase{getUrlState(){return{[this.state.urlSearchParamName]:this.state.layout}}updateFromUrl(e){const t={},n=e[this.state.urlSearchParamName];n!==this.state.layout&&(t.layout=this.state.options.find(e=>e.value===n)?n:u.DEFAULT_LAYOUT),this.setState(t)}constructor({urlSearchParamName:e,options:t}){super({key:"layout-switcher",urlSearchParamName:e||"layout",options:t||u.DEFAULT_OPTIONS,layout:u.DEFAULT_LAYOUT}),l(this,"_urlSync",new r.SceneObjectUrlSyncConfig(this,{keys:[this.state.urlSearchParamName]})),l(this,"onChange",e=>{(0,s.z)("layout_changed",{layout:e}),this.setState({layout:e})})}}l(u,"DEFAULT_OPTIONS",[{label:"Grid",value:"grid"},{label:"Rows",value:"rows"}]),l(u,"DEFAULT_LAYOUT","grid"),l(u,"Component",({model:e})=>{const{options:t,layout:n}=e.useState();return o().createElement(a.RadioButtonGroup,{"aria-label":"Layout switcher",options:t,value:n,onChange:e.onChange,fullWidth:!1})})},2639:(e,t,n)=>{n.d(t,{MV:()=>b,Qs:()=>y,_O:()=>g});var r=n(6089),a=n(3014),i=n(6145),o=n(2007),s=n(5959),l=n.n(s),c=n(6503),u=n(5190),d=n(2413),p=n(2457),m=n(1031),h=n(4758),f=n(7957);const b="repeat(auto-fit, minmax(400px, 1fr))",g="1fr";class y extends a.SceneObjectBase{onActivate(){this.subscribeToLayoutChange()}subscribeToLayoutChange(){const e=a.sceneGraph.findByKeyAndType(this,"layout-switcher",p.U),t=this.state.body.state.body,n=(e,n)=>{e.layout!==(null==n?void 0:n.layout)&&t.setState({templateColumns:e.layout===p.p.ROWS?g:b})};n(e.state),this._subs.add(e.subscribeToState(n))}constructor({variableName:e}){super({key:"metrics-list",variableName:e,body:new u.k({variableName:e,initialPageSize:120,pageSizeIncrement:9,body:new a.SceneCSSGridLayout({children:[],isLazy:!0,templateColumns:b,autoRows:f.fe,$behaviors:[new a.behaviors.CursorSync({key:"metricCrosshairSync",sync:i.yV.Crosshair})]}),getLayoutLoading:()=>new a.SceneReactObject({reactNode:l().createElement(o.Spinner,{inline:!0})}),getLayoutEmpty:()=>new a.SceneReactObject({reactNode:l().createElement(c._,{title:"",severity:"info"},"No metrics found for the current filters and time range.")}),getLayoutError:e=>new a.SceneReactObject({reactNode:l().createElement(c._,{severity:"error",title:"Error while loading metrics!",error:e})}),getLayoutChild:(e,t)=>new a.SceneCSSGridItem({body:new f.c0({metric:e.value,vizPanelInGridItem:new h.m({metric:e.value,panelOptions:{fixedColorIndex:t,headerActions:({metric:e})=>[new m.B({metric:e.name})]}})})})})}),this.addActivationHandler(this.onActivate.bind(this))}}var v,S,w;function O(e){return{footer:(0,r.css)({display:"flex",justifyContent:"center",alignItems:"center",marginTop:e.spacing(4),"& button":{height:"40px",borderRadius:"8px"}})}}w=({model:e})=>{const{variableName:t,body:n}=e.useState(),r=(0,o.useStyles2)(O),i=a.sceneGraph.lookupVariable(t,e),{loading:s,error:c}=i.useState(),u=n.useSizes(),p=!s&&!c&&u.total>0&&u.current<u.total;return l().createElement("div",{"data-testid":"metrics-list"},l().createElement("div",null,l().createElement(n.Component,{model:n})),p&&l().createElement("div",{className:r.footer},l().createElement(d.d,{label:"metric",batchSizes:u,onClick:()=>{n.increaseBatchSize()}})))},(S="Component")in(v=y)?Object.defineProperty(v,S,{value:w,enumerable:!0,configurable:!0,writable:!0}):v[S]=w},2717:(e,t,n)=>{n.d(t,{G:()=>N});var r=n(3014),a=n(5959),i=n.n(a),o=n(2324),s=n(4332),l=n(8531),c=n(8943),u=n(2388),d=n(5935);class p{static create(e){return{text:"Copy URL",iconClassName:"copy",onClick:()=>{if(navigator.clipboard){(0,d.z)("selected_metric_action_clicked",{action:"share_url"});const t=`${l.config.appUrl.endsWith("/")?l.config.appUrl.slice(0,-1):l.config.appUrl}${c.G}/${(0,o.xi)(e)}`;navigator.clipboard.writeText(t),(0,u.qq)(["URL copied to clipboard"])}}}}}function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function h(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}class f{static create(e){let t;try{const n=r.sceneGraph.getAncestor(e,r.VizPanel),a=r.sceneGraph.getData(n).state.data;if(!a)throw new Error("Cannot get link to explore, no panel data found");t=(0,r.getExploreURL)(a,e,a.timeRange,e=>"expr"in e&&"string"==typeof e.expr&&e.expr.includes("__ignore_usage__")?h(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){m(e,t,n[t])})}return e}({},e),{expr:e.expr.replace(/,?__ignore_usage__="",?/,"")}):e)}catch(e){}return{text:"Explore",iconClassName:"compass",onClick:()=>null==t?void 0:t.then(e=>{e&&window.open(`${l.config.appSubUrl}${e}`,"_blank")}),shortcut:"p x"}}}var b=n(1269),g=n(8705),y=n(2007);const v=n.p+"ac01ecbc64128d2f3e68.svg";var S=n(2533),w=n(1419),O=n(845);function E(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function x(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){E(e,t,n[t])})}return e}function P(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}const k=`${S.id}/investigation/v1`;class C extends r.SceneObjectBase{getPanelConfigAndDataFrames(){var e;const t=(0,o.UX)(this,e=>e instanceof r.VizPanel,r.VizPanel),n=r.sceneGraph.getData(this);return{fieldConfig:null==t?void 0:t.state.fieldConfig,frames:null==n||null===(e=n.state.data)||void 0===e?void 0:e.series}}constructor(e){super(P(x({},e),{queries:[]})),E(this,"_onActivate",()=>{this.subscribeToState(()=>{this.getQueries(),this.getContext()});const e=r.sceneGraph.interpolate(this,w.gR);this.setState({dsUid:e})}),E(this,"getQueries",()=>{const e=r.sceneGraph.getData(this),t=r.sceneGraph.findObject(e,O.x);if((0,O.x)(t)){const e=this.state.frame?j(this.state.frame):null,n=t.state.queries.map(n=>P(x({},n),{expr:r.sceneGraph.interpolate(t,n.expr),legendFormat:(null==e?void 0:e.name)?`{{ ${e.name} }}`:r.sceneGraph.interpolate(t,n.legendFormat)}));JSON.stringify(n)!==JSON.stringify(this.state.queries)&&this.setState({queries:n})}}),E(this,"updateFieldConfigOverrides",()=>{const{fieldConfig:e,frames:t}=this.getPanelConfigAndDataFrames();if(e&&(null==t?void 0:t.length)){for(const a of t)for(const t of a.fields){const a=Object.keys(t.config).map(e=>({id:e,value:t.config[e]})),i=e.overrides.find(e=>{var n,r;return e.matcher.options===(null!==(r=null!==(n=t.config.displayNameFromDS)&&void 0!==n?n:t.config.displayName)&&void 0!==r?r:t.name)&&"byName"===e.matcher.id});var n,r;if(!i)e.overrides.unshift({matcher:{id:"byName",options:null!==(r=null!==(n=t.config.displayNameFromDS)&&void 0!==n?n:t.config.displayName)&&void 0!==r?r:t.name},properties:a});i&&JSON.stringify(i.properties)!==JSON.stringify(a)&&(i.properties=a)}return e}}),E(this,"getContext",()=>{const e=this.updateFieldConfigOverrides(),{queries:t,dsUid:n,labelName:a,fieldName:i}=this.state,o=r.sceneGraph.getTimeRange(this);if(!o||!t||!n)return;const s={origin:"Metrics Drilldown",type:"timeseries",queries:t,timeRange:x({},o.state.value),datasource:{uid:n},url:window.location.href,id:`${JSON.stringify(t)}${a}${i}`,title:a+(i?` > ${i}`:""),logoPath:v,drillDownLabel:i,fieldConfig:e};JSON.stringify(s)!==JSON.stringify(this.state.context)&&this.setState({context:s})}),this.addActivationHandler(this._onActivate.bind(this))}}E(C,"Component",({model:e})=>{const{context:t}=e.useState(),{links:n}=(0,l.usePluginLinks)({extensionPointId:k,context:t,limitPerPlugin:1}),r=n.find(e=>"grafana-investigations-app"===e.pluginId);return r?i().createElement(y.IconButton,{tooltip:r.description,"aria-label":"add panel to exploration",key:r.id,name:null!==(a=r.icon)&&void 0!==a?a:"panel-add",onClick:e=>{r.onClick&&r.onClick(e)}}):null;var a});const j=e=>{var t,n;const r=null!==(n=null===(t=e.fields[1])||void 0===t?void 0:t.labels)&&void 0!==n?n:{},a=Object.keys(r);if(1!==a.length)return;const i=a[0];return{name:i,value:r[i]}};function _(e,t,n,r,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function T(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function o(e){_(i,r,a,o,s,"next",e)}function s(e){_(i,r,a,o,s,"throw",e)}o(void 0)})}}class I{static create(e,t,n,r){return T(function*(){const a=new C({labelName:t,fieldName:n,frame:r});e.setState({explorationsButton:a}),e.state.addExplorationsLink&&a.activate();const i=yield A(a),o=[];return i&&o.push({text:"investigations_divider",type:"divider"},{text:"Investigations",type:"group"},{text:"Add to investigation",iconClassName:"plus-square",onClick:e=>i.onClick&&i.onClick(e)}),o})()}}const A=e=>T(function*(){const t=e.state.context;if(l.config.buildInfo.version.startsWith("11."))try{const e=(yield Promise.resolve().then(n.t.bind(n,8531,23))).getPluginLinkExtensions;if(void 0!==e){return e({extensionPointId:k,context:t}).extensions[0]}}catch(e){g.v.error(e,{message:"Error importing getPluginLinkExtensions"})}if("function"==typeof l.getObservablePluginLinks){return(yield(0,b.firstValueFrom)((0,l.getObservablePluginLinks)({extensionPointId:k,context:t})))[0]}})();function D(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function B(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}class N extends r.SceneObjectBase{addItem(e){var t;null===(t=this.state.body)||void 0===t||t.addItem(e)}setItems(e){var t;null===(t=this.state.body)||void 0===t||t.setItems(e)}constructor(e){var t;super(B(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){D(e,t,n[t])})}return e}({},e),{addExplorationsLink:null===(t=e.addExplorationsLink)||void 0===t||t,body:new r.VizPanelMenu({})})),this.addActivationHandler(()=>{var e;const t=[{text:"Navigation",type:"group"},f.create(this)];this.state.key===s.k&&t.push({text:"Actions",type:"group"},p.create((0,o.kj)(this))),this.state.addExplorationsLink&&I.create(this,this.state.labelName,this.state.fieldName,this.state.frame).then(e=>{var n;e.length>0&&(null===(n=this.state.body)||void 0===n||n.setItems([...t,...e]))}),null===(e=this.state.body)||void 0===e||e.setState({items:t})})}}D(N,"Component",({model:e})=>{const{body:t}=e.useState();return i().createElement("div",{"data-testid":"panel-menu"},t&&i().createElement(t.Component,{model:t}))})},2993:(e,t,n)=>{n.d(t,{E:()=>c});var r=n(6089),a=n(2007),i=n(5959),o=n.n(i),s=n(1159),l=n(6503);function c({error:e}){const t=(0,a.useStyles2)(u),n=(0,s.useNavigate)(),{pathname:r,search:c}=(0,s.useLocation)(),d=(0,i.useCallback)(()=>{const e=new URLSearchParams(c),t=new URLSearchParams;["from","to","timezone"].filter(t=>e.has(t)).forEach(n=>t.set(n,e.get(n))),n({pathname:r,search:t.toString()}),window.location.reload()},[n,r,c]),[p,m]=(0,i.useState)(!1);return o().createElement("div",{className:t.container},o().createElement(l._,{severity:"error",title:"Fatal error!",error:e,errorContext:{handheldBy:"React error boundary"},message:o().createElement(o().Fragment,null,o().createElement("p",{className:t.message},"Please"," ",o().createElement(a.TextLink,{href:"#",onClick:d},"try reloading the page")," ","or, if the problem persists, contact your organization admin. Sorry for the inconvenience."),o().createElement("p",null,o().createElement(a.Collapse,{className:t.callStack,label:"View stack trace",isOpen:p,onToggle:()=>m(!p)},o().createElement("pre",null,o().createElement("code",null,e.stack)))))}))}function u(e){return{container:(0,r.css)({margin:e.spacing(2)}),message:(0,r.css)({margin:e.spacing(2,0,1,0)}),callStack:(0,r.css)({backgroundColor:"transparent",border:"0 none","& button":(0,r.css)({paddingLeft:e.spacing(1.5)}),"& button:focus":(0,r.css)({outline:"none",boxShadow:"none"}),"& button > svg":(0,r.css)({marginLeft:e.spacing(-2),marginRight:e.spacing(.5)}),'& [class$="collapse__loader"]':(0,r.css)({display:"none"})})}}},3139:(e,t,n)=>{n.d(t,{N:()=>s});var r,a,i,o=n(7781);class s extends o.BusEventWithPayload{}i="force-sync-y-axis",(a="type")in(r=s)?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i},3179:(e,t,n)=>{n.d(t,{A:()=>i,j:()=>a});var r=n(8531);const a={sidebarOpenByDefault:"metricsDrilldownDefaultOpenSidebar",hierarchicalPrefixFiltering:"metricsDrilldownHierarchicalPrefixFiltering"};function i(e){var t;return null!==(t=r.config.featureToggles[e])&&void 0!==t&&t}},3424:(e,t,n)=>{n.d(t,{Y:()=>s});var r,a,i,o=n(7781);class s extends o.BusEventWithPayload{}i="filters-changed",(a="type")in(r=s)?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i},3632:(e,t,n)=>{n.d(t,{i:()=>r});const r={TIMESERIES_AVG:"timeseries-avg",TIMESERIES_SUM:"timeseries-sum",TIMESERIES_STDDEV:"timeseries-stddev",TIMESERIES_PERCENTILES:"timeseries-percentiles",TIMESERIES_MIN_MAX:"timeseries-minmax",TIMESERIES_COUNT:"timeseries-count",TIMESERIES_AGE_TIME_MINUS_AVG:"timeseries-age-time-minus-avg",TIMESERIES_AGE_TIME_MINUS_MIN_MAX:"timeseries-age-time-minus-min-max",HISTOGRAM_HEATMAP:"histogram-heatmap",HISTOGRAM_PERCENTILES:"histogram-percentiles",STATUS_UPDOWN_HISTORY:"status-updown-history",STATUS_UPDOWN_STAT:"status-updown-stat"}},3740:(e,t,n)=>{n.d(t,{Z:()=>s});var r,a,i,o=n(7781);class s extends o.BusEventWithPayload{}i="open-add-to-dashboard",(a="type")in(r=s)?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i},3916:(e,t,n)=>{n.d(t,{V:()=>s,h:()=>o});var r=n(3014),a=n(5665),i=n(1089);const o="filtered-metrics-wingman";class s extends r.CustomVariable{onActivate(){const e=r.sceneGraph.findByKeyAndType(this,a.$,a.s),{loading:t,error:n,options:i}=e.state;this.setState({loading:t,error:n,options:i}),this._subs.add(e.subscribeToState(e=>{this.setState({loading:e.loading,error:e.error,options:e.options})}))}constructor(){return super({key:o,name:o,label:"Filtered Metrics",loading:!1,error:null,options:[],includeAll:!0,value:"$__all",skipUrlSync:!0}),this.addActivationHandler(this.onActivate.bind(this)),(0,i.I)(this)}}},3966:(e,t,n)=>{n.d(t,{k3:()=>Me,x3:()=>Be,fe:()=>Le,nh:()=>Ne});var r=n(6089),a=n(3014),i=n(2007),o=n(5959),s=n.n(o),l=n(5935),c=n(8531),u=n(5114),d=n(2324),p=n(7791),m=n(7781),h=n(6503),f=n(5190),b=n(2413),g=n(2457),y=n(2639),v=n(917),S=n(4299),w=n(4160);const O=(e={})=>t=>{const[n]=a.sceneGraph.findDescendents(t,a.SceneQueryRunner);if(!n)return;const r=t.state.title,i=n.subscribeToState(n=>{var a;if((null===(a=n.data)||void 0===a?void 0:a.state)!==m.LoadingState.Done)return;const{series:i}=n.data;if(!(null==i?void 0:i.length))return;const o={title:`${r} (${i.length})`};var s,l;i.length>w.o&&(o.description=`Showing only ${w.o} series out of ${i.length} to keep the data easy to read.`,o.description+="string"==typeof(null===(s=e.description)||void 0===s?void 0:s.ctaText)?` ${null===(l=e.description)||void 0===l?void 0:l.ctaText}`:' Click on "Select" on this panel to view a breakdown of all the label\'s values.');t.setState(o)});return()=>{i.unsubscribe()}};var E=n(1419),x=n(8238);function P(){return e=>{var t;if("timeseries"!==e.state.pluginId)return;let n=a.sceneGraph.getData(e);n instanceof a.SceneDataTransformer&&(n=n.state.$data);const{data:r}=n.state;(null==r?void 0:r.state)===m.LoadingState.Done&&(null===(t=r.series)||void 0===t?void 0:t.length)&&e.publishEvent(new x.s({panelKey:e.state.key,series:r.series}),!0);const i=n.subscribeToState((t,n)=>{var r,a,i;if((null===(r=t.data)||void 0===r?void 0:r.state)===m.LoadingState.Done&&(null===(a=t.data.series)||void 0===a?void 0:a.length)&&t.data.series!==(null===(i=n.data)||void 0===i?void 0:i.series)){var o;const n=null===(o=t.data.series[0].meta)||void 0===o?void 0:o.type;if(n&&!n.startsWith("timeseries"))return;e.publishEvent(new x.s({panelKey:e.state.key,series:t.data.series}),!0)}});return()=>{i.unsubscribe()}}}var k=n(300),C=n(396);function j(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class _ extends a.SceneObjectBase{constructor(...e){super(...e),j(this,"onClick",()=>{const{label:e}=this.state;(0,l.z)("breakdown_panel_selected",{label:e});const t=a.sceneGraph.lookupVariable(E.yr,this);if(!(0,C.bA)(t))throw new Error("Group by variable not found");t.changeValueTo(e)})}}j(_,"Component",({model:e})=>s().createElement(i.Button,{variant:"secondary",size:"sm",fill:"outline",onClick:e.onClick},"Select"));var T,I,A,D=n(2717);class B extends a.SceneObjectBase{onActivate(){this.subscribeToLayoutChange(),this.subscribeToEvents()}subscribeToEvents(){const e=new Map;this.subscribeToEvent(x.s,t=>{const{panelKey:n,series:r}=t.payload,i=a.sceneGraph.findByKeyAndType(this,n,a.VizPanel);if(1===r.length)return e.has(n)||e.set(n,i.state.headerActions||[]),void i.setState({headerActions:[]});e.has(n)&&i.setState({headerActions:e.get(n)})})}subscribeToLayoutChange(){const e=a.sceneGraph.findByKeyAndType(this,"layout-switcher",g.U),t=(e,t)=>{e.layout!==(null==t?void 0:t.layout)&&this.state.body.state.body.setState({templateColumns:e.layout===g.p.ROWS?y._O:y.MV})};a.sceneUtils.syncStateFromSearchParams(e,new URLSearchParams(window.location.search)),t(e.state),this._subs.add(e.subscribeToState(t))}Controls({model:e}){const t=(0,i.useStyles2)(N),{layoutSwitcher:n}=e.useState();return s().createElement(i.Field,{label:"View",className:t.field},s().createElement(n.Component,{model:n}))}constructor({metric:e}){super({key:"metric-labels-list",metric:e,layoutSwitcher:new g.U({}),body:new f.k({variableName:E.yr,initialPageSize:60,pageSizeIncrement:9,body:new a.SceneCSSGridLayout({children:[],isLazy:!0,templateColumns:y.MV,autoRows:v.N.M,$behaviors:[new a.behaviors.CursorSync({key:"metricCrosshairSync",sync:m.DashboardCursorSync.Crosshair}),(0,k.U)()]}),getLayoutLoading:()=>new a.SceneReactObject({reactNode:s().createElement(i.Spinner,{inline:!0})}),getLayoutEmpty:()=>new a.SceneReactObject({reactNode:s().createElement(h._,{title:"",severity:"info"},"No labels found for the current filters and time range.")}),getLayoutError:e=>new a.SceneReactObject({reactNode:s().createElement(h._,{severity:"error",title:"Error while loading labels!",error:e})}),getLayoutChild:(t,n)=>{const r=t.value;return new a.SceneCSSGridItem({body:(0,w.B)({metric:e,panelConfig:{type:"timeseries",height:v.N.M,title:r,fixedColorIndex:n,behaviors:[P(),O()],headerActions:()=>[new _({label:r})],menu:()=>new D.G({labelName:r}),legend:{placement:"bottom"}},queryConfig:{resolution:S.I.MEDIUM,groupBy:r,labelMatchers:[],addIgnoreUsageFilter:!0}})})}})}),this.addActivationHandler(this.onActivate.bind(this))}}function N(e){return{field:(0,r.css)({marginBottom:0}),footer:(0,r.css)({display:"flex",justifyContent:"center",alignItems:"center",marginTop:e.spacing(4),"& button":{height:"40px",borderRadius:"8px"}})}}A=({model:e})=>{const t=(0,i.useStyles2)(N),{body:n}=e.useState(),r=a.sceneGraph.lookupVariable(E.yr,e),{loading:o,error:l}=r.useState(),c=n.useSizes(),u=!o&&!l&&c.total>0&&c.current<c.total;return s().createElement("div",{"data-testid":"labels-list"},s().createElement(n.Component,{model:n}),u&&s().createElement("div",{className:t.footer},s().createElement(b.d,{label:"label",batchSizes:c,onClick:()=>{n.increaseBatchSize()}})))},(I="Component")in(T=B)?Object.defineProperty(T,I,{value:A,enumerable:!0,configurable:!0,writable:!0}):T[I]=A;var L=n(4293),M=n(8489),R=n(9226),$=n(4758),V=n(7561),F=n(1100);function G(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class q extends a.SceneObjectBase{constructor(...e){super(...e),G(this,"onClick",()=>{const{labelName:e,labelValue:t}=this.state;(0,l.z)("label_filter_changed",{label:e,action:"added",cause:"breakdown"}),(0,d.kj)(this).addFilterWithoutReportingInteraction({key:e,operator:"=",value:t})})}}function U(e){var t;const n=(null===(t=e.fields[1])||void 0===t?void 0:t.labels)||{},r=Object.keys(n);return 0===r.length?"<unspecified>":n[r[0]]}G(q,"Component",({model:e})=>s().createElement(i.Button,{variant:"secondary",size:"sm",fill:"outline",onClick:e.onClick},"Add to filters"));var H=n(5843),z=n(2290),K=n(1233),W=n(5693);function Q(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class Y extends a.SceneObjectBase{constructor(e){const t=W.x.getItem(K.V.BREAKDOWN_SORTBY);super({key:"breakdown-sort-by",target:e.target,options:Y.DEFAULT_OPTIONS,value:t&&Y.DEFAULT_OPTIONS.find(e=>e.value===t)||Y.DEFAULT_OPTIONS[0]}),Q(this,"onChange",e=>{this.setState({value:e}),W.x.setItem(K.V.BREAKDOWN_SORTBY,e.value)})}}function J(e){return{sortByTooltip:(0,r.css)({display:"flex",gap:e.spacing(1)}),field:(0,r.css)({marginBottom:0})}}Q(Y,"DEFAULT_OPTIONS",[{value:"outliers",label:"Outlying series",description:"Prioritizes values that show distinct behavior from others within the same label"},{value:"alphabetical",label:"Name [A-Z]",description:"Alphabetical order"},{value:"alphabetical-reversed",label:"Name [Z-A]",description:"Reversed alphabetical order"}]),Q(Y,"Component",({model:e})=>{const t=(0,i.useStyles2)(J),{value:n,options:r}=e.useState();return s().createElement(i.Field,{className:t.field,"data-testid":"sort-by-select",htmlFor:"sort-by-criteria",label:s().createElement("div",{className:t.sortByTooltip},"Sort by",s().createElement(i.IconButton,{name:"info-circle",size:"sm",variant:"secondary",tooltip:"Sorts values using standard or smart time series calculations."}))},s().createElement(i.Combobox,{id:"sort-by-criteria",placeholder:"Choose criteria",width:20,options:r,value:n,onChange:e.onChange,isClearable:!1}))});var X=n(3139),Z=n(8316);function ee(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class te extends a.SceneObjectBase{performRepeat(e){var t,n,r,a;if(e.state===m.LoadingState.Loading)return void this.setState({loadingLayout:null===(t=(n=this.state).getLayoutLoading)||void 0===t?void 0:t.call(n),errorLayout:void 0,emptyLayout:void 0,currentBatchSize:0});if(e.state===m.LoadingState.Error)return void this.setState({errorLayout:null===(r=(a=this.state).getLayoutError)||void 0===r?void 0:r.call(a,e),loadingLayout:void 0,emptyLayout:void 0,currentBatchSize:0});const i=this.filterAndSort(e.series);var o,s;if(!i.length)return void this.setState({emptyLayout:null===(o=(s=this.state).getLayoutEmpty)||void 0===o?void 0:o.call(s),errorLayout:void 0,loadingLayout:void 0,currentBatchSize:0,counts:{current:0,total:e.series.length}});this.setState({loadingLayout:void 0,errorLayout:void 0,emptyLayout:void 0,currentBatchSize:this.state.initialPageSize,counts:{current:i.length,total:e.series.length}});const l=i.slice(0,this.state.initialPageSize).map((t,n)=>this.state.getLayoutChild(e,t,n)).filter(Boolean);this.state.body.setState({children:l})}initFilterAndSort(){this.searchText=a.sceneGraph.findByKeyAndType(this,"quick-search",M.I).state.value,this.sortBy=a.sceneGraph.findByKeyAndType(this,"breakdown-sort-by",Y).state.value.value}filterAndSort(e){let t=[];if(this.searchText){const n=this.searchText.split(",").map(e=>e.trim()).filter(Boolean).map(e=>{try{return new RegExp(e)}catch(e){return null}}).filter(Boolean);for(let r=0;r<e.length;r+=1){const a=e[r];n.some(e=>e.test(U(a)))&&t.push(a)}}else t=e;return this.sortBy&&(t=(0,z.sortSeries)(t,this.sortBy)),t}filter(e){this.searchText=e;const{data:t}=a.sceneGraph.getData(this).state;t&&(this.publishEvent(new Z.H({}),!0),this.performRepeat(t))}sort(e){this.sortBy=e;const{data:t}=a.sceneGraph.getData(this).state;t&&(this.publishEvent(new Z.H({}),!0),this.performRepeat(t))}increaseBatchSize(){const{data:e}=a.sceneGraph.getData(this).state;if(!e)return;const t=this.state.currentBatchSize+this.state.pageSizeIncrement,n=this.filterAndSort(e.series).slice(this.state.currentBatchSize,t).map((t,n)=>this.state.getLayoutChild(e,t,n)).filter(Boolean);this.state.body.setState({children:[...this.state.body.state.children,...n]}),this.setState({currentBatchSize:t}),this.publishEvent(new X.N({}),!0)}useSizes(){const{currentBatchSize:e,pageSizeIncrement:t}=this.useState(),{data:n}=a.sceneGraph.getData(this).state,r=n?this.filterAndSort(n.series).length:0,i=r-e;return{increment:i<t?i:t,current:e,total:r}}getCounts(){const{data:e}=a.sceneGraph.getData(this).state;return{current:0,total:e?e.series.length:0}}constructor({$behaviors:e,body:t,getLayoutChild:n,getLayoutLoading:r,getLayoutError:i,getLayoutEmpty:o,initialPageSize:s,pageSizeIncrement:l,$data:c}){super({key:"breakdown-by-frame-repeater",$behaviors:e,body:t,getLayoutChild:n,getLayoutLoading:r,getLayoutError:i,getLayoutEmpty:o,currentBatchSize:0,initialPageSize:s||120,pageSizeIncrement:l||9,loadingLayout:void 0,errorLayout:void 0,emptyLayout:void 0,counts:{current:0,total:0},$data:c}),ee(this,"searchText",""),ee(this,"sortBy",void 0),this.addActivationHandler(()=>{const e=a.sceneGraph.getData(this);if(!e)throw new Error("No data provider found!");this.initFilterAndSort(),this._subs.add(e.subscribeToState(e=>{e.data&&this.performRepeat(e.data)})),e.state.data&&this.performRepeat(e.state.data)})}}ee(te,"Component",({model:e})=>{const{body:t,loadingLayout:n,errorLayout:r,emptyLayout:a}=e.useState();return n?s().createElement(n.Component,{model:n}):r?s().createElement(r.Component,{model:r}):a?s().createElement(a.Component,{model:a}):s().createElement(t.Component,{model:t})});class ne extends H.I{constructor(){super({key:"LabelValuesCountsProvider"}),this.addActivationHandler(()=>{const e=a.sceneGraph.findByKeyAndType(this,"breakdown-by-frame-repeater",te);this._subs.add(e.subscribeToState((e,t)=>{e.counts!==t.counts&&this.setState({counts:e.counts})}))})}}function re(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ae(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){re(e,t,n[t])})}return e}function ie(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}class oe extends a.SceneObjectBase{onActivate(){this.subscribeToLayoutChange()}subscribeToQuickSearchChange(){a.sceneUtils.syncStateFromSearchParams(this.state.quickSearch,new URLSearchParams(window.location.search)),this._subs.add(this.subscribeToEvent(L.W,e=>{const t=a.sceneGraph.findDescendents(this,te)[0];t&&t.filter(e.payload.searchText)}))}subscribeToSortByChange(){const{sortBySelector:e}=this.state;this._subs.add(e.subscribeToState((e,t)=>{if(e.value.value!==(null==t?void 0:t.value.value)){const t=a.sceneGraph.findDescendents(this,te)[0];t&&t.sort(e.value.value)}}))}subscribeToLayoutChange(){const{layoutSwitcher:e}=this.state;a.sceneUtils.syncStateFromSearchParams(e,new URLSearchParams(window.location.search));const t=(e,t)=>{e.layout!==(null==t?void 0:t.layout)&&this.updateBody(e.layout)};t(e.state),this._subs.add(e.subscribeToState(t))}updateBody(e){if(e===g.p.SINGLE)return void this.setState({body:this.buildSinglePanel()});const t=a.sceneGraph.findDescendents(this,te)[0],n=t||this.buildByFrameRepeater();n.state.body.setState({templateColumns:e===g.p.ROWS?y._O:y.MV}),this.setState({body:n}),t||(this.subscribeToQuickSearchChange(),this.subscribeToSortByChange())}buildSinglePanel(){const{metric:e,label:t}=this.state;return new $.m({metric:e.name,discardUserPrefs:!0,panelOptions:{type:"timeseries",height:v.N.XL,headerActions:()=>[],behaviors:[O({description:{ctaText:""}})]},queryOptions:{groupBy:t,data:a.sceneGraph.getData(this)}})}buildByFrameRepeater(){const{metric:e,label:t}=this.state,n=(0,R.N)(e.name);return new te({$behaviors:[(0,k.U)(),new a.behaviors.CursorSync({key:"metricCrosshairSync",sync:m.DashboardCursorSync.Crosshair})],body:new a.SceneCSSGridLayout({children:[],isLazy:!0,templateColumns:y.MV,autoRows:v.N.M}),getLayoutLoading:()=>new a.SceneReactObject({reactNode:s().createElement(i.Spinner,{inline:!0})}),getLayoutEmpty:()=>new a.SceneReactObject({reactNode:s().createElement(h._,{title:"",severity:"info"},"No label values found for the current filters and time range.")}),getLayoutError:e=>new a.SceneReactObject({reactNode:s().createElement(h._,{severity:"error",title:"Error while loading metrics!",error:e.errors[0]})}),getLayoutChild:(r,i,o)=>{if(i.length<2)return null;const s=U(i),l=s.startsWith("<unspecified"),c=l?"":s,u=new $.m({metric:e.name,discardUserPrefs:!0,panelOptions:ie(ae({},null==n?void 0:n.panelOptions),{title:s,fixedColorIndex:o,description:"",headerActions:l?()=>[]:()=>[new q({labelName:t,labelValue:c})],menu:()=>new D.G({labelName:t}),behaviors:[P()]}),queryOptions:ie(ae({},null==n?void 0:n.queryOptions),{labelMatchers:[{key:t,operator:"=",value:c}]})});return new a.SceneCSSGridItem({body:u})}})}Controls({model:e}){const t=(0,i.useStyles2)(se),{body:n,quickSearch:a,layoutSwitcher:o,sortBySelector:l}=e.useState();return s().createElement(s().Fragment,null,n instanceof te&&s().createElement(s().Fragment,null,s().createElement(i.Field,{className:(0,r.cx)(t.field,t.quickSearchField),label:"Search"},s().createElement(a.Component,{model:a})),s().createElement(l.Component,{model:l})),s().createElement(i.Field,{label:"View",className:t.field},s().createElement(o.Component,{model:o})))}constructor({metric:e,label:t}){const n=(0,V.H)({metric:e,queryConfig:{resolution:S.I.MEDIUM,labelMatchers:[],addIgnoreUsageFilter:!1,groupBy:t}});super({key:"metric-label-values-list",metric:e,label:t,layoutSwitcher:new g.U({urlSearchParamName:"breakdownLayout",options:[{label:"Single",value:g.p.SINGLE},{label:"Grid",value:g.p.GRID},{label:"Rows",value:g.p.ROWS}]}),quickSearch:new M.I({urlSearchParamName:"breakdownSearchText",targetName:"label value",countsProvider:new ne,displayCounts:!0}),sortBySelector:new Y({target:"labels"}),$data:new a.SceneDataTransformer({$data:new a.SceneQueryRunner({datasource:E.GH,maxDataPoints:n.maxDataPoints,queries:n.queries}),transformations:[(0,F.b)(t)]}),body:void 0}),this.addActivationHandler(this.onActivate.bind(this))}}function se(e){return{singlePanelContainer:(0,r.css)({width:"100%",height:"300px"}),listContainer:(0,r.css)({width:"100%"}),listFooter:(0,r.css)({display:"flex",justifyContent:"center",alignItems:"center",marginTop:e.spacing(4),"& button":{height:"40px",borderRadius:"8px"}}),quickSearchField:(0,r.css)({flexGrow:1}),field:(0,r.css)({marginBottom:0})}}re(oe,"Component",({model:e})=>{const{body:t}=e.useState();return s().createElement(s().Fragment,null,t instanceof $.m&&s().createElement(oe.SingleMetricPanelComponent,{model:e}),t instanceof te&&s().createElement(oe.ByFrameRepeaterComponent,{model:e}))}),re(oe,"SingleMetricPanelComponent",({model:e})=>{const t=(0,i.useStyles2)(se),{body:n}=e.useState();return s().createElement("div",{"data-testid":"single-metric-panel"},s().createElement("div",{className:t.singlePanelContainer},n instanceof $.m&&s().createElement(n.Component,{model:n})))}),re(oe,"ByFrameRepeaterComponent",({model:e})=>{const t=(0,i.useStyles2)(se),{body:n}=e.useState(),r=a.sceneGraph.getData(e),{state:o,errors:l}=r.useState().data||{},c=n,u=c.useSizes(),d=o!==m.LoadingState.Loading&&!(null==l?void 0:l.length)&&u.total>0&&u.current<u.total;return s().createElement("div",{"data-testid":"label-values-list"},s().createElement("div",{className:t.listContainer},n instanceof te&&s().createElement(n.Component,{model:n})),d&&s().createElement("div",{className:t.listFooter},s().createElement(b.d,{label:"label value",batchSizes:u,onClick:()=>{c.increaseBatchSize()}})))});var le=n(337);function ce(e,t,n,r,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}class ue extends a.SceneObjectBase{onActivate(){const e=this.getVariable();e.subscribeToState((t,n)=>{t.value!==n.value&&this.updateBody(e)}),c.config.featureToggles.enableScopesInMetricsExplore&&this.subscribeToEvent(E.H0,()=>{this.updateBody(e)}),this.updateBody(e)}getVariable(){const e=a.sceneGraph.lookupVariable(E.yr,this);if(!(0,C.bA)(e))throw new Error("Group by variable not found");return e}updateBody(e){return(t=function*(){const{metric:t}=this.state,n={name:t,type:yield(0,u.B)(t,(0,d.kj)(this))},r=e.hasAllValue()?new B({metric:n}):new oe({metric:n,label:e.state.value});this.setState({body:r}),r.isActive?(0,le.$)(this,Be.breakdown):r.addActivationHandler(()=>{(0,le.$)(this,Be.breakdown)})},function(){var e=this,n=arguments;return new Promise(function(r,a){var i=t.apply(e,n);function o(e){ce(i,r,a,o,s,"next",e)}function s(e){ce(i,r,a,o,s,"throw",e)}o(void 0)})}).call(this);var t}constructor({metric:e}){super({metric:e,body:void 0,$behaviors:[new a.behaviors.SceneQueryController]}),this.addActivationHandler(this.onActivate.bind(this))}}function de(e,t,n){return{container:(0,r.css)({flexGrow:1,display:"flex",minHeight:"100%",flexDirection:"column"}),stickyControls:(0,r.css)({margin:e.spacing(1,0,1.5,0),position:"sticky",top:`calc(var(--app-controls-height, 0px) + ${t}px + var(--action-bar-height, 0px))`,zIndex:10,background:(0,p.T)(e,n),paddingBottom:e.spacing(1)}),controls:(0,r.css)({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"end",flexWrap:"wrap",gap:e.spacing(1)}),searchField:(0,r.css)({flexGrow:1})}}!function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(ue,"Component",({model:e})=>{const t=(0,c.useChromeHeaderHeight)(),n=(0,d.kj)(e),r=(0,i.useStyles2)(de,n.state.embedded?0:null!=t?t:0,n),{body:a}=e.useState(),o=e.getVariable();return s().createElement("div",{className:r.container},s().createElement("div",{className:r.stickyControls,"data-testid":"breakdown-controls"},s().createElement("div",{className:r.controls},s().createElement(o.Component,{model:o}),a instanceof B&&s().createElement(a.Controls,{model:a}),a instanceof oe&&s().createElement(a.Controls,{model:a}))),s().createElement("div",{"data-testid":"panels-list"},a instanceof B&&s().createElement(a.Component,{model:a}),a instanceof oe&&s().createElement(a.Component,{model:a})))});var pe=n(6359),me=n(5732),he=n(9365),fe=n(9194),be=n(3916),ge=n(5665),ye=n(7145),ve=n(9512),Se=n(3424),we=n(9331),Oe=n(297);function Ee(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function xe(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}const Pe={label:"All metric names",value:"all"};class ke extends a.SceneObjectBase{getUrlState(){return{metricPrefix:this.state.value}}updateFromUrl(e){"string"!=typeof e.metricPrefix?this.setState({value:Pe.value}):this.state.value!==e.metricPrefix&&this.setState({value:e.metricPrefix})}onActivate(){this.parseMetricPrefixes()}parseMetricPrefixes(){if(this._variableDependency.hasDependencyInLoadingState())return void this.setState({error:void 0,loading:!0});const e=a.sceneGraph.lookupVariable(ge.$,this);if(e.state.error)return void this.setState({error:e.state.error,loading:!1,options:[]});const t=(0,Oe.w)((0,f.a)(e)),n=[Pe,...t.map(e=>({value:e.value,label:`${e.label} (${e.count})`}))],{value:r}=this.state,i=n.find(e=>e.value===r)?r:Pe.value;this.setState({error:null,loading:!1,options:n}),this.selectOption({value:i,label:i})}constructor(e){super(xe(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){Ee(e,t,n[t])})}return e}({},e),{key:"related-prefix-filter",loading:!0,error:null,options:[Pe],value:Pe.value})),Ee(this,"_variableDependency",new a.VariableDependencyConfig(this,{variableNames:[ge.$],onVariableUpdateCompleted:()=>this.parseMetricPrefixes()})),Ee(this,"_urlSync",new a.SceneObjectUrlSyncConfig(this,{keys:["metricPrefix"]})),Ee(this,"selectOption",e=>{const t=null===e?Pe.value:e.value;this.setState({value:t}),this.publishEvent(new Se.Y({type:"prefixes",filters:t===Pe.value?[]:[t]}),!0)}),this.addActivationHandler(this.onActivate.bind(this))}}function Ce(e){return{container:r.css`
|
|
display: flex;
|
|
|
|
& > div {
|
|
margin: 0;
|
|
}
|
|
`,label:r.css`
|
|
margin-right: 0;
|
|
background-color: ${e.colors.background.primary};
|
|
border: 1px solid ${e.colors.border.medium};
|
|
border-right: 0 none;
|
|
border-top-right-radius: 0;
|
|
border-bottom-right-radius: 0;
|
|
`,tooltipIcon:r.css`
|
|
margin-left: ${e.spacing(.5)};
|
|
`}}function je(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _e(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}Ee(ke,"Component",({model:e})=>{const t=(0,i.useStyles2)(Ce),{loading:n,options:r,value:a,error:o}=e.useState();return s().createElement("div",{className:t.container,"data-testid":"prefix-filter-selector"},s().createElement(i.InlineField,{disabled:n,error:o&&o.toString(),label:s().createElement(i.InlineLabel,{width:"auto",className:t.label},s().createElement("span",null,"View by"),s().createElement(i.Tooltip,{content:"View by the metric prefix. A metric prefix is a single word at the beginning of the metric name, relevant to the domain the metric belongs to.",placement:"top"},s().createElement(i.Icon,{className:t.tooltipIcon,name:"info-circle",size:"sm"})))},s().createElement(i.Combobox,{value:a,onChange:e.selectOption,options:r})))});class Te extends a.EmbeddedScene{constructor(e){super(_e(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){je(e,t,n[t])})}return e}({},e),{key:"related-list-controls",body:new a.SceneFlexLayout({direction:"row",width:"100%",maxHeight:"32px",children:[new a.SceneFlexItem({width:"auto",body:new ke({})}),new a.SceneFlexItem({body:new M.I({urlSearchParamName:"gmd-relatedSearchText",targetName:"related metric",countsProvider:new we.s,displayCounts:!0})}),new a.SceneFlexItem({width:"auto",body:new g.U({})})]})}))}}function Ie(){return{controls:(0,r.css)({display:"flex",alignItems:"end"})}}je(Te,"Component",({model:e})=>{const t=(0,i.useStyles2)(Ie),{body:n}=e.useState();return s().createElement("div",{className:t.controls,"data-testid":"related-list-controls"},s().createElement(n.Component,{model:n}))});class Ae extends a.SceneObjectBase{onActivate(){const e=a.sceneGraph.findByKeyAndType(this,ge.$,ge.s);e.fetchAllMetrics(),this.subscribeToEvents(e)}subscribeToEvents(e){this.initVariablesFilteringAndSorting();const t=e.subscribeToState(e=>{!1===e.loading&&(t.unsubscribe(),this.state.body.isActive?(0,le.$)(this,Be.related):this.state.body.addActivationHandler(()=>{(0,le.$)(this,Be.related)}))})}initVariablesFilteringAndSorting(){const{metric:e}=this.state,t=new Map;this.subscribeToEvent(me.x,e=>{const{key:n}=e.payload,r=a.sceneGraph.findByKey(this,n);t.set(n,{filterEngine:new ye.k(r),sortEngine:new ve.c(r)})}),this.subscribeToEvent(he.e,e=>{t.delete(e.payload.key)});const n=a.sceneGraph.findByKeyAndType(this,"quick-search",M.I);this.subscribeToEvent(fe.x,r=>{const{key:a,options:i}=r.payload,{filterEngine:o,sortEngine:s}=t.get(a);o.setInitOptions(i);const l={names:n.state.value?[n.state.value]:[]};o.applyFilters(l,{forceUpdate:!0,notify:!1}),s.sort("related",{metric:e})}),this.subscribeToEvent(L.W,n=>{const{searchText:r}=n.payload;for(const[,{filterEngine:n,sortEngine:a}]of t)n.applyFilters({names:r?[r]:[]}),a.sort("related",{metric:e})}),this.subscribeToEvent(Se.Y,n=>{const{type:r,filters:a}=n.payload;for(const[,{filterEngine:n,sortEngine:i}]of t)n.applyFilters({[r]:a}),i.sort("related",{metric:e})})}constructor({metric:e}){super({metric:e,$variables:new a.SceneVariableSet({variables:[new be.V]}),$behaviors:[new a.behaviors.SceneQueryController],key:"RelatedMetricsScene",body:new y.Qs({variableName:be.h}),listControls:new Te({})}),this.addActivationHandler(this.onActivate.bind(this))}}function De(e,t,n){return{variables:(0,r.css)({display:"none"}),searchSticky:(0,r.css)({margin:e.spacing(1,0,1.5,0),position:"sticky",top:`calc(var(--app-controls-height, 0px) + ${t}px + var(--action-bar-height, 0px))`,zIndex:10,background:(0,p.T)(e,n),paddingBottom:e.spacing(1)})}}!function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(Ae,"Component",({model:e})=>{const t=(0,c.useChromeHeaderHeight)(),n=(0,d.kj)(e),r=(0,i.useStyles2)(De,n.state.embedded?0:null!=t?t:0,n),{$variables:a,body:o,listControls:l}=e.useState();return s().createElement(s().Fragment,null,s().createElement("div",{className:r.searchSticky},s().createElement(l.Component,{model:l})),s().createElement("div",{"data-testid":"panels-list"},s().createElement(o.Component,{model:o})),s().createElement("div",{className:r.variables},null==a?void 0:a.state.variables.map(e=>s().createElement(e.Component,{key:e.state.name,model:e}))))});const Be={breakdown:"breakdown",related:"related",relatedLogs:"logs"},Ne=Be.breakdown,Le=[{displayName:"Breakdown",value:Be.breakdown,getScene:e=>new ue({metric:e.state.metric}),backgroundTask:()=>{}},{displayName:"Related metrics",value:Be.related,getScene:e=>new Ae({metric:e.state.metric}),description:"Relevant metrics based on current label filters",backgroundTask:()=>{}},{displayName:"Related logs",value:Be.relatedLogs,getScene:e=>e.createRelatedLogsScene(),description:"Relevant logs based on current label filters and time range",backgroundTask:e=>e.relatedLogsOrchestrator.findAndCheckAllDatasources()}];class Me extends a.SceneObjectBase{}function Re(e){return{actions:(0,r.css)({[e.breakpoints.up(e.breakpoints.values.md)]:{position:"absolute",right:0,top:16,zIndex:2}}),customTabsBar:(0,r.css)({paddingBottom:e.spacing(1)})}}!function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(Me,"Component",({model:e})=>{const t=a.sceneGraph.getAncestor(e,pe.R),n=(0,i.useStyles2)(Re),{actionView:r}=t.useState();return s().createElement(i.Box,{paddingY:1,"data-testid":"action-bar",width:"100%"},s().createElement("div",{className:n.actions},s().createElement(i.Stack,{gap:1})),s().createElement(i.TabsBar,{className:n.customTabsBar},Le.map((e,n)=>{const a=e.displayName,o=e.value===Be.relatedLogs?t.state.relatedLogsCount:void 0,c=r===e.value,u=s().createElement(i.Tab,{key:n,label:a,counter:o,active:c,onChangeTab:()=>{c||((0,l.z)("metric_action_view_changed",{view:e.value,related_logs_count:t.relatedLogsOrchestrator.checkConditionsMetForRelatedLogs()?o:void 0}),t.setActionView(e.value))}});return e.description?s().createElement(i.Tooltip,{key:n,content:e.description,placement:"top",theme:"info"},u):u})))})},4160:(e,t,n)=>{n.d(t,{o:()=>T,B:()=>_});var r=n(3014),a=n(1625),i=n(6089),o=n(7781),s=n(2007),l=n(5959),c=n.n(l),u=n(4758),d=n(7561),p=n(5935);function m(e){const t=e.fields.find(e=>"Value"===e.name);return!!(t&&(n=t,"entities"in n&&Array.isArray(null===(r=n.entities)||void 0===r?void 0:r.NaN)))&&t.entities.NaN.length===e.length;var n,r}function h(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){h(e,t,n[t])})}return e}function b(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function g(e){if("timeseries"!==e.state.pluginId)return;const[t]=r.sceneGraph.findDescendents(e,r.SceneQueryRunner);if(!t)return;const{queries:n}=t.state;if(!(null==n?void 0:n.length))return;const{metric:a,metricType:i,queryConfig:s}=r.sceneGraph.getAncestor(e,u.m).state;if("counter"===i)return;const l=t.subscribeToState((n,l)=>{var u,h,g,v;if((null===(u=n.data)||void 0===u?void 0:u.state)!==o.LoadingState.Done||!(null===(h=n.data.series)||void 0===h?void 0:h.length)||n.data.series===(null===(g=l.data)||void 0===g?void 0:g.series))return;const S=null===(v=n.data.series[0].meta)||void 0===v?void 0:v.type;if(S&&!S.startsWith("timeseries"))return;if(!n.data.series.every(m))return;const w=(0,d.H)({metric:{name:a,type:i},queryConfig:b(f({},s),{addExtremeValuesFiltering:!0})});t.setState({queries:w.queries}),t.runQueries(),e.setState({titleItems:c().createElement(y,{level:"info",message:"Panel data was re-fetched with a more complex query to handle extremely small values in the series"})}),(0,p.z)("extreme_value_filter_behavior_triggered",{expression:r.sceneGraph.interpolate(t,t.state.queries[0].expr)})});return()=>{l.unsubscribe()}}function y({message:e,level:t}){const n=(0,s.useStyles2)(v,t);return c().createElement("div",{className:n.extremeValuedisclaimer},c().createElement(s.Tooltip,{content:e},c().createElement("span",{className:n.warningMessage},c().createElement(s.Icon,{name:"warning"===t?"exclamation-triangle":"info-circle","aria-hidden":"true"}))))}const v=(e,t)=>({extremeValuedisclaimer:(0,i.css)({label:"extreme-value-disclaimer",display:"flex",alignItems:"center",gap:e.spacing(1)}),warningMessage:(0,i.css)({display:"flex",alignItems:"center",gap:e.spacing(.5),color:"warning"===t?e.colors.warning.main:e.colors.info.main,fontSize:e.typography.bodySmall.fontSize})});var S=n(1419),w=n(2324),O=n(5276),E=n(4810),x=n(1269);const P=()=>e=>e.pipe((0,x.map)(e=>null==e?void 0:e.map((e,t)=>(e.refId=`${e.refId}-${t}`,e))));var k=n(1100);function C(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const j=(e,t)=>()=>n=>n.pipe((0,x.map)(n=>null==n?void 0:n.slice(e,t).map(e=>{var t;return e.meta=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){C(e,t,n[t])})}return e}({},e.meta),(t=e.meta).stats||(t.stats=[]),e.meta.stats.unshift({displayName:"seriesCount",value:n.length}),e})));function _(e){var t;if(e.queryConfig.groupBy)return function(e){var t;const{metric:n,panelConfig:i,queryConfig:o}=e,s=(0,d.H)({metric:n,queryConfig:o}),l=s.isRateQuery?(0,O.MM)(n.name):(0,O.l_)(n.name),c=new r.SceneDataTransformer({$data:new r.SceneQueryRunner({datasource:S.GH,maxDataPoints:s.maxDataPoints,queries:s.queries}),transformations:[j(0,T),(0,k.b)(o.groupBy),P]}),{refId:u}=s.queries[0],p=i.fixedColorIndex||0,m=r.PanelBuilders.timeseries().setTitle(i.title).setDescription(i.description).setHeaderActions(i.headerActions({metric:n,panelConfig:i})).setMenu(null===(t=i.menu)||void 0===t?void 0:t.call(i,{metric:n,panelConfig:i})).setShowMenuAlways(Boolean(i.menu)).setData(c).setUnit(l).setOption("legend",i.legend||{showLegend:!0,placement:"right"}).setOption("tooltip",{mode:a.$N.Multi,sort:a.xB.Descending}).setOverrides(e=>{for(let t=0;t<T;t++)e.matchFieldsByQuery(`${u}-${t}`).overrideColor({mode:"fixed",fixedColor:(0,w.Vy)(p+t)})}).setBehaviors(i.behaviors).build();return m}(e);const{metric:n,panelConfig:i,queryConfig:o}=e,s=(0,d.H)({metric:n,queryConfig:o}),l=s.isRateQuery?(0,O.MM)(n.name):(0,O.l_)(n.name),c=o.data||new r.SceneQueryRunner({datasource:S.GH,maxDataPoints:s.maxDataPoints,queries:s.queries}),u=r.PanelBuilders.timeseries().setTitle(i.title).setDescription(i.description).setHeaderActions(i.headerActions({metric:n,panelConfig:i})).setMenu(null===(t=i.menu)||void 0===t?void 0:t.call(i,{metric:n,panelConfig:i})).setShowMenuAlways(Boolean(i.menu)).setData(c).setUnit(l).setOption("legend",i.legend||{showLegend:!0,placement:"bottom"}).setCustomFieldConfig("fillOpacity",9).setBehaviors([g,(0,E.o)(i.fixedColorIndex),...i.behaviors||[]]);if(1===s.queries.length)u.setColor(i.fixedColorIndex?{mode:"fixed",fixedColor:(0,w.Vy)(i.fixedColorIndex)}:void 0);else{const e=i.fixedColorIndex||0;u.setOverrides(t=>{s.queries.forEach((n,r)=>{t.matchFieldsByQuery(n.refId).overrideColor({mode:"fixed",fixedColor:(0,w.Vy)(e+r)})})})}return u.build()}const T=20},4293:(e,t,n)=>{n.d(t,{W:()=>s});var r,a,i,o=n(7781);class s extends o.BusEventWithPayload{}i="quick-search-changed",(a="type")in(r=s)?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i},4299:(e,t,n)=>{n.d(t,{I:()=>r});var r=function(e){return e.HIGH="HIGH",e.MEDIUM="MEDIUM",e}({})},4332:(e,t,n)=>{n.d(t,{j:()=>z,k:()=>H});var r=n(6089),a=n(7781),i=n(8531),o=n(3014),s=n(2007),l=n(5540),c=n(5959),u=n.n(c),d=n(7401),p=n(2324),m=n(845);function h(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){h(e,t,n[t])})}return e}function b(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}var g,y,v,S=n(7291),w=n(3740);class O extends o.SceneObjectBase{constructor(){super({})}}v=({model:e})=>{const t=(0,s.useStyles2)(E),n=(0,p.kj)(e),a=o.sceneGraph.findObject(e,e=>e instanceof o.VizPanel);return n.state.isAddToDashboardAvailable&&a?u().createElement(s.Button,{id:"add-to-dashboard-action",className:(0,r.cx)(t.button),"aria-label":S.E,variant:"secondary",size:"sm",fill:"text",onClick:()=>{const t=function(e){const t=o.sceneGraph.getData(e),n=o.sceneGraph.findObject(t,m.x),r=o.sceneGraph.getTimeRange(e).state.value;let a,i,s=[];var l;return(0,m.x)(n)&&(s=(null===(l=n.state.queries)||void 0===l?void 0:l.map(t=>b(f({},t),{expr:t.expr?o.sceneGraph.interpolate(e,t.expr):t.expr,legendFormat:t.legendFormat?o.sceneGraph.interpolate(e,t.legendFormat):t.legendFormat,fromExploreMetrics:!1})))||[],a=n.state.datasource?b(f({},n.state.datasource),{uid:n.state.datasource.uid?o.sceneGraph.interpolate(e,n.state.datasource.uid):n.state.datasource.uid}):n.state.datasource,i=n.state.maxDataPoints),{panel:f({type:e.state.pluginId,title:e.state.title?o.sceneGraph.interpolate(e,e.state.title):e.state.title,targets:s,datasource:a,options:e.state.options,fieldConfig:e.state.fieldConfig},e.state.description&&{description:e.state.description},i&&{maxDataPoints:i}),range:r}}(a);e.publishEvent(new w.Z({panelData:t}),!0)},icon:"apps",tooltip:S.E,tooltipPlacement:"top","data-testid":"add-to-dashboard-action"}):null},(y="Component")in(g=O)?Object.defineProperty(g,y,{value:v,enumerable:!0,configurable:!0,writable:!0}):g[y]=v;const E=e=>({button:r.css`
|
|
margin: 0;
|
|
padding: 0;
|
|
margin-left: ${e.spacing(1)};
|
|
`});var x=n(1437),P=n(5935),k=n(1233),C=n(5693);function j(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class _ extends o.SceneObjectBase{isCurrentStateBookmarked(){try{const e=(0,p.kj)(this),t=o.sceneUtils.getUrlState(e),n=(0,x.o)(t);return(C.x.getItem(k.V.BOOKMARKS)||[]).some(e=>(0,x.o)(e.urlValues)===n)}catch(e){return!1}}constructor(){super({isBookmarked:!1}),j(this,"onClick",()=>{const e=o.sceneUtils.getUrlState((0,p.kj)(this)),t=(0,x.o)(e),n=C.x.getItem(k.V.BOOKMARKS)||[],r=this.state.isBookmarked;if(r){(0,P.z)("bookmark_changed",{action:"toggled_off"});const e=n.filter(e=>(0,x.o)(e.urlValues)!==t);C.x.setItem(k.V.BOOKMARKS,e)}else{(0,P.z)("bookmark_changed",{action:"toggled_on"});const t={urlValues:e,createdAt:Date.now()};C.x.setItem(k.V.BOOKMARKS,[...n,t])}this.setState({isBookmarked:!r})}),this.addActivationHandler(()=>{const e=this.isCurrentStateBookmarked();this.setState({isBookmarked:e})})}}j(_,"Component",({model:e})=>{const t=(0,s.useStyles2)(T),{isBookmarked:n}=e.useState(),a=n?"Remove bookmark":"Add bookmark";return u().createElement(s.Button,{className:(0,r.cx)(t.bookmarkButton,n&&t.active),"aria-label":a,variant:"secondary",size:"sm",fill:"text",onClick:e.onClick,icon:n?u().createElement(s.Icon,{name:"favorite",type:"mono",size:"lg"}):u().createElement(s.Icon,{name:"star",type:"default",size:"lg"}),tooltip:a,tooltipPlacement:"top","data-testid":"bookmark-header-action"})});const T=e=>({bookmarkButton:r.css`
|
|
padding: 0;
|
|
margin-left: ${e.spacing(1)};
|
|
`,active:r.css`
|
|
color: ${e.colors.text.maxContrast};
|
|
`});var I=n(6773),A=n(4758),D=n(381);function B(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class N extends o.SceneObjectBase{onActivate(){const e=o.sceneGraph.getAncestor(this,A.m);this.setState({currentPanelType:e.state.panelConfig.type}),this._subs.add(e.subscribeToState((e,t)=>{e.panelConfig.type!==t.panelConfig.type&&this.setState({currentPanelType:e.panelConfig.type})}))}constructor(){super({options:[{value:"percentiles",label:"percentiles"},{value:"heatmap",label:"heatmap"}],currentPanelType:void 0}),B(this,"onChange",e=>{(0,P.z)("histogram_panel_type_changed",{panelType:e}),this.publishEvent(new D.H({panelType:e}),!0)}),this.addActivationHandler(this.onActivate.bind(this))}}B(N,"Component",({model:e})=>{const{options:t,currentPanelType:n}=e.useState();return t.length?u().createElement(s.RadioButtonGroup,{size:"sm",options:t,value:n,onChange:e.onChange}):null});var L=n(917),M=n(4299),R=n(4924),$=n(3966),V=n(2717),F=n(7791);function G(e,t,n,r,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function q(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function o(e){G(i,r,a,o,s,"next",e)}function s(e){G(i,r,a,o,s,"throw",e)}o(void 0)})}}const U=L.N.XL,H="topview-panel-menu";class z extends o.SceneObjectBase{onActivate(){return q(function*(){const{metric:e}=this.state,t=yield(0,p.kj)(this).getMetadataForMetric(e),[n]=o.sceneGraph.findDescendents(this,A.m),{metricType:r}=n.state;if(t&&n.update({description:(0,d.R)(t)},{}),"classic-histogram"===r)return;const a=n.subscribeToState(t=>q(function*(){"native-histogram"!==r&&"native-histogram"===t.metricType&&(a.unsubscribe(),n.update({headerActions:()=>[new N,new I.F({metric:{name:e,type:t.metricType}}),new _]},{}))})());this._subs.add(a)}).call(this)}constructor({metric:e}){super({metric:e,topView:new o.SceneFlexLayout({direction:"column",$behaviors:[new o.behaviors.CursorSync({key:"metricCrosshairSync",sync:a.DashboardCursorSync.Crosshair})],children:[new o.SceneFlexItem({minHeight:U,maxHeight:"40%",body:new A.m({metric:e,panelOptions:{height:L.N.XL,headerActions:(0,R.D)(e)?({metric:e})=>[new N,new I.F({metric:e}),new O,new _]:({metric:e})=>[new I.F({metric:e}),new O,new _],menu:()=>new V.G({key:H,labelName:e})},queryOptions:{resolution:M.I.HIGH}})})]}),selectedTab:void 0,actionBar:new $.k3({})}),this.addActivationHandler(()=>{this.onActivate()})}}function K(e,t,n){return{container:(0,r.css)({display:"flex",flexDirection:"column",position:"relative",flexGrow:1}),tabContent:(0,r.css)({height:"100%"}),stickyTop:(0,r.css)({display:"flex",flexDirection:"row",background:(0,F.T)(e,n),position:"sticky",paddingTop:e.spacing(1),zIndex:10,top:`calc(var(--app-controls-height, 0px) + ${t}px)`}),nonSticky:(0,r.css)({display:"flex",flexDirection:"row"})}}!function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(z,"Component",({model:e})=>{const{topView:t,selectedTab:n,actionBar:r}=e.useState(),a=(0,i.useChromeHeaderHeight)(),o=(0,p.kj)(e),d=(0,s.useStyles2)(K,o.state.embedded?0:null!=a?a:0,o),m=(0,c.useRef)(null);return(0,l.w)({ref:m,onResize:()=>{m.current&&requestAnimationFrame(()=>{!function(e){const t=e.current;if(!t)return;const{height:n}=t.getBoundingClientRect();document.documentElement.style.setProperty("--action-bar-height",`${n}px`)}(m)})}}),u().createElement("div",{className:d.container},u().createElement("div",{className:d.nonSticky,"data-testid":"top-view"},u().createElement(t.Component,{model:t})),u().createElement("div",{className:d.stickyTop,id:"action-bar-container",ref:m},u().createElement(r.Component,{model:r})),n&&u().createElement("div",{"data-testid":"tab-content",className:d.tabContent},u().createElement(n.Component,{model:n})))})},4758:(e,t,n)=>{n.d(t,{m:()=>q});var r=n(6089),a=n(7781),i=n(3014),o=n(2007),s=n(3241),l=n(5959),c=n.n(l),u=n(2324),d=n(381),p=n(1031),m=n(9226),h=n(917),f=n(4299),b=n(5114);function g(e){switch((0,b.K)(e)){case"classic-histogram":return"heatmap";case"status-updown":return"statushistory";default:return"timeseries"}}var y=n(5938),v=n(1419),S=n(8162),w=n(7042);function O(e){const{metric:t,queryConfig:n}=e,r=(0,w.d)({metric:t,labelMatchers:n.labelMatchers,addIgnoreUsageFilter:n.addIgnoreUsageFilter,addExtremeValuesFiltering:n.addExtremeValuesFiltering}),a="native-histogram"===t.type?S.GH.sum({expr:S.GH.rate({expr:r})}):S.GH.sum({expr:S.GH.rate({expr:r}),by:["le"]});return{maxDataPoints:n.resolution===f.I.HIGH?500:250,queries:[{refId:`${t.name}-heatmap`,expr:a,format:"heatmap",fromExploreMetrics:!0}]}}var E=n(5276);var x=n(1625),P=n(7014);const k=[99,90,50];function C(e){const{metric:t,queryConfig:n}=e,r=(0,w.d)({metric:t,labelMatchers:n.labelMatchers,addIgnoreUsageFilter:n.addIgnoreUsageFilter,addExtremeValuesFiltering:n.addExtremeValuesFiltering}),a=["classic-histogram","native-histogram"].includes(t.type),i=a?function({metric:e,queryConfig:t,expr:n}){var r;const a=(null===(r=t.queries)||void 0===r?void 0:r.length)?t.queries:[{fn:"histogram_quantile",params:{percentiles:k}}],i=[],o="native-histogram"===e.type?S.GH.sum({expr:S.GH.rate({expr:n})}):S.GH.sum({expr:S.GH.rate({expr:n}),by:["le"]});for(const{fn:t,params:n}of a){const r=P.q.get(t),a=r.name,s=(null==n?void 0:n.percentiles)||k;for(const t of s){const n=t/100,s=r.fn({expr:o,parameter:n});i.push({refId:`${e.name}-p${t}-${a}`,expr:s,legendFormat:`${t}th Percentile`,fromExploreMetrics:!0})}}return i}({metric:t,queryConfig:n,expr:r}):function({metric:e,queryConfig:t,expr:n}){var r;const a="counter"===e.type,i=(null===(r=t.queries)||void 0===r?void 0:r.length)?t.queries:[{fn:"quantile",params:{percentiles:[99,90,50]}}],o=[],s=a?S.GH.rate({expr:n}):n;for(const{fn:t,params:n}of i){const r=P.q.get(t),i=a?`${r.name}(rate)`:r.name;for(const t of n.percentiles){const n=t/100,a=r.fn({expr:s,parameter:n});o.push({refId:`${e.name}-p${t}-${i}`,expr:a,legendFormat:`${t}th Percentile`,fromExploreMetrics:!0})}}return o}({metric:t,queryConfig:n,expr:r});return{isRateQuery:!!a||"counter"===t.type,maxDataPoints:n.resolution===f.I.HIGH?500:250,queries:i}}var j=n(4810);function _(e){const{metric:t,queryConfig:n}=e,r="counter"===t.type,a=(0,w.d)({metric:t,labelMatchers:n.labelMatchers,addIgnoreUsageFilter:n.addIgnoreUsageFilter,addExtremeValuesFiltering:n.addExtremeValuesFiltering}),i=r?S.GH.rate({expr:a,interval:"$__rate_interval"}):a;return{isRateQuery:r,maxDataPoints:n.resolution===f.I.HIGH?500:250,queries:T({metric:t,queryConfig:n,isRateQuery:r,expr:i})}}function T({metric:e,queryConfig:t,isRateQuery:n,expr:r}){var a;const i=n?"sum":"avg",o=(null===(a=t.queries)||void 0===a?void 0:a.length)?t.queries:[{fn:i}],s=[];for(const{fn:t}of o){const a=P.q.get(t),i=a.fn({expr:r}),o=n?`${a.name}(rate)`:a.name;s.push({refId:`${e.name}-${o}`,expr:i,legendFormat:o,fromExploreMetrics:!0})}return s}const I=[{type:n(6145).dM.ValueToText,options:{0:{color:"red",text:"down"},1:{color:"green",text:"up"}}}];function A(e){const{metric:t,queryConfig:n}=e,r=(0,w.d)({metric:t,labelMatchers:n.labelMatchers,addIgnoreUsageFilter:n.addIgnoreUsageFilter,addExtremeValuesFiltering:n.addExtremeValuesFiltering}),a=S.GH.min({expr:r});return{maxDataPoints:n.resolution===f.I.HIGH?200:100,queries:[{refId:`${t.name}-status`,expr:a,legendFormat:"status",fromExploreMetrics:!0}]}}var D=n(4160),B=n(7561);const N=new Map([["timeseries",{buildVizPanel:D.B,getQueryRunnerParams:B.H}],["heatmap",{buildVizPanel:function(e){var t;const{metric:n,panelConfig:r,queryConfig:a}=e,o=O({metric:n,queryConfig:a}),s=(0,E.l_)(n.name),l=a.data||new i.SceneQueryRunner({datasource:v.GH,maxDataPoints:o.maxDataPoints,queries:o.queries});return i.PanelBuilders.heatmap().setTitle(r.title).setDescription(r.description).setHeaderActions(r.headerActions({metric:n,panelConfig:r})).setMenu(null===(t=r.menu)||void 0===t?void 0:t.call(r,{metric:n,panelConfig:r})).setShowMenuAlways(Boolean(r.menu)).setData(l).setUnit(s).setOption("calculate",!1).setOption("color",{mode:y.P7.Scheme,exponent:.5,scheme:"Spectral",steps:32,reverse:!1}).setOption("legend",r.legend).build()},getQueryRunnerParams:O}],["percentiles",{buildVizPanel:function(e){var t;const{metric:n,panelConfig:r,queryConfig:a}=e,o=C({metric:n,queryConfig:a}),s=o.isRateQuery?(0,E.MM)(n.name):(0,E.l_)(n.name),l=a.data||new i.SceneQueryRunner({datasource:v.GH,maxDataPoints:o.maxDataPoints,queries:o.queries}),c=r.fixedColorIndex||0;return i.PanelBuilders.timeseries().setTitle(r.title).setDescription(r.description).setHeaderActions(r.headerActions({metric:n,panelConfig:r})).setMenu(null===(t=r.menu)||void 0===t?void 0:t.call(r,{metric:n,panelConfig:r})).setShowMenuAlways(Boolean(r.menu)).setData(l).setUnit(s).setOption("legend",r.legend||{showLegend:!0,placement:"bottom"}).setOption("tooltip",{mode:x.$N.Multi,sort:x.xB.Descending}).setCustomFieldConfig("fillOpacity",9).setOverrides(e=>{o.queries.forEach((t,n)=>{e.matchFieldsByQuery(t.refId).overrideColor({mode:"fixed",fixedColor:(0,u.Vy)(c+n)})})}).setBehaviors([(0,j.o)(c),...r.behaviors||[]]).build()},getQueryRunnerParams:C}],["statushistory",{buildVizPanel:function(e){var t;const{metric:n,panelConfig:r,queryConfig:a}=e,o=A({metric:n,queryConfig:a}),s=a.data||new i.SceneQueryRunner({datasource:v.GH,maxDataPoints:o.maxDataPoints,queries:o.queries});return i.PanelBuilders.statushistory().setTitle(r.title).setDescription(r.description).setHeaderActions(r.headerActions({metric:n,panelConfig:r})).setMenu(null===(t=r.menu)||void 0===t?void 0:t.call(r,{metric:n,panelConfig:r})).setShowMenuAlways(Boolean(r.menu)).setData(s).setUnit("none").setColor({mode:"palette-classic"}).setOption("showValue",x.yL.Never).setOption("legend",r.legend||{showLegend:!0,placement:"bottom"}).setOption("perPage",0).setMappings(I).build()},getQueryRunnerParams:A}],["stat",{buildVizPanel:function(e){var t;const{metric:n,panelConfig:r,queryConfig:a}=e,o=_({metric:n,queryConfig:a}),s=a.data||new i.SceneQueryRunner({datasource:v.GH,maxDataPoints:o.maxDataPoints,queries:o.queries});return i.PanelBuilders.stat().setTitle(r.title).setDescription(r.description).setHeaderActions(r.headerActions({metric:n,panelConfig:r})).setMenu(null===(t=r.menu)||void 0===t?void 0:t.call(r,{metric:n,panelConfig:r})).setShowMenuAlways(Boolean(r.menu)).setData(s).setUnit("none").setColor({mode:"fixed",fixedColor:(0,u.Vy)(r.fixedColorIndex||0)}).setMappings(I).build()},getQueryRunnerParams:_}]]);function L(e){const t=N.get(e);if(!t)throw new TypeError(`Unsupported panel type "${e}"!`);return t}const M={buildVizPanel:e=>L(e.panelConfig.type).buildVizPanel(e),getQueryRunnerParams(e){const{metric:t,queryConfig:n,panelType:r}=e;return L(r).getQueryRunnerParams({metric:t,queryConfig:n})}};function R(e,t,n,r,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function $(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function o(e){R(i,r,a,o,s,"next",e)}function s(e){R(i,r,a,o,s,"throw",e)}o(void 0)})}}function V(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function F(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){V(e,t,n[t])})}return e}function G(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}class q extends i.SceneObjectBase{onActivate(e){return $(function*(){this.buildVizPanel(),this.subscribeToStateChanges(e),this.subscribeToEvents(),this.checkMetricMetadata(e)}).call(this)}checkMetricMetadata(e){return $(function*(){const{metric:t,metricType:n,panelConfig:r}=this.state,a=yield(0,b.B)(t,(0,u.kj)(this));if(n===a)return;const i={},o={};var s;"native-histogram"===a&&(i.metricType="native-histogram",o.description=null!==(s=r.description)&&void 0!==s?s:"Native Histogram",e||(o.type="heatmap"));"gauge"===a&&"counter"===n&&(i.metricType="gauge"),"counter"===a&&"gauge"===n&&(i.metricType="counter"),(Object.keys(i).length||Object.keys(o).length)&&this.setState(G(F({},i),{panelConfig:F({},r,o)}))}).call(this)}subscribeToStateChanges(e){const{metricType:t,body:n,panelConfig:r}=this.state;if(!e&&!["classic-histogram","native-histogram"].includes(t)){var i;const e=null==n||null===(i=n.state.$data)||void 0===i?void 0:i.subscribeToState(t=>{var n,i,o,s;if((null===(n=t.data)||void 0===n?void 0:n.state)!==a.LoadingState.Done)return;const l=null===(s=t.data.series)||void 0===s||null===(o=s[0])||void 0===o||null===(i=o.meta)||void 0===i?void 0:i.type;l&&(l===a.DataFrameType.HeatmapCells&&this.setState({panelConfig:G(F({description:"Native Histogram "},r),{type:"heatmap"})}),e.unsubscribe())});this._subs.add(e)}this.subscribeToState((e,t)=>{if(e.panelConfig.type===t.panelConfig.type){if(!(0,s.isEqual)(e.panelConfig,t.panelConfig)){const n=(0,s.omitBy)(e.panelConfig,(e,n)=>e===t.panelConfig[n]);this.updatePanelOptions(n)}e.metricType===t.metricType&&(0,s.isEqual)(e.queryConfig,t.queryConfig)||(this.updatePanelQueries(),this.updatePanelOptions({headerActions:e.panelConfig.headerActions,menu:e.panelConfig.menu}))}else this.buildVizPanel()})}subscribeToEvents(){this.subscribeToEvent(d.H,e=>{this.setState({panelConfig:G(F({},this.state.panelConfig),{type:e.payload.panelType})})})}buildVizPanel(){const{metric:e,metricType:t,panelConfig:n,queryConfig:r}=this.state;this.setState({body:M.buildVizPanel({metric:{name:e,type:t},panelConfig:n,queryConfig:r})})}updatePanelOptions(e){const{metric:t,metricType:n,body:r,panelConfig:a}=this.state;if(!r)return;const i={name:t,type:n};e.description&&r.setState({description:e.description}),e.headerActions&&r.setState({headerActions:e.headerActions({metric:i,panelConfig:a})}),e.menu&&r.setState({menu:e.menu({metric:i,panelConfig:a})})}updatePanelQueries(){const{body:e,metric:t,metricType:n,panelConfig:r,queryConfig:a}=this.state;if(!e)return;const[o]=i.sceneGraph.findDescendents(e,i.SceneQueryRunner);if(!o)return;const s=M.getQueryRunnerParams({panelType:r.type,metric:{name:t,type:n},queryConfig:a});o.setState({queries:s.queries}),o.runQueries()}update(e,t){const{panelConfig:n,queryConfig:r}=this.state;this.setState({panelConfig:F({},n,e),queryConfig:F({},r,t)})}constructor({key:e,metric:t,panelOptions:n,queryOptions:r,discardUserPrefs:a}){const i=(0,b.K)(t),o=a?void 0:(0,m.N)(t);super({key:e,metric:t,metricType:i,panelConfig:F({type:(null==n?void 0:n.type)||g(t),title:t,height:h.N.M,headerActions:({metric:e})=>[new p.B({metric:e.name})]},n,null==o?void 0:o.panelOptions),queryConfig:F({resolution:f.I.MEDIUM,labelMatchers:[],addIgnoreUsageFilter:!0},r,null==o?void 0:o.queryOptions),body:void 0}),this.addActivationHandler(()=>{this.onActivate(Boolean((null==n?void 0:n.type)||(null==o?void 0:o.panelOptions.type)))})}}function U(e,t){return{container:r.css`
|
|
width: 100%;
|
|
height: ${t}px;
|
|
`}}V(q,"Component",({model:e})=>{const{body:t,panelConfig:n}=e.useState(),r=(0,o.useStyles2)(U,n.height);return c().createElement("div",{className:r.container,"data-testid":"gmd-vizpanel"},t&&c().createElement(t.Component,{model:t}))})},4810:(e,t,n)=>{n.d(t,{o:()=>o});var r=n(3014),a=n(2324);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const o=(e=0)=>t=>{const[n]=r.sceneGraph.findDescendents(t,r.SceneQueryRunner);if(!n)return;const o=n.subscribeToState((n,r)=>{if(n.queries!==r.queries){const r=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){i(e,t,n[t])})}return e}({},t.state.fieldConfig);r.defaults.color=void 0,r.overrides=n.queries.map((t,n)=>({matcher:{id:"byFrameRefID",options:t.refId},properties:[{id:"color",value:{mode:"fixed",fixedColor:(0,a.Vy)(e+n)}}]})),t.setState({fieldConfig:r})}});return()=>{o.unsubscribe()}}},4924:(e,t,n)=>{n.d(t,{D:()=>r});const r=e=>e.endsWith("_bucket")},5060:(e,t,n)=>{n.d(t,{B:()=>a});var r=n(3241);const a=(e,t)=>e.length===t.length&&(0,r.isEqual)(e,t)},5114:(e,t,n)=>{n.d(t,{B:()=>d,K:()=>p});const r=e=>e.endsWith("_timestamp_seconds");var a=n(4924);const i=/_(count|total|sum)$/,o=e=>i.test(e),s=e=>e.endsWith("_info"),l=/_up$/,c=e=>"up"===e||l.test(e);function u(e,t,n,r,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function d(e,t){return(n=function*(){const n=p(e);if("gauge"===n){const n=yield t.getMetadataForMetric(e);if("histogram"===(null==n?void 0:n.type))return"native-histogram";if("counter"===(null==n?void 0:n.type))return"counter"}if("counter"===n){const n=yield t.getMetadataForMetric(e);if("gauge"===(null==n?void 0:n.type))return"gauge"}return n},function(){var e=this,t=arguments;return new Promise(function(r,a){var i=n.apply(e,t);function o(e){u(i,r,a,o,s,"next",e)}function s(e){u(i,r,a,o,s,"throw",e)}o(void 0)})})();var n}function p(e){return o(e)?"counter":(0,a.D)(e)?"classic-histogram":r(e)?"age":c(e)?"status-updown":s(e)?"info":"gauge"}},5190:(e,t,n)=>{n.d(t,{a:()=>p,k:()=>l});var r=n(3014),a=n(5959),i=n.n(a),o=n(5060),s=n(8705);class l extends r.SceneObjectBase{performRepeat(e){var t,n,r,a;if(e.state.error)return void this.setState({errorLayout:null===(t=(n=this.state).getLayoutError)||void 0===t?void 0:t.call(n,e.state.error),loadingLayout:void 0,emptyLayout:void 0,currentBatchSize:0});if(e.state.loading)return void this.setState({loadingLayout:null===(r=(a=this.state).getLayoutLoading)||void 0===r?void 0:r.call(a),errorLayout:void 0,emptyLayout:void 0,currentBatchSize:0});const i=p(e);var o,s;if(!i.length)return void this.setState({emptyLayout:null===(o=(s=this.state).getLayoutEmpty)||void 0===o?void 0:o.call(s),errorLayout:void 0,loadingLayout:void 0,currentBatchSize:0});this.setState({loadingLayout:void 0,errorLayout:void 0,emptyLayout:void 0,currentBatchSize:this.state.initialPageSize});const l=i.slice(0,this.state.initialPageSize).map((e,t)=>this.state.getLayoutChild(e,t,i)).filter(Boolean);this.state.body.setState({children:l})}increaseBatchSize(){const e=p(r.sceneGraph.lookupVariable(this.state.variableName,this)),t=this.state.currentBatchSize+this.state.pageSizeIncrement,n=e.slice(this.state.currentBatchSize,t).map((t,n)=>this.state.getLayoutChild(t,this.state.currentBatchSize+n,e)).filter(Boolean);this.state.body.setState({children:[...this.state.body.state.children,...n]}),this.setState({currentBatchSize:t})}useSizes(){const{currentBatchSize:e,pageSizeIncrement:t}=this.useState(),n=r.sceneGraph.lookupVariable(this.state.variableName,this).state.options.length,a=n-e;return{increment:a<t?a:t,current:e,total:n}}constructor({variableName:e,body:t,getLayoutChild:n,getLayoutLoading:a,getLayoutError:i,getLayoutEmpty:l,initialPageSize:c,pageSizeIncrement:u}){super({variableName:e,body:t,getLayoutChild:n,getLayoutLoading:a,getLayoutError:i,getLayoutEmpty:l,currentBatchSize:0,initialPageSize:c||6,pageSizeIncrement:u||9,loadingLayout:void 0,errorLayout:void 0,emptyLayout:void 0}),this.addActivationHandler(()=>{const e=r.sceneGraph.lookupVariable(this.state.variableName,this);if(!(e instanceof r.MultiValueVariable)){const e=new Error("SceneByVariableRepeater: variable is not a MultiValueVariable!");return void s.v.error(e)}this.performRepeat(e),this._subs.add(e.subscribeToState((t,n)=>{t.loading===n.loading&&(0,o.B)(t.options,n.options)||this.performRepeat(e)}))})}}var c,u,d;function p(e){const{value:t,text:n,options:r}=e.state;return e.hasAllValue()?r:Array.isArray(t)&&Array.isArray(n)?t.map((e,t)=>({value:e,label:n[t]})):[{value:t,label:n}]}d=({model:e})=>{const{body:t,loadingLayout:n,errorLayout:r,emptyLayout:a}=e.useState();return r?i().createElement(r.Component,{model:r}):n?i().createElement(n.Component,{model:n}):a?i().createElement(a.Component,{model:a}):i().createElement(t.Component,{model:t})},(u="Component")in(c=l)?Object.defineProperty(c,u,{value:d,enumerable:!0,configurable:!0,writable:!0}):c[u]=d},5272:(e,t,n)=>{n.d(t,{S:()=>s});var r,a,i,o=n(7781);class s extends o.BusEventWithPayload{}i="sort-by-changed",(a="type")in(r=s)?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i},5276:(e,t,n)=>{n.d(t,{MM:()=>h,l_:()=>m});const r="none",a="cps",i="bytes",o="seconds",s="percent",l="count",c={[i]:i,[o]:"s",[s]:s,[l]:r},u=Object.keys(c),d={[i]:"Bps",[o]:r,[l]:a,[s]:s};function p(e){const t=e.toLowerCase().split("_").slice(-2);for(let e=t.length-1;e>=Math.max(0,t.length-2);e--){const n=t[e];if(u.includes(n))return n}return null}function m(e){const t=p(e);return t&&c[t.toLowerCase()]||r}function h(e){const t=p(e);return t&&d[t]||a}},5333:(e,t,n)=>{n.d(t,{NJ:()=>S,Rm:()=>x,VN:()=>g,bG:()=>E,fD:()=>w,yH:()=>O});var r=n(3014),a=n(5959),i=n.n(a),o=n(6024),s=n(8705),l=n(1233),c=n(5693),u=n(5272),d=n(6367);function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){p(e,t,n[t])})}return e}function h(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}const f=6,b=30;function g(e){try{const t=y(),n=Date.now(),r=t.filter(t=>t.name!==e);r.unshift({name:e,timestamp:n});const a=r.slice(0,f);c.x.setItem(l.V.RECENT_METRICS,a)}catch(t){const n=t instanceof Error?t:new Error(String(t));s.v.error(n,h(m({},n.cause||{}),{metricName:e}))}}function y(){try{const e=c.x.getItem(l.V.RECENT_METRICS)||[];if(!e.length)return[];const t=Date.now()-24*b*60*60*1e3,n=e.filter(e=>e.timestamp>t);return n.length!==e.length&&c.x.setItem(l.V.RECENT_METRICS,n),n}catch(e){return s.v.error(e,{message:"Failed to get recent metrics:"}),[]}}const v=[{label:"Default",value:"default"},{label:"Alphabetical [A-Z]",value:"alphabetical"},{label:"Alphabetical [Z-A]",value:"alphabetical-reversed"},{label:"Dashboard Usage",value:"dashboard-usage"},{label:"Alerting Usage",value:"alerting-usage"}],S="metrics-reducer-sort-by";class w extends r.SceneObjectBase{activationHandler(){const e=r.sceneGraph.getVariables(this).getByName(S);this.supportedSortByOptions.has(e.getValue())||e.changeValueTo("default"),this._subs.add(e.subscribeToState((e,t)=>{e.value!==t.value&&this.publishEvent(new u.S({sortBy:e.value}),!0)}))}getUsageDetailsForMetric(e,t){return this.usageFetcher.getUsageDetailsForMetric(e,t)}getUsageMetrics(e){return this.usageFetcher.getUsageMetrics(e).then(e=>{const t={};for(const n in e)t[n]=e[n].count;return t})}constructor(e){super(h(m({},e),{key:"metrics-sorter",$variables:new r.SceneVariableSet({variables:[new r.CustomVariable({name:S,label:"Sort by",value:"default",query:v.map(e=>`${e.label} : ${e.value}`).join(","),description:"Default metric sorting is alphabetical with recently-selected metrics first. Metrics can also be sorted purely alphabetically, by prevalence in dashboard panel queries, or by prevalence in alerting rules"})]}),inputControls:new r.VariableValueSelectors({layout:"horizontal"})})),p(this,"initialized",!1),p(this,"supportedSortByOptions",new Set(["alerting-usage","alphabetical","alphabetical-reversed","dashboard-usage","default"])),p(this,"usageFetcher",new d.d),this.addActivationHandler(()=>this.activationHandler())}}function O(e,t){return[...e].sort((e,n)=>{const r=t[e]||0,a=t[n]||0;return a!==r?a-r:(0,o._)(e,n)})}function E(e,t="asc"){const n="asc"===t?(e,t)=>(0,o._)(e,t):(e,t)=>(0,o._)(t,e);return[...e].sort((e,t)=>n(e,t))}function x(e){const t=y().map(e=>e.name),n=new Set(t),[r,a]=e.reduce(([e,t],r)=>(n.has(r)?e.push(r):t.push(r),[e,t]),[[],[]]),i=E(a);return[...t.filter(e=>r.includes(e)),...i]}p(w,"Component",({model:e})=>{const{inputControls:t}=e.useState();return i().createElement("div",{"data-testid":"sort-by-select"},i().createElement(t.Component,{model:t}))})},5622:(e,t,n)=>{n.d(t,{H:()=>s});var r,a,i,o=n(7781);class s extends o.BusEventWithPayload{}i="configure-panel",(a="type")in(r=s)?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i},5665:(e,t,n)=>{n.d(t,{$:()=>u,s:()=>d});var r=n(7781),a=n(3014),i=n(1419),o=n(2324),s=n(9694),l=n(1089);function c(e,t,n,r,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}const u="metrics-wingman";class d extends a.QueryVariable{onActivate(){this.fetchAllOrRecentMetrics(),this._subs.add(a.sceneGraph.findByKeyAndType(this,i.EY,a.DataSourceVariable).subscribeToState((e,t)=>{this.state.query||e.value===t.value||this.fetchAllOrRecentMetrics()})),this._subs.add(a.sceneGraph.findByKeyAndType(this,s.U,a.AdHocFiltersVariable).subscribeToState((e,t)=>{this.state.query||e.filterExpression===t.filterExpression||this.fetchAllOrRecentMetrics()}))}fetchAllOrRecentMetrics(){const e=new URLSearchParams(window.location.search).get("filters-recent");e?this.fetchRecentMetrics(e):this.fetchAllMetrics()}fetchAllMetrics(){this.setState({query:this.extraFilter?`label_values({${this.extraFilter},$${s.U}}, __name__)`:`label_values({$${s.U}}, __name__)`,refresh:r.VariableRefresh.onTimeRangeChanged}),this.refreshOptions()}fetchRecentMetrics(e){return(t=function*(){this.setState({query:"",refresh:r.VariableRefresh.never,options:[],loading:!0,error:null});try{const t=yield(0,o.kj)(this).fetchRecentMetrics({interval:e,extraFilter:this.extraFilter});this.setState({loading:!1,options:t.map(e=>({value:e,label:e}))})}catch(e){this.setState({loading:!1,error:e})}},function(){var e=this,n=arguments;return new Promise(function(r,a){var i=t.apply(e,n);function o(e){c(i,r,a,o,s,"next",e)}function s(e){c(i,r,a,o,s,"throw",e)}o(void 0)})}).call(this);var t}constructor({key:e,name:t,labelMatcher:n,addLifeCycleEvents:a}={}){if(super({key:e||u,name:t||u,label:"Metrics",datasource:i.GH,query:"",refresh:r.VariableRefresh.never,includeAll:!0,value:"$__all",skipUrlSync:!0,sort:r.VariableSort.alphabeticalAsc,hide:r.VariableHide.hideVariable}),function(e,t,n){t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}(this,"extraFilter",void 0),this.extraFilter=n?`${n.key}${n.operator}"${n.value}"`:void 0,this.addActivationHandler(this.onActivate.bind(this)),a)return(0,l.I)(this)}}},5693:(e,t,n)=>{n.d(t,{x:()=>o});var r=n(5935),a=n(1233),i=n(2533);const o=new class{migrate(){let e=!1;const t=[{legacyKey:"metricsDrilldownDataSource",newKey:a.V.DATASOURCE},{legacyKey:"metrics-drilldown-recent-metrics/v1",newKey:a.V.RECENT_METRICS},{legacyKey:"grafana.trails.bookmarks",newKey:a.V.BOOKMARKS},{legacyKey:"grafana.trails.breakdown.sort.labels.by",newKey:a.V.BREAKDOWN_SORTBY}];for(const{legacyKey:n,newKey:r}of t){let t=localStorage.getItem(n);if(null!==t){try{t=JSON.parse(t)}catch(e){}this.setItem(r,t),localStorage.removeItem(n),e=!0}}e&&(0,r.z)("user_preferences_migrated",{})}buildStorageKey(e){return`${this.service}.${e}`}getItem(e){const t=this.buildStorageKey(e),n=localStorage.getItem(t);return null===n?null:JSON.parse(n)}setItem(e,t){const n=this.buildStorageKey(e);localStorage.setItem(n,JSON.stringify(t))}removeItem(e){const t=this.buildStorageKey(e);localStorage.removeItem(t)}clear(){localStorage.clear()}constructor(e){var t,n,r;r=void 0,(n="service")in(t=this)?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r,this.service=e}}(i.id)},5732:(e,t,n)=>{n.d(t,{x:()=>s});var r,a,i,o=n(7781);class s extends o.BusEventWithPayload{}i="metrics-variable-activated",(a="type")in(r=s)?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i},5843:(e,t,n)=>{n.d(t,{I:()=>o});var r=n(3014);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}class o extends r.SceneObjectBase{useCounts(){return this.useState().counts}constructor(e){super(i(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){a(e,t,n[t])})}return e}({},e),{counts:{current:0,total:0}}))}}},5935:(e,t,n)=>{n.d(t,{h:()=>h,z:()=>p});var r=n(8531),a=n(9914),i=n(5176),o=n(8943),s=n(3179);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){l(e,t,n[t])})}return e}function u(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}const d="grafana_explore_metrics_";function p(e,t){var n;((0,r.reportInteraction)(`${d}${e}`,u(c({},t),{meta:{appRelease:r.config.apps[o.s].version,appVersion:i.t}})),e.includes("sidebar"))&&(null===(n=(0,a.n1)())||void 0===n||n.api.pushEvent(e,u(c({},Object.fromEntries(Object.entries(t).map(([e,t])=>[e,String(t)]))),{defaultOpenSidebar:String((0,s.A)(s.j.sidebarOpenByDefault))})))}function m(e,t){p("label_filter_changed",{label:e,action:t,cause:"adhoc_filter"})}function h(e,t){e.length===t.length?function(e,t){for(const n of t)for(const t of e)n.key===t.key&&n.value!==t.value&&m(n.key,"changed")}(e,t):e.length<t.length?function(e,t){for(const n of t)e.some(e=>e.key===n.key)||m(n.key,"removed")}(e,t):function(e,t){for(const n of e)!t.some(e=>e.key===n.key)&&m(n.key,"added")}(e,t)}},6024:(e,t,n)=>{n.d(t,{_:()=>r});const r=new Intl.Collator("en",{sensitivity:"base"}).compare},6359:(e,t,n)=>{n.d(t,{R:()=>ne});var r=n(6089),a=n(8531),i=n(3014),o=n(2245),s=n(2007),l=n(5959),c=n.n(l),u=n(1419),d=n(5935),p=n(396),m=n(2324);const h={label:"All",value:"$__all"},f="Select a label to group by";function b(e){const t=(0,s.useStyles2)(g),{loading:n,options:r,value:a,onChange:i}=e,o=(0,l.useMemo)(()=>[h,...r],[r]);if(n)return c().createElement(s.Combobox,{options:[],placeholder:f,onChange:m.fZ});return o.length<=4?c().createElement(s.RadioButtonGroup,{"data-testid":"group-by-selector-radio-group",options:o,value:a,onChange:i}):c().createElement("div",{className:t.combobox},c().createElement(s.Combobox,{"data-testid":"group-by-selector-combobox",options:o,value:a,placeholder:f,onChange:e=>{i(e?e.value:h.value)},isClearable:!0}))}function g(){return{combobox:(0,r.css)({marginLeft:"4px"})}}class y extends i.QueryVariable{onActivate(){this.filterOptions(),this.subscribeToState((e,t)=>{e.value&&e.value!==t.value&&(0,d.z)("groupby_label_changed",{label:String(e.value)}),e.options!==t.options&&e.options.find(e=>"le"===e.value)&&this.filterOptions(e.options)});const e=i.sceneGraph.lookupVariable(u.Ao,this);(0,p.BE)(e)&&e.subscribeToState((e,t)=>{e.filterExpression!==t.filterExpression&&this.changeValueTo("$__all")})}filterOptions(e=this.state.options){this.setState({options:e.filter(e=>"le"!==e.value)})}constructor(){super({name:u.yr,label:"Group by",datasource:u.GH,includeAll:!0,defaultToAll:!0,query:`label_names(${u.Rp})`,value:"",text:""}),this.addActivationHandler(this.onActivate.bind(this))}}var v,S,w;function O(){return{field:(0,r.css)({marginBottom:0})}}w=({model:e})=>{const t=(0,s.useStyles2)(O),{options:n,value:r,loading:a}=e.useState(),i=(0,l.useCallback)((t,n)=>{const r="All"===t?"$__all":t;e.changeValueTo(r,void 0,!n)},[e]);return c().createElement(s.Field,{label:"By label","data-testid":"breakdown-label-selector",className:t.field},c().createElement(b,{options:n,value:r,onChange:i,loading:a}))},(S="Component")in(v=y)?Object.defineProperty(v,S,{value:w,enumerable:!0,configurable:!0,writable:!0}):v[S]=w;var E=n(495),x=n(3966),P=n(4332),k=n(7781);var C=n(4440);function j(e,t,n,r,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function _(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function o(e){j(i,r,a,o,s,"next",e)}function s(e){j(i,r,a,o,s,"throw",e)}o(void 0)})}}const T={job:"service_name",instance:"service_instance_id"};function I(e){return e in T?T[e]:e}const A=e=>{let t=!1;return{name:"labelsCrossReference",checkConditionsMetForRelatedLogs:()=>t,getDataSources:()=>_(function*(){var n;const r=(0,m.kj)(e),o=i.sceneGraph.lookupVariable(u.Ao,r);if(!(0,p.BE)(o)||!o.state.filters.length)return t=!1,[];t=!0;const s=o.state.filters.map(({key:e,operator:t,value:n})=>({key:e,operator:t,value:n})),l=null===(n=e.state.$timeRange)||void 0===n?void 0:n.state.value,c=yield(0,C.tS)().getHealthyDataSources("loki"),d=yield Promise.all(c.map(({uid:e,name:t})=>_(function*(){const n=yield function(e,t,n){return _(function*(){var r;const i=yield(0,a.getDataSourceSrv)().get(e),o=yield null===(r=i.getTagKeys)||void 0===r?void 0:r.call(i,{timeRange:n,filters:t.map(({key:e,operator:t,value:n})=>({key:I(e),operator:t,value:n}))});if(!Array.isArray(o))return!1;const s=new Set(o.map(e=>e.text));return!!t.map(e=>I(e.key)).every(e=>s.has(e))&&(yield Promise.all(t.map(e=>_(function*(){var r;const a=I(e.key),o=yield null===(r=i.getTagValues)||void 0===r?void 0:r.call(i,{key:a,timeRange:n,filters:t});return!!Array.isArray(o)&&o.some(t=>t.text===e.value)})()))).every(Boolean)})()}(e,s,l);return n?{uid:e,name:t}:null})()));return d.filter(e=>null!==e)})(),getLokiQueryExpr(){const t=(0,m.kj)(e),n=i.sceneGraph.lookupVariable(u.Ao,t);if(!(0,p.BE)(n)||!n.state.filters.length)return"";return`{${n.state.filters.map(e=>`${I(e.key)}${e.operator}"${e.value}"`).join(",")}}`}}};var D=n(6365),B=n(1269),N=n(8705);function L(e,t,n,r,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function M(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function o(e){L(i,r,a,o,s,"next",e)}function s(e){L(i,r,a,o,s,"throw",e)}o(void 0)})}}function R(e,t,n){if(!t||!n[t])return"";const r=n[t].find(t=>t.name===e);if(!r)return"";return function(e){if(function(e){if(e.trim().length<=2)return!1;let t=!1;const n=D.K3.parse(e);return n.iterate({enter:({type:e})=>{if(e.id===D.Yw)return t=!0,!1}}),!t}(e))return e;const t=F(e,D.MD);if(!t)return"";const n=e.substring(t.from,t.to),r=F(e,D.AL),a=r?e.substring(r.from,r.to):"";return`${n} ${a}`.trim()}(r.query)}function $(){return M(function*(){const e=yield(0,C.tS)().getHealthyDataSources("loki"),t={};return yield Promise.all(e.map(e=>M(function*(){try{const r=function(e,t){if(0===e.length)return[];const n=new Map;return e.forEach(e=>{e.rules.filter(e=>"recording"===e.type).forEach(({type:e,name:r,query:a})=>{if(n.has(r)){const e=n.get(r);e&&(e.hasMultipleOccurrences=!0,n.set(r,e))}else n.set(r,{type:e,name:r,query:a,datasource:{name:t.name,uid:t.uid},hasMultipleOccurrences:!1})})}),Array.from(n.values())}(yield(n=e,M(function*(){const e={url:`api/prometheus/${n.uid}/api/v1/rules`,showErrorAlert:!1,showSuccessAlert:!1},t=yield(0,B.lastValueFrom)((0,a.getBackendSrv)().fetch(e));return t.ok?t.data.data.groups:(N.v.warn(`Failed to fetch recording rules from Loki data source: ${n.name}`),[])})()),e);t[e.uid]=r}catch(e){N.v.warn(e)}var n})())),t})()}const V=()=>{let e={},t=!1;return{name:"lokiRecordingRules",checkConditionsMetForRelatedLogs:()=>t,getDataSources:n=>M(function*(){e=yield $();const r=function(e,t){const n=[];return Object.values(t).forEach(t=>{t.filter(t=>t.name===e).forEach(e=>{n.push(e.datasource)})}),n}(n,e);return t=Boolean(r.length),r})(),getLokiQueryExpr:(t,n)=>R(t,n,e)}};function F(e,t){let n;return D.K3.parse(e).iterate({enter:e=>{if(e.type.id===t)return n=e.node,!1}}),n}var G=n(2533);function q(e,t,n,r,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function U(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class H{get lokiDataSources(){return this._internalState.lokiDataSources}set lokiDataSources(e){const t=this._internalState.lokiDataSources.map(e=>e.uid).join(","),n=e.map(e=>e.uid).join(",");t&&t===n||(this._internalState.lokiDataSources=e,this._changeHandlers.lokiDataSources.forEach(e=>e(this._internalState.lokiDataSources)))}set relatedLogsCount(e){this._internalState.relatedLogsCount=e,this._changeHandlers.relatedLogsCount.forEach(e=>e(this._internalState.relatedLogsCount))}addLokiDataSourcesChangeHandler(e){this._changeHandlers.lokiDataSources.push(e)}addRelatedLogsCountChangeHandler(e){this._changeHandlers.relatedLogsCount.push(e)}handleFiltersChange(){this.lokiDataSources&&(this.lokiDataSources=[],this.relatedLogsCount=0,this.findAndCheckAllDatasources())}findAndCheckAllDatasources(){return(e=function*(){const e=(yield this._dataSourceFetcher.getHealthyDataSources("loki")).slice(0,5);e.length>0?this.checkLogsInDataSources(e):(this.lokiDataSources=[],this.relatedLogsCount=0)},function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function o(e){q(i,r,a,o,s,"next",e)}function s(e){q(i,r,a,o,s,"throw",e)}o(void 0)})}).call(this);var e}getLokiQueries(e,t=100){const{metric:n}=this._metricScene.state,r=this._logsConnectors.reduce((t,r,a)=>{const i=r.getLokiQueryExpr(n,e);var o;i&&(t[null!==(o=r.name)&&void 0!==o?o:`connector-${a}`]=i);return t},{});return Object.keys(r).map(e=>({refId:`RelatedLogs-${e}`,expr:r[e],maxLines:t,supportingQueryType:G.id}))}checkLogsInDataSources(e){const t=[];let n=0,r=0;if(0===e.length)return this.lokiDataSources=[],void(this.relatedLogsCount=0);e.forEach(a=>{const o=new i.SceneQueryRunner({datasource:{uid:a.uid},queries:this.getLokiQueries(a.uid),key:`related_logs_check_${a.uid}`,$timeRange:this._metricScene.state.$timeRange});o.subscribeToState(i=>{var o;if((null===(o=i.data)||void 0===o?void 0:o.state)===k.LoadingState.Done){var s;if(r++,null===(s=i.data)||void 0===s?void 0:s.series){const e=this.countLogsLines(i);e>0&&(t.push(a),n+=e)}r===e.length&&(this.lokiDataSources=t,this.relatedLogsCount=n)}}),o.activate()})}checkConditionsMetForRelatedLogs(){return this._logsConnectors.some(e=>e.checkConditionsMetForRelatedLogs())}countLogsLines(e){var t,n;return null!==(n=null===(t=e.data)||void 0===t?void 0:t.series.reduce((e,t)=>e+t.length,0))&&void 0!==n?n:0}constructor(e){U(this,"_logsConnectors",void 0),U(this,"_metricScene",void 0),U(this,"_dataSourceFetcher",(0,C.tS)()),U(this,"_changeHandlers",{lokiDataSources:[],relatedLogsCount:[]}),U(this,"_internalState",{relatedLogsCount:0,lokiDataSources:[]}),this._metricScene=e,this._logsConnectors=[V(),A(e)]}}function z(){const e=(0,s.useStyles2)(K);return c().createElement(s.Stack,{direction:"column",gap:2},c().createElement(s.Alert,{title:"No related logs found",severity:"info"},"We couldn't find any logs related to the current metric with your selected filters."),c().createElement(s.Text,null,"To find related logs, try the following:",c().createElement("ul",{className:e.list},c().createElement("li",null,"Adjust your label filters to include labels that exist in both the current metric and your logs"),c().createElement("li",null,"Select a metric created by a"," ",c().createElement(s.TextLink,{external:!0,href:"https://grafana.com/docs/loki/latest/alert/#recording-rules"},"Loki Recording Rule")),c().createElement("li",null,"Broaden the time range to include more data"))),c().createElement(s.Text,{variant:"bodySmall",color:"secondary"},"Note: Related logs is an experimental feature."))}function K(e){return{list:(0,r.css)({paddingLeft:e.spacing(2),marginTop:e.spacing(1)})}}function W({context:e}){const t=(0,l.useMemo)(()=>e,[e]),{links:n,isLoading:r}=(0,a.usePluginLinks)({extensionPointId:"grafana-metricsdrilldown-app/open-in-logs-drilldown/v1",limitPerPlugin:1,context:t}),i=(0,l.useMemo)(()=>n.find(({pluginId:e})=>"grafana-lokiexplore-app"===e),[n]);if(r)return c().createElement(s.LinkButton,{variant:"secondary",size:"sm",disabled:!0},"Loading...");const o=void 0!==i;return c().createElement(s.LinkButton,{href:o?`${a.config.appSubUrl}${i.path}`:`${a.config.appSubUrl}/a/grafana-lokiexplore-app`,target:"_blank",tooltip:o?"Use the Logs Drilldown app to explore these logs":"Navigate to the Logs Drilldown app",variant:"secondary",size:"sm",onClick:()=>(0,d.z)("related_logs_action_clicked",{action:"open_logs_drilldown"})},o?"Open in Logs Drilldown":"Open Logs Drilldown")}var Q=n(337);function Y(e,t,n,r,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function J(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function X(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}class Z extends i.SceneObjectBase{_onActivate(){return(e=function*(){this.state.orchestrator.addLokiDataSourcesChangeHandler(()=>this.setupLogsPanel()),this.state.orchestrator.lokiDataSources.length?this.setupLogsPanel():(this.setState({loading:!0}),yield this.state.orchestrator.findAndCheckAllDatasources(),this.setState({loading:!1})),(0,Q.$)(this,x.x3.relatedLogs)},function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function o(e){Y(i,r,a,o,s,"next",e)}function s(e){Y(i,r,a,o,s,"throw",e)}o(void 0)})}).call(this);var e}showNoLogsFound(){this.setState({body:new i.SceneReactObject({component:z}),controls:void 0}),this.state.orchestrator.relatedLogsCount=0}_buildQueryRunner(){this._queryRunner=new i.SceneQueryRunner({datasource:{uid:u.Kf},queries:[],key:"related_logs/logs_query"}),this._constructLogsDrilldownLinkContext(this._queryRunner.state),this._subs.add(this._queryRunner.subscribeToState(e=>{var t;if((null===(t=e.data)||void 0===t?void 0:t.state)!==k.LoadingState.Done)return;0===this.state.orchestrator.countLogsLines(e)&&this.showNoLogsFound(),this._constructLogsDrilldownLinkContext(e)}))}setupLogsPanel(){if(this._buildQueryRunner(),!this.state.orchestrator.lokiDataSources.length)return void this.showNoLogsFound();this.setState({body:i.PanelBuilders.logs().setTitle("Logs").setOption("showLogContextToggle",!0).setOption("showTime",!0).setOption("showControls",!0).setOption("controlsStorageKey","grafana.explore.logs").setData(this._queryRunner).build()});const e=new i.CustomVariable({name:u.Az,label:"Logs data source",query:this.state.orchestrator.lokiDataSources.map(e=>`${e.name} : ${e.uid}`).join(","),description:`Some Loki data sources might be missing from the dropdown if they took longer than ${C.UO} seconds to respond. To view logs for all Loki data sources, try using Logs Drilldown.`});this.setState({$variables:new i.SceneVariableSet({variables:[e]}),controls:[new i.VariableValueSelectors({layout:"vertical"})]}),this._subs.add(e.subscribeToState((e,t)=>{e.value!==t.value&&(0,d.z)("related_logs_action_clicked",{action:"logs_data_source_changed"})})),this.updateLokiQuery()}_constructLogsDrilldownLinkContext(e){var t,n;const r=null!==(n=null===(t=i.sceneGraph.lookupVariable(u.Az,this))||void 0===t?void 0:t.getValue())&&void 0!==n?n:"",a=e.queries,o=[];r&&a.length&&a.forEach(e=>{o.push(X(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){J(e,t,n[t])})}return e}({},e),{datasource:{uid:r,type:"loki"}}))}),this.setState({logsDrilldownLinkContext:{targets:o,timeRange:i.sceneGraph.getTimeRange(this).state}})}updateLokiQuery(){if(!this._queryRunner)return;const e=i.sceneGraph.lookupVariable(u.Az,this);let t;if((0,p.UG)(e)&&(t=e.getValue()),!t)return;const n=this.state.orchestrator.getLokiQueries(t);0!==n.length?this._queryRunner.setState({queries:n}):this.showNoLogsFound()}constructor(e){super({loading:!1,controls:[],body:new i.SceneReactObject({component:()=>c().createElement(s.Spinner,null)}),orchestrator:e.orchestrator,logsDrilldownLinkContext:{targets:[]}}),J(this,"_queryRunner",void 0),J(this,"_variableDependency",new i.VariableDependencyConfig(this,{variableNames:[u.Az,u.Ao],onReferencedVariableValueChanged:e=>{e.state.name===u.Ao?this.state.orchestrator.handleFiltersChange():e.state.name===u.Az&&this.updateLokiQuery()}})),this.addActivationHandler(()=>{this._onActivate()})}}function ee(){return{bodyContainer:(0,r.css)({flexGrow:1,minHeight:500,position:"relative"}),bodyContent:(0,r.css)({position:"absolute",top:0,left:0,right:0,bottom:0})}}function te(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}J(Z,"Component",({model:e})=>{const{controls:t,body:n,logsDrilldownLinkContext:r,loading:a}=e.useState(),i=(0,s.useStyles2)(ee);return a?c().createElement(s.Spinner,null):c().createElement(s.Stack,{gap:1,direction:"column",grow:1,height:"100%"},c().createElement(s.Stack,{gap:1,direction:"row",justifyContent:"space-between",alignItems:"start"},c().createElement(s.Stack,{gap:1},null==t?void 0:t.map(e=>c().createElement(e.Component,{key:e.state.key,model:e}))),c().createElement(W,{context:r})),c().createElement("div",{className:i.bodyContainer},c().createElement("div",{className:i.bodyContent},c().createElement(n.Component,{model:n}))))});class ne extends i.SceneObjectBase{_onActivate(){void 0===this.state.actionView&&this.setActionView(x.nh),this.relatedLogsOrchestrator.addRelatedLogsCountChangeHandler(e=>{this.setState({relatedLogsCount:e})}),this.subscribeToEvents()}subscribeToEvents(){a.config.featureToggles.enableScopesInMetricsExplore&&this.subscribeToEvent(u.H0,e=>{var t;null===(t=this.state.body.state.selectedTab)||void 0===t||t.publishEvent(e)}),this.subscribeToEvent(E.N,e=>{x.fe.filter(t=>t.value!==e.payload.currentActionView).forEach(({backgroundTask:e,value:t})=>{this.backgroundTaskHasRun[t]||(e(this),this.backgroundTaskHasRun[t]=!0)})})}getUrlState(){return{actionView:this.state.actionView}}updateFromUrl(e){if("string"==typeof e.actionView){if(this.state.actionView!==e.actionView){const t=x.fe.find(t=>t.value===e.actionView);t&&this.setActionView(t.value)}}else null===e.actionView&&this.setActionView(null)}setActionView(e){const{body:t}=this.state,n=e?x.fe.find(t=>t.value===e):null;n&&n.value!==this.state.actionView?(t.setState({selectedTab:n.getScene(this)}),this.setState({actionView:n.value})):(t.setState({selectedTab:void 0}),this.setState({actionView:void 0}))}getActionViewName(){var e,t;return this.state.actionView&&null!==(t=null===(e=x.fe.find(e=>e.value===this.state.actionView))||void 0===e?void 0:e.displayName)&&void 0!==t?t:""}createRelatedLogsScene(){return new Z({orchestrator:this.relatedLogsOrchestrator})}constructor(e){var t,n,r;super(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){te(e,t,n[t])})}return e}({$variables:null!==(t=e.$variables)&&void 0!==t?t:(r=e.metric,new i.SceneVariableSet({variables:[new i.ConstantVariable({name:u.PU,value:r,hide:o.zL.hideVariable}),new y]})),body:null!==(n=e.body)&&void 0!==n?n:new P.j({metric:e.metric})},e)),te(this,"relatedLogsOrchestrator",new H(this)),te(this,"_urlSync",new i.SceneObjectUrlSyncConfig(this,{keys:["actionView"]})),te(this,"_variableDependency",new i.VariableDependencyConfig(this,{variableNames:[u.Ao],onReferencedVariableValueChanged:()=>{this.relatedLogsOrchestrator.handleFiltersChange()}})),te(this,"backgroundTaskHasRun",{[x.x3.breakdown]:!1,[x.x3.related]:!1,[x.x3.relatedLogs]:!1}),this.addActivationHandler(this._onActivate.bind(this))}}te(ne,"Component",({model:e})=>{const{body:t}=e.useState(),n=(0,s.useStyles2)(re);return c().createElement("div",{className:n.container,"data-testid":"metric-scene"},c().createElement(t.Component,{model:t}))});const re=()=>({container:(0,r.css)({position:"relative",height:"100%",width:"100%",display:"flex",flexDirection:"column"})})},6367:(e,t,n)=>{n.d(t,{d:()=>x,a:()=>E});var r=n(8531),a=n(8705),i=n(6538);function o(e,t,n,r,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}const s={showSuccessAlert:!1,showErrorAlert:!1};function l(){return(e=function*(){try{return function(e){const t={};for(const n in e)t[n]={usageType:"alerting-usage",count:e[n]};return t}(function(e){const t={},n=e.filter(e=>(null==e?void 0:e.data.length)>0);for(const e of n){const n=e.data.filter(e=>{var t;return"string"==typeof(null===(t=e.model)||void 0===t?void 0:t.expr)&&"__expr__"!==e.datasourceUid});for(const r of n)try{const e=(0,i.M)(r.model.expr);for(const n of e)t[n]=(t[n]||0)+1}catch(t){a.v.warn(t,{message:`Failed to parse PromQL expression in alert rule ${e.title}`})}}return t}(yield(0,r.getBackendSrv)().get("/api/v1/provisioning/alert-rules",void 0,"grafana-metricsdrilldown-app-alert-rule-metric-usage",s)))}catch(e){const t="string"==typeof e?new Error(e):e;return a.v.error(t,{message:"Failed to fetch alerting rules"}),{}}},function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function s(e){o(i,r,a,s,l,"next",e)}function l(e){o(i,r,a,s,l,"throw",e)}s(void 0)})})();var e}var c=n(7348),u=n(4440);function d(e,t,n,r,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function p(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function o(e){d(i,r,a,o,s,"next",e)}function s(e){d(i,r,a,o,s,"throw",e)}o(void 0)})}}function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function h(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}const f={showSuccessAlert:!1,showErrorAlert:!1},b=new Map,g=(0,c.g)((e,t,n)=>p(function*(){let i=b.get(e);return i||(i=(0,r.getBackendSrv)().get(`/api/dashboards/uid/${e}`,void 0,`grafana-metricsdrilldown-app-dashboard-metric-usage-${e}`,f).then(({dashboard:e})=>h(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){m(e,t,n[t])})}return e}({},e),{url:t})).catch(t=>(n<=5&&a.v.error(t,{dashboardUid:e}),n++,Promise.resolve(null))).finally(()=>{b.delete(e)}),b.set(e,i)),i})(),{concurrency:50});function y(){return p(function*(){try{const e=yield(0,r.getBackendSrv)().get("/api/search",{type:"dash-db",limit:500},"grafana-metricsdrilldown-app-dashboard-search",f);let t=0;return yield Promise.all(e.map(({uid:e,url:n})=>g(e,n,t))).then(e=>p(function*(){return yield(t=e,p(function*(){const e={};for(const n of function(e){return e.filter(e=>{var t;return e&&(null==e||null===(t=e.panels)||void 0===t?void 0:t.length)})}(t))for(const t of v(n.panels))yield S(t.targets,n.title||`Dashboard ${n.uid}`,n.uid||"unknown",n.url,e);return e})());var t})())}catch(e){const t="string"==typeof e?new Error(e):e;return a.v.error(t,{message:"Failed to fetch dashboard metrics"}),{}}})()}function v(e){return e.filter(e=>{var t;return(0,u.aQ)(e.datasource)&&"targets"in e&&(null===(t=e.targets)||void 0===t?void 0:t.length)})}function S(e,t,n,r,a){for(const o of e){const e="string"==typeof o.expr?o.expr:"",s=(0,i.M)(e);for(const e of s)w(e,t,n,r,a)}}function w(e,t,n,r,a){var i;(a[e]||(a[e]={usageType:"dashboard-usage",count:0,dashboards:{}}),a[e].count++,"dashboard-usage"===a[e].usageType)&&(a[e].dashboards[t]={count:((null===(i=a[e].dashboards[t])||void 0===i?void 0:i.count)||0)+1,uid:n||"unknown",url:r})}const O=new Set(["dashboard-usage","alerting-usage"]),E=e=>O.has(e);class x{getUsageMetrics(e){return this._usageState[e].metrics&&Object.keys(this._usageState[e].metrics).length>0?Promise.resolve(this._usageState[e].metrics):(this._usageState[e].metricsPromise||(this._usageState[e].metricsPromise=this._usageState[e].fetcher().then(t=>(this._usageState[e].metrics=t,this._usageState[e].metricsPromise=void 0,t))),this._usageState[e].metricsPromise)}getUsageForMetric(e,t){return this.getUsageMetrics(t).then(t=>{var n,r;return null!==(r=null===(n=t[e])||void 0===n?void 0:n.count)&&void 0!==r?r:0})}getUsageDetailsForMetric(e,t){return this.getUsageMetrics(t).then(n=>{var r;return null!==(r=n[e])&&void 0!==r?r:"dashboard-usage"===t?{usageType:"dashboard-usage",count:0,dashboards:{}}:{usageType:"alerting-usage",count:0}})}constructor(){var e,t,n;n={"dashboard-usage":{metrics:{},metricsPromise:void 0,fetcher:y},"alerting-usage":{metrics:{},metricsPromise:void 0,fetcher:l}},(t="_usageState")in(e=this)?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}}},6503:(e,t,n)=>{n.d(t,{_:()=>u});var r=n(2007),a=n(5959),i=n.n(a),o=n(1522),s=n(8705);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function u({severity:e,title:t,message:n,error:a,errorContext:u,children:d}){let p;return a&&(p=(0,o.U)(a,"Unknown error!"),s.v.error(p,c(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){l(e,t,n[t])})}return e}({},p.cause||{},u),{bannerTitle:t}))),i().createElement(r.Alert,{title:t,severity:e},p&&i().createElement(i().Fragment,null,function(e){const t=e.message||e.toString(),n=[];return e.statusText&&n.push(e.statusText),e.status&&n.push(`HTTP ${e.status}`),n.length?`${t} (${n.join(" - ")})`:t}(p),i().createElement("br",null)),n,d)}},6773:(e,t,n)=>{n.d(t,{F:()=>p});var r=n(6089),a=n(3014),i=n(2007),o=n(5959),s=n.n(o),l=n(1233),c=n(5693),u=n(5622);function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class p extends a.SceneObjectBase{constructor({metric:e,disabled:t}){var n;const r=c.x.getItem(l.V.METRIC_PREFS)||{};super({metric:e,disabled:void 0!==t&&t,isAlreadyConfigured:Boolean(null===(n=r[e.name])||void 0===n?void 0:n.config)}),d(this,"onClick",()=>{this.publishEvent(new u.H({metric:this.state.metric}),!0)})}}d(p,"Component",({model:e})=>{const t=(0,i.useStyles2)(m),{isAlreadyConfigured:n,disabled:a}=e.useState(),o=n?"Reconfigure Prometheus function":"Configure Prometheus function";return s().createElement(i.Button,{className:(0,r.cx)(t.selectButton,n&&t.active),"aria-label":o,variant:"secondary",size:"sm",fill:"text",onClick:e.onClick,icon:"cog",tooltip:o,tooltipPlacement:"top",disabled:a,"data-testid":"configure-panel"})});const m=e=>({selectButton:r.css`
|
|
padding: 0;
|
|
`,active:r.css`
|
|
color: ${e.colors.text.maxContrast};
|
|
`})},7014:(e,t,n)=>{n.d(t,{q:()=>a});var r=n(8162);const a=new Map([...["avg","sum","stddev","quantile","min","max","count"].map(e=>[e,{name:e,fn:t=>r.GH[e](t)}]),["histogram_quantile",{name:"histogram_quantile",fn:({expr:e,parameter:t})=>`histogram_quantile(${t},${e})`}],["time-avg(metric)",{name:"time-avg(metric)",fn:({expr:e})=>`time()-avg(${e})`}],["time-min(metric)",{name:"time-min(metric)",fn:({expr:e})=>`time()-min(${e})`}],["time-max(metric)",{name:"time-max(metric)",fn:({expr:e})=>`time()-max(${e})`}]])},7042:(e,t,n)=>{n.d(t,{d:()=>o});var r=n(1932),a=n(8162),i=n(1419);function o(e){const{metric:t,labelMatchers:n=[],addIgnoreUsageFilter:o=!0,addExtremeValuesFiltering:s=!1}=e,l=n.map(e=>({label:(0,r.Nc)(e.key),operator:e.operator,value:e.value}));o&&l.push({label:"__ignore_usage__",operator:a.md.equal,value:""});const c=!(0,r.Rq)(t.name);c&&l.push({label:(0,r.Nc)(t.name),operator:a.md.equal,value:"__REMOVE__"}),l.push({label:`\${${i.Ao}:raw}`,operator:a.md.equal,value:"__REMOVE__"});const u=function(e){return e.toString().replaceAll('="__REMOVE__"',"")}(new a.r4({metric:c?"":t.name,values:{},defaultOperator:a.md.equal,defaultSelectors:l}));return s?a.GH.and({left:u,right:`${u} > -Inf`}):u}},7145:(e,t,n)=>{n.d(t,{k:()=>s});var r=n(3014),a=n(3241),i=n(1251);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class s{setInitOptions(e){this.initOptions=(0,a.cloneDeep)(e)}getFilters(){return this.filters}static getFilteredOptions(e,t){let n=e;return t.categories.length>0&&(n=s.applyCategoryFilters(n,t.categories)),t.prefixes.length>0&&(n=s.applyPrefixFilters(n,t.prefixes)),t.suffixes.length>0&&(n=s.applySuffixFilters(n,t.suffixes)),t.names.length>0&&(n=s.applyNameFilters(n,t.names)),n}applyFilters(e=this.filters,t={forceUpdate:!1,notify:!0}){const n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){o(e,t,n[t])})}return e}({},this.filters,e);if(!t.forceUpdate&&(0,a.isEqual)(this.filters,n))return;if(!(n.categories.length||n.prefixes.length||n.suffixes.length||n.names.length))return this.filters=n,this.variable.setState({options:this.initOptions}),void(t.notify&&this.notifyUpdate());this.filters=n;const r=s.getFilteredOptions(this.initOptions,this.filters);this.variable.setState({options:r}),t.notify&&this.notifyUpdate()}static applyCategoryFilters(e,t){let n=[];for(const r of t){const t=s.buildRegex(r,"i");n=n.concat(e.filter(e=>t.test(e.value)))}return n}static applyPrefixFilters(e,t){const n=t.map(e=>{if(e.includes(i._)){const[t,n]=e.split(i._);return`^${t}[^a-z0-9]${n}([^a-z0-9]|$)`}return e.includes("|")?`${e.split("|").map(e=>`^${e}([^a-z0-9]|$)`).join("|")}`:`^${e}([^a-z0-9]|$)`}).join("|"),r=s.buildRegex(`(${n})`);return e.filter(e=>r.test(e.value))}static applySuffixFilters(e,t){const n=t.map(e=>e.includes("|")?`${e.split("|").map(e=>`(^|[^a-z0-9])${e}$`).join("|")}`:`(^|[^a-z0-9])${e}$`).join("|"),r=s.buildRegex(`(${n})`);return e.filter(e=>r.test(e.value))}static applyNameFilters(e,t){const[n]=t,r=n.split(",").map(e=>e.trim()).filter(Boolean).map(e=>{try{return new RegExp(e)}catch(e){return null}}).filter(Boolean);return e.filter(e=>r.some(t=>t.test(e.value)))}static buildRegex(e,t){try{return new RegExp(e,t)}catch(e){return new RegExp(".*")}}notifyUpdate(){this.variable.publishEvent(new r.SceneVariableValueChangedEvent(this.variable),!0)}constructor(e){o(this,"variable",void 0),o(this,"initOptions",[]),o(this,"filters",{categories:[],prefixes:[],suffixes:[],names:[]}),this.variable=e}}},7291:(e,t,n)=>{n.d(t,{E:()=>a,N:()=>r});const r="grafana/add-to-dashboard-form/v1",a="Add to dashboard"},7401:(e,t,n)=>{n.d(t,{q:()=>p,R:()=>m});var r=n(8531),a=n(3014),i=n(2388),o=n(4440),s=n(1419);const l={"11.6.x":function(e){const t=e.languageProvider;return"function"==typeof t.fetchLabelValues&&1===t.fetchLabelValues.length},"12.0.0":function(e){const t=e.languageProvider;return"function"==typeof t.fetchLabelValues&&t.fetchLabelValues.length>1},"12.1.0-plus":function(e){return"function"==typeof e.languageProvider.queryLabelKeys}};function c(e,t,n,r,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function u(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function o(e){c(i,r,a,o,s,"next",e)}function s(e){c(i,r,a,o,s,"throw",e)}o(void 0)})}}function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class p{getRuntimeDatasource(){return u(function*(){if(!this.datasource){const e=yield(0,r.getDataSourceSrv)().get(s.gR,{__sceneObject:{value:this.trail}});this.datasource=(0,o.aQ)(e)?e:void 0}return this.datasource}).call(this)}init(){this.initialized=!0,this.reset()}reset(){this.initialized&&(this.datasource=void 0,this.cache={metadata:new Map},this.fetchMetricsMetadata().catch(()=>{}))}getMetadataForMetric(e){return u(function*(){if(this.cache.metadata.has(e))return this.cache.metadata.get(e);const t=yield this.getRuntimeDatasource();if(!t)return;let n;try{const a=yield t.languageProvider.request(`/api/v1/metadata?metric=${e}`);var r;if(a&&"object"==typeof a)n=null===(r=a[e])||void 0===r?void 0:r[0]}catch(t){(0,i.HA)([`Error while fetching ${e} metadata!`,t.toString()])}return n&&this.cache.metadata.set(e,n),n}).call(this)}fetchMetricsMetadata(){return u(function*(){const e=yield this.getRuntimeDatasource();if(!e)return;const t=function(e){if(l["12.1.0-plus"](e))return e.languageProvider.queryMetricsMetadata;if(l["12.0.0"](e)||l["11.6.x"](e))return()=>Promise.resolve(e.languageProvider.metricsMetadata);throw new Error("Unsupported language provider version")}(e);let n=yield t();if(!n){const r=function(e,t){if(l["12.1.0-plus"](e))return e.languageProvider.retrieveMetricsMetadata;if(l["12.0.0"](e)||l["11.6.x"](e))return()=>{var n,r,a;return(null!==(a=null===(n=(r=e.languageProvider).loadMetricsMetadata)||void 0===n?void 0:n.call(r))&&void 0!==a?a:Promise.resolve()).then(()=>t())};throw new Error("Unsupported language provider version")}(e,t);n=yield r()}if(n)for(const[e,t]of Object.entries(n))this.cache.metadata.set(e,t)}).call(this)}fetchRecentMetrics(e){return u(function*({interval:e,extraFilter:t}){const n=yield this.getRuntimeDatasource();if(!n)return[];const r=['__name__!=""',t,a.sceneGraph.interpolate(this.trail,s.ui)].filter(Boolean).join(","),i=`group by (__name__) ({${r}}) unless (group by (__name__) ({${r}} offset ${e}))`,o=yield n.languageProvider.request(`/api/v1/query?query=${i}`);if(!Array.isArray(null==o?void 0:o.result))throw new Error("The query to search for recent metrics timed out or failed. Try a shorter time interval and/or add label filters to narrow the search.");return o.result.map(({metric:e})=>e.__name__)}).apply(this,arguments)}getTagKeys(e){return u(function*(){const t=yield this.getRuntimeDatasource();if(!t)return[];return yield t.getTagKeys(e)}).call(this)}getTagValues(e){return u(function*(){const t=yield this.getRuntimeDatasource();if(!t)return[];e.key=function(e){if(""===e||!function(e){return/^".*"$/.test(e)}(e))return e;return e.slice(1,-1)}(e.key);return yield t.getTagValues(e)}).call(this)}static fetchLabels(e){const{timeRange:t,matcher:n}=e,r=e.ds;if(l["12.1.0-plus"](r))return r.languageProvider.queryLabelKeys(t,n);if(l["12.0.0"](r))return r.languageProvider.fetchLabelsWithMatch(t,n).then(e=>Object.keys(e));if(l["11.6.x"](r))return r.languageProvider.fetchLabelsWithMatch(n).then(e=>Object.keys(e));throw new Error("Unsupported language provider version")}static fetchLabelValues(e){const{labelName:t,timeRange:n,matcher:r=""}=e,a=e.ds;if(l["12.1.0-plus"](a))return a.languageProvider.queryLabelValues(n,t,r);if(l["12.0.0"](a)){return(r?a.languageProvider.fetchSeriesValuesWithMatch:a.languageProvider.fetchLabelValues)(n,t,r)}if(l["11.6.x"](a)){return(r?a.languageProvider.fetchSeriesValuesWithMatch:a.languageProvider.fetchLabelValues)(t,r)}throw new Error("Unsupported language provider version")}static getPrometheusDataSourceForScene(e){return u(function*(){try{const n=a.sceneGraph.findByKey(e,s.EY);var t;const i=null!==(t=null==n?void 0:n.state.value)&&void 0!==t?t:"";return yield(0,r.getDataSourceSrv)().get({uid:i})}catch(e){return void(0,i.jx)(e,["Error while getting the Prometheus data source!"])}})()}getPrometheusBuildInfo(){return u(function*(){const e=yield this.getRuntimeDatasource();if(!e)return;const t=yield e.languageProvider.request("/api/v1/status/buildinfo");return t.application||(t.application="Prometheus",t.repository="https://github.com/prometheus/prometheus"),t.buildDate&&(t.buildDate=t.buildDate.replace(/(\d{4})(\d{2})(\d{2})(.+)/,"$1-$2-$3")),t}).call(this)}constructor(e){d(this,"initialized",!1),d(this,"trail",void 0),d(this,"datasource",void 0),d(this,"cache",{metadata:new Map}),this.trail=e}}function m(e){if(!e)return;const{type:t,help:n,unit:r}=e;return[n,t&&`**Type:** *${t}*`,r&&`**Unit:** ${r}`].join("\n\n")}},7561:(e,t,n)=>{n.d(t,{H:()=>s});var r=n(8162),a=n(7042),i=n(7014),o=n(4299);function s(e){const{metric:t,queryConfig:n}=e,i=(0,a.d)({metric:t,labelMatchers:n.labelMatchers,addIgnoreUsageFilter:n.addIgnoreUsageFilter,addExtremeValuesFiltering:n.addExtremeValuesFiltering}),s="counter"===t.type,u=s?r.GH.rate({expr:i,interval:"$__rate_interval"}):i;return{isRateQuery:s,maxDataPoints:n.resolution===o.I.HIGH?500:250,queries:n.groupBy?l({metric:t,queryConfig:n,expr:u}):c({metric:t,queryConfig:n,expr:u})}}function l({metric:e,queryConfig:t,expr:n}){let a="avg";return"counter"===e.type?a="sum":"info"===e.type&&(a="count"),[{refId:`${e.name}-by-${t.groupBy}`,expr:r.GH[a]({expr:n,by:[t.groupBy]}),legendFormat:`{{${t.groupBy}}}`,fromExploreMetrics:!0}]}function c({metric:e,queryConfig:t,expr:n}){var r;let a="avg";"counter"===e.type?a="sum":"info"===e.type&&(a="count");const o=(null===(r=t.queries)||void 0===r?void 0:r.length)?t.queries:[{fn:a}],s=[];for(const{fn:t}of o){const r=i.q.get(t),a=r.fn({expr:n}),o="counter"===e.type?`${r.name}(rate)`:r.name;s.push({refId:`${e.name}-${o}`,expr:a,legendFormat:o,fromExploreMetrics:!0})}return s}},7791:(e,t,n)=>{function r(e,t){return(null==t?void 0:t.state.embedded)||e.isLight?e.colors.background.primary:e.colors.background.canvas}n.d(t,{T:()=>r})},7957:(e,t,n)=>{n.d(t,{fe:()=>v,On:()=>S,c0:()=>w});var r=n(3014),a=n(5959),i=n.n(a),o=n(5333),s=n(6367),l=n(3916),c=n(2449),u=n(8705),d=n(396),p=n(6089),m=n(2007);function h({usageType:e,usageCount:t,singularUsageType:n,pluralUsageType:r,icon:a,dashboardItems:o}){const s=(0,m.useStyles2)(f);return i().createElement("div",{className:s.usageContainer,"data-testid":"usage-data-panel"},i().createElement(m.Stack,{direction:"row",justifyContent:"flex-start",alignItems:"center",gap:2},"dashboard-usage"===e?i().createElement(m.Dropdown,{placement:"right-start",overlay:i().createElement(m.Menu,{style:{maxWidth:"240px",maxHeight:"245px",overflowY:"auto"}},o.map(e=>i().createElement(m.Menu.Item,{key:e.id,label:"",url:e.url,target:"_blank",className:s.menuItem,component:()=>i().createElement(m.Tooltip,{content:`Used ${e.count} ${1===e.count?"time":"times"} in ${e.label}`,placement:"right"},i().createElement("div",{className:s.menuItemContent},i().createElement(m.Icon,{name:"external-link-alt"})," ",e.label," (",e.count,")"))})))},i().createElement(m.Button,{variant:"secondary",size:"sm",tooltip:`Metric used ${t} ${1===t?"time":"times"} in dashboard queries. Click to view the dashboards.`,className:(0,p.cx)(s.usageItem,s.clickableUsageItem)},i().createElement(m.Stack,{direction:"row",alignItems:"center",gap:.5,"data-testid":e},i().createElement(m.Icon,{name:a}),i().createElement("span",null,t)))):i().createElement(m.Tooltip,{content:`Metric is used in ${t} ${1===t?n:r}`,placement:"top"},i().createElement("span",{className:s.usageItem,"data-testid":e},i().createElement(m.Stack,{direction:"row",alignItems:"center",gap:.5},i().createElement(m.Icon,{name:a}),i().createElement("span",null,t))))))}function f(e){return{usageContainer:(0,p.css)({padding:"8px 12px",border:`1px solid ${e.colors.border.weak}`,borderTopWidth:0,backgroundColor:e.colors.background.primary}),usageItem:(0,p.css)({color:e.colors.text.secondary,opacity:"65%"}),clickableUsageItem:(0,p.css)({backgroundColor:"transparent",border:"none"}),menuItem:(0,p.css)({color:e.colors.text.primary,textDecoration:"none","&:hover":{color:e.colors.text.link}}),menuItemContent:(0,p.css)({overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",color:e.colors.text.primary,"&:hover":{color:e.colors.text.link}})}}function b(e,t,n,r,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function g(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function y(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}const v="220px",S="260px";class w extends r.SceneObjectBase{_onActivate(){let e;try{e=r.sceneGraph.getAncestor(this,c.m)}catch(e){return}if(!e.state.enginesMap.get(l.h))return;const t=r.sceneGraph.findByKeyAndType(this,"metrics-sorter",o.fD),n=r.sceneGraph.getVariables(t).getByName(o.NJ);(0,d.UG)(n)&&(this.updateSortBy(t,n.getValue()),this._subs.add(n.subscribeToState(({value:e})=>{this.updateSortBy(t,e)})))}updateSortBy(e,t){return(n=function*(){if(this.setState({sortBy:t}),this.updateLayout(t),!(0,s.a)(t))return;const n=yield e.getUsageDetailsForMetric(this.state.metric,t);switch(n.usageType){case"dashboard-usage":this.setState({usageCount:n.count,singularUsageType:"dashboard panel query",pluralUsageType:"dashboard panel queries",icon:"apps",dashboardItems:Object.entries(n.dashboards).map(([e,t])=>({id:t.uid,label:e,count:t.count,url:t.url})).sort((e,t)=>t.count-e.count)});break;case"alerting-usage":this.setState({usageCount:n.count,singularUsageType:"alert rule",pluralUsageType:"alert rules",icon:"bell"})}},function(){var e=this,t=arguments;return new Promise(function(r,a){var i=n.apply(e,t);function o(e){b(i,r,a,o,s,"next",e)}function s(e){b(i,r,a,o,s,"throw",e)}o(void 0)})}).call(this);var n}updateLayout(e){const t=r.sceneGraph.getAncestor(this,r.SceneCSSGridLayout),n=null==t?void 0:t.state.autoRows,a=(0,s.a)(e)?S:v;n!==a&&t.setState({autoRows:a})}constructor(e){super(y(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){g(e,t,n[t])})}return e}({},e),{sortBy:"default",usageCount:0,singularUsageType:"",pluralUsageType:"",icon:"",dashboardItems:[]})),this.addActivationHandler(this._onActivate.bind(this))}}g(w,"Component",({model:e})=>{const{vizPanelInGridItem:t,sortBy:n,usageCount:r,singularUsageType:a,pluralUsageType:o,icon:l,dashboardItems:c}=e.useState();if(t)return i().createElement("div",{"data-testid":"with-usage-data-preview-panel"},i().createElement(t.Component,{model:t}),(0,s.a)(n)&&i().createElement(h,{usageType:n,usageCount:r,singularUsageType:a,pluralUsageType:o,icon:l,dashboardItems:c}));u.v.log("no viz panel")})},8092:(e,t,n)=>{n.d(t,{BR:()=>i,Hi:()=>o,KF:()=>a});var r=n(5959);const a=(0,n(2324).ef)(),i=(0,r.createContext)({trail:a});function o(){return(0,r.useContext)(i)}},8238:(e,t,n)=>{n.d(t,{s:()=>s});var r,a,i,o=n(7781);class s extends o.BusEventWithPayload{}i="timeseries-data-received",(a="type")in(r=s)?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i},8316:(e,t,n)=>{n.d(t,{H:()=>s});var r,a,i,o=n(7781);class s extends o.BusEventWithPayload{}i="reset-sync-y-axis",(a="type")in(r=s)?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i},8489:(e,t,n)=>{n.d(t,{I:()=>m});var r=n(6089),a=n(3014),i=n(2007),o=n(3241),s=n(5959),l=n.n(s),c=n(1419),u=n(5935),d=n(4293);function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class m extends a.SceneObjectBase{getUrlState(){return{[this.state.urlSearchParamName]:this.state.value}}updateFromUrl(e){const t=e[this.state.urlSearchParamName]||"";t!==this.state.value&&this.setState({value:t})}toggleCountsDisplay(e){this.setState({displayCounts:e})}updateValue(e){""===this.state.value&&""!==e&&(0,u.z)("quick_search_used",{}),this.setState({value:e}),this.notifyValueChange(e)}useHumanFriendlyCountsMessage(){const{targetName:e,countsProvider:t,displayCounts:n}=this.state,r=t.useCounts();return n?r.current===r.total?{tagName:`${r.current}`,tooltipContent:1!==r.current?`${r.current} ${e}s in total`:`1 ${e} in total`}:{tagName:`${r.current}/${r.total}`,tooltipContent:1!==r.current?`${r.current} out of ${r.total} ${e}s in total`:`1 out of ${r.total} ${e}s in total`}:{tagName:"",tooltipContent:""}}constructor({urlSearchParamName:e,targetName:t,countsProvider:n,displayCounts:r}){super({key:"quick-search",urlSearchParamName:e,targetName:t,countsProvider:n,displayCounts:Boolean(r),value:""}),p(this,"_variableDependency",new a.VariableDependencyConfig(this,{variableNames:[c.EY],onReferencedVariableValueChanged:()=>{this.setState({value:""})}})),p(this,"_urlSync",new a.SceneObjectUrlSyncConfig(this,{keys:[this.state.urlSearchParamName]})),p(this,"notifyValueChange",(0,o.debounce)(e=>{this.publishEvent(new d.W({searchText:e}),!0)},250)),p(this,"onChange",e=>{this.updateValue(e.currentTarget.value)}),p(this,"clear",()=>{this.updateValue("")}),p(this,"onKeyDown",e=>{"Escape"===e.key&&(e.preventDefault(),this.clear())})}}p(m,"Component",({model:e})=>{const t=(0,i.useStyles2)(h),{targetName:n,value:r,countsProvider:a}=e.useState(),{tagName:o,tooltipContent:s}=e.useHumanFriendlyCountsMessage();return l().createElement(i.Input,{value:r,onChange:e.onChange,onKeyDown:e.onKeyDown,placeholder:`Quick search ${n}s`,prefix:l().createElement("i",{className:"fa fa-search"}),suffix:l().createElement(l().Fragment,null,l().createElement(a.Component,{model:a}),o&&l().createElement(i.Tooltip,{content:s,placement:"top"},l().createElement(i.Tag,{className:t.counts,name:o,colorIndex:9})),l().createElement(i.IconButton,{name:"times",variant:"secondary",tooltip:"Clear search",onClick:e.clear,disabled:!r}))})});const h=e=>({counts:r.css`
|
|
margin-right: ${e.spacing(1)};
|
|
border-radius: 11px;
|
|
padding: 2px ${e.spacing(1)};
|
|
color: ${e.colors.text.primary};
|
|
background-color: ${e.colors.background.secondary};
|
|
`})},8732:(e,t,n)=>{n.d(t,{S:()=>u,X:()=>l});var r=n(5959),a=n.n(r),i=n(1159),o=n(3498),s=n(8092);const l=(0,r.lazy)(()=>n.e(494).then(n.bind(n,8494))),c=()=>{const e=(0,i.useLocation)();return a().createElement(i.Navigate,{to:`${o.b.Drilldown}${e.search}`,replace:!0})},u=()=>{const{trail:e}=(0,s.Hi)();return a().createElement(i.Routes,null,a().createElement(i.Route,{path:o.b.Drilldown,element:a().createElement(l,{trail:e})}),a().createElement(i.Route,{path:o.b.Trail,element:a().createElement(c,null)}),a().createElement(i.Route,{path:"*",element:a().createElement(i.Navigate,{to:o.b.Drilldown,replace:!0})}))}},9194:(e,t,n)=>{n.d(t,{x:()=>s});var r,a,i,o=n(7781);class s extends o.BusEventWithPayload{}i="metrics-variable-loaded",(a="type")in(r=s)?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i},9226:(e,t,n)=>{n.d(t,{N:()=>d});var r=n(2388),a=n(5935),i=n(1233),o=n(5693),s=n(3632),l=n(7014);const c=new Set(Object.values(s.i)),u=new Set(["heatmap","percentiles","stat","statushistory","timeseries"]);function d(e){var t;const n=o.x.getItem(i.V.METRIC_PREFS)||{},s=null===(t=n[e])||void 0===t?void 0:t.config;var d;if(s)return function(e){if(!["id","panelOptions","queryOptions"].every(t=>t in e))return!1;if("string"!=typeof e.id||!c.has(e.id))return!1;if("string"!=typeof e.panelOptions.type||!u.has(e.panelOptions.type))return!1;if(!Array.isArray(e.queryOptions.queries))return!1;if(!e.queryOptions.queries.every(e=>{var t;return!!l.q.has(e.fn)&&(!["quantile","histogram_quantile"].includes(e.fn)||!(!Array.isArray(null===(t=e.params)||void 0===t?void 0:t.percentiles)||!e.params.percentiles.length)&&e.params.percentiles.every(e=>e>=1&&e<=99))}))return!1;return!0}(s)?s:((0,a.z)("invalid_metric_config",{metricConfig:s}),null===(d=n[e])||void 0===d||delete d.config,o.x.setItem(i.V.METRIC_PREFS,n),void(0,r.HA)([`Invalid configuration found for metric ${e}!`,"The configuration has been deleted and will not be applied."]))}},9331:(e,t,n)=>{n.d(t,{s:()=>l});var r=n(3014),a=n(3916),i=n(5060),o=n(5665),s=n(5843);class l extends s.I{onActivate(){const e=r.sceneGraph.lookupVariable(o.$,this),t=r.sceneGraph.lookupVariable(a.h,this);this.setInitCounts(e,t),this._subs.add(e.subscribeToState((e,n)=>{(0,i.B)(e.options,n.options)||this.setState({counts:{current:t.state.options.length,total:e.options.length}})})),this._subs.add(t.subscribeToState((t,n)=>{t.loading||n.loading||(0,i.B)(t.options,n.options)||this.setState({counts:{current:t.options.length,total:e.state.options.length}})}))}setInitCounts(e,t){const n={current:0,total:0};!e.state.loading&&e.state.options.length&&(n.total=e.state.options.length),!t.state.loading&&t.state.options.length&&(n.current=t.state.options.length),this.setState({counts:n})}constructor(){super({key:"MetricVariableCountsProvider"}),this.addActivationHandler(this.onActivate.bind(this))}}},9365:(e,t,n)=>{n.d(t,{e:()=>s});var r,a,i,o=n(7781);class s extends o.BusEventWithPayload{}i="metrics-variable-deactivated",(a="type")in(r=s)?Object.defineProperty(r,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[a]=i},9512:(e,t,n)=>{n.d(t,{c:()=>m});var r=n(3014),a=n(902);const i=new Map;function o(e,t){let n=i.get(e);n||(n=new Map,i.set(e,n));let r=n.get(t);if(!r){const i=e.split("_"),o=i.slice(0,i.length/2).join("_");r={halfLeven:(0,a.A)(o,t)||0,wholeLeven:(0,a.A)(e,t)||0},n.set(t,r)}return r}var s=n(5333),l=n(8705),c=n(5060);function u(e,t,n,r,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function d(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function o(e){u(i,r,a,o,s,"next",e)}function s(e){u(i,r,a,o,s,"throw",e)}o(void 0)})}}function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class m{sort(){return d(function*(e=this.sortBy,t={}){const n=this.variable.state.options.map(e=>e.value);if(e===this.sortBy&&(0,c.B)(n,this.lastMetrics))return;let r;switch(e){case"alphabetical":r=(0,s.bG)(n,"asc");break;case"alphabetical-reversed":r=(0,s.bG)(n,"desc");break;case"dashboard-usage":case"alerting-usage":r=yield this.sortByUsage(n,e);break;case"related":a=n,i=t.metric,r=a.sort((e,t)=>{const n=o(e,i),r=o(t,i);return n.halfLeven+n.wholeLeven-(r.halfLeven+r.wholeLeven)});break;default:r=(0,s.Rm)(n)}var a,i;this.sortBy=e,this.lastMetrics=r,this.variable.setState({options:r.map(e=>({label:e,value:e}))}),this.notifyUpdate()}).apply(this,arguments)}sortByUsage(e,t){return d(function*(){try{const n=r.sceneGraph.findByKeyAndType(this.variable,"metrics-sorter",s.fD);if(!n)return l.v.warn("Metrics sorter not found. Returning unsorted metrics.",{usageType:t}),e;const a=yield n.getUsageMetrics(t);return(0,s.yH)(e,a)}catch(n){const r="string"==typeof n?new Error(n):n;return l.v.error(r,{usageType:t}),e}}).call(this)}notifyUpdate(){this.variable.publishEvent(new r.SceneVariableValueChangedEvent(this.variable),!0)}constructor(e){p(this,"variable",void 0),p(this,"lastMetrics",void 0),p(this,"sortBy",void 0),this.variable=e,this.sortBy=void 0,this.lastMetrics=[]}}},9564:(e,t,n)=>{n.d(t,{J:()=>m,c:()=>p});var r=n(7781),a=n(3014),i=n(7401),o=n(1419),s=n(396),l=n(2388),c=n(6024);function u(e,t,n,r,a,i,o){try{var s=e[i](o),l=s.value}catch(e){return void n(e)}s.done?t(l):Promise.resolve(l).then(r,a)}function d(e){return function(){var t=this,n=arguments;return new Promise(function(r,a){var i=e.apply(t,n);function o(e){u(i,r,a,o,s,"next",e)}function s(e){u(i,r,a,o,s,"throw",e)}o(void 0)})}}const p="(none)";class m extends a.RuntimeDataSource{query(){return d(function*(){return{state:r.LoadingState.Done,data:[{name:"Labels",fields:[{name:null,type:r.FieldType.other,values:[],config:{}}],length:0}]}})()}metricFindQuery(e,t){return d(function*(){var n,r;const a=null===(r=t.scopedVars)||void 0===r||null===(n=r.__sceneObject)||void 0===n?void 0:n.valueOf(),o=yield i.q.getPrometheusDataSourceForScene(a);if(!o)return[];var s;const[,c]=null!==(s=e.match(/valuesOf\((.+)\)/))&&void 0!==s?s:[];if(c){return(yield m.fetchLabelValues(c,a)).map(e=>({value:e,text:e}))}let u=[];try{u=yield this.fetchLabels(o,a,e)}catch(e){(0,l.HA)(["Error while fetching labels! Defaulting to an empty array.",e.toString()])}return[{value:p,text:"(none)"},...u]}).call(this)}fetchLabels(e,t,n){return d(function*(){if(!m.getLabelsMatchAPISupport(e)){const n=m.getFiltersFromVariable(t),r=yield e.getTagKeys(n);return this.processLabelOptions(r.map(({text:e})=>({value:e,text:e})))}const r=yield i.q.fetchLabels({ds:e,timeRange:a.sceneGraph.getTimeRange(t).state.value,matcher:n});return this.processLabelOptions(r.map(e=>({value:e,text:e})))}).call(this)}static getLabelsMatchAPISupport(e){try{return e.hasLabelsMatchAPISupport()}catch(e){return(0,l.HA)(["Error while checking if the current data source supports the labels match API! Defaulting to false.",e.toString()]),!1}}static getFiltersFromVariable(e){const t=a.sceneGraph.lookupVariable(o.Ao,e);return(0,s.BE)(t)?{filters:t.state.filters}:{filters:[]}}processLabelOptions(e){return e.filter(({value:e})=>!e.startsWith("__")).sort((e,t)=>(0,c._)(e.value,t.value))}static fetchLabelValues(e,t){return d(function*(){const n=yield i.q.getPrometheusDataSourceForScene(t);if(!n)return[];try{return yield i.q.fetchLabelValues({ds:n,labelName:e,timeRange:a.sceneGraph.getTimeRange(t).state.value})}catch(t){return(0,l.HA)([`Error while retrieving label "${e}" values! Defaulting to an empty array.`,t.toString()]),[]}})()}testDatasource(){return d(function*(){return{status:"success",message:"OK"}})()}constructor(){super(m.uid,m.uid)}}var h,f,b;b="grafana-prometheus-labels-datasource",(f="uid")in(h=m)?Object.defineProperty(h,f,{value:b,enumerable:!0,configurable:!0,writable:!0}):h[f]=b},9694:(e,t,n)=>{n.d(t,{P:()=>l,U:()=>s});var r=n(7781),a=n(1932),i=n(3014),o=n(1419);const s="metrics_filters";class l extends i.AdHocFiltersVariable{constructor(){super({key:s,name:s,hide:r.VariableHide.hideVariable,allowCustomValue:!0,applyMode:"manual",expressionBuilder:e=>e.map(e=>`${(0,a.Nc)(e.key)}${e.operator}"${e.value}"`).join(","),skipUrlSync:!0}),this.addActivationHandler(()=>{const e=i.sceneGraph.findByKeyAndType(this,o.Ao,i.AdHocFiltersVariable),t=e=>{this.setState({baseFilters:e.baseFilters,filters:e.filters})};t(e.state);const n=e.subscribeToState((e,n)=>{e.baseFilters===n.baseFilters&&e.filters===n.filters||t(e)});return()=>{n.unsubscribe()}})}}},9697:(e,t,n)=>{n.d(t,{i:()=>u});var r=n(8531),a=n(3014),i=n(8705),o=n(1419),s=n(1233),l=n(5693),c=n(4440);class u extends a.DataSourceVariable{onActivate(){this.setState({skipUrlSync:!1}),this.subscribeToState((e,t)=>{e.value&&e.value!==t.value&&l.x.setItem(s.V.DATASOURCE,e.value)})}static getCurrentDataSource(){const e=Object.values(r.config.datasources).filter(e=>(0,c.aQ)(e)),t=new URL(window.location.href).searchParams.get(`var-${o.EY}`),n=l.x.getItem(s.V.DATASOURCE),a=e.find(e=>e.uid===t)||e.find(e=>e.uid===n)||e.find(e=>e.isDefault)||e[0];return a?a.uid:(i.v.warn("Cannot find any Prometheus data source!"),"no-data-source-configured")}constructor({initialDS:e}){super({key:o.EY,name:o.EY,pluginId:"prometheus",label:"Data source",description:"Only prometheus data sources are supported",skipUrlSync:!e,value:e||u.getCurrentDataSource()}),this.addActivationHandler(this.onActivate.bind(this))}}}}]);
|
|
//# sourceMappingURL=605.js.map?_cache=24613abfb844135b3c7f
|