Commit 243b921c authored by Matthew Slipper's avatar Matthew Slipper

Include method label in more metrics

parent 39dc46b4
...@@ -32,6 +32,7 @@ var ( ...@@ -32,6 +32,7 @@ var (
Help: "Count of backend requests.", Help: "Count of backend requests.",
}, []string{ }, []string{
"backend_name", "backend_name",
"method_name",
}) })
backendErrorsCtr = promauto.NewCounterVec(prometheus.CounterOpts{ backendErrorsCtr = promauto.NewCounterVec(prometheus.CounterOpts{
...@@ -40,6 +41,7 @@ var ( ...@@ -40,6 +41,7 @@ var (
Help: "Count of backend errors.", Help: "Count of backend errors.",
}, []string{ }, []string{
"backend_name", "backend_name",
"method_name",
}) })
backendPermanentErrorsCtr = promauto.NewCounterVec(prometheus.CounterOpts{ backendPermanentErrorsCtr = promauto.NewCounterVec(prometheus.CounterOpts{
...@@ -48,6 +50,7 @@ var ( ...@@ -48,6 +50,7 @@ var (
Help: "Count of backend errors that mark a backend as offline.", Help: "Count of backend errors that mark a backend as offline.",
}, []string{ }, []string{
"backend_name", "backend_name",
"method_name",
}) })
backendResponseTimeSummary = promauto.NewSummaryVec(prometheus.SummaryOpts{ backendResponseTimeSummary = promauto.NewSummaryVec(prometheus.SummaryOpts{
...@@ -150,7 +153,7 @@ func (b *Backend) Forward(req *RPCReq) (*RPCRes, error) { ...@@ -150,7 +153,7 @@ func (b *Backend) Forward(req *RPCReq) (*RPCRes, error) {
} }
atomic.StoreInt64(&b.lastPermError, time.Now().Unix()) atomic.StoreInt64(&b.lastPermError, time.Now().Unix())
backendPermanentErrorsCtr.WithLabelValues(b.Name).Inc() backendPermanentErrorsCtr.WithLabelValues(b.Name, req.Method).Inc()
return nil, wrapErr(lastError, "permanent error forwarding request") return nil, wrapErr(lastError, "permanent error forwarding request")
} }
...@@ -162,7 +165,7 @@ func (b *Backend) doForward(rpcReq *RPCReq) ([]byte, error) { ...@@ -162,7 +165,7 @@ func (b *Backend) doForward(rpcReq *RPCReq) ([]byte, error) {
httpReq, err := http.NewRequest("POST", b.baseURL, bytes.NewReader(body)) httpReq, err := http.NewRequest("POST", b.baseURL, bytes.NewReader(body))
if err != nil { if err != nil {
backendErrorsCtr.WithLabelValues(b.Name).Inc() backendErrorsCtr.WithLabelValues(b.Name, rpcReq.Method).Inc()
return nil, wrapErr(err, "error creating backend request") return nil, wrapErr(err, "error creating backend request")
} }
...@@ -172,22 +175,22 @@ func (b *Backend) doForward(rpcReq *RPCReq) ([]byte, error) { ...@@ -172,22 +175,22 @@ func (b *Backend) doForward(rpcReq *RPCReq) ([]byte, error) {
timer := prometheus.NewTimer(backendResponseTimeSummary.WithLabelValues(b.Name, rpcReq.Method)) timer := prometheus.NewTimer(backendResponseTimeSummary.WithLabelValues(b.Name, rpcReq.Method))
defer timer.ObserveDuration() defer timer.ObserveDuration()
defer backendRequestsCtr.WithLabelValues(b.Name).Inc() defer backendRequestsCtr.WithLabelValues(b.Name, rpcReq.Method).Inc()
res, err := b.client.Do(httpReq) res, err := b.client.Do(httpReq)
if err != nil { if err != nil {
backendErrorsCtr.WithLabelValues(b.Name).Inc() backendErrorsCtr.WithLabelValues(b.Name, rpcReq.Method).Inc()
return nil, wrapErr(err, "error in backend request") return nil, wrapErr(err, "error in backend request")
} }
if res.StatusCode != 200 { if res.StatusCode != 200 {
backendErrorsCtr.WithLabelValues(b.Name).Inc() backendErrorsCtr.WithLabelValues(b.Name, rpcReq.Method).Inc()
return nil, fmt.Errorf("response code %d", res.StatusCode) return nil, fmt.Errorf("response code %d", res.StatusCode)
} }
defer res.Body.Close() defer res.Body.Close()
resB, err := ioutil.ReadAll(io.LimitReader(res.Body, b.maxResponseSize)) resB, err := ioutil.ReadAll(io.LimitReader(res.Body, b.maxResponseSize))
if err != nil { if err != nil {
backendErrorsCtr.WithLabelValues(b.Name).Inc() backendErrorsCtr.WithLabelValues(b.Name, rpcReq.Method).Inc()
return nil, wrapErr(err, "error reading response body") return nil, wrapErr(err, "error reading response body")
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment