mirror of
https://github.com/luxfi/evm.git
synced 2026-09-24 00:27:44 +00:00
36 lines
941 B
Go
36 lines
941 B
Go
// (c) 2020-2022, Lux Industries, Inc. All rights reserved.
|
|
// See the file LICENSE for licensing terms.
|
|
|
|
package stats
|
|
|
|
import (
|
|
"time"
|
|
"github.com/luxfi/geth/metrics"
|
|
)
|
|
|
|
// RequestHandlerStats provides the interface for metrics for app requests.
|
|
type RequestHandlerStats interface {
|
|
UpdateTimeUntilDeadline(duration time.Duration)
|
|
IncDeadlineDroppedRequest()
|
|
}
|
|
|
|
type requestHandlerStats struct {
|
|
timeUntilDeadline *metrics.Timer
|
|
droppedRequests *metrics.Counter
|
|
}
|
|
|
|
func (h *requestHandlerStats) IncDeadlineDroppedRequest() {
|
|
h.droppedRequests.Inc(1)
|
|
}
|
|
|
|
func (h *requestHandlerStats) UpdateTimeUntilDeadline(duration time.Duration) {
|
|
h.timeUntilDeadline.Update(duration)
|
|
}
|
|
|
|
func NewRequestHandlerStats() RequestHandlerStats {
|
|
return &requestHandlerStats{
|
|
timeUntilDeadline: metrics.GetOrRegisterTimer("net_req_time_until_deadline", nil),
|
|
droppedRequests: metrics.GetOrRegisterCounter("net_req_deadline_dropped", nil),
|
|
}
|
|
}
|