Documentation ¶
Index ¶
- Constants
- Variables
- func BytesToString(numBytes int64) string
- func FormatBytes(numBytes int64) string
- func FormatDuration(d time.Duration) string
- func NewAvgProcessTimePlanAccumulator(idxLookUp map[string]int) (*avgProcessTimePlanAccumulator, error)
- func NewIdxLookup(header []string) map[string]int
- func NewScanOldVersionPlanAccumulator(idxLookUp map[string]int) (*scanOldVersionPlanAccumulator, error)
- func NewSkipDeletedCntPlanAccumulator(header map[string]int) (*skipDeletedCntPlanAccumulator, error)
- func NewSlowQueryRetriever(concurrency int, location *time.Location, cols []string, slowLogPath string, ...) (*slowQueryRetriever, error)
- func ParseTime(s string) (time.Time, error)
- type CheckFlag
- type Fetcher
- type FileFetcher
- type FileFetcherOpt
- type RuntimeStats
- type SlowQueryRetrieverOpt
Constants ¶
const ( // SlowLogRowPrefixStr is slow log row prefix. SlowLogRowPrefixStr = "# " // SlowLogSpaceMarkStr is slow log space mark. SlowLogSpaceMarkStr = ": " // SlowLogSQLSuffixStr is slow log suffix. SlowLogSQLSuffixStr = ";" // SlowLogTimeStr is slow log field name. SlowLogTimeStr = "Time" // SlowLogStartPrefixStr is slow log start row prefix. SlowLogStartPrefixStr = SlowLogRowPrefixStr + SlowLogTimeStr + SlowLogSpaceMarkStr // SlowLogTxnStartTSStr is slow log field name. SlowLogTxnStartTSStr = "Txn_start_ts" // SlowLogUserAndHostStr is the user and host field name, which is compatible with MySQL. SlowLogUserAndHostStr = "User@Host" // SlowLogUserStr is slow log field name. SlowLogUserStr = "User" // SlowLogHostStr only for slow_query table usage. SlowLogHostStr = "Host" // SlowLogConnIDStr is slow log field name. SlowLogConnIDStr = "Conn_ID" // SlowLogQueryTimeStr is slow log field name. SlowLogQueryTimeStr = "Query_time" // SlowLogParseTimeStr is the parse sql time. SlowLogParseTimeStr = "Parse_time" // SlowLogCompileTimeStr is the compile plan time. SlowLogCompileTimeStr = "Compile_time" // SlowLogRewriteTimeStr is the rewrite time. SlowLogRewriteTimeStr = "Rewrite_time" // SlowLogOptimizeTimeStr is the optimization time. SlowLogOptimizeTimeStr = "Optimize_time" // SlowLogWaitTSTimeStr is the time of waiting TS. SlowLogWaitTSTimeStr = "Wait_TS" // SlowLogPreprocSubQueriesStr is the number of pre-processed sub-queries. SlowLogPreprocSubQueriesStr = "Preproc_subqueries" // SlowLogPreProcSubQueryTimeStr is the total time of pre-processing sub-queries. SlowLogPreProcSubQueryTimeStr = "Preproc_subqueries_time" // SlowLogDBStr is slow log field name. SlowLogDBStr = "DB" // SlowLogIsInternalStr is slow log field name. SlowLogIsInternalStr = "Is_internal" // SlowLogIndexNamesStr is slow log field name. SlowLogIndexNamesStr = "Index_names" // SlowLogDigestStr is slow log field name. SlowLogDigestStr = "Digest" // SlowLogQuerySQLStr is slow log field name. SlowLogQuerySQLStr = "Query" // use for slow log table, slow log will not print this field name but print sql directly. // SlowLogStatsInfoStr is plan stats info. SlowLogStatsInfoStr = "Stats" // SlowLogNumCopTasksStr is the number of cop-tasks. SlowLogNumCopTasksStr = "Num_cop_tasks" // SlowLogCopProcAvg is the average process time of all cop-tasks. SlowLogCopProcAvg = "Cop_proc_avg" // SlowLogCopProcP90 is the p90 process time of all cop-tasks. SlowLogCopProcP90 = "Cop_proc_p90" // SlowLogCopProcMax is the max process time of all cop-tasks. SlowLogCopProcMax = "Cop_proc_max" // SlowLogCopProcAddr is the address of TiKV where the cop-task which cost max process time run. SlowLogCopProcAddr = "Cop_proc_addr" // SlowLogCopWaitAvg is the average wait time of all cop-tasks. SlowLogCopWaitAvg = "Cop_wait_avg" // #nosec // SlowLogCopWaitP90 is the p90 wait time of all cop-tasks. SlowLogCopWaitP90 = "Cop_wait_p90" // #nosec // SlowLogCopWaitMax is the max wait time of all cop-tasks. SlowLogCopWaitMax = "Cop_wait_max" // SlowLogCopWaitAddr is the address of TiKV where the cop-task which cost wait process time run. SlowLogCopWaitAddr = "Cop_wait_addr" // #nosec // SlowLogCopBackoffPrefix contains backoff information. SlowLogCopBackoffPrefix = "Cop_backoff_" // SlowLogMemMax is the max number bytes of memory used in this statement. SlowLogMemMax = "Mem_max" // SlowLogDiskMax is the nax number bytes of disk used in this statement. SlowLogDiskMax = "Disk_max" // SlowLogPrepared is used to indicate whether this sql execute in prepare. SlowLogPrepared = "Prepared" // SlowLogPlanFromCache is used to indicate whether this plan is from plan cache. SlowLogPlanFromCache = "Plan_from_cache" // SlowLogPlanFromBinding is used to indicate whether this plan is matched with the hints in the binding. SlowLogPlanFromBinding = "Plan_from_binding" // SlowLogHasMoreResults is used to indicate whether this sql has more following results. SlowLogHasMoreResults = "Has_more_results" // SlowLogSucc is used to indicate whether this sql execute successfully. SlowLogSucc = "Succ" // SlowLogPrevStmt is used to show the previous executed statement. SlowLogPrevStmt = "Prev_stmt" // SlowLogPlan is used to record the query plan. SlowLogPlan = "Plan" // SlowLogPlanDigest is used to record the query plan digest. SlowLogPlanDigest = "Plan_digest" // SlowLogPlanPrefix is the prefix of the plan value. SlowLogPlanPrefix = "tidb_decode_plan('" // SlowLogPlanSuffix is the suffix of the plan value. SlowLogPlanSuffix = "')" // SlowLogPrevStmtPrefix is the prefix of Prev_stmt in slow log file. SlowLogPrevStmtPrefix = SlowLogPrevStmt + SlowLogSpaceMarkStr // SlowLogKVTotal is the total time waiting for kv. SlowLogKVTotal = "KV_total" // SlowLogPDTotal is the total time waiting for pd. SlowLogPDTotal = "PD_total" // SlowLogBackoffTotal is the total time doing backoff. SlowLogBackoffTotal = "Backoff_total" // SlowLogWriteSQLRespTotal is the total time used to write response to client. SlowLogWriteSQLRespTotal = "Write_sql_response_total" // SlowLogExecRetryCount is the execution retry count. SlowLogExecRetryCount = "Exec_retry_count" // SlowLogExecRetryTime is the execution retry time. SlowLogExecRetryTime = "Exec_retry_time" // SlowLogBackoffDetail is the detail of backoff. SlowLogBackoffDetail = "Backoff_Detail" )
const ( // TpBasicRuntimeStats is the tp for BasicRuntimeStats. TpBasicRuntimeStats int = iota // TpRuntimeStatsWithCommit is the tp for RuntimeStatsWithCommit. TpRuntimeStatsWithCommit // TpRuntimeStatsWithConcurrencyInfo is the tp for RuntimeStatsWithConcurrencyInfo. TpRuntimeStatsWithConcurrencyInfo // TpSnapshotRuntimeStats is the tp for SnapshotRuntimeStats. TpSnapshotRuntimeStats // TpHashJoinRuntimeStats is the tp for HashJoinRuntimeStats. TpHashJoinRuntimeStats // TpIndexLookUpJoinRuntimeStats is the tp for IndexLookUpJoinRuntimeStats. TpIndexLookUpJoinRuntimeStats // TpRuntimeStatsWithSnapshot is the tp for RuntimeStatsWithSnapshot. TpRuntimeStatsWithSnapshot // TpJoinRuntimeStats is the tp for JoinRuntimeStats. TpJoinRuntimeStats // TpSelectResultRuntimeStats is the tp for SelectResultRuntimeStats. TpSelectResultRuntimeStats // TpInsertRuntimeStat is the tp for InsertRuntimeStat TpInsertRuntimeStat // TpIndexLookUpRunTimeStats is the tp for TpIndexLookUpRunTimeStats TpIndexLookUpRunTimeStats // TpSlowQueryRuntimeStat is the tp for TpSlowQueryRuntimeStat TpSlowQueryRuntimeStat // TpHashAggRuntimeStat is the tp for HashAggRuntimeStat TpHashAggRuntimeStat // TpIndexMergeRunTimeStats is the tp for TpIndexMergeRunTimeStats TpIndexMergeRunTimeStats // TpBasicCopRunTimeStats is the tp for TpBasicCopRunTimeStats TpBasicCopRunTimeStats )
const ( // SlowLogTimeFormat is the time format for slow log. SlowLogTimeFormat = time.RFC3339Nano // OldSlowLogTimeFormat is the first version of the the time format for slow log, This is use for compatibility. OldSlowLogTimeFormat = "2006-01-02-15:04:05.999999999 -0700" )
Variables ¶
var MaxOfMaxAllowedPacket uint64 = 1073741824
var ParseSlowLogBatchSize = 64
ParseSlowLogBatchSize is the batch size of slow-log lines for a worker to parse, exported for testing.
Functions ¶
func BytesToString ¶
BytesToString converts the memory consumption to a readable string.
func FormatBytes ¶
FormatBytes uses to format bytes, this function will prune precision before format bytes.
func FormatDuration ¶
FormatDuration uses to format duration, this function will prune precision before format duration. Pruning precision is for human readability. The prune rule is:
- if the duration was less than 1us, return the original string.
- readable value >=10, keep 1 decimal, otherwise, keep 2 decimal. such as: 9.412345ms -> 9.41ms 10.412345ms -> 10.4ms 5.999s -> 6s 100.45µs -> 100.5µs
func NewAvgProcessTimePlanAccumulator ¶
func NewAvgProcessTimePlanAccumulator(idxLookUp map[string]int) (*avgProcessTimePlanAccumulator, error)
header must contain required fileds
func NewIdxLookup ¶
func NewScanOldVersionPlanAccumulator ¶
func NewScanOldVersionPlanAccumulator(idxLookUp map[string]int) (*scanOldVersionPlanAccumulator, error)
header must contain Process_keys, Process_time, Time
func NewSlowQueryRetriever ¶
Types ¶
type FileFetcher ¶
type FileFetcher struct {
// contains filtered or unexported fields
}
FileFetcher load all needed data from file
func NewFileFetcher ¶
func NewFileFetcher(dataDirPath string, opts ...FileFetcherOpt) (*FileFetcher, error)
func (*FileFetcher) FetchData ¶
func (f *FileFetcher) FetchData(rules *config.RuleSpec) (*proto.SourceDataV2, proto.RuleSet, error)
FetchData retrieve config data from file path, and filter rules by component version dataPath is the path to the top folder which contain the data collected by diag collect.
type FileFetcherOpt ¶
type FileFetcherOpt func(ff *FileFetcher) error
func WithCheckFlag ¶
func WithCheckFlag(flags ...CheckFlag) FileFetcherOpt
func WithOutputDir ¶
func WithOutputDir(outDir string) FileFetcherOpt
type RuntimeStats ¶
type RuntimeStats interface { String() string Merge(RuntimeStats) Clone() RuntimeStats Tp() int }
RuntimeStats is used to express the executor runtime information.
type SlowQueryRetrieverOpt ¶
type SlowQueryRetrieverOpt func(retriever *slowQueryRetriever) error
func WithTimeRanges ¶
func WithTimeRanges(start, end time.Time) SlowQueryRetrieverOpt