Add go sdk
This commit is contained in:
34
httpmetrics/model.go
Normal file
34
httpmetrics/model.go
Normal file
@@ -0,0 +1,34 @@
|
||||
package httpmetrics
|
||||
|
||||
import "net/http"
|
||||
|
||||
type StatusRecorder struct {
|
||||
http.ResponseWriter
|
||||
Status int
|
||||
Size int64
|
||||
}
|
||||
|
||||
func (s *StatusRecorder) WriteHeader(code int) {
|
||||
s.Status = code
|
||||
s.ResponseWriter.WriteHeader(code)
|
||||
}
|
||||
|
||||
func (s *StatusRecorder) Write(b []byte) (int, error) {
|
||||
n, err := s.ResponseWriter.Write(b)
|
||||
s.Size += int64(n)
|
||||
return n, err
|
||||
}
|
||||
|
||||
type RequestMetrics struct {
|
||||
RequestsPerSecond float64
|
||||
StatusCodes map[string]int64
|
||||
Durations Stats
|
||||
RequestSizes Stats
|
||||
ResponseSizes Stats
|
||||
}
|
||||
|
||||
type Stats struct {
|
||||
Min int64
|
||||
Max int64
|
||||
Avg float64
|
||||
}
|
||||
Reference in New Issue
Block a user