From beb864361a64c29ede66b303b0076027164925f1 Mon Sep 17 00:00:00 2001 From: Yang Wang Date: Fri, 14 Nov 2025 17:05:16 -0800 Subject: [PATCH 1/5] hidemetadata --- .../benchmarkDataQueryBuilder.ts | 10 +++-- .../listCommitQueryBuilder.ts | 44 +++++++++++++++---- .../pages/api/benchmark/get_time_series.ts | 4 +- 3 files changed, 46 insertions(+), 12 deletions(-) diff --git a/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/benchmarkDataQueryBuilder.ts b/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/benchmarkDataQueryBuilder.ts index 9a428af2ae..5afa92467c 100644 --- a/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/benchmarkDataQueryBuilder.ts +++ b/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/benchmarkDataQueryBuilder.ts @@ -222,9 +222,9 @@ export class BenchmarkDataQuery extends ExecutableQueryBase { startsWith({device: String }, device) OR {device: String } = '' ) - AND ( - arch LIKE concat('%', {arch: String }, '%') - OR {arch: String } = '' + AND ( + multiSearchAnyCaseInsensitive(arch, {arches: Array(String)}) + OR empty({arches: Array(String)}) ) {{WHERE}} ORDER BY @@ -363,6 +363,10 @@ export class BenchmarkDataQuery extends ExecutableQueryBase { inputs.branches = [inputs.branch]; } + if (inputs.arch && !inputs.arches) { + inputs.arches = [inputs.arch]; + } + const params = { ...this.DEFAULT_PARAMS, ...inputs }; return params; } diff --git a/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/listCommitQueryBuilder.ts b/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/listCommitQueryBuilder.ts index 586343e785..acecfe032c 100644 --- a/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/listCommitQueryBuilder.ts +++ b/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/listCommitQueryBuilder.ts @@ -9,7 +9,7 @@ export class BenchmarkListCommitQueryBuilder private _DEFAULT_QUERY_PARAMS = { branches: [], devices: [], - arch: [], + arches: [], dtypes: [], modes: [], startTime: "", @@ -58,15 +58,17 @@ WHERE has({backends: Array(String)}, model_backend) OR empty({backends: Array(String)}) ) - AND notEmpty(device) - AND (benchmark_dtype = {dtype: String} OR empty({dtype: String})) AND ( - arch LIKE concat('%', {arch: String}, '%') - OR {arch: String} = '' + has({dtypes: Array(String) },benchmark_dtype) + OR empty({dtypes: Array(String) }) ) AND ( - startsWith(device, {device: String}) - OR {device: String} = '' + multiSearchAnyCaseInsensitive(arch, {arches: Array(String)}) + OR empty({arches: Array(String)}) + ) + AND ( + has({devices: Array(String)}, device) + OR empty({devices: Array(String) }) ) {{WHERE}} GROUP BY @@ -83,15 +85,41 @@ ORDER BY build() { return this.builder.build(); } + addWhere(where: string[]) { this.builder.addWhere(where); } toQueryParams(inputs: any, id?: string) { - return { + if (inputs.backend && !inputs.backends) { + inputs.backends = [inputs.backend]; + } + + if (inputs.dtype && !inputs.dtypes) { + inputs.dtypes = [inputs.dtype]; + } + + if (inputs.model && !inputs.models) { + inputs.models = [inputs.model]; + } + if (inputs.branch && !inputs.branches) { + inputs.branches = [inputs.branch]; + } + + if (inputs.arch && !inputs.arches) { + inputs.arches = [inputs.arch]; + } + + if (inputs.device && !inputs.devices) { + inputs.devices = [inputs.device]; + } + + const params= { ...this._DEFAULT_QUERY_PARAMS, ...inputs, }; + console.log("elaine check params: ",params) + return params } postProcess(data: any) { return data; diff --git a/torchci/pages/api/benchmark/get_time_series.ts b/torchci/pages/api/benchmark/get_time_series.ts index ea76e2543a..c8bf933be2 100644 --- a/torchci/pages/api/benchmark/get_time_series.ts +++ b/torchci/pages/api/benchmark/get_time_series.ts @@ -1,5 +1,5 @@ import { CompilerQueryType } from "lib/benchmark/api_helper/backend/common/type"; -import { readApiGetParams } from "lib/benchmark/api_helper/backend/common/utils"; +import { listGeneralCommits, readApiGetParams } from "lib/benchmark/api_helper/backend/common/utils"; import { getCompilerBenchmarkTimeSeriesData } from "lib/benchmark/api_helper/backend/compilers/compiler_benchmark_data"; import { getBenchmarkDataFetcher } from "lib/benchmark/api_helper/backend/dataFetchers/fetchers"; import type { NextApiRequest, NextApiResponse } from "next"; @@ -91,6 +91,8 @@ async function getGenernalBenchmarkTimeSeries( formats: string[], id: string ) { + + const fetcher = getBenchmarkDataFetcher(id); const result = await fetcher.applyQuery(query_params); return fetcher.applyFormat(result, formats); From 045da09fc6da2e08e479ee59806cde3e637853b2 Mon Sep 17 00:00:00 2001 From: Yang Wang Date: Fri, 14 Nov 2025 18:03:49 -0800 Subject: [PATCH 2/5] hidemetadata --- .../benchmarkDataQueryBuilder.ts | 21 +++++---- .../listCommitQueryBuilder.ts | 2 + .../pages/api/benchmark/get_time_series.ts | 44 +++++++++++++++++-- 3 files changed, 55 insertions(+), 12 deletions(-) diff --git a/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/benchmarkDataQueryBuilder.ts b/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/benchmarkDataQueryBuilder.ts index 5afa92467c..7f104d7e2d 100644 --- a/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/benchmarkDataQueryBuilder.ts +++ b/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/benchmarkDataQueryBuilder.ts @@ -67,16 +67,16 @@ export class BenchmarkDataQuery extends ExecutableQueryBase { private _extra_keys = new Set(); DEFAULT_PARAMS = { - arch: "", - mode: "", - device: "", + branches: [], + backends: [], + devices: [], + arches: [], + dtypes: [], + modes: [], granularity: "hour", excludedMetrics: [], models: [], - branches: [], workflows: [], - backends: [], - dtypes: [], }; // must included in all select statement @@ -169,8 +169,8 @@ export class BenchmarkDataQuery extends ExecutableQueryBase { OR empty({backends: Array(String) }) ) AND ( - o.benchmark.'mode' = {mode: String } - OR {mode: String } = '' + has({modes: Array(String) }, o.benchmark.'mode') + OR empty({modes: Array(String) }) ) AND ( has({dtypes: Array(String) }, o.benchmark.'dtype') @@ -356,6 +356,9 @@ export class BenchmarkDataQuery extends ExecutableQueryBase { inputs.dtypes = [inputs.dtype]; } + if (inputs.mode && !inputs.modes) { + inputs.modes = [inputs.mode]; + } if (inputs.model && !inputs.models) { inputs.models = [inputs.model]; } @@ -368,6 +371,8 @@ export class BenchmarkDataQuery extends ExecutableQueryBase { } const params = { ...this.DEFAULT_PARAMS, ...inputs }; + + console.log("elainetest:", params) return params; } } diff --git a/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/listCommitQueryBuilder.ts b/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/listCommitQueryBuilder.ts index acecfe032c..6efbd8e897 100644 --- a/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/listCommitQueryBuilder.ts +++ b/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/listCommitQueryBuilder.ts @@ -12,6 +12,7 @@ export class BenchmarkListCommitQueryBuilder arches: [], dtypes: [], modes: [], + backends: [], startTime: "", stopTime: "", }; @@ -114,6 +115,7 @@ ORDER BY inputs.devices = [inputs.device]; } + const params= { ...this._DEFAULT_QUERY_PARAMS, ...inputs, diff --git a/torchci/pages/api/benchmark/get_time_series.ts b/torchci/pages/api/benchmark/get_time_series.ts index c8bf933be2..3e8a03ccea 100644 --- a/torchci/pages/api/benchmark/get_time_series.ts +++ b/torchci/pages/api/benchmark/get_time_series.ts @@ -1,7 +1,8 @@ import { CompilerQueryType } from "lib/benchmark/api_helper/backend/common/type"; import { listGeneralCommits, readApiGetParams } from "lib/benchmark/api_helper/backend/common/utils"; import { getCompilerBenchmarkTimeSeriesData } from "lib/benchmark/api_helper/backend/compilers/compiler_benchmark_data"; -import { getBenchmarkDataFetcher } from "lib/benchmark/api_helper/backend/dataFetchers/fetchers"; +import { getBenchmarkDataFetcher, getListBenchmarkCommitsFetcher } from "lib/benchmark/api_helper/backend/dataFetchers/fetchers"; +import { getGeneralCommits } from "lib/benchmark/api_helper/backend/list_commits"; import type { NextApiRequest, NextApiResponse } from "next"; /** @@ -91,9 +92,44 @@ async function getGenernalBenchmarkTimeSeries( formats: string[], id: string ) { - - + const params = await getGeneralBenchmarkTimeRangeQueryParams(id, query_params); + const fetcher = getBenchmarkDataFetcher(id); - const result = await fetcher.applyQuery(query_params); + const result = await fetcher.applyQuery(params); return fetcher.applyFormat(result, formats); } + + +export async function getGeneralBenchmarkTimeRangeQueryParams( + id: string, + inputparams: any +) { + const queryParams = { + ...inputparams, // override with caller's values + }; + + if (!queryParams.workflows || queryParams.workflows.length == 0) { + const { data: commit_results } = await getGeneralCommits( + id, + queryParams + ); + const unique_workflows = [ + ...new Set(commit_results.map((c:any) => c.workflow_id)), + ]; + console.log( + `no workflows provided in request, searched unqiue workflows based on + start/end time unique_workflows: ${unique_workflows.length}` + ); + if (commit_results.length > 0) { + queryParams["workflows"] = unique_workflows; + } else { + console.log(`no workflow found in clickhouse using ${queryParams}`); + return []; + } + } else { + console.log( + `input provided workflows found using ${queryParams.workflows}` + ); + } + return queryParams; +} From bee14ca3df88bd13d2fcd607e2bc6de4454ed3d7 Mon Sep 17 00:00:00 2001 From: Yang Wang Date: Tue, 2 Dec 2025 10:27:33 +0900 Subject: [PATCH 3/5] hidemetadata --- .../dataFetchers/queryBuilderUtils/listCommitQueryBuilder.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/listCommitQueryBuilder.ts b/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/listCommitQueryBuilder.ts index 6efbd8e897..f7e6349aa9 100644 --- a/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/listCommitQueryBuilder.ts +++ b/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/listCommitQueryBuilder.ts @@ -115,12 +115,10 @@ ORDER BY inputs.devices = [inputs.device]; } - const params= { ...this._DEFAULT_QUERY_PARAMS, ...inputs, }; - console.log("elaine check params: ",params) return params } postProcess(data: any) { From 837e3d1ad7b58b1600c884314885f147daec3cab Mon Sep 17 00:00:00 2001 From: Yang Wang Date: Tue, 2 Dec 2025 10:28:36 +0900 Subject: [PATCH 4/5] hidemetadata --- .../benchmarkDataQueryBuilder.ts | 2 +- .../listCommitQueryBuilder.ts | 4 ++-- .../pages/api/benchmark/get_time_series.ts | 19 +++++++++---------- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/benchmarkDataQueryBuilder.ts b/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/benchmarkDataQueryBuilder.ts index 3ba8f0989f..f3083c594c 100644 --- a/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/benchmarkDataQueryBuilder.ts +++ b/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/benchmarkDataQueryBuilder.ts @@ -372,7 +372,7 @@ export class BenchmarkDataQuery extends ExecutableQueryBase { const params = { ...this.DEFAULT_PARAMS, ...inputs }; - console.log("elainetest:", params) + console.log("elainetest:", params); return params; } } diff --git a/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/listCommitQueryBuilder.ts b/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/listCommitQueryBuilder.ts index f7e6349aa9..f1c45e4924 100644 --- a/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/listCommitQueryBuilder.ts +++ b/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/listCommitQueryBuilder.ts @@ -115,11 +115,11 @@ ORDER BY inputs.devices = [inputs.device]; } - const params= { + const params = { ...this._DEFAULT_QUERY_PARAMS, ...inputs, }; - return params + return params; } postProcess(data: any) { return data; diff --git a/torchci/pages/api/benchmark/get_time_series.ts b/torchci/pages/api/benchmark/get_time_series.ts index a9342bbe1c..adc964cfce 100644 --- a/torchci/pages/api/benchmark/get_time_series.ts +++ b/torchci/pages/api/benchmark/get_time_series.ts @@ -1,8 +1,8 @@ import { checkAuthWithApiToken } from "lib/auth/auth"; import { CompilerQueryType } from "lib/benchmark/api_helper/backend/common/type"; -import { listGeneralCommits, readApiGetParams } from "lib/benchmark/api_helper/backend/common/utils"; +import { readApiGetParams } from "lib/benchmark/api_helper/backend/common/utils"; import { getCompilerBenchmarkTimeSeriesData } from "lib/benchmark/api_helper/backend/compilers/compiler_benchmark_data"; -import { getBenchmarkDataFetcher, getListBenchmarkCommitsFetcher } from "lib/benchmark/api_helper/backend/dataFetchers/fetchers"; +import { getBenchmarkDataFetcher } from "lib/benchmark/api_helper/backend/dataFetchers/fetchers"; import { getGeneralCommits } from "lib/benchmark/api_helper/backend/list_commits"; import type { NextApiRequest, NextApiResponse } from "next"; @@ -102,14 +102,16 @@ async function getGenernalBenchmarkTimeSeries( formats: string[], id: string ) { - const params = await getGeneralBenchmarkTimeRangeQueryParams(id, query_params); - + const params = await getGeneralBenchmarkTimeRangeQueryParams( + id, + query_params + ); + const fetcher = getBenchmarkDataFetcher(id); const result = await fetcher.applyQuery(params); return fetcher.applyFormat(result, formats); } - export async function getGeneralBenchmarkTimeRangeQueryParams( id: string, inputparams: any @@ -119,12 +121,9 @@ export async function getGeneralBenchmarkTimeRangeQueryParams( }; if (!queryParams.workflows || queryParams.workflows.length == 0) { - const { data: commit_results } = await getGeneralCommits( - id, - queryParams - ); + const { data: commit_results } = await getGeneralCommits(id, queryParams); const unique_workflows = [ - ...new Set(commit_results.map((c:any) => c.workflow_id)), + ...new Set(commit_results.map((c: any) => c.workflow_id)), ]; console.log( `no workflows provided in request, searched unqiue workflows based on From 82e9603080a79cbb75d79cadbf6909ba390fd99d Mon Sep 17 00:00:00 2001 From: Yang Wang Date: Tue, 2 Dec 2025 10:39:23 +0900 Subject: [PATCH 5/5] hidemetadata --- .../dataFetchers/queryBuilderUtils/benchmarkDataQueryBuilder.ts | 2 +- .../dataFetchers/queryBuilderUtils/listCommitQueryBuilder.ts | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/benchmarkDataQueryBuilder.ts b/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/benchmarkDataQueryBuilder.ts index f3083c594c..8af8a8fd4b 100644 --- a/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/benchmarkDataQueryBuilder.ts +++ b/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/benchmarkDataQueryBuilder.ts @@ -372,7 +372,7 @@ export class BenchmarkDataQuery extends ExecutableQueryBase { const params = { ...this.DEFAULT_PARAMS, ...inputs }; - console.log("elainetest:", params); + console.log("[benchmarkDatQueryBuilder] query calls to db:", params); return params; } } diff --git a/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/listCommitQueryBuilder.ts b/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/listCommitQueryBuilder.ts index f1c45e4924..badae39461 100644 --- a/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/listCommitQueryBuilder.ts +++ b/torchci/lib/benchmark/api_helper/backend/dataFetchers/queryBuilderUtils/listCommitQueryBuilder.ts @@ -119,6 +119,8 @@ ORDER BY ...this._DEFAULT_QUERY_PARAMS, ...inputs, }; + + console.log("[listCommitQueryBuilder] query calls to db:", params); return params; } postProcess(data: any) {