conprof

package
v0.0.0-...-68360ed Latest Latest
Warning

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

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

Documentation

Overview

conprof is short for continuous profiling

Index

Constants

This section is empty.

Variables

View Source
var Module = fx.Options(
	fx.Provide(newService),
	fx.Invoke(registerRouter),
)

Functions

This section is empty.

Types

type Component

type Component struct {
	Name       string `json:"name"`
	IP         string `json:"ip"`
	Port       uint   `json:"port"`
	StatusPort uint   `json:"status_port"`
}

type ComponentNum

type ComponentNum struct {
	TiDB    int `json:"tidb"`
	PD      int `json:"pd"`
	TiKV    int `json:"tikv"`
	TiFlash int `json:"tiflash"`
	TiCDC   int `json:"ticdc"`
}

type ContinuousProfilingConfig

type ContinuousProfilingConfig struct {
	Enable               bool `json:"enable"`
	ProfileSeconds       int  `json:"profile_seconds"`
	IntervalSeconds      int  `json:"interval_seconds"`
	TimeoutSeconds       int  `json:"timeout_seconds"`
	DataRetentionSeconds int  `json:"data_retention_seconds"`
}

type EstimateSizeRes

type EstimateSizeRes struct {
	InstanceCount int `json:"instance_count"`
	ProfileSize   int `json:"profile_size"`
}

type GetGroupProfileReq

type GetGroupProfileReq struct {
	BeginTime int `json:"begin_time"`
	EndTime   int `json:"end_time"`
}

type GroupProfileDetail

type GroupProfileDetail struct {
	Ts             int64           `json:"ts"`
	ProfileSecs    int             `json:"profile_duration_secs"`
	State          string          `json:"state"`
	TargetProfiles []ProfileDetail `json:"target_profiles"`
}

type GroupProfiles

type GroupProfiles struct {
	Ts          int64        `json:"ts"`
	ProfileSecs int          `json:"profile_duration_secs"`
	State       string       `json:"state"`
	CompNum     ComponentNum `json:"component_num"`
}

type NgMonitoringConfig

type NgMonitoringConfig struct {
	ContinuousProfiling ContinuousProfilingConfig `json:"continuous_profiling"`
}

type ProfileDetail

type ProfileDetail struct {
	State  string `json:"state"`
	Error  string `json:"error"`
	Type   string `json:"profile_type"`
	Target Target `json:"target"`
}

type Service

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

func (*Service) ConprofComponents

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

@Summary Get current scraping components @Success 200 {array} Component @Router /continuous_profiling/components [get] @Security JwtAuth @Failure 401 {object} rest.ErrorResponse @Failure 500 {object} rest.ErrorResponse

func (*Service) ConprofConfig

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

@Summary Get Continuous Profiling Config @Success 200 {object} NgMonitoringConfig @Router /continuous_profiling/config [get] @Security JwtAuth @Failure 401 {object} rest.ErrorResponse @Failure 500 {object} rest.ErrorResponse

func (*Service) ConprofDownload

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

@Summary Download Group Profile files @Router /continuous_profiling/download [get] @Param ts query number true "timestamp" @Security JwtAuth @Produce application/x-gzip @Failure 401 {object} rest.ErrorResponse @Failure 500 {object} rest.ErrorResponse

func (*Service) ConprofGroupProfileDetail

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

@Summary Get Group Profile Detail @Router /continuous_profiling/group_profile/detail [get] @Param ts query number true "timestamp" @Security JwtAuth @Success 200 {object} GroupProfileDetail @Failure 401 {object} rest.ErrorResponse @Failure 500 {object} rest.ErrorResponse

func (*Service) ConprofGroupProfiles

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

@Summary Get Group Profiles @Router /continuous_profiling/group_profiles [get] @Param q query GetGroupProfileReq true "Query" @Security JwtAuth @Success 200 {array} GroupProfiles @Failure 401 {object} rest.ErrorResponse @Failure 500 {object} rest.ErrorResponse

func (*Service) ConprofViewProfile

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

@Summary View Single Profile files @Router /continuous_profiling/single_profile/view [get] @Param q query ViewSingleProfileReq true "Query" @Security JwtAuth @Produce html @Failure 401 {object} rest.ErrorResponse @Failure 500 {object} rest.ErrorResponse

func (*Service) EstimateSize

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

@Summary Get Estimate Size @Router /continuous_profiling/estimate_size [get] @Security JwtAuth @Success 200 {object} EstimateSizeRes @Failure 401 {object} rest.ErrorResponse @Failure 500 {object} rest.ErrorResponse

func (*Service) GenConprofActionToken

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

@Summary Get action token for download or view profile @Router /continuous_profiling/action_token [get] @Param q query string true "target query string" @Security JwtAuth @Success 200 {string} string @Failure 401 {object} rest.ErrorResponse @Failure 500 {object} rest.ErrorResponse

func (*Service) UpdateConprofConfig

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

@Summary Update Continuous Profiling Config @Router /continuous_profiling/config [post] @Param request body NgMonitoringConfig true "Request body" @Security JwtAuth @Success 200 {string} string "ok" @Failure 401 {object} rest.ErrorResponse @Failure 500 {object} rest.ErrorResponse

type ServiceParams

type ServiceParams struct {
	fx.In

	EtcdClient   *clientv3.Client
	Config       *config.Config
	NgmProxy     *utils.NgmProxy
	FeatureFlags *featureflag.Registry
}

type Target

type Target struct {
	Component string `json:"component"`
	Address   string `json:"address"`
}

type ViewSingleProfileReq

type ViewSingleProfileReq struct {
	Ts          int    `json:"ts"`
	ProfileType string `json:"profile_type"`
	Component   string `json:"component"`
	Address     string `json:"address"`
}

Jump to

Keyboard shortcuts

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