Skip to content

Commit

Permalink
statement,slowquery: add request unit part in list
Browse files Browse the repository at this point in the history
Signed-off-by: nolouch <[email protected]>
  • Loading branch information
nolouch committed Jan 9, 2024
1 parent 473bf80 commit f0085ee
Show file tree
Hide file tree
Showing 12 changed files with 162 additions and 5 deletions.
5 changes: 5 additions & 0 deletions pkg/apiserver/slowquery/model.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,11 @@ type Model struct {
// Computed fields
BinaryPlanJSON string `json:"binary_plan_json"` // binary plan json format
BinaryPlanText string `json:"binary_plan_text"` // binary plan plain text

// Resource Control
RU float64 `gorm:"column:RU" json:"ru" proj:"(Request_unit_write + Request_unit_read)"`
QueuedTime float64 `gorm:"column:Time_queued_by_rc" json:"time_queued_by_rc"`
ResourceGroup string `gorm:"column:Resource_group" json:"resource_group"`
}

type Field struct {
Expand Down
5 changes: 4 additions & 1 deletion pkg/apiserver/slowquery/statement_gen.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,10 @@ func genOrderStmt(tableColumns []string, orderBy string, isDesc bool) (string, e
} else {
// We have both TiDB 4.x and TiDB 5.x columns listed in the model. Filter out columns that do not exist in current version TiDB schema.
fields := lo.Filter(getFieldsAndTags(), func(f Field, _ int) bool {
return lo.Contains(tableColumns, f.ColumnName)
hasProjection := f.Projection != ""
isTableColumnValid := lo.Contains(tableColumns, f.ColumnName)
return hasProjection || isTableColumnValid

})
orderField, ok := lo.Find(fields, func(f Field) bool {
return f.JSONName == orderBy
Expand Down
6 changes: 6 additions & 0 deletions pkg/apiserver/statement/models.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,12 @@ type Model struct {
PlanCanBeBound bool `json:"plan_can_be_bound"`
BinaryPlanJSON string `json:"binary_plan_json"`
BinaryPlanText string `json:"binary_plan_text"`

// Resource Control
AggResourceGroup string `json:"resource_group" agg:"ANY_VALUE(resource_group)"`
AggAvgRU float64 `json:"avg_ru" agg:"CAST(AVG(avg_request_unit_write + avg_request_unit_read) AS DECIMAL(64, 2))" related:"avg_request_unit_write,avg_request_unit_read"`
AggMaxRU float64 `json:"max_ru" agg:"MAX(max_request_unit_write + max_request_unit_read)" related:"max_request_unit_write,max_request_unit_read"`
AggSumRU float64 `json:"sum_ru" agg:"CAST(SUM(exec_count * (avg_request_unit_write + avg_request_unit_read)) AS DECIMAL(64, 2))" related:"avg_request_unit_write,avg_request_unit_read"`
}

// tableNames example: "d1.a1,d2.a2,d1.a1,d3.a3"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,12 @@ export interface SlowqueryModel {
* @memberof SlowqueryModel
*/
'resolve_lock_time'?: number;
/**
*
* @type {string}
* @memberof SlowqueryModel
*/
'resource_group'?: string;
/**
*
* @type {number}
Expand Down Expand Up @@ -332,6 +338,12 @@ export interface SlowqueryModel {
* @memberof SlowqueryModel
*/
'rocksdb_key_skipped_count'?: number;
/**
* Resource Control
* @type {number}
* @memberof SlowqueryModel
*/
'ru'?: number;
/**
*
* @type {string}
Expand All @@ -344,6 +356,12 @@ export interface SlowqueryModel {
* @memberof SlowqueryModel
*/
'success'?: number;
/**
*
* @type {number}
* @memberof SlowqueryModel
*/
'time_queued_by_rc'?: number;
/**
* finish time
* @type {number}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,12 @@ export interface StatementModel {
* @memberof StatementModel
*/
'avg_rocksdb_key_skipped_count'?: number;
/**
*
* @type {number}
* @memberof StatementModel
*/
'avg_ru'?: number;
/**
*
* @type {number}
Expand Down Expand Up @@ -374,6 +380,12 @@ export interface StatementModel {
* @memberof StatementModel
*/
'max_rocksdb_key_skipped_count'?: number;
/**
*
* @type {number}
* @memberof StatementModel
*/
'max_ru'?: number;
/**
*
* @type {number}
Expand Down Expand Up @@ -464,6 +476,12 @@ export interface StatementModel {
* @memberof StatementModel
*/
'related_schemas'?: string;
/**
* Resource Control
* @type {string}
* @memberof StatementModel
*/
'resource_group'?: string;
/**
*
* @type {string}
Expand Down Expand Up @@ -506,6 +524,12 @@ export interface StatementModel {
* @memberof StatementModel
*/
'sum_latency'?: number;
/**
*
* @type {number}
* @memberof StatementModel
*/
'sum_ru'?: number;
/**
*
* @type {number}
Expand Down
23 changes: 23 additions & 0 deletions ui/packages/tidb-dashboard-client/swagger/spec.json
Original file line number Diff line number Diff line change
Expand Up @@ -5115,6 +5115,9 @@
"resolve_lock_time": {
"type": "number"
},
"resource_group": {
"type": "string"
},
"rewrite_time": {
"type": "number"
},
Expand All @@ -5134,12 +5137,19 @@
"rocksdb_key_skipped_count": {
"type": "integer"
},
"ru": {
"description": "Resource Control",
"type": "number"
},
"stats": {
"type": "string"
},
"success": {
"type": "integer"
},
"time_queued_by_rc": {
"type": "number"
},
"timestamp": {
"description": "finish time",
"type": "number"
Expand Down Expand Up @@ -5371,6 +5381,9 @@
"avg_rocksdb_key_skipped_count": {
"type": "integer"
},
"avg_ru": {
"type": "number"
},
"avg_total_keys": {
"type": "integer"
},
Expand Down Expand Up @@ -5485,6 +5498,9 @@
"max_rocksdb_key_skipped_count": {
"type": "integer"
},
"max_ru": {
"type": "number"
},
"max_total_keys": {
"type": "integer"
},
Expand Down Expand Up @@ -5533,6 +5549,10 @@
"description": "Computed fields",
"type": "string"
},
"resource_group": {
"description": "Resource Control",
"type": "string"
},
"sample_user": {
"type": "string"
},
Expand All @@ -5554,6 +5574,9 @@
"sum_latency": {
"type": "integer"
},
"sum_ru": {
"type": "number"
},
"sum_warnings": {
"type": "integer"
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,15 @@ slow_query:
rocksdb_block_read_count_tooltip: Total number of blocks RocksDB read from file (RocksDB block_read_count)
rocksdb_block_read_byte: RocksDB Read Size
rocksdb_block_read_byte_tooltip: Total number of bytes RocksDB read from file (RocksDB block_read_byte)


ru: RU
ru_tooltip: request units
resource_group: Resource Group
resource_group_tooltip: The resource group that the query belongs to
time_queued_by_rc: Time Queued by RC
time_queued_by_rc_tooltip: The wait time spent in the resource queue

common:
status:
success: Success
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,10 @@ export function slowQueryColumns(
tcf.bar.single('rocksdb_block_read_byte', 'bytes', rows).patchConfig({
minWidth: 220,
maxWidth: 250
})
}),
// resource control
tcf.bar.single('ru', 'none', rows),
tcf.textWithTooltip('resource_group', rows),
tcf.bar.single('time_queued_by_rc', 's', rows)
])
}
Original file line number Diff line number Diff line change
Expand Up @@ -184,3 +184,10 @@ statement:
avg_rocksdb_block_read_byte: Mean RocksDB FS Read Size
avg_rocksdb_block_read_byte_tooltip: Total number of bytes RocksDB read from file (RocksDB block_read_byte)
max_rocksdb_block_read_byte: Max RocksDB FS Read Size

resource_group: Resource Group
resource_group_tooltip: The resource group that the query belongs to
avg_ru: Mean RU
avg_ru_tooltip: The average number of request units (RU) consumed by the query
sum_ru: Total RU
sum_ru_tooltip: The total number of request units (RU) consumed by the query
Original file line number Diff line number Diff line change
Expand Up @@ -191,3 +191,10 @@ statement:
avg_rocksdb_block_read_byte: RocksDB 文件系统平均读数据量
avg_rocksdb_block_read_byte_tooltip: RocksDB 从文件系统中读数据的数据量 (block_read_byte)
max_rocksdb_block_read_byte: RocksDB 文件系统最大读数据量

resource_group: 资源组
resource_group_tooltip: SQL 语句所属的资源组
avg_ru: 平均 RU
avg_ru_tooltip: SQL 语句的平均 RU
sum_ru: RU 最大值
sum_ru_tooltip: SQL 语句的 RU 最大值
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,8 @@ export const derivedFields = {
avg_rocksdb_block_read_byte: genDerivedBarSources(
'avg_rocksdb_block_read_byte',
'max_rocksdb_block_read_byte'
)
),
avg_ru: genDerivedBarSources('avg_ru', 'max_ru')
}

//////////////////////////////////////////
Expand Down Expand Up @@ -172,7 +173,7 @@ export function statementColumns(
showFullSQL?: boolean
): IColumn[] {
const tcf = new TableColumnFactory(TRANS_KEY_PREFIX, tableSchemaColumns)

console.log('tableSchemaColumns', tableSchemaColumns, 'row', rows)
return tcf.columns([
evictedRenderColumn(
tcf.sqlText('digest_text', showFullSQL, rows).getConfig()
Expand Down Expand Up @@ -274,7 +275,15 @@ export function statementColumns(
minWidth: 220,
maxWidth: 250
}
)
),
//resource control
tcf.textWithTooltip('resource_group', rows),
avgMaxColumn(tcf, 'avg_ru', 'none', rows),
tcf.textWithTooltip('sum_ru', rows).patchConfig({
minWidth: 100,
maxWidth: 300,
columnActionsMode: ColumnActionsMode.clickable
})
])
}

Expand Down
42 changes: 42 additions & 0 deletions ui/packages/tidb-dashboard-lib/src/client/models.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2464,6 +2464,12 @@ export interface SlowqueryModel {
* @memberof SlowqueryModel
*/
'resolve_lock_time'?: number;
/**
*
* @type {string}
* @memberof SlowqueryModel
*/
'resource_group'?: string;
/**
*
* @type {number}
Expand Down Expand Up @@ -2500,6 +2506,12 @@ export interface SlowqueryModel {
* @memberof SlowqueryModel
*/
'rocksdb_key_skipped_count'?: number;
/**
* Resource Control
* @type {number}
* @memberof SlowqueryModel
*/
'ru'?: number;
/**
*
* @type {string}
Expand All @@ -2512,6 +2524,12 @@ export interface SlowqueryModel {
* @memberof SlowqueryModel
*/
'success'?: number;
/**
*
* @type {number}
* @memberof SlowqueryModel
*/
'time_queued_by_rc'?: number;
/**
* finish time
* @type {number}
Expand Down Expand Up @@ -2934,6 +2952,12 @@ export interface StatementModel {
* @memberof StatementModel
*/
'avg_rocksdb_key_skipped_count'?: number;
/**
*
* @type {number}
* @memberof StatementModel
*/
'avg_ru'?: number;
/**
*
* @type {number}
Expand Down Expand Up @@ -3150,6 +3174,12 @@ export interface StatementModel {
* @memberof StatementModel
*/
'max_rocksdb_key_skipped_count'?: number;
/**
*
* @type {number}
* @memberof StatementModel
*/
'max_ru'?: number;
/**
*
* @type {number}
Expand Down Expand Up @@ -3240,6 +3270,12 @@ export interface StatementModel {
* @memberof StatementModel
*/
'related_schemas'?: string;
/**
* Resource Control
* @type {string}
* @memberof StatementModel
*/
'resource_group'?: string;
/**
*
* @type {string}
Expand Down Expand Up @@ -3282,6 +3318,12 @@ export interface StatementModel {
* @memberof StatementModel
*/
'sum_latency'?: number;
/**
*
* @type {number}
* @memberof StatementModel
*/
'sum_ru'?: number;
/**
*
* @type {number}
Expand Down

0 comments on commit f0085ee

Please sign in to comment.