@@ -17,6 +17,8 @@ import (
17
17
"github.com/blinklabs-io/cdnsd/internal/config"
18
18
"github.com/blinklabs-io/cdnsd/internal/state"
19
19
ouroboros "github.com/blinklabs-io/gouroboros"
20
+ "github.com/prometheus/client_golang/prometheus"
21
+ "github.com/prometheus/client_golang/prometheus/promauto"
20
22
21
23
"github.com/blinklabs-io/adder/event"
22
24
filter_event "github.com/blinklabs-io/adder/filter/event"
@@ -34,6 +36,17 @@ const (
34
36
syncStatusLogInterval = 30 * time .Second
35
37
)
36
38
39
+ var (
40
+ metricSlot = promauto .NewGauge (prometheus.GaugeOpts {
41
+ Name : "indexer_slot" ,
42
+ Help : "Indexer current slot number" ,
43
+ })
44
+ metricTipSlot = promauto .NewGauge (prometheus.GaugeOpts {
45
+ Name : "indexer_tip_slot" ,
46
+ Help : "Slot number for upstream chain tip" ,
47
+ })
48
+ )
49
+
37
50
type Domain struct {
38
51
Name string
39
52
Nameservers map [string ]string
@@ -108,6 +121,8 @@ func (i *Indexer) Start() error {
108
121
input_chainsync .WithStatusUpdateFunc (
109
122
func (status input_chainsync.ChainSyncStatus ) {
110
123
i .syncStatus = status
124
+ metricSlot .Set (float64 (status .SlotNumber ))
125
+ metricTipSlot .Set (float64 (status .TipSlotNumber ))
111
126
if err := state .GetState ().UpdateCursor (status .SlotNumber , status .BlockHash ); err != nil {
112
127
slog .Error (
113
128
fmt .Sprintf ("failed to update cursor: %s" , err ),
0 commit comments