Newer
Older
Angelo Capossele
committed
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 prometheus
import (
"github.com/iotaledger/goshimmer/packages/binary/messagelayer/payload"
"github.com/iotaledger/goshimmer/plugins/metrics"
"github.com/prometheus/client_golang/prometheus"
)
var (
messageTips prometheus.Gauge
messagePerTypeCount *prometheus.GaugeVec
messageTotalCount prometheus.Gauge
transactionCounter prometheus.Gauge
valueTips prometheus.Gauge
)
func registerTangleMetrics() {
messageTips = prometheus.NewGauge(prometheus.GaugeOpts{
Name: "tangle_message_tips_count",
Help: "Current number of tips in message tangle",
})
messagePerTypeCount = prometheus.NewGaugeVec(
prometheus.GaugeOpts{
Name: "tangle_messages_per_type_count",
Help: "number of messages per payload type seen since the start of the node",
}, []string{
"message_type",
})
messageTotalCount = prometheus.NewGauge(prometheus.GaugeOpts{
Name: "tangle_message_total_count",
Help: "total number of messages seen since the start of the node",
})
transactionCounter = prometheus.NewGauge(prometheus.GaugeOpts{
Name: "tangle_value_transaction_counter",
Help: "number of value transactions (value payloads) seen",
})
valueTips = prometheus.NewGauge(prometheus.GaugeOpts{
Name: "tangle_value_tips",
Help: "current number of tips in the value tangle",
})
registry.MustRegister(messageTips)
registry.MustRegister(messagePerTypeCount)
registry.MustRegister(messageTotalCount)
registry.MustRegister(transactionCounter)
registry.MustRegister(valueTips)
addCollect(collectTangleMetrics)
}
func collectTangleMetrics() {
messageTips.Set(float64(metrics.MessageTips()))
msgCountPerPayload := metrics.MessageCountPerPayload()
for payloadType, count := range msgCountPerPayload {
messagePerTypeCount.WithLabelValues(convertPayloadTypeToString(payloadType)).Set(float64(count))
}
messageTotalCount.Set(float64(metrics.MessageTotalCount()))
transactionCounter.Set(float64(metrics.ValueTransactionCounter()))
valueTips.Set(float64(metrics.ValueTips()))
}
func convertPayloadTypeToString(p payload.Type) string {
switch p {
case 0:
return "data"
case 1:
return "value"
case 111:
return "drng"
default:
return "unknown"
}
}