Documentation
¶
Overview ¶
Package monitor is responsible for monitoring the disk is well-behaved. It checks whether there's sufficient space and whether directories are writable.
Index ¶
- Variables
- type Config
- type DiskSpace
- type Service
- func (service *Service) AvailableSpace(ctx context.Context) (_ int64, err error)
- func (service *Service) Close() (err error)
- func (service *Service) DiskSpace(ctx context.Context) (_ DiskSpace, err error)
- func (service *Service) NotifyLowDisk()
- func (service *Service) Run(ctx context.Context) (err error)
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // Error is the default error class for piecestore monitor errors. Error = errs.Class("piecestore monitor") )
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
Interval time.Duration `help:"how frequently Kademlia bucket should be refreshed with node stats" default:"1h0m0s"`
VerifyDirReadableInterval time.Duration `help:"how frequently to verify the location and readability of the storage directory" releaseDefault:"1m" devDefault:"30s"`
VerifyDirWritableInterval time.Duration `help:"how frequently to verify writability of storage directory" releaseDefault:"5m" devDefault:"30s"`
VerifyDirReadableTimeout time.Duration `help:"how long to wait for a storage directory readability verification to complete" releaseDefault:"1m" devDefault:"10s"`
VerifyDirWritableTimeout time.Duration `help:"how long to wait for a storage directory writability verification to complete" releaseDefault:"1m" devDefault:"10s"`
VerifyDirWarnOnly bool `help:"if the storage directory verification check fails, log a warning instead of killing the node" default:"false"`
MinimumDiskSpace memory.Size `help:"how much disk space a node at minimum has to advertise" default:"500GB"`
MinimumBandwidth memory.Size `help:"how much bandwidth a node at minimum has to advertise (deprecated)" default:"0TB"`
NotifyLowDiskCooldown time.Duration `help:"minimum length of time between capacity reports" default:"10m" hidden:"true"`
}
Config defines parameters for storage node disk and bandwidth usage monitoring.
type DiskSpace ¶ added in v1.20.1
type DiskSpace struct {
Allocated int64
UsedForPieces int64
UsedForTrash int64
Free int64
Available int64
Overused int64
}
DiskSpace consolidates monitored disk space statistics.
type Service ¶
type Service struct {
Loop *sync2.Cycle
VerifyDirReadableLoop *sync2.Cycle
VerifyDirWritableLoop *sync2.Cycle
Config Config
// contains filtered or unexported fields
}
Service which monitors disk usage.
architecture: Service
func NewService ¶
func NewService(log *zap.Logger, store *pieces.Store, contact *contact.Service, usageDB bandwidth.DB, allocatedDiskSpace int64, interval time.Duration, reportCapacity func(context.Context), config Config) *Service
NewService creates a new storage node monitoring service.
func (*Service) AvailableSpace ¶ added in v0.10.0
AvailableSpace returns available disk space for upload.
func (*Service) NotifyLowDisk ¶ added in v0.34.6
func (service *Service) NotifyLowDisk()
NotifyLowDisk reports disk space to satellites if cooldown timer has expired.
Click to show internal directories.
Click to hide internal directories.