diff --git a/pkg/apiserver/conprof/service.go b/pkg/apiserver/conprof/service.go index 2d878833ce..5c72e37fc3 100644 --- a/pkg/apiserver/conprof/service.go +++ b/pkg/apiserver/conprof/service.go @@ -144,6 +144,7 @@ type ComponentNum struct { PD int `json:"pd"` TiKV int `json:"tikv"` TiFlash int `json:"tiflash"` + TiCDC int `json:"ticdc"` } type GroupProfiles struct { diff --git a/ui/packages/tidb-dashboard-client/src/client/api/models/conprof-component-num.ts b/ui/packages/tidb-dashboard-client/src/client/api/models/conprof-component-num.ts index 7b5dcdbdc1..7976de9de0 100644 --- a/ui/packages/tidb-dashboard-client/src/client/api/models/conprof-component-num.ts +++ b/ui/packages/tidb-dashboard-client/src/client/api/models/conprof-component-num.ts @@ -26,6 +26,12 @@ export interface ConprofComponentNum { * @memberof ConprofComponentNum */ 'pd'?: number; + /** + * + * @type {number} + * @memberof ConprofComponentNum + */ + 'ticdc'?: number; /** * * @type {number} diff --git a/ui/packages/tidb-dashboard-client/swagger/spec.json b/ui/packages/tidb-dashboard-client/swagger/spec.json index b5460c621b..2e988d6a54 100644 --- a/ui/packages/tidb-dashboard-client/swagger/spec.json +++ b/ui/packages/tidb-dashboard-client/swagger/spec.json @@ -3923,6 +3923,9 @@ "pd": { "type": "integer" }, + "ticdc": { + "type": "integer" + }, "tidb": { "type": "integer" }, diff --git a/ui/packages/tidb-dashboard-for-clinic-cloud/src/utils/distro/strings_res.json b/ui/packages/tidb-dashboard-for-clinic-cloud/src/utils/distro/strings_res.json index 722c282408..ab075ffcf6 100644 --- a/ui/packages/tidb-dashboard-for-clinic-cloud/src/utils/distro/strings_res.json +++ b/ui/packages/tidb-dashboard-for-clinic-cloud/src/utils/distro/strings_res.json @@ -1 +1,7 @@ -{ "tidb": "TiDB", "tikv": "TiKV", "pd": "PD", "tiflash": "TiFlash" } +{ + "tidb": "TiDB", + "tikv": "TiKV", + "pd": "PD", + "tiflash": "TiFlash", + "ticdc": "TiCDC" +} diff --git a/ui/packages/tidb-dashboard-for-op/src/utils/distro/strings_res.json b/ui/packages/tidb-dashboard-for-op/src/utils/distro/strings_res.json index 153485ad90..ab075ffcf6 100644 --- a/ui/packages/tidb-dashboard-for-op/src/utils/distro/strings_res.json +++ b/ui/packages/tidb-dashboard-for-op/src/utils/distro/strings_res.json @@ -1 +1,7 @@ -{"tidb":"TiDB","tikv":"TiKV","pd":"PD","tiflash":"TiFlash"} \ No newline at end of file +{ + "tidb": "TiDB", + "tikv": "TiKV", + "pd": "PD", + "tiflash": "TiFlash", + "ticdc": "TiCDC" +} diff --git a/ui/packages/tidb-dashboard-lib/src/apps/ClusterInfo/components/DiskTable.tsx b/ui/packages/tidb-dashboard-lib/src/apps/ClusterInfo/components/DiskTable.tsx index 4956a605c4..0d37ebbeb7 100644 --- a/ui/packages/tidb-dashboard-lib/src/apps/ClusterInfo/components/DiskTable.tsx +++ b/ui/packages/tidb-dashboard-lib/src/apps/ClusterInfo/components/DiskTable.tsx @@ -41,7 +41,8 @@ function expandDisksItems(rows: HostinfoInfo[]): IExpandedDiskItem[] { pd: 0, tidb: 0, tikv: 0, - tiflash: 0 + tiflash: 0, + ticdc: 0 } } instancesPerPartition[i.partition_path_lower!][i.type!]++ @@ -72,7 +73,8 @@ function expandDisksItems(rows: HostinfoInfo[]): IExpandedDiskItem[] { pd: 0, tidb: 0, tikv: 0, - tiflash: 0 + tiflash: 0, + ticdc: 0 } }) } diff --git a/ui/packages/tidb-dashboard-lib/src/apps/ClusterInfo/components/HostTable.tsx b/ui/packages/tidb-dashboard-lib/src/apps/ClusterInfo/components/HostTable.tsx index f4d4fc9390..37c77dfd24 100644 --- a/ui/packages/tidb-dashboard-lib/src/apps/ClusterInfo/components/HostTable.tsx +++ b/ui/packages/tidb-dashboard-lib/src/apps/ClusterInfo/components/HostTable.tsx @@ -27,7 +27,8 @@ function expandHostItems(rows: HostinfoInfo[]): IExpandedHostItem[] { pd: 0, tidb: 0, tikv: 0, - tiflash: 0 + tiflash: 0, + ticdc: 0 } Object.values(row.instances ?? {}).forEach((i) => { diff --git a/ui/packages/tidb-dashboard-lib/src/apps/ContinuousProfiling/pages/List.tsx b/ui/packages/tidb-dashboard-lib/src/apps/ContinuousProfiling/pages/List.tsx index 0ec496426b..fe089b3f8c 100644 --- a/ui/packages/tidb-dashboard-lib/src/apps/ContinuousProfiling/pages/List.tsx +++ b/ui/packages/tidb-dashboard-lib/src/apps/ContinuousProfiling/pages/List.tsx @@ -104,16 +104,21 @@ export default function Page() { { name: t('conprof.list.table.columns.targets'), key: 'targets', - minWidth: 150, - maxWidth: 250, + minWidth: 250, + maxWidth: 300, onRender: (rec) => { - const { tikv, tidb, pd, tiflash } = rec.component_num - const s = `${tikv} ${instanceKindName( + const { tikv, tidb, pd, tiflash, ticdc } = rec.component_num + let s = `${tikv} ${instanceKindName( 'tikv' )}, ${tidb} ${instanceKindName('tidb')}, ${pd} ${instanceKindName( 'pd' )}, ${tiflash} ${instanceKindName('tiflash')}` - return {s} + // to be compatible with old version + // this field doesn't not exist in the old version + if (ticdc !== undefined) { + s = `${s}, ${ticdc} ${instanceKindName('ticdc')}` + } + return s } }, { @@ -166,8 +171,8 @@ export default function Page() { { name: t('conprof.list.table.columns.start_at'), key: 'ts', - minWidth: 160, - maxWidth: 220, + minWidth: 200, + maxWidth: 250, onRender: (rec) => { return } diff --git a/ui/packages/tidb-dashboard-lib/src/client/models.ts b/ui/packages/tidb-dashboard-lib/src/client/models.ts index d6e2ea9994..20f9f39ee1 100644 --- a/ui/packages/tidb-dashboard-lib/src/client/models.ts +++ b/ui/packages/tidb-dashboard-lib/src/client/models.ts @@ -375,6 +375,12 @@ export interface ConprofComponentNum { * @memberof ConprofComponentNum */ 'pd'?: number; + /** + * + * @type {number} + * @memberof ConprofComponentNum + */ + 'ticdc'?: number; /** * * @type {number} diff --git a/ui/packages/tidb-dashboard-lib/src/components/InstanceSelect/ValueDisplay.tsx b/ui/packages/tidb-dashboard-lib/src/components/InstanceSelect/ValueDisplay.tsx index 74134d1d14..a7237c7b13 100644 --- a/ui/packages/tidb-dashboard-lib/src/components/InstanceSelect/ValueDisplay.tsx +++ b/ui/packages/tidb-dashboard-lib/src/components/InstanceSelect/ValueDisplay.tsx @@ -36,7 +36,8 @@ export default function ValueDisplay({ pd: newInstanceStat(), tidb: newInstanceStat(), tikv: newInstanceStat(), - tiflash: newInstanceStat() + tiflash: newInstanceStat(), + ticdc: newInstanceStat() } items.forEach((item) => { instanceStats[item.instanceKind].all++ diff --git a/ui/packages/tidb-dashboard-lib/src/utils/instanceTable.ts b/ui/packages/tidb-dashboard-lib/src/utils/instanceTable.ts index 047f4ab2e7..bf45d1a21d 100644 --- a/ui/packages/tidb-dashboard-lib/src/utils/instanceTable.ts +++ b/ui/packages/tidb-dashboard-lib/src/utils/instanceTable.ts @@ -8,9 +8,8 @@ import { TopologyStoreInfo } from '@lib/client' -export type InstanceKind = 'pd' | 'tidb' | 'tikv' | 'tiflash' - -export const InstanceKinds: InstanceKind[] = ['pd', 'tidb', 'tikv', 'tiflash'] +export const InstanceKinds = ['pd', 'tidb', 'tikv', 'tiflash', 'ticdc'] as const +export type InstanceKind = typeof InstanceKinds[number] export const InstanceStatus = { Unreachable: 0, diff --git a/util/distro/distro.go b/util/distro/distro.go index 638fa592cc..b427ac3b53 100644 --- a/util/distro/distro.go +++ b/util/distro/distro.go @@ -22,6 +22,7 @@ type DistributionResource struct { TiKV string `json:"tikv,omitempty"` PD string `json:"pd,omitempty"` TiFlash string `json:"tiflash,omitempty"` + TiCDC string `json:"ticdc,omitempty"` } var defaultDistroRes = DistributionResource{ @@ -30,6 +31,7 @@ var defaultDistroRes = DistributionResource{ TiKV: "TiKV", PD: "PD", TiFlash: "TiFlash", + TiCDC: "TiCDC", } var (