@@ -36,9 +36,12 @@ import { getQueryResponseProcessor } from 'datasource/processResponse';
3636import { SECOND } from 'utils/time' ;
3737import { GConstructor } from 'utils/mixins' ;
3838import { LuceneQuery } from '@/utils/lucene' ;
39+ import { uidMaker } from "@/utils/uid"
3940
4041export type BaseQuickwitDataSourceConstructor = GConstructor < BaseQuickwitDataSource >
4142
43+ const getQueryUid = uidMaker ( "query" )
44+
4245type FieldCapsSpec = {
4346 aggregatable ?: boolean ,
4447 searchable ?: boolean ,
@@ -129,11 +132,11 @@ export class BaseQuickwitDataSource
129132 return { ...query , query : lquery . toString ( ) } ;
130133 }
131134
132- getDataQueryRequest ( queryDef : TermsQuery , range : TimeRange ) {
135+ getDataQueryRequest ( queryDef : TermsQuery , range : TimeRange , requestId ?: string ) {
133136 let dataQuery = getDataQuery ( queryDef , 'getTerms' ) ;
134137 const request : DataQueryRequest = {
135138 app : CoreApp . Unknown ,
136- requestId : 'GetTerms' ,
139+ requestId : requestId || getQueryUid . next ( ) ,
137140 interval : '' ,
138141 intervalMs : 0 ,
139142 range,
@@ -145,8 +148,8 @@ export class BaseQuickwitDataSource
145148 return request
146149 }
147150
148- getTerms ( queryDef : TermsQuery , range = getDefaultTimeRange ( ) ) : Observable < MetricFindValue [ ] > {
149- const dataquery = this . getDataQueryRequest ( queryDef , range )
151+ getTerms ( queryDef : TermsQuery , range = getDefaultTimeRange ( ) , requestId ?: string ) : Observable < MetricFindValue [ ] > {
152+ const dataquery = this . getDataQueryRequest ( queryDef , range , requestId )
150153 return super . query ( dataquery ) . pipe (
151154 mergeMap ( res => {
152155 return res . data . map ( ( df : DataFrame ) => {
@@ -282,7 +285,7 @@ export class BaseQuickwitDataSource
282285 return true ;
283286 }
284287
285- metricFindQuery ( query : string , options ?: { range : TimeRange } ) : Promise < MetricFindValue [ ] > {
288+ metricFindQuery ( query : string , options ?: { range : TimeRange , variable ?: { name : string } } ) : Promise < MetricFindValue [ ] > {
286289 const range = options ?. range ;
287290 const parsedQuery = JSON . parse ( query ) ;
288291 if ( query ) {
@@ -293,7 +296,7 @@ export class BaseQuickwitDataSource
293296 if ( parsedQuery . find === 'terms' ) {
294297 parsedQuery . field = this . interpolateLuceneQuery ( parsedQuery . field ) ;
295298 parsedQuery . query = this . interpolateLuceneQuery ( parsedQuery . query ) ;
296- return lastValueFrom ( this . getTerms ( parsedQuery , range ) , { defaultValue :[ ] } ) ;
299+ return lastValueFrom ( this . getTerms ( parsedQuery , range , options ?. variable ?. name ? `getVariableTerms- ${ options ?. variable ?. name } ` : undefined ) , { defaultValue :[ ] } ) ;
297300 }
298301 }
299302 return Promise . resolve ( [ ] ) ;
0 commit comments