bandwidth

package
v0.0.0-...-a6a3a47 Latest Latest
Warning

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

Go to latest
Published: Sep 5, 2023 License: AGPL-3.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BucketBandwidthReport

type BucketBandwidthReport struct {
	BucketStats map[string]map[string]Details `json:"bucketStats,omitempty"`
}

BucketBandwidthReport captures the details for all buckets.

type Details

type Details struct {
	LimitInBytesPerSecond            int64   `json:"limitInBits"`
	CurrentBandwidthInBytesPerSecond float64 `json:"currentBandwidth"`
}

Details for the measured bandwidth

type Monitor

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

Monitor holds the state of the global bucket monitor

func NewMonitor

func NewMonitor(ctx context.Context, numNodes uint64) *Monitor

NewMonitor returns a monitor with defaults.

func (*Monitor) DeleteBucket

func (m *Monitor) DeleteBucket(bucket string)

DeleteBucket deletes monitoring the 'bucket'

func (*Monitor) DeleteBucketThrottle

func (m *Monitor) DeleteBucketThrottle(bucket, arn string)

DeleteBucketThrottle deletes monitoring for a bucket's target

func (*Monitor) GetReport

func (m *Monitor) GetReport(selectBucket SelectionFunction) *BucketBandwidthReport

GetReport gets the report for all bucket bandwidth details.

func (*Monitor) IsThrottled

func (m *Monitor) IsThrottled(bucket, arn string) bool

IsThrottled returns true if a bucket has bandwidth throttling enabled.

func (*Monitor) SetBandwidthLimit

func (m *Monitor) SetBandwidthLimit(bucket, arn string, limit int64)

SetBandwidthLimit sets the bandwidth limit for a bucket

type MonitorReaderOptions

type MonitorReaderOptions struct {
	Bucket     string
	TargetARN  string
	HeaderSize int
}

MonitorReaderOptions provides configurable options for monitor reader implementation.

type MonitoredReader

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

MonitoredReader represents a throttled reader subject to bandwidth monitoring

func NewMonitoredReader

func NewMonitoredReader(ctx context.Context, m *Monitor, r io.Reader, opts *MonitorReaderOptions) *MonitoredReader

NewMonitoredReader returns reference to a monitored reader that throttles reads to configured bandwidth for the bucket.

func (*MonitoredReader) Read

func (r *MonitoredReader) Read(buf []byte) (n int, err error)

Read implements a throttled read

type SelectionFunction

type SelectionFunction func(bucket string) bool

SelectionFunction for buckets

func SelectBuckets

func SelectBuckets(buckets ...string) SelectionFunction

SelectBuckets will select all the buckets passed in.

Jump to

Keyboard shortcuts

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