Skip to content

Commit

Permalink
Add requestId to variable terms requests
Browse files Browse the repository at this point in the history
  • Loading branch information
ddelemeny committed Mar 11, 2024
1 parent caf6afa commit 65fe35e
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 6 deletions.
15 changes: 9 additions & 6 deletions src/datasource/base.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,12 @@ import { getQueryResponseProcessor } from 'datasource/processResponse';
import { SECOND } from 'utils/time';
import { GConstructor } from 'utils/mixins';
import { LuceneQuery } from '@/utils/lucene';
import { uidMaker } from "@/utils/uid"

export type BaseQuickwitDataSourceConstructor = GConstructor<BaseQuickwitDataSource>

const getQueryUid = uidMaker("query")

type FieldCapsSpec = {
aggregatable?: boolean,
searchable?: boolean,
Expand Down Expand Up @@ -129,11 +132,11 @@ export class BaseQuickwitDataSource
return { ...query, query: lquery.toString() };
}

getDataQueryRequest(queryDef: TermsQuery, range: TimeRange) {
getDataQueryRequest(queryDef: TermsQuery, range: TimeRange, requestId?: string) {
let dataQuery = getDataQuery(queryDef, 'getTerms');
const request: DataQueryRequest = {
app: CoreApp.Unknown,
requestId: 'GetTerms',
requestId: requestId || getQueryUid.next(),
interval: '',
intervalMs: 0,
range,
Expand All @@ -145,8 +148,8 @@ export class BaseQuickwitDataSource
return request
}

getTerms(queryDef: TermsQuery, range = getDefaultTimeRange()): Observable<MetricFindValue[]> {
const dataquery = this.getDataQueryRequest(queryDef, range)
getTerms(queryDef: TermsQuery, range = getDefaultTimeRange(), requestId?: string): Observable<MetricFindValue[]> {
const dataquery = this.getDataQueryRequest(queryDef, range, requestId)
return super.query(dataquery).pipe(
mergeMap(res=> {
return res.data.map((df: DataFrame)=>{
Expand Down Expand Up @@ -282,7 +285,7 @@ export class BaseQuickwitDataSource
return true;
}

metricFindQuery(query: string, options?: { range: TimeRange }): Promise<MetricFindValue[]> {
metricFindQuery(query: string, options?: { range: TimeRange, variable?: {name: string} }): Promise<MetricFindValue[]> {
const range = options?.range;
const parsedQuery = JSON.parse(query);
if (query) {
Expand All @@ -293,7 +296,7 @@ export class BaseQuickwitDataSource
if (parsedQuery.find === 'terms') {
parsedQuery.field = this.interpolateLuceneQuery(parsedQuery.field);
parsedQuery.query = this.interpolateLuceneQuery(parsedQuery.query);
return lastValueFrom(this.getTerms(parsedQuery, range), {defaultValue:[]});
return lastValueFrom(this.getTerms(parsedQuery, range, options?.variable?.name ? `getVariableTerms-${options?.variable?.name}` : undefined), {defaultValue:[]});
}
}
return Promise.resolve([]);
Expand Down
12 changes: 12 additions & 0 deletions src/utils/uid.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
export function uidMaker(prefix: string){
let i = 1;
return {
next() {

return `${prefix}-${i++}`;
},
reset() {
i=1;
}
}
}

0 comments on commit 65fe35e

Please sign in to comment.