stats

package
v1.52.2 Latest Latest
Warning

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

Go to latest
Published: May 20, 2021 License: Apache-2.0 Imports: 29 Imported by: 104

Documentation

Index

Constants

View Source
const (
	// BytesInMiB is the number of bytes in a MebiByte.
	BytesInMiB              = 1024 * 1024
	MaxCPUUsagePerc float32 = 1024 * 1024
	NanoSecToSec    float32 = 1000000000
)

Variables

View Source
var (
	// EmptyMetricsError indicates an error for a task when there are no container
	// metrics to report
	EmptyMetricsError = errors.New("stats engine: no task metrics to report")
	// EmptyHealthMetricsError indicates an error for a task when there are no container
	// health metrics to report
	EmptyHealthMetricsError = errors.New("stats engine: no task health metrics to report")
)

Functions

This section is empty.

Types

type ContainerMetadata

type ContainerMetadata struct {
	DockerID    string `json:"-"`
	Name        string `json:"-"`
	NetworkMode string `json:"-"`
}

ContainerMetadata contains meta-data information for a container.

type ContainerStats

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

ContainerStats encapsulates the raw CPU and memory utilization from cgroup fs.

type DockerContainerMetadataResolver

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

DockerContainerMetadataResolver implements ContainerMetadataResolver for DockerTaskEngine.

func (*DockerContainerMetadataResolver) ResolveContainer added in v1.12.2

func (resolver *DockerContainerMetadataResolver) ResolveContainer(dockerID string) (*apicontainer.DockerContainer, error)

ResolveContainer resolves the api container object, given container id.

func (*DockerContainerMetadataResolver) ResolveTask

func (resolver *DockerContainerMetadataResolver) ResolveTask(dockerID string) (*apitask.Task, error)

ResolveTask resolves the api task object, given container id.

func (*DockerContainerMetadataResolver) ResolveTaskByARN added in v1.43.0

func (resolver *DockerContainerMetadataResolver) ResolveTaskByARN(taskArn string) (*apitask.Task, error)

type DockerStatsEngine

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

func NewDockerStatsEngine

func NewDockerStatsEngine(cfg *config.Config, client dockerapi.DockerClient, containerChangeEventStream *eventstream.EventStream) *DockerStatsEngine

NewDockerStatsEngine creates a new instance of the DockerStatsEngine object. MustInit() must be called to initialize the fields of the new event listener.

func (*DockerStatsEngine) ContainerDockerStats added in v1.17.0

func (engine *DockerStatsEngine) ContainerDockerStats(taskARN string, containerID string) (*types.StatsJSON, *NetworkStatsPerSec, error)

ContainerDockerStats returns the last stored raw docker stats object for a container

func (*DockerStatsEngine) Disable added in v1.18.0

func (engine *DockerStatsEngine) Disable()

Disable prevents this engine from managing any additional tasks.

func (*DockerStatsEngine) GetInstanceMetrics

func (engine *DockerStatsEngine) GetInstanceMetrics() (*ecstcs.MetricsMetadata, []*ecstcs.TaskMetric, error)

GetInstanceMetrics gets all task metrics and instance metadata from stats engine.

func (*DockerStatsEngine) GetTaskHealthMetrics added in v1.17.0

func (engine *DockerStatsEngine) GetTaskHealthMetrics() (*ecstcs.HealthMetadata, []*ecstcs.TaskHealth, error)

GetTaskHealthMetrics returns the container health metrics

func (*DockerStatsEngine) MustInit

func (engine *DockerStatsEngine) MustInit(ctx context.Context, taskEngine ecsengine.TaskEngine, cluster string, containerInstanceArn string) error

MustInit initializes fields of the DockerStatsEngine object.

func (*DockerStatsEngine) Shutdown added in v1.18.0

func (engine *DockerStatsEngine) Shutdown()

Shutdown cleans up the resources after the stats engine.

type Engine

type Engine interface {
	GetInstanceMetrics() (*ecstcs.MetricsMetadata, []*ecstcs.TaskMetric, error)
	ContainerDockerStats(taskARN string, containerID string) (*types.StatsJSON, *NetworkStatsPerSec, error)
	GetTaskHealthMetrics() (*ecstcs.HealthMetadata, []*ecstcs.TaskHealth, error)
}

Engine defines methods to be implemented by the engine struct. It is defined to make testing easier.

type NetworkStats added in v1.29.0

type NetworkStats struct {
	RxBytes          uint64  `json:"rxBytes"`
	RxDropped        uint64  `json:"rxDropped"`
	RxErrors         uint64  `json:"rxErrors"`
	RxPackets        uint64  `json:"rxPackets"`
	TxBytes          uint64  `json:"txBytes"`
	TxDropped        uint64  `json:"txDropped"`
	TxErrors         uint64  `json:"txErrors"`
	TxPackets        uint64  `json:"txPackets"`
	RxBytesPerSecond float32 `json:"rxBytesPerSecond"`
	TxBytesPerSecond float32 `json:"txBytesPerSecond"`
}

NetworkStats contains the network stats information for a container

type NetworkStatsPerSec added in v1.43.0

type NetworkStatsPerSec struct {
	RxBytesPerSecond float32 `json:"rx_bytes_per_sec"`
	TxBytesPerSecond float32 `json:"tx_bytes_per_sec"`
}

type Queue

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

Queue abstracts a queue using UsageStats slice.

func NewQueue

func NewQueue(maxSize int) *Queue

NewQueue creates a queue.

func (*Queue) Add

func (queue *Queue) Add(dockerStat *types.StatsJSON) error

Add adds a new set of container stats to the queue.

func (*Queue) GetCPUStatsSet

func (queue *Queue) GetCPUStatsSet() (*ecstcs.CWStatsSet, error)

GetCPUStatsSet gets the stats set for CPU utilization.

func (*Queue) GetLastNetworkStatPerSec added in v1.43.0

func (queue *Queue) GetLastNetworkStatPerSec() *NetworkStatsPerSec

func (*Queue) GetLastStat added in v1.17.0

func (queue *Queue) GetLastStat() *types.StatsJSON

GetLastStat returns the last recorded raw statistics object from docker

func (*Queue) GetMemoryStatsSet

func (queue *Queue) GetMemoryStatsSet() (*ecstcs.CWStatsSet, error)

GetMemoryStatsSet gets the stats set for memory utilization.

func (*Queue) GetNetworkStatsSet added in v1.29.0

func (queue *Queue) GetNetworkStatsSet() (*ecstcs.NetworkStatsSet, error)

GetNetworkStatsSet gets the stats set for network metrics.

func (*Queue) GetStorageStatsSet added in v1.29.0

func (queue *Queue) GetStorageStatsSet() (*ecstcs.StorageStatsSet, error)

GetStorageStatsSet gets the stats set for aggregate storage

func (*Queue) Reset

func (queue *Queue) Reset()

Reset resets the queue's buffer so that only new metrics added after this point will be sent to the backend when calling stat getter functions like GetCPUStatsSet, GetMemoryStatSet, etc.

type StatsContainer added in v1.10.0

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

StatsContainer abstracts methods to gather and aggregate utilization data for a container.

func (*StatsContainer) StartStatsCollection added in v1.10.0

func (container *StatsContainer) StartStatsCollection()

func (*StatsContainer) StopStatsCollection added in v1.10.0

func (container *StatsContainer) StopStatsCollection()

type StatsTask added in v1.43.0

type StatsTask struct {
	StatsQueue   *Queue
	TaskMetadata *TaskMetadata
	Ctx          context.Context
	Cancel       context.CancelFunc
	Resolver     resolver.ContainerMetadataResolver
	// contains filtered or unexported fields
}

StatsTask abstracts methods to gather and aggregate network data for a task. Used only for AWSVPC mode.

func (*StatsTask) StartStatsCollection added in v1.43.0

func (task *StatsTask) StartStatsCollection()

func (*StatsTask) StopStatsCollection added in v1.43.0

func (task *StatsTask) StopStatsCollection()

type TaskMetadata added in v1.43.0

type TaskMetadata struct {
	TaskArn string `json:"-"`
	// ContainerPID is the PID of the pause container in the awsvpc task.
	ContainerPID     string   `json:"-"`
	DeviceName       []string `json:"-"`
	NumberContainers int      `json:"-"`
}

TaskMetadata contains meta-data information for a task.

type UsageStats

type UsageStats struct {
	CPUUsagePerc      float32       `json:"cpuUsagePerc"`
	MemoryUsageInMegs uint32        `json:"memoryUsageInMegs"`
	StorageReadBytes  uint64        `json:"storageReadBytes"`
	StorageWriteBytes uint64        `json:"storageWriteBytes"`
	NetworkStats      *NetworkStats `json:"networkStats"`
	Timestamp         time.Time     `json:"timestamp"`
	// contains filtered or unexported fields
}

UsageStats abstracts the format in which the queue stores data.

Directories

Path Synopsis
Package mock_stats is a generated GoMock package.
Package mock_stats is a generated GoMock package.
mock
Package mock_resolver is a generated GoMock package.
Package mock_resolver is a generated GoMock package.

Jump to

Keyboard shortcuts

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