-
Notifications
You must be signed in to change notification settings - Fork 149
/
chain_cmt_log.go
78 lines (69 loc) · 2.83 KB
/
chain_cmt_log.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
70
71
72
73
74
75
76
77
78
package metrics
import (
"github.com/prometheus/client_golang/prometheus"
"github.com/iotaledger/wasp/packages/isc"
)
type ChainCmtLogMetricsProvider struct {
logIndexIncReasonConsOut *prometheus.CounterVec
logIndexIncReasonRecover *prometheus.CounterVec
logIndexIncReasonL1RepAO *prometheus.CounterVec
logIndexIncReasonStarted *prometheus.CounterVec
}
func newChainCmtLogMetricsProvider() *ChainCmtLogMetricsProvider {
return &ChainCmtLogMetricsProvider{
logIndexIncReasonConsOut: prometheus.NewCounterVec(prometheus.CounterOpts{
Namespace: "iota_wasp",
Subsystem: "cmt_log",
Name: "log_index_inc_reason_ConsOut",
Help: "Number if times LogIndex was increased because of consensus output.",
}, []string{labelNameChain}),
logIndexIncReasonRecover: prometheus.NewCounterVec(prometheus.CounterOpts{
Namespace: "iota_wasp",
Subsystem: "cmt_log",
Name: "log_index_inc_reason_Recover",
Help: "Number if times LogIndex was increased because of recovery procedure.",
}, []string{labelNameChain}),
logIndexIncReasonL1RepAO: prometheus.NewCounterVec(prometheus.CounterOpts{
Namespace: "iota_wasp",
Subsystem: "cmt_log",
Name: "log_index_inc_reason_L1RepAO",
Help: "Number if times LogIndex was increased because L1 replaced TIP alias output.",
}, []string{labelNameChain}),
logIndexIncReasonStarted: prometheus.NewCounterVec(prometheus.CounterOpts{
Namespace: "iota_wasp",
Subsystem: "cmt_log",
Name: "log_index_inc_reason_Started",
Help: "Number if times LogIndex was increased because other nodes started the consensus.",
}, []string{labelNameChain}),
}
}
func (p *ChainCmtLogMetricsProvider) register(reg prometheus.Registerer) {
reg.MustRegister(
p.logIndexIncReasonConsOut,
p.logIndexIncReasonRecover,
p.logIndexIncReasonL1RepAO,
p.logIndexIncReasonStarted,
)
}
func (p *ChainCmtLogMetricsProvider) createForChain(chainID isc.ChainID) *ChainCmtLogMetrics {
return newChainCmtLogMetrics(p, chainID)
}
type ChainCmtLogMetrics struct {
consOut prometheus.Counter
recover prometheus.Counter
l1RepAO prometheus.Counter
started prometheus.Counter
}
func newChainCmtLogMetrics(collectors *ChainCmtLogMetricsProvider, chainID isc.ChainID) *ChainCmtLogMetrics {
labels := getChainLabels(chainID)
return &ChainCmtLogMetrics{
consOut: collectors.logIndexIncReasonConsOut.With(labels),
recover: collectors.logIndexIncReasonRecover.With(labels),
l1RepAO: collectors.logIndexIncReasonL1RepAO.With(labels),
started: collectors.logIndexIncReasonStarted.With(labels),
}
}
func (m *ChainCmtLogMetrics) NextLogIndexCauseConsOut() { m.consOut.Inc() }
func (m *ChainCmtLogMetrics) NextLogIndexCauseRecover() { m.recover.Inc() }
func (m *ChainCmtLogMetrics) NextLogIndexCauseL1RepAO() { m.l1RepAO.Inc() }
func (m *ChainCmtLogMetrics) NextLogIndexCauseStarted() { m.started.Inc() }