Skip to content

Commit

Permalink
Merge pull request #10 from Layr-Labs/epociask--feat-metrics-support
Browse files Browse the repository at this point in the history
feat(op-plasma-eigenda): Metrics server
  • Loading branch information
epociask authored May 17, 2024
2 parents 92cadea + 38814d9 commit df0fc93
Show file tree
Hide file tree
Showing 12 changed files with 166 additions and 1,201 deletions.
22 changes: 19 additions & 3 deletions cmd/daserver/entrypoint.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package main

import (
"context"
"fmt"

"github.com/Layr-Labs/op-plasma-eigenda/metrics"
"github.com/urfave/cli/v2"

plasma "github.com/Layr-Labs/op-plasma-eigenda"
Expand All @@ -17,11 +19,11 @@ func StartDAServer(cliCtx *cli.Context) error {
if err := CheckRequired(cliCtx); err != nil {
return err
}

cfg := ReadCLIConfig(cliCtx)
if err := cfg.Check(); err != nil {
return err
}
m := metrics.NewMetrics("default")

log := oplog.NewLogger(oplog.AppOut(cliCtx), oplog.ReadCLIConfig(cliCtx)).New("role", "eigenda_plasma_server")
oplog.SetGlobalLogHandler(log.Handler())
Expand Down Expand Up @@ -61,8 +63,7 @@ func StartDAServer(cliCtx *cli.Context) error {
}
store = eigenda
}

server := plasma.NewDAServer(cliCtx.String(ListenAddrFlagName), cliCtx.Int(PortFlagName), store, log)
server := plasma.NewDAServer(cliCtx.String(ListenAddrFlagName), cliCtx.Int(PortFlagName), store, log, m)

if err := server.Start(); err != nil {
return fmt.Errorf("failed to start the DA server")
Expand All @@ -76,6 +77,21 @@ func StartDAServer(cliCtx *cli.Context) error {
}
}()

if cfg.MetricsCfg.Enabled {
log.Debug("starting metrics server", "addr", cfg.MetricsCfg.ListenAddr, "port", cfg.MetricsCfg.ListenPort)
svr, err := m.StartServer(cfg.MetricsCfg.ListenAddr, cfg.MetricsCfg.ListenPort)
if err != nil {
return fmt.Errorf("failed to start metrics server: %w", err)
}
defer func() {
if err := svr.Stop(context.Background()); err != nil {
log.Error("failed to stop metrics server", "err", err)
}
}()
log.Info("started metrics server", "addr", svr.Addr())
m.RecordUp()
}

opio.BlockOnInterrupts()

return nil
Expand Down
4 changes: 4 additions & 0 deletions cmd/daserver/flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"github.com/Layr-Labs/op-plasma-eigenda/eigenda"
opservice "github.com/ethereum-optimism/optimism/op-service"
oplog "github.com/ethereum-optimism/optimism/op-service/log"
opmetrics "github.com/ethereum-optimism/optimism/op-service/metrics"
)

const (
Expand Down Expand Up @@ -61,6 +62,7 @@ var optionalFlags = []cli.Flag{
func init() {
optionalFlags = append(optionalFlags, oplog.CLIFlags(EnvVarPrefix)...)
optionalFlags = append(optionalFlags, eigenda.CLIFlags(EnvVarPrefix)...)
optionalFlags = append(optionalFlags, opmetrics.CLIFlags(EnvVarPrefix)...)
Flags = append(requiredFlags, optionalFlags...)
}

Expand All @@ -71,13 +73,15 @@ type CLIConfig struct {
FileStoreDirPath string
S3Bucket string
EigenDAConfig eigenda.Config
MetricsCfg opmetrics.CLIConfig
}

func ReadCLIConfig(ctx *cli.Context) CLIConfig {
return CLIConfig{
FileStoreDirPath: ctx.String(FileStorePathFlagName),
S3Bucket: ctx.String(S3BucketFlagName),
EigenDAConfig: eigenda.ReadConfig(ctx),
MetricsCfg: opmetrics.ReadCLIConfig(ctx),
}
}

Expand Down
8 changes: 8 additions & 0 deletions cmd/daserver/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,11 @@ import (
"github.com/ethereum/go-ethereum/log"
"github.com/urfave/cli/v2"

"github.com/ethereum-optimism/optimism/op-node/metrics"
opservice "github.com/ethereum-optimism/optimism/op-service"
"github.com/ethereum-optimism/optimism/op-service/cliapp"
oplog "github.com/ethereum-optimism/optimism/op-service/log"
"github.com/ethereum-optimism/optimism/op-service/metrics/doc"
"github.com/ethereum-optimism/optimism/op-service/opio"
)

Expand All @@ -25,6 +27,12 @@ func main() {
app.Usage = "EigenDA Plasma DA Storage Service"
app.Description = "Service for storing plasma DA inputs"
app.Action = StartDAServer
app.Commands = []*cli.Command{
{
Name: "doc",
Subcommands: doc.NewSubcommands(metrics.NewMetrics("default")),
},
}

ctx := opio.WithInterruptBlocker(context.Background())
err := app.RunContext(ctx, os.Args)
Expand Down
Loading

0 comments on commit df0fc93

Please sign in to comment.