Skip to content

Repository files navigation

toolbox

GitHub Workflow StatuscodecovGoDocSourcegraph

Middleware toolbox provides health chcek, pprof, profile and statistic services for Macaron.

API Reference

Installation

go get github.com/go-macaron/toolbox

Usage

// main.goimport (
"gopkg.in/macaron.v1""github.com/go-macaron/toolbox"
)
funcmain() {
m:=macaron.Classic()
m.Use(toolbox.Toolboxer(m))
m.Run()
}

Open your browser and visit http://localhost:4000/debug to see the effects.

Options

toolbox.Toolboxer comes with a variety of configuration options:

typedummyCheckerstruct {
}
func (dc*dummyChecker) Desc() string {
return"Dummy checker"
}
func (dc*dummyChecker) Check() error {
returnnil
}
// ...m.Use(toolbox.Toolboxer(m, toolbox.Options{
URLPrefix: "/debug", // URL prefix for toolbox dashboardHealthCheckURL: "/healthcheck", // URL for health check requestHealthCheckers: []HealthChecker{
new(dummyChecker),
}, // Health checkersHealthCheckFuncs: []*toolbox.HealthCheckFuncDesc{
&toolbox.HealthCheckFuncDesc{
Desc: "Database connection",
Func: func() error { return"OK" },
},
}, // Health check functionsDisableDebug: false, // Turns off all debug functionality when truePprofURLPrefix: "/debug/pprof/", // URL prefix of pprofProfileURLPrefix:	"/debug/profile/", // URL prefix of profileProfilePath: "profile", // Path store profile files
}))
// ...

Route Statistic

Toolbox also comes with a route call statistic functionality:

import (
"os""time"//..."github.com/go-macaron/toolbox"
)
funcmain() {
//...m.Get("/", func(t toolbox.Toolbox) {
start:=time.Now()
// Other operations.t.AddStatistics("GET", "/", time.Since(start))
})
m.Get("/dump", func(t toolbox.Toolbox) {
t.GetMap(os.Stdout)
})
}

Output take from test:

+---------------------------------------------------+------------+------------------+------------------+------------------+------------------+------------------+
| Request URL | Method | Times | Total Used(s) | Max Used(μs) | Min Used(μs) | Avg Used(μs) |
+---------------------------------------------------+------------+------------------+------------------+------------------+------------------+------------------+
| /api/user | POST | 2 | 0.000122 | 120.000000 | 2.000000 | 61.000000 |
| /api/user | GET | 1 | 0.000013 | 13.000000 | 13.000000 | 13.000000 |
| /api/user | DELETE | 1 | 0.000001 | 1.400000 | 1.400000 | 1.400000 |
| /api/admin | POST | 1 | 0.000014 | 14.000000 | 14.000000 | 14.000000 |
| /api/user/unknwon | POST | 1 | 0.000012 | 12.000000 | 12.000000 | 12.000000 |
+---------------------------------------------------+------------+------------------+------------------+------------------+------------------+------------------+

License

This project is under Apache v2 License. See the LICENSE file for the full license text.

About

Package toolbox is a middleware that provides health check, pprof, profile and statistic services for Macaron.

Topics

Resources

Stars

19 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages