stats

package
v1.20.0-1 Latest Latest
Warning

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

Go to latest
Published: Apr 2, 2020 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// SleepBetweenUsageDataCollection is the sleep duration between collecting usage data for a container.
	SleepBetweenUsageDataCollection = 1 * time.Second

	// ContainerStatsBufferLength is the number of usage metrics stored in memory for a container. It is calculated as
	// Number of usage metrics gathered in a second (1) * 60 * Time duration in minutes to store the data for (2)
	ContainerStatsBufferLength = 120
)
View Source
const (
	// BytesInMiB is the number of bytes in a MebiByte.
	BytesInMiB = 1024 * 1024

	MaxCPUUsagePerc float32 = 1024 * 1024
)

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.

type DockerStatsEngine

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

DockerStatsEngine is used to monitor docker container events and to report utlization metrics of the same.

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, error)

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

func (*DockerStatsEngine) Disable

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

func (engine *DockerStatsEngine) Shutdown()

Shutdown cleans up the resources after the statas engine.

type Engine

type Engine interface {
	GetInstanceMetrics() (*ecstcs.MetricsMetadata, []*ecstcs.TaskMetric, error)
	ContainerDockerStats(taskARN string, containerID string) (*types.StatsJSON, 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

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"`
}

NetworkStats contains the network stats information for a container

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) 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

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

GetNetworkStatsSet gets the stats set for network metrics.

func (*Queue) GetRawUsageStats

func (queue *Queue) GetRawUsageStats(numStats int) ([]UsageStats, error)

GetRawUsageStats gets the array of most recent raw UsageStats, in descending order of timestamps.

func (*Queue) GetStorageStatsSet

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 stats queue.

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 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