From de7f7a695e55ac47fcf0b0a19828653bcedf506b Mon Sep 17 00:00:00 2001 From: Stan van Rooy Date: Wed, 30 Aug 2023 20:25:43 +0200 Subject: [PATCH 1/4] feat: handle query interpolation multi-valued variable --- src/datasource.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/datasource.ts b/src/datasource.ts index 33025b4..9193695 100644 --- a/src/datasource.ts +++ b/src/datasource.ts @@ -58,7 +58,7 @@ export class DataSource extends DataSourceApi { const end = range!.to; const calls = options.targets.map(target => { - const query = getTemplateSrv().replace(target.queryText, options.scopedVars); + const query = getTemplateSrv().replace(target.queryText, options.scopedVars, this.formatter); const request = { "query": query, @@ -89,6 +89,13 @@ export class DataSource extends DataSourceApi { }; } + private formatter(value: string | string[], options: any): string { + if (options.multi) { + return value.map(v => `'${v}'`).join(','); + } + return value; + } + arrayToDataFrame(array: any[]): DataFrame { let dataFrame: MutableDataFrame = new MutableDataFrame(); From 7cb3876708d215e847e3a6fe36dfb89f7c4b0430 Mon Sep 17 00:00:00 2001 From: Stan van Rooy Date: Wed, 30 Aug 2023 20:41:50 +0200 Subject: [PATCH 2/4] fix: cast to string if not multi --- src/datasource.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/datasource.ts b/src/datasource.ts index 9193695..e554cf5 100644 --- a/src/datasource.ts +++ b/src/datasource.ts @@ -93,7 +93,7 @@ export class DataSource extends DataSourceApi { if (options.multi) { return value.map(v => `'${v}'`).join(','); } - return value; + return value as string; } arrayToDataFrame(array: any[]): DataFrame { From ebe45c165264424a9261d45458c1051979d24116 Mon Sep 17 00:00:00 2001 From: Stan van Rooy Date: Wed, 30 Aug 2023 22:44:48 +0200 Subject: [PATCH 3/4] fix: cast value to string[] if multi --- src/datasource.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/datasource.ts b/src/datasource.ts index e554cf5..01b9609 100644 --- a/src/datasource.ts +++ b/src/datasource.ts @@ -91,7 +91,7 @@ export class DataSource extends DataSourceApi { private formatter(value: string | string[], options: any): string { if (options.multi) { - return value.map(v => `'${v}'`).join(','); + return (value as string[]).map(v => `'${v}'`).join(','); } return value as string; } From dab714ea2584e5b494d5b72c8c70cba4f63e58cf Mon Sep 17 00:00:00 2001 From: Stan van Rooy Date: Thu, 31 Aug 2023 08:21:38 +0200 Subject: [PATCH 4/4] Update src/datasource.ts Signed-off-by: Stan van Rooy --- src/datasource.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/datasource.ts b/src/datasource.ts index e4f6364..2072fc4 100644 --- a/src/datasource.ts +++ b/src/datasource.ts @@ -95,6 +95,7 @@ export class DataSource extends DataSourceApi { return (value as string[]).map(v => `'${v}'`).join(','); } return value as string; + } async metricFindQuery(query: string, options?: any): Promise { const to = new Date();