-
Notifications
You must be signed in to change notification settings - Fork 660
/
metrics.go
69 lines (59 loc) · 2.21 KB
/
metrics.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// (c) 2019-2020, Ava Labs, Inc. All rights reserved.
// See the file LICENSE for licensing terms.
package avm
import (
"fmt"
"github.com/prometheus/client_golang/prometheus"
"github.com/ava-labs/avalanchego/utils/wrappers"
)
func newCallsMetric(namespace, name string) prometheus.Counter {
return prometheus.NewCounter(prometheus.CounterOpts{
Namespace: namespace,
Name: fmt.Sprintf("%s_calls", name),
Help: fmt.Sprintf("Number of times %s has been called", name),
})
}
type metrics struct {
numBootstrappingCalls, numBootstrappedCalls, numCreateHandlersCalls,
numPendingCalls, numParseCalls, numGetCalls prometheus.Counter
numTxRefreshes, numTxRefreshHits, numTxRefreshMisses prometheus.Counter
}
func (m *metrics) Initialize(
namespace string,
registerer prometheus.Registerer,
) error {
m.numBootstrappingCalls = newCallsMetric(namespace, "bootstrapping")
m.numBootstrappedCalls = newCallsMetric(namespace, "bootstrapped")
m.numCreateHandlersCalls = newCallsMetric(namespace, "create_handlers")
m.numPendingCalls = newCallsMetric(namespace, "pending")
m.numParseCalls = newCallsMetric(namespace, "parse")
m.numGetCalls = newCallsMetric(namespace, "get")
m.numTxRefreshes = prometheus.NewCounter(prometheus.CounterOpts{
Namespace: namespace,
Name: "tx_refreshes",
Help: "Number of times unique txs have been refreshed",
})
m.numTxRefreshHits = prometheus.NewCounter(prometheus.CounterOpts{
Namespace: namespace,
Name: "tx_refresh_hits",
Help: "Number of times unique txs have not been unique, but were cached",
})
m.numTxRefreshMisses = prometheus.NewCounter(prometheus.CounterOpts{
Namespace: namespace,
Name: "tx_refresh_misses",
Help: "Number of times unique txs have not been unique and weren't cached",
})
errs := wrappers.Errs{}
errs.Add(
registerer.Register(m.numBootstrappingCalls),
registerer.Register(m.numBootstrappedCalls),
registerer.Register(m.numCreateHandlersCalls),
registerer.Register(m.numPendingCalls),
registerer.Register(m.numParseCalls),
registerer.Register(m.numGetCalls),
registerer.Register(m.numTxRefreshes),
registerer.Register(m.numTxRefreshHits),
registerer.Register(m.numTxRefreshMisses),
)
return errs.Err
}