Documentation ¶
Overview ¶
Package docker contains few helper functions copied from https://github.com/docker/cli/blob/master/cli/command/container/stats_helpers.go
Index ¶
- Constants
- func CalculateCPUPercentUnix(previousCPU, previousSystem uint64, v *types.StatsJSON) float64
- func CalculateMemPercentUnixNoCache(limit float64, usedNoCache float64) float64
- func CalculateMemUsageUnixNoCache(mem types.MemoryStats) float64
- type Client
- type Docker
- type Instance
- type SocketClient
- func (c *SocketClient) Close() error
- func (c *SocketClient) ContainerInspect(ctx context.Context, containerID string) (types.ContainerJSON, error)
- func (c *SocketClient) ContainerList(ctx context.Context, options types.ContainerListOptions) ([]types.Container, error)
- func (c *SocketClient) ContainerStats(ctx context.Context, containerID string, stream bool) (types.ContainerStats, error)
- func (c *SocketClient) Info(ctx context.Context) (types.Info, error)
- func (c *SocketClient) NodeList(ctx context.Context, options types.NodeListOptions) ([]swarm.Node, error)
- func (c *SocketClient) Ping(ctx context.Context) (types.Ping, error)
- func (c *SocketClient) ServiceList(ctx context.Context, options types.ServiceListOptions) ([]swarm.Service, error)
- func (c *SocketClient) TaskList(ctx context.Context, options types.TaskListOptions) ([]swarm.Task, error)
Constants ¶
const ( KB = 1000 MB = 1000 * KB GB = 1000 * MB TB = 1000 * GB PB = 1000 * TB )
KB, MB, GB, TB, PB...human friendly
Variables ¶
This section is empty.
Functions ¶
func CalculateCPUPercentUnix ¶
func CalculateMemUsageUnixNoCache ¶
func CalculateMemUsageUnixNoCache(mem types.MemoryStats) float64
CalculateMemUsageUnixNoCache calculate memory usage of the container. Cache is intentionally excluded to avoid misinterpretation of the output.
On Docker 19.03 and older, the result is `mem.Usage - mem.Stats["cache"]`. On new docker with cgroup v1 host, the result is `mem.Usage - mem.Stats["total_inactive_file"]`. On new docker with cgroup v2 host, the result is `mem.Usage - mem.Stats["inactive_file"]`.
This definition is designed to be consistent with past values and the latest docker CLI * https://github.com/docker/cli/blob/6e2838e18645e06f3e4b6c5143898ccc44063e3b/cli/command/container/stats_helpers.go#L239
Types ¶
type Client ¶
type Client interface { Info(ctx context.Context) (types.Info, error) ContainerList(ctx context.Context, options types.ContainerListOptions) ([]types.Container, error) ContainerStats(ctx context.Context, containerID string, stream bool) (types.ContainerStats, error) ContainerInspect(ctx context.Context, containerID string) (types.ContainerJSON, error) Ping(ctx context.Context) (types.Ping, error) ServiceList(ctx context.Context, options types.ServiceListOptions) ([]swarm.Service, error) TaskList(ctx context.Context, options types.TaskListOptions) ([]swarm.Task, error) NodeList(ctx context.Context, options types.NodeListOptions) ([]swarm.Node, error) Close() error }
func NewEnvClient ¶
type Docker ¶
type Docker struct { config.PluginConfig Instances []*Instance `toml:"instances"` }
func (*Docker) GetInstances ¶
type Instance ¶
type Instance struct { config.InstanceConfig Endpoint string `toml:"endpoint"` GatherServices bool `toml:"gather_services"` GatherExtendMemstats bool `toml:"gather_extend_memstats"` ContainerIDLabelEnable bool `toml:"container_id_label_enable"` ContainerIDLabelShortStyle bool `toml:"container_id_label_short_style"` PerDeviceInclude []string `toml:"perdevice_include"` TotalInclude []string `toml:"total_include"` TagEnvironment []string `toml:"tag_env"` LabelInclude []string `toml:"docker_label_include"` LabelExclude []string `toml:"docker_label_exclude"` ContainerInclude []string `toml:"container_name_include"` ContainerExclude []string `toml:"container_name_exclude"` ContainerStateInclude []string `toml:"container_state_include"` ContainerStateExclude []string `toml:"container_state_exclude"` Timeout config.Duration tlsx.ClientConfig // contains filtered or unexported fields }
func (*Instance) Gather ¶
func (ins *Instance) Gather(slist *itypes.SampleList)
type SocketClient ¶
type SocketClient struct {
// contains filtered or unexported fields
}
func (*SocketClient) Close ¶
func (c *SocketClient) Close() error
func (*SocketClient) ContainerInspect ¶
func (c *SocketClient) ContainerInspect(ctx context.Context, containerID string) (types.ContainerJSON, error)
func (*SocketClient) ContainerList ¶
func (c *SocketClient) ContainerList(ctx context.Context, options types.ContainerListOptions) ([]types.Container, error)
func (*SocketClient) ContainerStats ¶
func (c *SocketClient) ContainerStats(ctx context.Context, containerID string, stream bool) (types.ContainerStats, error)
func (*SocketClient) NodeList ¶
func (c *SocketClient) NodeList(ctx context.Context, options types.NodeListOptions) ([]swarm.Node, error)
func (*SocketClient) ServiceList ¶
func (c *SocketClient) ServiceList(ctx context.Context, options types.ServiceListOptions) ([]swarm.Service, error)
func (*SocketClient) TaskList ¶
func (c *SocketClient) TaskList(ctx context.Context, options types.TaskListOptions) ([]swarm.Task, error)