https://github.com/talon-one/go-httpmetrics
Capture metrics for http.Requests and http.Responses
https://github.com/talon-one/go-httpmetrics
go golang http metrics
Last synced: 11 months ago
JSON representation
Capture metrics for http.Requests and http.Responses
- Host: GitHub
- URL: https://github.com/talon-one/go-httpmetrics
- Owner: talon-one
- License: mit
- Created: 2018-07-06T10:31:42.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-07-06T15:43:36.000Z (over 7 years ago)
- Last Synced: 2025-01-27T05:31:38.634Z (about 1 year ago)
- Topics: go, golang, http, metrics
- Language: Go
- Homepage:
- Size: 2.62 MB
- Stars: 1
- Watchers: 23
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# httpmetrics [](https://godoc.org/github.com/talon-one/go-httpmetrics) [](https://goreportcard.com/report/github.com/talon-one/go-httpmetrics)
Capture metrics for http.Requests and http.Responses
```bash
go get github.com/talon-one/go-httpmetrics
```
# Usage
```go
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "text/plain")
w.WriteHeader(http.StatusOK)
io.WriteString(w, "Hello World")
})
collectMetrics := httpmetrics.New(httpmetrics.CollectOptions{
CollectRequestBody: 128,
CollectResponseBody: 128,
})
collectMetrics.Collect(func(m httpmetrics.Metrics) {
fmt.Printf(`Duration: %s
Request.URL: %s
Request.Header: %v
Request.Body: %s
Response.Code: %d
Response.Header: %v
Response.Body: %s
============================
`, m.Duration.String(),
m.Request.URL.String(),
m.Request.Header,
string(m.Request.Body),
m.Response.Code,
m.Response.Header,
string(m.Response.Body))
})
http.ListenAndServe(":8000", collectMetrics)
}
```