Commit 98c19947 authored by Madhur Shrimal's avatar Madhur Shrimal

op-proposer: add l2 block height metrics

parent 5bb850b4
...@@ -4,6 +4,7 @@ import ( ...@@ -4,6 +4,7 @@ import (
"context" "context"
"errors" "errors"
"fmt" "fmt"
"github.com/prometheus/client_golang/prometheus"
"math/big" "math/big"
_ "net/http/pprof" _ "net/http/pprof"
"os" "os"
...@@ -78,17 +79,16 @@ func Main(version string, cliCtx *cli.Context) error { ...@@ -78,17 +79,16 @@ func Main(version string, cliCtx *cli.Context) error {
}() }()
} }
registry := opmetrics.NewRegistry()
metricsCfg := cfg.MetricsConfig metricsCfg := cfg.MetricsConfig
if metricsCfg.Enabled { if metricsCfg.Enabled {
l.Info("starting metrics server", "addr", metricsCfg.ListenAddr, "port", metricsCfg.ListenPort) l.Info("starting metrics server", "addr", metricsCfg.ListenAddr, "port", metricsCfg.ListenPort)
go func() { go func() {
if err := opmetrics.ListenAndServe(ctx, registry, metricsCfg.ListenAddr, metricsCfg.ListenPort); err != nil { if err := opmetrics.ListenAndServe(ctx, l2OutputSubmitter.metricsRegistry, metricsCfg.ListenAddr, metricsCfg.ListenPort); err != nil {
l.Error("error starting metrics server", err) l.Error("error starting metrics server", err)
} }
}() }()
addr := l2OutputSubmitter.from addr := l2OutputSubmitter.from
opmetrics.LaunchBalanceMetrics(ctx, l, registry, "", l2OutputSubmitter.l1Client, addr) opmetrics.LaunchBalanceMetrics(ctx, l, l2OutputSubmitter.metricsRegistry, "", l2OutputSubmitter.l1Client, addr)
} }
rpcCfg := cfg.RPCConfig rpcCfg := cfg.RPCConfig
...@@ -117,6 +117,7 @@ type L2OutputSubmitter struct { ...@@ -117,6 +117,7 @@ type L2OutputSubmitter struct {
wg sync.WaitGroup wg sync.WaitGroup
done chan struct{} done chan struct{}
log log.Logger log log.Logger
metricsRegistry *prometheus.Registry
ctx context.Context ctx context.Context
cancel context.CancelFunc cancel context.CancelFunc
...@@ -226,6 +227,7 @@ func NewL2OutputSubmitter(cfg Config, l log.Logger) (*L2OutputSubmitter, error) ...@@ -226,6 +227,7 @@ func NewL2OutputSubmitter(cfg Config, l log.Logger) (*L2OutputSubmitter, error)
txMgr: txmgr.NewSimpleTxManager("proposer", l, cfg.TxManagerConfig, cfg.L1Client), txMgr: txmgr.NewSimpleTxManager("proposer", l, cfg.TxManagerConfig, cfg.L1Client),
done: make(chan struct{}), done: make(chan struct{}),
log: l, log: l,
metricsRegistry: opmetrics.NewRegistry(),
ctx: ctx, ctx: ctx,
cancel: cancel, cancel: cancel,
...@@ -375,6 +377,9 @@ func (l *L2OutputSubmitter) SendTransaction(ctx context.Context, tx *types.Trans ...@@ -375,6 +377,9 @@ func (l *L2OutputSubmitter) SendTransaction(ctx context.Context, tx *types.Trans
return err return err
} }
// Emit the proposed block Number
opmetrics.EmitBlockNumber(l.metricsRegistry, "", receipt.BlockNumber)
// The transaction was successfully submitted // The transaction was successfully submitted
l.log.Info("proposer tx successfully published", "tx_hash", receipt.TxHash) l.log.Info("proposer tx successfully published", "tx_hash", receipt.TxHash)
return nil return nil
......
package metrics
import (
"github.com/prometheus/client_golang/prometheus/promauto"
"math/big"
"github.com/prometheus/client_golang/prometheus"
)
func EmitBlockNumber(r *prometheus.Registry, ns string, blockNumber *big.Int) {
promauto.With(r).NewGauge(prometheus.GaugeOpts{
Namespace: ns,
Name: "latest_block_number",
Help: "Latest L2 proposed block number",
}).Set(float64(blockNumber.Uint64()))
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment