topsql

package
v0.0.0-...-0119d12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 26, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNS = errorx.NewNamespace("error.api.topsql")
View Source
var Module = fx.Options(
	fx.Provide(newService),
	fx.Invoke(registerRouter),
)

Functions

This section is empty.

Types

type EditableConfig

type EditableConfig struct {
	Enable bool `json:"enable" gorm:"column:tidb_enable_top_sql"`
}

type GetInstancesRequest

type GetInstancesRequest struct {
	Start string `json:"start"`
	End   string `json:"end"`
}

type GetSummaryRequest

type GetSummaryRequest struct {
	Instance     string `json:"instance"`
	InstanceType string `json:"instance_type"`
	Start        string `json:"start"`
	End          string `json:"end"`
	Top          string `json:"top"`
	Window       string `json:"window"`
}

type InstanceItem

type InstanceItem struct {
	Instance     string `json:"instance"`
	InstanceType string `json:"instance_type"`
}

type InstanceResponse

type InstanceResponse struct {
	Data []InstanceItem `json:"data"`
}

type Service

type Service struct {
	FeatureTopSQL *featureflag.FeatureFlag
	// contains filtered or unexported fields
}

func (*Service) GetConfig

func (s *Service) GetConfig(c *gin.Context)

@Summary Get Top SQL config @Router /topsql/config [get] @Security JwtAuth @Success 200 {object} EditableConfig "ok" @Failure 401 {object} rest.ErrorResponse @Failure 500 {object} rest.ErrorResponse

func (*Service) GetInstance

func (s *Service) GetInstance(c *gin.Context)

@Summary Get availiable instances @Router /topsql/instances [get] @Security JwtAuth @Param q query GetInstancesRequest true "Query" @Success 200 {object} InstanceResponse "ok" @Failure 401 {object} rest.ErrorResponse @Failure 500 {object} rest.ErrorResponse

func (*Service) GetSummary

func (s *Service) GetSummary(c *gin.Context)

@Summary Get summaries @Router /topsql/summary [get] @Security JwtAuth @Param q query GetSummaryRequest true "Query" @Success 200 {object} SummaryResponse "ok" @Failure 401 {object} rest.ErrorResponse @Failure 500 {object} rest.ErrorResponse

func (*Service) UpdateConfig

func (s *Service) UpdateConfig(c *gin.Context)

@Summary Update Top SQL config @Router /topsql/config [post] @Param request body EditableConfig true "Request body" @Security JwtAuth @Success 204 {object} string @Failure 401 {object} rest.ErrorResponse @Failure 500 {object} rest.ErrorResponse

type ServiceParams

type ServiceParams struct {
	fx.In
	TiDBClient *tidb.Client
	NgmProxy   *utils.NgmProxy
}

type SummaryItem

type SummaryItem struct {
	SQLDigest         string            `json:"sql_digest"`
	SQLText           string            `json:"sql_text"`
	IsOther           bool              `json:"is_other"`
	CPUTimeMs         uint64            `json:"cpu_time_ms"`
	ExecCountPerSec   float64           `json:"exec_count_per_sec"`
	DurationPerExecMs float64           `json:"duration_per_exec_ms"`
	ScanRecordsPerSec float64           `json:"scan_records_per_sec"`
	ScanIndexesPerSec float64           `json:"scan_indexes_per_sec"`
	Plans             []SummaryPlanItem `json:"plans"`
}

type SummaryPlanItem

type SummaryPlanItem struct {
	PlanDigest        string   `json:"plan_digest"`
	PlanText          string   `json:"plan_text"`
	TimestampSec      []uint64 `json:"timestamp_sec"`
	CPUTimeMs         []uint64 `json:"cpu_time_ms,omitempty"`
	ExecCountPerSec   float64  `json:"exec_count_per_sec"`
	DurationPerExecMs float64  `json:"duration_per_exec_ms"`
	ScanRecordsPerSec float64  `json:"scan_records_per_sec"`
	ScanIndexesPerSec float64  `json:"scan_indexes_per_sec"`
}

type SummaryResponse

type SummaryResponse struct {
	Data []SummaryItem `json:"data"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL