2020-03-10 12:20:34 -07:00
|
|
|
// (c) 2019-2020, Ava Labs, Inc. All rights reserved.
|
|
|
|
// See the file LICENSE for licensing terms.
|
|
|
|
|
|
|
|
package avalanche
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/prometheus/client_golang/prometheus"
|
|
|
|
|
|
|
|
"github.com/ava-labs/gecko/utils/logging"
|
|
|
|
)
|
|
|
|
|
|
|
|
type metrics struct {
|
2020-05-20 08:37:01 -07:00
|
|
|
numBSPendingRequests, numBSBlockedVtx, numBSBlockedTx prometheus.Gauge
|
|
|
|
numBSVtx, numBSDroppedVtx,
|
|
|
|
numBSTx, numBSDroppedTx prometheus.Counter
|
2020-03-10 12:20:34 -07:00
|
|
|
|
|
|
|
numPolls, numVtxRequests, numTxRequests, numPendingVtx prometheus.Gauge
|
|
|
|
}
|
|
|
|
|
|
|
|
// Initialize implements the Engine interface
|
|
|
|
func (m *metrics) Initialize(log logging.Logger, namespace string, registerer prometheus.Registerer) {
|
2020-05-20 08:37:01 -07:00
|
|
|
m.numBSPendingRequests = prometheus.NewGauge(
|
2020-03-10 12:20:34 -07:00
|
|
|
prometheus.GaugeOpts{
|
|
|
|
Namespace: namespace,
|
|
|
|
Name: "av_bs_vtx_requests",
|
|
|
|
Help: "Number of pending bootstrap vertex requests",
|
|
|
|
})
|
2020-05-20 08:37:01 -07:00
|
|
|
m.numBSBlockedVtx = prometheus.NewGauge(
|
2020-03-10 12:20:34 -07:00
|
|
|
prometheus.GaugeOpts{
|
|
|
|
Namespace: namespace,
|
|
|
|
Name: "av_bs_blocked_vts",
|
|
|
|
Help: "Number of blocked bootstrap vertices",
|
|
|
|
})
|
2020-05-20 08:37:01 -07:00
|
|
|
m.numBSBlockedTx = prometheus.NewGauge(
|
2020-03-10 12:20:34 -07:00
|
|
|
prometheus.GaugeOpts{
|
|
|
|
Namespace: namespace,
|
|
|
|
Name: "av_bs_blocked_txs",
|
|
|
|
Help: "Number of blocked bootstrap txs",
|
|
|
|
})
|
2020-05-20 08:37:01 -07:00
|
|
|
m.numBSVtx = prometheus.NewCounter(
|
2020-03-10 12:20:34 -07:00
|
|
|
prometheus.CounterOpts{
|
|
|
|
Namespace: namespace,
|
|
|
|
Name: "av_bs_accepted_vts",
|
|
|
|
Help: "Number of accepted vertices",
|
|
|
|
})
|
2020-05-20 08:37:01 -07:00
|
|
|
m.numBSDroppedVtx = prometheus.NewCounter(
|
2020-03-10 12:20:34 -07:00
|
|
|
prometheus.CounterOpts{
|
|
|
|
Namespace: namespace,
|
|
|
|
Name: "av_bs_dropped_vts",
|
|
|
|
Help: "Number of dropped vertices",
|
|
|
|
})
|
2020-05-20 08:37:01 -07:00
|
|
|
m.numBSTx = prometheus.NewCounter(
|
2020-03-10 12:20:34 -07:00
|
|
|
prometheus.CounterOpts{
|
|
|
|
Namespace: namespace,
|
|
|
|
Name: "av_bs_accepted_txs",
|
|
|
|
Help: "Number of accepted txs",
|
|
|
|
})
|
2020-05-20 08:37:01 -07:00
|
|
|
m.numBSDroppedTx = prometheus.NewCounter(
|
2020-03-10 12:20:34 -07:00
|
|
|
prometheus.CounterOpts{
|
|
|
|
Namespace: namespace,
|
|
|
|
Name: "av_bs_dropped_txs",
|
|
|
|
Help: "Number of dropped txs",
|
|
|
|
})
|
|
|
|
m.numPolls = prometheus.NewGauge(
|
|
|
|
prometheus.GaugeOpts{
|
|
|
|
Namespace: namespace,
|
|
|
|
Name: "av_polls",
|
|
|
|
Help: "Number of pending network polls",
|
|
|
|
})
|
|
|
|
m.numVtxRequests = prometheus.NewGauge(
|
|
|
|
prometheus.GaugeOpts{
|
|
|
|
Namespace: namespace,
|
|
|
|
Name: "av_vtx_requests",
|
|
|
|
Help: "Number of pending vertex requests",
|
|
|
|
})
|
|
|
|
m.numTxRequests = prometheus.NewGauge(
|
|
|
|
prometheus.GaugeOpts{
|
|
|
|
Namespace: namespace,
|
|
|
|
Name: "av_tx_requests",
|
|
|
|
Help: "Number of pending transactions",
|
|
|
|
})
|
|
|
|
m.numPendingVtx = prometheus.NewGauge(
|
|
|
|
prometheus.GaugeOpts{
|
|
|
|
Namespace: namespace,
|
|
|
|
Name: "av_blocked_vts",
|
|
|
|
Help: "Number of blocked vertices",
|
|
|
|
})
|
|
|
|
|
2020-05-20 08:37:01 -07:00
|
|
|
if err := registerer.Register(m.numBSPendingRequests); err != nil {
|
2020-03-10 12:20:34 -07:00
|
|
|
log.Error("Failed to register av_bs_vtx_requests statistics due to %s", err)
|
|
|
|
}
|
2020-05-20 08:37:01 -07:00
|
|
|
if err := registerer.Register(m.numBSBlockedVtx); err != nil {
|
2020-03-10 12:20:34 -07:00
|
|
|
log.Error("Failed to register av_bs_blocked_vts statistics due to %s", err)
|
|
|
|
}
|
2020-05-20 08:37:01 -07:00
|
|
|
if err := registerer.Register(m.numBSBlockedTx); err != nil {
|
2020-03-10 12:20:34 -07:00
|
|
|
log.Error("Failed to register av_bs_blocked_txs statistics due to %s", err)
|
|
|
|
}
|
2020-05-20 08:37:01 -07:00
|
|
|
if err := registerer.Register(m.numBSVtx); err != nil {
|
2020-03-10 12:20:34 -07:00
|
|
|
log.Error("Failed to register av_bs_accepted_vts statistics due to %s", err)
|
|
|
|
}
|
2020-05-20 08:37:01 -07:00
|
|
|
if err := registerer.Register(m.numBSDroppedVtx); err != nil {
|
2020-03-10 12:20:34 -07:00
|
|
|
log.Error("Failed to register av_bs_dropped_vts statistics due to %s", err)
|
|
|
|
}
|
2020-05-20 08:37:01 -07:00
|
|
|
if err := registerer.Register(m.numBSTx); err != nil {
|
2020-03-10 12:20:34 -07:00
|
|
|
log.Error("Failed to register av_bs_accepted_txs statistics due to %s", err)
|
|
|
|
}
|
2020-05-20 08:37:01 -07:00
|
|
|
if err := registerer.Register(m.numBSDroppedTx); err != nil {
|
2020-03-10 12:20:34 -07:00
|
|
|
log.Error("Failed to register av_bs_dropped_txs statistics due to %s", err)
|
|
|
|
}
|
|
|
|
if err := registerer.Register(m.numPolls); err != nil {
|
|
|
|
log.Error("Failed to register av_polls statistics due to %s", err)
|
|
|
|
}
|
|
|
|
if err := registerer.Register(m.numVtxRequests); err != nil {
|
|
|
|
log.Error("Failed to register av_vtx_requests statistics due to %s", err)
|
|
|
|
}
|
|
|
|
if err := registerer.Register(m.numTxRequests); err != nil {
|
|
|
|
log.Error("Failed to register av_tx_requests statistics due to %s", err)
|
|
|
|
}
|
|
|
|
if err := registerer.Register(m.numPendingVtx); err != nil {
|
|
|
|
log.Error("Failed to register av_blocked_vts statistics due to %s", err)
|
|
|
|
}
|
|
|
|
}
|