monitor

package
v0.4.23 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 11, 2024 License: MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

Functions

This section is empty.

Types

type CheckpointState

type CheckpointState struct {
	BlockHeight      uint64 `json:"block_height"`
	BlockNumber      uint64 `json:"block_number"`
	EventID          uint64 `json:"event_id"`
	CastsBackfill    bool   `json:"casts_backfill"`
	ReactionBackfill bool   `json:"reaction_backfill"`
}

type Client

type Client interface {
	// CurrentState returns the current block number (ethereum), height (arweave) or event id (farcaster) of the client from Checkpoints table in database.
	CurrentState(state CheckpointState) uint64
	// LatestState returns the latest block number (ethereum), height (arweave) or event id (farcaster) of the client from network rpc/api.
	LatestState(ctx context.Context) (uint64, error)
}

func NewArweaveClient

func NewArweaveClient() (Client, error)

NewArweaveClient returns a new arweave client.

func NewEthereumClient

func NewEthereumClient(endpoint config.Endpoint) (Client, error)

NewEthereumClient returns a new ethereum client.

func NewFarcasterClient

func NewFarcasterClient() (Client, error)

NewFarcasterClient returns a new farcaster client.

type Monitor

type Monitor struct {
	// contains filtered or unexported fields
}

func NewMonitor

func NewMonitor(_ context.Context, config *config.File, databaseClient database.Client, redisClient rueidis.Client) (*Monitor, error)

NewMonitor creates a new monitor instance.

func (*Monitor) GetWorkerStatus

func (m *Monitor) GetWorkerStatus(ctx context.Context, network, workerName string) workerx.Status

GetWorkerStatus gets worker status from Redis cache by network and workerName.

func (*Monitor) MonitorMockWorkerStatus

func (m *Monitor) MonitorMockWorkerStatus(ctx context.Context, currentState CheckpointState, latestState uint64) error

func (*Monitor) MonitorWorkerStatus

func (m *Monitor) MonitorWorkerStatus(ctx context.Context) error

MonitorWorkerStatus checks the worker status by comparing the current and latest block height/number. flags the worker as unhealthy if it's left behind the latest block height/number by more than the tolerance.

func (*Monitor) Run

func (m *Monitor) Run(ctx context.Context) error

func (*Monitor) UpdateWorkerProgress

func (m *Monitor) UpdateWorkerProgress(ctx context.Context, workerID string, state uint64) error

UpdateWorkerProgress updates worker progress (state) in each monitoring cycle to Redis Cache.

func (*Monitor) UpdateWorkerStatus

func (m *Monitor) UpdateWorkerStatus(ctx context.Context, network, workerName string, status string) error

UpdateWorkerStatus caches the worker status to Redis.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL