common

package
v0.30.2 Latest Latest
Warning

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

Go to latest
Published: Jun 21, 2018 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Overview

Unmarshal's a Containers description json file. The json file contains an array of ContainerHint structs, each with a container's id and networkInterface This allows collecting stats about network interfaces configured outside docker and lxc

Handler for Docker containers.

Index

Constants

View Source
const DefaultPeriod = time.Minute

Variables

View Source
var ArgContainerHints = flag.String("container_hints", "/etc/cadvisor/container_hints.json", "location of the container hints file")

Functions

func AssignDeviceNamesToDiskStats

func AssignDeviceNamesToDiskStats(namer DeviceNamer, stats *info.DiskIoStats)

AssignDeviceNamesToDiskStats assigns the Device field on the provided DiskIoStats by looking up the device major and minor identifiers in the provided device namer.

func CgroupExists

func CgroupExists(cgroupPaths map[string]string) bool

func DebugInfo

func DebugInfo(watches map[string][]string) map[string][]string

func GetContainerHintsFromFile

func GetContainerHintsFromFile(containerHintsFile string) (containerHints, error)

func GetSpec

func GetSpec(cgroupPaths map[string]string, machineInfoFactory info.MachineInfoFactory, hasNetwork, hasFilesystem bool) (info.ContainerSpec, error)

func ListContainers

func ListContainers(name string, cgroupPaths map[string]string, listType container.ListType) ([]info.ContainerReference, error)

func ListDirectories

func ListDirectories(dirpath string, parent string, recursive bool, output map[string]struct{}) error

Lists all directories under "path" and outputs the results as children of "parent".

func MakeCgroupPaths

func MakeCgroupPaths(mountPoints map[string]string, name string) map[string]string

Types

type DeviceNamer

type DeviceNamer interface {
	// DeviceName returns the name of the device by its major and minor ids, or false if no
	// such device is recognized.
	DeviceName(major, minor uint64) (string, bool)
}

DeviceNamer returns string names for devices by their major and minor id.

type FsHandler

type FsHandler interface {
	Start()
	Usage() FsUsage
	Stop()
}

func NewFsHandler

func NewFsHandler(period time.Duration, rootfs, extraDir string, fsInfo fs.FsInfo) FsHandler

type FsUsage

type FsUsage struct {
	BaseUsageBytes  uint64
	TotalUsageBytes uint64
	InodeUsage      uint64
}

type InotifyWatcher

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

Watcher for container-related inotify events in the cgroup hierarchy.

Implementation is thread-safe.

func NewInotifyWatcher

func NewInotifyWatcher() (*InotifyWatcher, error)

func (*InotifyWatcher) AddWatch

func (iw *InotifyWatcher) AddWatch(containerName, dir string) (bool, error)

Add a watch to the specified directory. Returns if the container was already being watched.

func (*InotifyWatcher) Close

func (iw *InotifyWatcher) Close() error

Closes the inotify watcher.

func (*InotifyWatcher) Error

func (iw *InotifyWatcher) Error() chan error

Errors are returned on this channel.

func (*InotifyWatcher) Event

func (iw *InotifyWatcher) Event() chan *inotify.Event

Events are returned on this channel.

func (*InotifyWatcher) GetWatches

func (iw *InotifyWatcher) GetWatches() map[string][]string

Returns a map of containers to the cgroup paths being watched.

func (*InotifyWatcher) RemoveWatch

func (iw *InotifyWatcher) RemoveWatch(containerName, dir string) (bool, error)

Remove watch from the specified directory. Returns if this was the last watch on the specified container.

type MachineInfoNamer

type MachineInfoNamer info.MachineInfo

func (*MachineInfoNamer) DeviceName

func (n *MachineInfoNamer) DeviceName(major, minor uint64) (string, bool)

type Mount

type Mount struct {
	HostDir      string `json:"host_dir,omitempty"`
	ContainerDir string `json:"container_dir,omitempty"`
}

Jump to

Keyboard shortcuts

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