stats

package
v1.41.1 Latest Latest
Warning

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

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

Documentation

Index

Constants

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

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