Documentation

Overview

    Package toolbox healthcheck

    type DatabaseCheck struct { }

    func (dc *DatabaseCheck) Check() error {

    if dc.isConnected() {
    	return nil
    } else {
    	return errors.New("can't connect database")
     }
    

    }

    AddHealthCheck("database",&DatabaseCheck{})

    more docs: http://beego.me/docs/module/toolbox.md

    Index

    Constants

    This section is empty.

    Variables

    View Source
    var AdminCheckList map[string]HealthChecker

      AdminCheckList holds health checker map

      View Source
      var (
      	AdminTaskList map[string]Tasker
      )

        The bounds for each field.

        Functions

        func AddHealthCheck

        func AddHealthCheck(name string, hc HealthChecker)

          AddHealthCheck add health checker with name string

          func AddTask

          func AddTask(taskname string, t Tasker)

            AddTask add task with name

            func DeleteTask

            func DeleteTask(taskname string)

              DeleteTask delete task with name

              func GetCPUProfile

              func GetCPUProfile(w io.Writer)

                GetCPUProfile start cpu profile monitor

                func MemProf

                func MemProf(w io.Writer)

                  MemProf record memory profile in pprof

                  func PrintGCSummary

                  func PrintGCSummary(w io.Writer)

                    PrintGCSummary print gc information to io.Writer

                    func ProcessInput

                    func ProcessInput(input string, w io.Writer)

                      ProcessInput parse input command string

                      func StartTask

                      func StartTask()

                        StartTask start all tasks

                        func StopTask

                        func StopTask()

                          StopTask stop all tasks

                          Types

                          type HealthChecker

                          type HealthChecker interface {
                          	Check() error
                          }

                            HealthChecker health checker interface

                            type MapSorter

                            type MapSorter struct {
                            	Keys []string
                            	Vals []Tasker
                            }

                              MapSorter sort map for tasker

                              func NewMapSorter

                              func NewMapSorter(m map[string]Tasker) *MapSorter

                                NewMapSorter create new tasker map

                                func (*MapSorter) Len

                                func (ms *MapSorter) Len() int

                                func (*MapSorter) Less

                                func (ms *MapSorter) Less(i, j int) bool

                                func (*MapSorter) Sort

                                func (ms *MapSorter) Sort()

                                  Sort sort tasker map

                                  func (*MapSorter) Swap

                                  func (ms *MapSorter) Swap(i, j int)

                                  type Schedule

                                  type Schedule struct {
                                  	Second uint64
                                  	Minute uint64
                                  	Hour   uint64
                                  	Day    uint64
                                  	Month  uint64
                                  	Week   uint64
                                  }

                                    Schedule time taks schedule

                                    func (*Schedule) Next

                                    func (s *Schedule) Next(t time.Time) time.Time

                                      Next set schedule to next time

                                      type Statistics

                                      type Statistics struct {
                                      	RequestURL        string
                                      	RequestController string
                                      	RequestNum        int64
                                      	MinTime           time.Duration
                                      	MaxTime           time.Duration
                                      	TotalTime         time.Duration
                                      }

                                        Statistics struct

                                        type Task

                                        type Task struct {
                                        	Taskname string
                                        	Spec     *Schedule
                                        	SpecStr  string
                                        	DoFunc   TaskFunc
                                        	Prev     time.Time
                                        	Next     time.Time
                                        	Errlist  []*taskerr // like errtime:errinfo
                                        	ErrLimit int        // max length for the errlist, 0 stand for no limit
                                        }

                                          Task task struct

                                          func NewTask

                                          func NewTask(tname string, spec string, f TaskFunc) *Task

                                            NewTask add new task with name, time and func

                                            func (*Task) GetNext

                                            func (t *Task) GetNext() time.Time

                                              GetNext get the next call time of this task

                                              func (*Task) GetPrev

                                              func (t *Task) GetPrev() time.Time

                                                GetPrev get prev time of this task

                                                func (*Task) GetSpec

                                                func (t *Task) GetSpec() string

                                                  GetSpec get spec string

                                                  func (*Task) GetStatus

                                                  func (t *Task) GetStatus() string

                                                    GetStatus get current task status

                                                    func (*Task) Run

                                                    func (t *Task) Run() error

                                                      Run run all tasks

                                                      func (*Task) SetCron

                                                      func (t *Task) SetCron(spec string)

                                                        SetCron some signals:

                                                        *: any time
                                                        ,:  separate signal
                                                        

                                                           -:duration

                                                        /n : do as n times of time duration
                                                        

                                                        ///////////////////////////////////////////////////////

                                                        0/30 * * * * *                        every 30s
                                                        0 43 21 * * *                         21:43
                                                        0 15 05 * * *                        05:15
                                                        0 0 17 * * *                          17:00
                                                        0 0 17 * * 1                           17:00 in every Monday
                                                        0 0,10 17 * * 0,2,3                   17:00 and 17:10 in every Sunday, Tuesday and Wednesday
                                                        0 0-10 17 1 * *                       17:00 to 17:10 in 1 min duration each time on the first day of month
                                                        0 0 0 1,15 * 1                        0:00 on the 1st day and 15th day of month
                                                        0 42 4 1 * *                         4:42 on the 1st day of month
                                                        0 0 21 * * 1-6                       21:00 from Monday to Saturday
                                                        0 0,10,20,30,40,50 * * * *            every 10 min duration
                                                        0 */10 * * * *                     every 10 min duration
                                                        0 * 1 * * *                       1:00 to 1:59 in 1 min duration each time
                                                        0 0 1 * * *                       1:00
                                                        0 0 */1 * * *                      0 min of hour in 1 hour duration
                                                        0 0 * * * *                       0 min of hour in 1 hour duration
                                                        0 2 8-20/3 * * *                   8:02, 11:02, 14:02, 17:02, 20:02
                                                        0 30 5 1,15 * *                    5:30 on the 1st day and 15th day of month
                                                        

                                                        func (*Task) SetNext

                                                        func (t *Task) SetNext(now time.Time)

                                                          SetNext set next time for this task

                                                          func (*Task) SetPrev

                                                          func (t *Task) SetPrev(now time.Time)

                                                            SetPrev set prev time of this task

                                                            type TaskFunc

                                                            type TaskFunc func() error

                                                              TaskFunc task func type

                                                              type Tasker

                                                              type Tasker interface {
                                                              	GetSpec() string
                                                              	GetStatus() string
                                                              	Run() error
                                                              	SetNext(time.Time)
                                                              	GetNext() time.Time
                                                              	SetPrev(time.Time)
                                                              	GetPrev() time.Time
                                                              }

                                                                Tasker task interface

                                                                type URLMap

                                                                type URLMap struct {
                                                                	LengthLimit int //limit the urlmap's length if it's equal to 0 there's no limit
                                                                	// contains filtered or unexported fields
                                                                }

                                                                  URLMap contains several statistics struct to log different data

                                                                  var StatisticsMap *URLMap

                                                                    StatisticsMap hosld global statistics data map

                                                                    func (*URLMap) AddStatistics

                                                                    func (m *URLMap) AddStatistics(requestMethod, requestURL, requestController string, requesttime time.Duration)

                                                                      AddStatistics add statistics task. it needs request method, request url, request controller and statistics time duration

                                                                      func (*URLMap) GetMap

                                                                      func (m *URLMap) GetMap() map[string]interface{}

                                                                        GetMap put url statistics result in io.Writer

                                                                        func (*URLMap) GetMapData

                                                                        func (m *URLMap) GetMapData() []map[string]interface{}

                                                                          GetMapData return all mapdata