Documentation ¶
Index ¶
Constants ¶
View Source
const (
Timeout = 5 * time.Second
)
Variables ¶
View Source
var ( ErrNS = errorx.NewNamespace("error.profiling") ErrIgnoredRequest = ErrNS.NewType("ignored_request") ErrTimeout = ErrNS.NewType("timeout") )
Functions ¶
func RegisterRouter ¶
func RegisterRouter(r *gin.RouterGroup, auth *user.AuthService, s *Service)
Register register the handlers to the service.
Types ¶
type GroupDetailResponse ¶
type GroupDetailResponse struct { ServerTime int64 `json:"server_time"` TaskGroup TaskGroupModel `json:"task_group_status"` Tasks []TaskModel `json:"tasks_status"` }
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
func NewService ¶
func NewService(lc fx.Lifecycle, p ServiceParams) (*Service, error)
type ServiceParams ¶
type StartRequest ¶
type StartRequest struct { Targets []model.RequestTargetNode `json:"targets"` DurationSecs uint `json:"duration_secs"` }
type StartRequestSession ¶
type StartRequestSession struct {
// contains filtered or unexported fields
}
type Task ¶
type Task struct { *TaskModel // contains filtered or unexported fields }
Task is the unit to fetch profiling information.
type TaskGroup ¶
type TaskGroup struct { *TaskGroupModel // contains filtered or unexported fields }
TaskGroup is the collection of tasks.
func NewTaskGroup ¶
func NewTaskGroup(db *dbstore.DB, profileDurationSecs uint, stats model.RequestTargetStatistics) *TaskGroup
NewTaskGroup create a new profiling task group.
type TaskGroupModel ¶
type TaskGroupModel struct { ID uint `json:"id" gorm:"primary_key"` State TaskState `json:"state" gorm:"index"` ProfileDurationSecs uint `json:"profile_duration_secs"` TargetStats model.RequestTargetStatistics `json:"target_stats" gorm:"embedded;embedded_prefix:target_stats_"` StartedAt int64 `json:"started_at"` }
func (TaskGroupModel) TableName ¶
func (TaskGroupModel) TableName() string
type TaskModel ¶
type TaskModel struct { ID uint `json:"id" gorm:"primary_key"` TaskGroupID uint `json:"task_group_id" gorm:"index"` State TaskState `json:"state" gorm:"index"` Target model.RequestTargetNode `json:"target" gorm:"embedded;embedded_prefix:target_"` FilePath string `json:"file_path" gorm:"type:text"` Error string `json:"error" gorm:"type:text"` StartedAt int64 `json:"started_at"` // The start running time, reset when retry. Used to estimate approximate profiling progress. }
Click to show internal directories.
Click to hide internal directories.