From 00d0e3888fd56a2181998bb850b674cfec45af0d Mon Sep 17 00:00:00 2001 From: chris-sun-star Date: Fri, 30 Jan 2026 16:32:48 +0800 Subject: [PATCH 1/6] bump dashboard version to 0.6.0 --- charts/oceanbase-dashboard/Chart.yaml | 4 ++-- make/dashboard.mk | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/charts/oceanbase-dashboard/Chart.yaml b/charts/oceanbase-dashboard/Chart.yaml index dfcb42411..a88181468 100644 --- a/charts/oceanbase-dashboard/Chart.yaml +++ b/charts/oceanbase-dashboard/Chart.yaml @@ -15,10 +15,10 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.5.0 +version: 0.6.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "0.5.0" +appVersion: "0.6.0" diff --git a/make/dashboard.mk b/make/dashboard.mk index 931e53446..bed0fe8a2 100644 --- a/make/dashboard.mk +++ b/make/dashboard.mk @@ -4,7 +4,7 @@ PROJECT=oceanbase-dashboard PWD ?= $(shell pwd) -DASHBOARD_VERSION ?= 0.5.0 +DASHBOARD_VERSION ?= 0.6.0 DASHBOARD_IMG ?= quay.io/oceanbase/oceanbase-dashboard:${DASHBOARD_VERSION} COMMIT_HASH ?= $(shell git rev-parse --short HEAD) BUILD_TIMESTAMP ?= $(shell date '+%Y%m%d%H%M%S') From f89a817d05b5a332a99b3feeea58e51dbf417ae9 Mon Sep 17 00:00:00 2001 From: chris-sun-star Date: Fri, 30 Jan 2026 17:29:04 +0800 Subject: [PATCH 2/6] add workflow to release sql-analyzer --- .github/workflows/release-sql-analyzer.yml | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/.github/workflows/release-sql-analyzer.yml b/.github/workflows/release-sql-analyzer.yml index 5af8162a0..5f25d87c9 100644 --- a/.github/workflows/release-sql-analyzer.yml +++ b/.github/workflows/release-sql-analyzer.yml @@ -3,8 +3,7 @@ name: release sql-analyzer on: push: tags: - - 'sql-analyzer-[0-9]+.[0-9]+.[0-9]+' - - '[0-9]+.[0-9]+.[0-9]+' + - "sql-analyzer-[0-9]+.[0-9]+.[0-9]+" env: tagName: ${{ github.ref_name }} @@ -21,6 +20,10 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 + with: + config-inline: | + [worker.oci] + max-parallelism = 1 - name: Log in to Docker hub uses: docker/login-action@v3 @@ -47,17 +50,17 @@ jobs: run: | echo "version=$(echo $tagName | grep -P '(\d*\.\d*\.\d*)' --only-matching)" >> $GITHUB_OUTPUT - - name: Create and push manifests w/o cache + - name: Build and push sql-analyzer w/o cache uses: docker/build-push-action@v6 with: context: . platforms: linux/amd64,linux/arm64 - file: build/Dockerfile.sql-analyzer + file: ./build/Dockerfile.sql-analyzer push: true tags: | ${{ vars.DOCKER_PUSH_BASE }}/sql-analyzer:${{ steps.set_version_vars.outputs.version }} - ${{ vars.DOCKER_PUSH_BASE }}/sql-analyzer:latest quay.io/${{ vars.QUAY_IO_PUSH_BASE }}/sql-analyzer:${{ steps.set_version_vars.outputs.version }} - quay.io/${{ vars.QUAY_IO_PUSH_BASE }}/sql-analyzer:latest ghcr.io/${{ github.repository_owner }}/sql-analyzer:${{ steps.set_version_vars.outputs.version }} - ghcr.io/${{ github.repository_owner }}/sql-analyzer:latest + build-args: | + VERSION=${{ steps.set_version_vars.outputs.version }} + COMMIT_HASH=${{ github.sha }} From a7650f90116fc74c98cf1129e651179dd1425789 Mon Sep 17 00:00:00 2001 From: chris-sun-star Date: Fri, 30 Jan 2026 17:57:45 +0800 Subject: [PATCH 3/6] release with tag latest as well --- .github/workflows/release-sql-analyzer.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/release-sql-analyzer.yml b/.github/workflows/release-sql-analyzer.yml index 5f25d87c9..7da437c67 100644 --- a/.github/workflows/release-sql-analyzer.yml +++ b/.github/workflows/release-sql-analyzer.yml @@ -61,6 +61,9 @@ jobs: ${{ vars.DOCKER_PUSH_BASE }}/sql-analyzer:${{ steps.set_version_vars.outputs.version }} quay.io/${{ vars.QUAY_IO_PUSH_BASE }}/sql-analyzer:${{ steps.set_version_vars.outputs.version }} ghcr.io/${{ github.repository_owner }}/sql-analyzer:${{ steps.set_version_vars.outputs.version }} + ${{ vars.DOCKER_PUSH_BASE }}/sql-analyzer:latest + quay.io/${{ vars.QUAY_IO_PUSH_BASE }}/sql-analyzer:latest + ghcr.io/${{ github.repository_owner }}/sql-analyzer:latest build-args: | VERSION=${{ steps.set_version_vars.outputs.version }} COMMIT_HASH=${{ github.sha }} From f130c7f02b9339419a02a11e8415a937e43e6f19 Mon Sep 17 00:00:00 2001 From: chris-sun-star Date: Fri, 30 Jan 2026 17:58:27 +0800 Subject: [PATCH 4/6] set parallelism --- .github/workflows/release-sql-analyzer.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/release-sql-analyzer.yml b/.github/workflows/release-sql-analyzer.yml index 7da437c67..04fdbf9a4 100644 --- a/.github/workflows/release-sql-analyzer.yml +++ b/.github/workflows/release-sql-analyzer.yml @@ -20,10 +20,6 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - with: - config-inline: | - [worker.oci] - max-parallelism = 1 - name: Log in to Docker hub uses: docker/login-action@v3 From 41e1fc925296a79834607151201caa4b041a3bea Mon Sep 17 00:00:00 2001 From: chris-sun-star Date: Fri, 30 Jan 2026 17:59:31 +0800 Subject: [PATCH 5/6] delete unused build args --- .github/workflows/release-sql-analyzer.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/release-sql-analyzer.yml b/.github/workflows/release-sql-analyzer.yml index 04fdbf9a4..ed0063b60 100644 --- a/.github/workflows/release-sql-analyzer.yml +++ b/.github/workflows/release-sql-analyzer.yml @@ -60,6 +60,3 @@ jobs: ${{ vars.DOCKER_PUSH_BASE }}/sql-analyzer:latest quay.io/${{ vars.QUAY_IO_PUSH_BASE }}/sql-analyzer:latest ghcr.io/${{ github.repository_owner }}/sql-analyzer:latest - build-args: | - VERSION=${{ steps.set_version_vars.outputs.version }} - COMMIT_HASH=${{ github.sha }} From 8515ea864089579610d96d7febe76f5d1ac88cde Mon Sep 17 00:00:00 2001 From: chris-sun-star Date: Tue, 3 Feb 2026 17:20:14 +0800 Subject: [PATCH 6/6] use the latest sql plan to get the cost --- internal/sql-analyzer/const/sql/sql_plan.go | 60 ++++++------------- .../sql-analyzer/generated/swagger/docs.go | 3 +- .../generated/swagger/swagger.json | 3 +- .../generated/swagger/swagger.yaml | 3 +- 4 files changed, 25 insertions(+), 44 deletions(-) diff --git a/internal/sql-analyzer/const/sql/sql_plan.go b/internal/sql-analyzer/const/sql/sql_plan.go index bb525487f..db7016d67 100644 --- a/internal/sql-analyzer/const/sql/sql_plan.go +++ b/internal/sql-analyzer/const/sql/sql_plan.go @@ -83,32 +83,6 @@ const ( CheckPlanExistence = `SELECT COUNT(*) FROM sql_plan WHERE TENANT_ID = ? AND SVR_IP = ? AND SVR_PORT = ? AND PLAN_ID = ?` GetPlanStats = ` WITH PlanAgg AS ( - SELECT - TENANT_ID, - SVR_IP, - SVR_PORT, - PLAN_ID, - PLAN_HASH, - MAX(GMT_CREATE) as GMT_CREATE, - SUM(IO_COST) as IO_COST, - SUM(CPU_COST) as CPU_COST, - SUM(COST) as COST, - SUM(REAL_COST) as REAL_COST - FROM sql_plan - WHERE SQL_ID = ? - GROUP BY TENANT_ID, SVR_IP, SVR_PORT, PLAN_ID, PLAN_HASH - ), - PlanStats AS ( - SELECT - PLAN_HASH, - CAST(AVG(IO_COST) AS BIGINT) as IO_COST, - CAST(AVG(CPU_COST) AS BIGINT) as CPU_COST, - CAST(AVG(COST) AS BIGINT) as COST, - CAST(AVG(REAL_COST) AS BIGINT) as REAL_COST - FROM PlanAgg - GROUP BY PLAN_HASH - ), - LatestPlan AS ( SELECT TENANT_ID, SVR_IP, @@ -116,23 +90,27 @@ const ( PLAN_ID, PLAN_HASH, GMT_CREATE, - ROW_NUMBER() OVER (PARTITION BY PLAN_HASH ORDER BY GMT_CREATE DESC, PLAN_ID DESC) as rn - FROM PlanAgg + IO_COST, + CPU_COST, + COST, + REAL_COST, + ROW_NUMBER() OVER (PARTITION BY TENANT_ID, SVR_IP, SVR_PORT, PLAN_HASH ORDER BY GMT_CREATE DESC, PLAN_ID DESC) as rn + FROM sql_plan + WHERE SQL_ID = ? AND ID = 0 ) SELECT - lp.TENANT_ID, - lp.SVR_IP, - lp.SVR_PORT, - lp.PLAN_ID, - lp.PLAN_HASH, - lp.GMT_CREATE, - ps.IO_COST, - ps.CPU_COST, - ps.COST, - ps.REAL_COST - FROM LatestPlan lp - JOIN PlanStats ps ON lp.PLAN_HASH = ps.PLAN_HASH - WHERE lp.rn = 1 + TENANT_ID, + SVR_IP, + SVR_PORT, + PLAN_ID, + PLAN_HASH, + GMT_CREATE, + IO_COST, + CPU_COST, + COST, + REAL_COST + FROM PlanAgg + WHERE rn = 1 ` GetTableInfo = ` SELECT diff --git a/internal/sql-analyzer/generated/swagger/docs.go b/internal/sql-analyzer/generated/swagger/docs.go index 475eeb409..5722b48c2 100644 --- a/internal/sql-analyzer/generated/swagger/docs.go +++ b/internal/sql-analyzer/generated/swagger/docs.go @@ -333,7 +333,8 @@ const docTemplate = `{ "type": "integer" }, "planHash": { - "type": "integer" + "type": "string", + "example": "0" }, "planId": { "type": "integer" diff --git a/internal/sql-analyzer/generated/swagger/swagger.json b/internal/sql-analyzer/generated/swagger/swagger.json index ecb1993cd..2561bae13 100644 --- a/internal/sql-analyzer/generated/swagger/swagger.json +++ b/internal/sql-analyzer/generated/swagger/swagger.json @@ -322,7 +322,8 @@ "type": "integer" }, "planHash": { - "type": "integer" + "type": "string", + "example": "0" }, "planId": { "type": "integer" diff --git a/internal/sql-analyzer/generated/swagger/swagger.yaml b/internal/sql-analyzer/generated/swagger/swagger.yaml index 484218797..8e0494917 100644 --- a/internal/sql-analyzer/generated/swagger/swagger.yaml +++ b/internal/sql-analyzer/generated/swagger/swagger.yaml @@ -62,7 +62,8 @@ definitions: ioCost: type: integer planHash: - type: integer + example: "0" + type: string planId: type: integer realCost: