Skip to content

Commit

Permalink
feat: introduce Drippie monitoring service
Browse files Browse the repository at this point in the history
  • Loading branch information
smartcontracts committed Jun 6, 2024
1 parent 831144b commit 5750a84
Show file tree
Hide file tree
Showing 5 changed files with 2,172 additions and 0 deletions.
17 changes: 17 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,3 +80,20 @@ OPTIONS:
--safe.address value [$MULTISIG_MON_SAFE] Address of the Safe contract
--op.vault value [$MULTISIG_MON_1PASS_VAULT_NAME] 1Pass Vault name storing presigned safe txs following a 'ready-<nonce>.json' item name format
```

### Drippie Monitor

The drippie monitor tracks the execution and executability of drips within a Drippie contract.

```
OPTIONS:
--l1.node.url value Node URL of L1 peer (default: "127.0.0.1:8545") [$DRIPPIE_MON_L1_NODE_URL]
--drippie.address value Address of the Drippie contract [$DRIPPIE_MON_DRIPPIE]
--log.level value The lowest log level that will be output (default: INFO) [$MONITORISM_LOG_LEVEL]
--log.format value Format the log output. Supported formats: 'text', 'terminal', 'logfmt', 'json', 'json-pretty', (default: text) [$MONITORISM_LOG_FORMAT]
--log.color Color the log output if in terminal mode (default: false) [$MONITORISM_LOG_COLOR]
--metrics.enabled Enable the metrics server (default: false) [$MONITORISM_METRICS_ENABLED]
--metrics.addr value Metrics listening address (default: "0.0.0.0") [$MONITORISM_METRICS_ADDR]
--metrics.port value Metrics listening port (default: 7300) [$MONITORISM_METRICS_PORT]
--loop.interval.msec value Loop interval of the monitor in milliseconds (default: 60000) [$MONITORISM_LOOP_INTERVAL_MSEC]
```
24 changes: 24 additions & 0 deletions op-monitorism/cmd/monitorism/cli.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (

monitorism "github.com/ethereum-optimism/monitorism/op-monitorism"
"github.com/ethereum-optimism/monitorism/op-monitorism/balances"
"github.com/ethereum-optimism/monitorism/op-monitorism/drippie"
"github.com/ethereum-optimism/monitorism/op-monitorism/fault"
"github.com/ethereum-optimism/monitorism/op-monitorism/global_events"
"github.com/ethereum-optimism/monitorism/op-monitorism/multisig"
Expand Down Expand Up @@ -61,6 +62,13 @@ func newCli(GitCommit string, GitDate string) *cli.App {
Flags: append(balances.CLIFlags("BALANCE_MON"), defaultFlags...),
Action: cliapp.LifecycleCmd(BalanceMain),
},
{
Name: "drippie",
Usage: "Monitors Drippie contract",
Description: "Monitors Drippie contract",
Flags: append(drippie.CLIFlags("DRIPPIE_MON"), defaultFlags...),
Action: cliapp.LifecycleCmd(DrippieMain),
},
{
Name: "global_events",
Usage: "Monitors global events with YAML configuration",
Expand Down Expand Up @@ -159,3 +167,19 @@ func BalanceMain(ctx *cli.Context, closeApp context.CancelCauseFunc) (cliapp.Lif

return monitorism.NewCliApp(ctx, log, metricsRegistry, monitor)
}

func DrippieMain(ctx *cli.Context, closeApp context.CancelCauseFunc) (cliapp.Lifecycle, error) {
log := oplog.NewLogger(oplog.AppOut(ctx), oplog.ReadCLIConfig(ctx))
cfg, err := drippie.ReadCLIFlags(ctx)
if err != nil {
return nil, fmt.Errorf("failed to parse drippie config from flags: %w", err)
}

metricsRegistry := opmetrics.NewRegistry()
monitor, err := drippie.NewMonitor(ctx.Context, log, opmetrics.With(metricsRegistry), cfg)
if err != nil {
return nil, fmt.Errorf("failed to create drippie monitor: %w", err)
}

return monitorism.NewCliApp(ctx, log, metricsRegistry, monitor)
}
Loading

0 comments on commit 5750a84

Please sign in to comment.