mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Added all required dependencies
This commit is contained in:
		
							
								
								
									
										110
									
								
								vendor/github.com/go-macaron/toolbox/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								vendor/github.com/go-macaron/toolbox/README.md
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,110 @@
 | 
			
		||||
toolbox
 | 
			
		||||
=======
 | 
			
		||||
 | 
			
		||||
Middleware toolbox provides health chcek, pprof, profile and statistic services for [Macaron](https://github.com/go-macaron/macaron).
 | 
			
		||||
 | 
			
		||||
[API Reference](https://gowalker.org/github.com/go-macaron/toolbox)
 | 
			
		||||
 | 
			
		||||
### Installation
 | 
			
		||||
 | 
			
		||||
	go get github.com/go-macaron/toolbox
 | 
			
		||||
	
 | 
			
		||||
## Usage
 | 
			
		||||
 | 
			
		||||
```go
 | 
			
		||||
// main.go
 | 
			
		||||
import (
 | 
			
		||||
	"gopkg.in/macaron.v1"
 | 
			
		||||
	"github.com/go-macaron/toolbox"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
  	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:
 | 
			
		||||
 | 
			
		||||
```go
 | 
			
		||||
type dummyChecker struct {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (dc *dummyChecker) Desc() string {
 | 
			
		||||
	return "Dummy checker"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (dc *dummyChecker) Check() error {
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ...
 | 
			
		||||
m.Use(toolbox.Toolboxer(m, toolbox.Options{
 | 
			
		||||
	URLPrefix:			"/debug",			// URL prefix for toolbox dashboard.
 | 
			
		||||
	HealthCheckURL:		"/healthcheck", 	// URL for health check request.
 | 
			
		||||
	HealthCheckers: []HealthChecker{
 | 
			
		||||
		new(dummyChecker),
 | 
			
		||||
	},										// Health checkers.
 | 
			
		||||
	HealthCheckFuncs: []*toolbox.HealthCheckFuncDesc{
 | 
			
		||||
		&toolbox.HealthCheckFuncDesc{
 | 
			
		||||
			Desc: "Database connection",
 | 
			
		||||
			Func: func() error { return "OK" },
 | 
			
		||||
		},
 | 
			
		||||
	},										// Health check functions.
 | 
			
		||||
	PprofURLPrefix:		"/debug/pprof/", 	// URL prefix of pprof.
 | 
			
		||||
	ProfileURLPrefix:	"/debug/profile/", 	// URL prefix of profile.
 | 
			
		||||
	ProfilePath:		"profile", 			// Path store profile files.
 | 
			
		||||
}))
 | 
			
		||||
// ...
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Route Statistic
 | 
			
		||||
 | 
			
		||||
Toolbox also comes with a route call statistic functionality:
 | 
			
		||||
 | 
			
		||||
```go
 | 
			
		||||
import (
 | 
			
		||||
	"os"
 | 
			
		||||
	"time"
 | 
			
		||||
	//...
 | 
			
		||||
	"github.com/go-macaron/toolbox"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	//...
 | 
			
		||||
	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](LICENSE) file for the full license text.
 | 
			
		||||
		Reference in New Issue
	
	Block a user