26 lines
500 B
Go
26 lines
500 B
Go
package svc
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/qsfera/server/services/ocs/pkg/metrics"
|
|
)
|
|
|
|
// NewInstrument returns a service that instruments metrics.
|
|
func NewInstrument(next Service, metrics *metrics.Metrics) Service {
|
|
return instrument{
|
|
next: next,
|
|
metrics: metrics,
|
|
}
|
|
}
|
|
|
|
type instrument struct {
|
|
next Service
|
|
metrics *metrics.Metrics
|
|
}
|
|
|
|
// ServeHTTP implements the Service interface.
|
|
func (i instrument) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|
i.next.ServeHTTP(w, r)
|
|
}
|