Documentation ¶
Overview ¶
Handler for Hyper containers.
Index ¶
- Constants
- Variables
- func MatchesContentType(contentType, expectedType string) bool
- func Register(factory info.MachineInfoFactory, fsInfo fs.FsInfo, ...) error
- type AttachToContainerOptions
- type BlkioStatEntry
- type BlkioStats
- type Container
- type ContainerPort
- type ContainerStats
- type ContainerStatus
- type CpuStats
- type CpuUsage
- type EnvironmentVar
- type ExecInContainerOptions
- type FsStats
- type HyperClient
- func (client *HyperClient) GetContainer(name string) (*Container, error)
- func (client *HyperClient) GetPod(name string) (*PodInfo, error)
- func (client *HyperClient) GetPodStats(podID string) (*PodStats, error)
- func (client *HyperClient) Info() (map[string]interface{}, error)
- func (client *HyperClient) ListContainers() ([]HyperContainer, error)
- func (client *HyperClient) ListImages() ([]HyperImage, error)
- func (client *HyperClient) ListPods() ([]HyperPod, error)
- func (client *HyperClient) ListPodsByVM(vm string) ([]HyperPod, error)
- func (client *HyperClient) Version() (string, error)
- type HyperContainer
- type HyperImage
- type HyperPod
- type HyperService
- type HyperServiceBackend
- type InterfaceStats
- type MemoryStats
- type MemoryStatsMemoryData
- type NetworkStats
- type PodInfo
- type PodSpec
- type PodStats
- type PodStatus
- type PodVolume
- type RBDVolumeSource
- type RunningStatus
- type TcpStat
- type TermStatus
- type VolumeMount
- type WaitingStatus
Constants ¶
View Source
const ( HYPER_PROTO = "unix" HYPER_ADDR = "/var/run/hyper.sock" HYPER_SCHEME = "http" HYPER_MINVERSION = "0.4.0" DEFAULT_IMAGE_TAG = "latest" KEY_ID = "id" KEY_IMAGEID = "imageId" KEY_IMAGENAME = "imageName" KEY_ITEM = "item" KEY_DNS = "dns" KEY_MEMORY = "memory" KEY_POD_ID = "podId" KEY_POD_NAME = "podName" KEY_RESOURCE = "resource" KEY_VCPU = "vcpu" KEY_TTY = "tty" KEY_TYPE = "type" KEY_VALUE = "value" KEY_NAME = "name" KEY_IMAGE = "image" KEY_VOLUMES = "volumes" KEY_CONTAINERS = "containers" KEY_VOLUME_SOURCE = "source" KEY_VOLUME_DRIVE = "driver" KEY_ENVS = "envs" KEY_CONTAINER_PORT = "containerPort" KEY_HOST_PORT = "hostPort" KEY_PROTOCOL = "protocol" KEY_PORTS = "ports" KEY_MOUNTPATH = "path" KEY_READONLY = "readOnly" KEY_VOLUME = "volume" KEY_COMMAND = "command" KEY_WORKDIR = "workdir" KEY_VM = "vm" VOLUME_TYPE_VFS = "vfs" TYPE_CONTAINER = "container" TYPE_POD = "pod" )
View Source
const ( StatusRunning = "running" StatusPending = "pending" StatusFailed = "failed" StatusSuccess = "succeeded" )
View Source
const (
// HyperNamespace is namespace under which Hyper aliases are unique.
HyperNamespace = "hyper"
)
View Source
const WatchInterval = 3 * time.Second
Variables ¶
View Source
var (
ErrConnectionRefused = errors.New("Cannot connect to the Hyper daemon. Is 'hyperd' running on this host?")
)
Functions ¶
func MatchesContentType ¶
Types ¶
type BlkioStatEntry ¶
type BlkioStatEntry struct { Name string `json:"name"` Type string `json:"type"` Source string `json:"source"` Major uint64 `json:"major"` Minor uint64 `json:"minor"` Stat map[string]uint64 `json:"stat"` }
BlkioStatEntry is one small entity to store a piece of Blkio stats
type BlkioStats ¶
type BlkioStats struct { // number of bytes transferred to and from the block device IoServiceBytesRecursive []BlkioStatEntry `json:"io_service_bytes_recursive"` IoServicedRecursive []BlkioStatEntry `json:"io_serviced_recursive"` IoQueuedRecursive []BlkioStatEntry `json:"io_queue_recursive"` IoServiceTimeRecursive []BlkioStatEntry `json:"io_service_time_recursive"` IoWaitTimeRecursive []BlkioStatEntry `json:"io_wait_time_recursive"` IoMergedRecursive []BlkioStatEntry `json:"io_merged_recursive"` IoTimeRecursive []BlkioStatEntry `json:"io_time_recursive"` SectorsRecursive []BlkioStatEntry `json:"sectors_recursive"` }
BlkioStats stores All IO service stats for data read and write
type Container ¶
type Container struct { Name string `json:"name"` ContainerID string `json:"containerID"` PodID string `json:"podID"` Image string `json:"image"` ImageID string `json:"imageID"` Commands []string `json:"commands"` Args []string `json:"args"` Workdir string `json:"workingDir"` Ports []ContainerPort `json:"ports"` Environment []EnvironmentVar `json:"env"` Volume []VolumeMount `json:"volumeMounts"` ImagePullPolicy string `json:"imagePullPolicy"` }
Pod JSON Data Structure
type ContainerPort ¶
type ContainerPort struct { Name string `json:"name"` HostPort int `json:"hostPort"` ContainerPort int `json:"containerPort"` Protocol string `json:"protocol"` HostIP string `json:"hostIP"` }
Container JSON Data Structure
type ContainerStats ¶
type ContainerStats struct { ContainerID string `json:"id"` Cpu CpuStats `json:"cpu,omitempty"` Block BlkioStats `json:"block,omitempty"` Memory MemoryStats `json:"memory,omitempty"` Network NetworkStats `json:"network,omitempty"` Filesystem []FsStats `json:"filesystem,omitempty"` Timestamp time.Time `json:"timestamp"` }
type ContainerStatus ¶
type ContainerStatus struct { Name string `json:"name"` ContainerID string `json:"containerID"` Phase string `json:"phase"` Waiting WaitingStatus `json:"waiting"` Running RunningStatus `json:"running"` Terminated TermStatus `json:"terminated"` }
type CpuStats ¶
type CpuStats struct { Usage CpuUsage `json:"usage"` // Smoothed average of number of runnable threads x 1000. // We multiply by thousand to avoid using floats, but preserving precision. // Load is smoothed over the last 10 seconds. Instantaneous value can be read // from LoadStats.NrRunning. LoadAverage int32 `json:"load_average"` }
All CPU usage metrics are cumulative from the creation of the container
type CpuUsage ¶
type CpuUsage struct { // Total CPU usage. // Units: nanoseconds Total uint64 `json:"total"` // Per CPU/core usage of the container. // Unit: nanoseconds. PerCpu []uint64 `json:"per_cpu_usage,omitempty"` // Time spent in user space. // Unit: nanoseconds User uint64 `json:"user"` // Time spent in kernel space. // Unit: nanoseconds System uint64 `json:"system"` }
CPU usage time statistics.
type EnvironmentVar ¶
type ExecInContainerOptions ¶
type FsStats ¶
type FsStats struct { // The block device name associated with the filesystem. Device string `json:"device,omitempty"` // Number of bytes that can be consumed by the container on this filesystem. Limit uint64 `json:"capacity"` // Number of bytes that is consumed by the container on this filesystem. Usage uint64 `json:"usage"` // Number of bytes available for non-root user. Available uint64 `json:"available"` // Number of reads completed // This is the total number of reads completed successfully. ReadsCompleted uint64 `json:"reads_completed"` // Number of reads merged // Reads and writes which are adjacent to each other may be merged for // efficiency. Thus two 4K reads may become one 8K read before it is // ultimately handed to the disk, and so it will be counted (and queued) // as only one I/O. This field lets you know how often this was done. ReadsMerged uint64 `json:"reads_merged"` // Number of sectors read // This is the total number of sectors read successfully. SectorsRead uint64 `json:"sectors_read"` // Number of milliseconds spent reading // This is the total number of milliseconds spent by all reads (as // measured from __make_request() to end_that_request_last()). ReadTime uint64 `json:"read_time"` // Number of writes completed // This is the total number of writes completed successfully. WritesCompleted uint64 `json:"writes_completed"` // Number of writes merged // See the description of reads merged. WritesMerged uint64 `json:"writes_merged"` // Number of sectors written // This is the total number of sectors written successfully. SectorsWritten uint64 `json:"sectors_written"` // Number of milliseconds spent writing // This is the total number of milliseconds spent by all writes (as // measured from __make_request() to end_that_request_last()). WriteTime uint64 `json:"write_time"` // Number of I/Os currently in progress // The only field that should go to zero. Incremented as requests are // given to appropriate struct request_queue and decremented as they finish. IoInProgress uint64 `json:"io_in_progress"` // Number of milliseconds spent doing I/Os // This field increases so long as field 9 is nonzero. IoTime uint64 `json:"io_time"` // weighted number of milliseconds spent doing I/Os // This field is incremented at each I/O start, I/O completion, I/O // merge, or read of these stats by the number of I/Os in progress // (field 9) times the number of milliseconds spent doing I/O since the // last update of this field. This can provide an easy measure of both // I/O completion time and the backlog that may be accumulating. WeightedIoTime uint64 `json:"weighted_io_time"` }
type HyperClient ¶
type HyperClient struct {
// contains filtered or unexported fields
}
func NewHyperClient ¶
func NewHyperClient() *HyperClient
func (*HyperClient) GetContainer ¶
func (client *HyperClient) GetContainer(name string) (*Container, error)
func (*HyperClient) GetPodStats ¶
func (client *HyperClient) GetPodStats(podID string) (*PodStats, error)
func (*HyperClient) Info ¶
func (client *HyperClient) Info() (map[string]interface{}, error)
func (*HyperClient) ListContainers ¶
func (client *HyperClient) ListContainers() ([]HyperContainer, error)
func (*HyperClient) ListImages ¶
func (client *HyperClient) ListImages() ([]HyperImage, error)
func (*HyperClient) ListPods ¶
func (client *HyperClient) ListPods() ([]HyperPod, error)
func (*HyperClient) ListPodsByVM ¶
func (client *HyperClient) ListPodsByVM(vm string) ([]HyperPod, error)
func (*HyperClient) Version ¶
func (client *HyperClient) Version() (string, error)
type HyperContainer ¶
type HyperImage ¶
type HyperService ¶
type HyperService struct { ServiceIP string `json:"serviceip"` ServicePort int `json:"serviceport"` Protocol string `json:"protocol"` Hosts []HyperServiceBackend `json:"hosts"` }
type HyperServiceBackend ¶
type InterfaceStats ¶
type InterfaceStats struct { // The name of the interface. Name string `json:"name"` // Cumulative count of bytes received. RxBytes uint64 `json:"rx_bytes"` // Cumulative count of packets received. RxPackets uint64 `json:"rx_packets"` // Cumulative count of receive errors encountered. RxErrors uint64 `json:"rx_errors"` // Cumulative count of packets dropped while receiving. RxDropped uint64 `json:"rx_dropped"` // Cumulative count of bytes transmitted. TxBytes uint64 `json:"tx_bytes"` // Cumulative count of packets transmitted. TxPackets uint64 `json:"tx_packets"` // Cumulative count of transmit errors encountered. TxErrors uint64 `json:"tx_errors"` // Cumulative count of packets dropped while transmitting. TxDropped uint64 `json:"tx_dropped"` }
type MemoryStats ¶
type MemoryStats struct { // Current memory usage, this includes all memory regardless of when it was // accessed. // Units: Bytes. Usage uint64 `json:"usage"` // The amount of working set memory, this includes recently accessed memory, // dirty memory, and kernel memory. Working set is <= "usage". // Units: Bytes. WorkingSet uint64 `json:"working_set"` Failcnt uint64 `json:"failcnt"` ContainerData MemoryStatsMemoryData `json:"container_data,omitempty"` HierarchicalData MemoryStatsMemoryData `json:"hierarchical_data,omitempty"` }
type MemoryStatsMemoryData ¶
type NetworkStats ¶
type NetworkStats struct { Interfaces []InterfaceStats `json:"interfaces,omitempty"` // TCP connection stats (Established, Listen...) Tcp TcpStat `json:"tcp"` // TCP6 connection stats (Established, Listen...) Tcp6 TcpStat `json:"tcp6"` }
type PodStats ¶
type PodStats struct { Cpu CpuStats `json:"cpu,omitempty"` Block BlkioStats `json:"block,omitempty"` Memory MemoryStats `json:"memory,omitempty"` Network NetworkStats `json:"network,omitempty"` Filesystem []FsStats `json:"filesystem,omitempty"` Timestamp time.Time `json:"timestamp"` ContainersStats []ContainerStats `json:"container_stats"` }
type PodVolume ¶
type PodVolume struct { Name string `json:"name"` HostPath string `json:"source"` Driver string `json:"driver"` Rbd RBDVolumeSource `json:"rbd"` }
type RBDVolumeSource ¶
type RunningStatus ¶
type RunningStatus struct {
StartedAt string `json:"startedAt"`
}
type TcpStat ¶
type TcpStat struct { //Count of TCP connections in state "Established" Established uint64 //Count of TCP connections in state "Syn_Sent" SynSent uint64 //Count of TCP connections in state "Syn_Recv" SynRecv uint64 //Count of TCP connections in state "Fin_Wait1" FinWait1 uint64 //Count of TCP connections in state "Fin_Wait2" FinWait2 uint64 //Count of TCP connections in state "Time_Wait TimeWait uint64 //Count of TCP connections in state "Close" Close uint64 //Count of TCP connections in state "Close_Wait" CloseWait uint64 //Count of TCP connections in state "Listen_Ack" LastAck uint64 //Count of TCP connections in state "Listen" Listen uint64 //Count of TCP connections in state "Closing" Closing uint64 }
type TermStatus ¶
type VolumeMount ¶
type WaitingStatus ¶
type WaitingStatus struct {
Reason string `json:"reason"`
}
Click to show internal directories.
Click to hide internal directories.