Compare commits
2 commits
37e69e3fda
...
f9f08a2338
Author | SHA1 | Date | |
---|---|---|---|
f9f08a2338 | |||
02ae778018 |
3 changed files with 18 additions and 8 deletions
|
@ -15,7 +15,12 @@ type Collector struct {
|
|||
queue *RequestDataQueue
|
||||
}
|
||||
|
||||
func NewCollector(config *cmd.AppSettings, cache *cache.Cache, db *database.Database, queue *RequestDataQueue) *Collector {
|
||||
func NewCollector(
|
||||
config *cmd.AppSettings,
|
||||
cache *cache.Cache,
|
||||
db *database.Database,
|
||||
queue *RequestDataQueue,
|
||||
) *Collector {
|
||||
return &Collector{
|
||||
config: config,
|
||||
cache: cache,
|
||||
|
|
|
@ -8,7 +8,7 @@ import (
|
|||
"github.com/go-chi/chi/v5/middleware"
|
||||
)
|
||||
|
||||
type requestData struct {
|
||||
type RequestData struct {
|
||||
Latency time.Duration
|
||||
Request *http.Request
|
||||
Start time.Time
|
||||
|
@ -16,22 +16,22 @@ type requestData struct {
|
|||
|
||||
type RequestDataQueue struct {
|
||||
mu sync.Mutex
|
||||
data []requestData
|
||||
data []RequestData
|
||||
}
|
||||
|
||||
func NewRequestDataQueue() *RequestDataQueue {
|
||||
return &RequestDataQueue{
|
||||
data: []requestData{},
|
||||
data: []RequestData{},
|
||||
}
|
||||
}
|
||||
|
||||
func (q *RequestDataQueue) Add(data requestData) {
|
||||
func (q *RequestDataQueue) Add(data RequestData) {
|
||||
q.mu.Lock()
|
||||
defer q.mu.Unlock()
|
||||
q.data = append(q.data, data)
|
||||
}
|
||||
|
||||
func (q *RequestDataQueue) ConsumeAll() []requestData {
|
||||
func (q *RequestDataQueue) ConsumeAll() []RequestData {
|
||||
q.mu.Lock()
|
||||
defer q.mu.Unlock()
|
||||
data := q.data
|
||||
|
@ -57,7 +57,7 @@ func (m Middleware) handler(next http.Handler) http.Handler {
|
|||
next.ServeHTTP(ww, r)
|
||||
|
||||
m.queue.Add(
|
||||
requestData{
|
||||
RequestData{
|
||||
Latency: time.Since(start),
|
||||
Request: r,
|
||||
Start: start,
|
||||
|
|
7
main.go
7
main.go
|
@ -85,7 +85,12 @@ func main() {
|
|||
}
|
||||
}
|
||||
|
||||
func enableExporter(settings *cmd.AppSettings, cache *cache.Cache, db *database.Database, queue *exporter.RequestDataQueue) error {
|
||||
func enableExporter(
|
||||
settings *cmd.AppSettings,
|
||||
cache *cache.Cache,
|
||||
db *database.Database,
|
||||
queue *exporter.RequestDataQueue,
|
||||
) error {
|
||||
prometheus.MustRegister(exporter.NewCollector(settings, cache, db, queue))
|
||||
|
||||
metricsServer := &http.Server{
|
||||
|
|
Loading…
Add table
Reference in a new issue