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)