Documentation
¶
Index ¶
- Constants
- Variables
- func CancelPorts(sps ...*StreamProc)
- func ConfigEngine(engine *OrcEngine) bool
- func ConfigPortsManager(endpoint string)
- func GuardGotoSleep(store storage.Store) bool
- func GuardGotoWork(store storage.Store) bool
- func HandleDockerEvent(engine *OrcEngine, event *adoc.Event)
- func MaintainEngineStatusHistory(engine *OrcEngine)
- func NewConstraintController() *constraintController
- func NewNotifyController(stop chan struct{}) *notifyController
- func NewPodStatusHistory(podname string, instance int, status *StatusMessage) *podStatusHistory
- func OccupiedPorts(ports ...int) []int
- func RefreshPorts(pgCtrls map[string]*podGroupController)
- func RegisterPorts(sps ...*StreamProc) (bool, []int)
- func SyncEventsDataFromStorage(engine *OrcEngine) bool
- func UpdatePorts(sps ...*StreamProc)
- func WatchEngineConfig(engine *OrcEngine)
- type BaseRuntime
- type By
- type CloudVolumeSpec
- type ConstraintSpec
- type Container
- type ContainerLabel
- type ContainerSpec
- type Dependency
- type DependencyEvent
- type DependencyPolicy
- type Device
- type EngineConfig
- type ExpectState
- type Guard
- type HealthCnfOptions
- type HealthConfig
- type HealthState
- type ImRuntime
- type ImSpec
- type Listener
- type LockedError
- type NamespacePodsWithSpec
- type NotifySpec
- type OperLockedError
- type OperationEvent
- type OrcEngine
- func (engine *OrcEngine) AddNotify(callback string) error
- func (engine *OrcEngine) ChangeState(pgName, op string, instance int) error
- func (engine *OrcEngine) Config() EngineConfig
- func (engine *OrcEngine) DeleteConstraints(cstType string) error
- func (engine *OrcEngine) DeleteNotify(callback string) error
- func (engine *OrcEngine) DriftNode(fromNode, toNode string, pgName string, pgInstance int, force bool)
- func (engine *OrcEngine) FetchPodStaHstry(name string, instance int) []*StatusMessage
- func (engine *OrcEngine) GetConstraints(cstType string) (ConstraintSpec, bool)
- func (engine *OrcEngine) GetDependencyPod(name string) (NamespacePodsWithSpec, error)
- func (engine *OrcEngine) GetNodes() ([]cluster.Node, error)
- func (engine *OrcEngine) GetNotifies() []string
- func (engine *OrcEngine) GuardGotoSleep() bool
- func (engine *OrcEngine) GuardGotoWork() bool
- func (engine *OrcEngine) HandleEvent(payload interface{})
- func (engine *OrcEngine) InspectPodGroup(name string) (PodGroupWithSpec, bool)
- func (engine *OrcEngine) ListenerId() string
- func (engine *OrcEngine) LoadDependsPods() error
- func (engine *OrcEngine) LoadPodGroups() error
- func (engine *OrcEngine) Maintaince(maintaince bool)
- func (engine *OrcEngine) NewDependencyPod(spec PodSpec) error
- func (engine *OrcEngine) NewPodGroup(spec PodGroupSpec) error
- func (engine *OrcEngine) PgOpOver(pgName string)
- func (engine *OrcEngine) PgOpStart(pgName string)
- func (engine *OrcEngine) ReadOnly() bool
- func (engine *OrcEngine) RefreshPodGroup(name string, forceUpdate bool) error
- func (engine *OrcEngine) RemoveDependencyPod(name string, force bool) error
- func (engine *OrcEngine) RemoveNode(node string) error
- func (engine *OrcEngine) RemovePodGroup(name string) error
- func (engine *OrcEngine) RescheduleInstance(name string, numInstances int, restartPolicy ...RestartPolicy) error
- func (engine *OrcEngine) RescheduleSpec(name string, podSpec PodSpec) error
- func (engine *OrcEngine) SetConfig(config EngineConfig)
- func (engine *OrcEngine) Start()
- func (engine *OrcEngine) Started() bool
- func (engine *OrcEngine) Stop()
- func (engine *OrcEngine) UpdateConstraints(spec ConstraintSpec) error
- func (engine *OrcEngine) UpdateDependencyPod(spec PodSpec) error
- type PGOpState
- type Pod
- func (pod *Pod) ChangeTargetState(state ExpectState)
- func (p Pod) Clone() Pod
- func (pod Pod) ContainerIds() []string
- func (p Pod) Equals(o Pod) bool
- func (pod Pod) NeedRestart(policy RestartPolicy) bool
- func (pod Pod) NodeIp() string
- func (pod Pod) NodeName() string
- func (pod Pod) PodIp() string
- func (pod Pod) RestartEnoughTimes() bool
- type PodGroup
- type PodGroupPrevState
- type PodGroupSpec
- type PodGroupStatusHistory
- type PodGroupWithSpec
- type PodPrevState
- type PodSpec
- func (s PodSpec) Clone() PodSpec
- func (s PodSpec) Equals(o PodSpec) bool
- func (s PodSpec) GetKillTimeout() int
- func (s PodSpec) GetSetupTime() int
- func (s PodSpec) HasVolumes() bool
- func (s PodSpec) IsHardStateful() bool
- func (s PodSpec) IsStateful() bool
- func (s PodSpec) Merge(o PodSpec) PodSpec
- func (s PodSpec) String() string
- func (s PodSpec) VerifyParams() bool
- type PortsManager
- func (pm *PortsManager) CancelStreamPort(sp *StreamProc) bool
- func (pm PortsManager) CancelStreamPorts(spArr ...*StreamProc)
- func (pm PortsManager) FetchAllStreamPortsInfo() []StreamProc
- func (pm PortsManager) Refresh(pgCtrls map[string]*podGroupController)
- func (pm PortsManager) RegisterStreamPort(sp *StreamProc) bool
- func (pm PortsManager) RegisterStreamPorts(spArr ...*StreamProc) (bool, []int)
- func (pm *PortsManager) UpdateStreamPort(sp *StreamProc) bool
- func (pm PortsManager) UpdateStreamPorts(spArr ...*StreamProc)
- type Publisher
- type Resource
- type RestartPolicy
- type RunState
- type RuntimeEaglePod
- type RuntimeEagleView
- func (ev *RuntimeEagleView) Activate(c cluster.Cluster)
- func (ev *RuntimeEagleView) GetRuntimeEaglePods(name string) ([]RuntimeEaglePod, bool)
- func (ev *RuntimeEagleView) Refresh(c cluster.Cluster) error
- func (ev *RuntimeEagleView) RefreshPodGroup(c cluster.Cluster, pgName string) ([]RuntimeEaglePod, error)
- func (ev *RuntimeEagleView) RefreshPodsByNamespace(c cluster.Cluster, namespace string) ([]RuntimeEaglePod, error)
- type SharedPodWithSpec
- type StatusLastPos
- type StatusMessage
- type StreamPort
- type StreamPorts
- type StreamProc
Constants ¶
const ( EtcdResourcesKey = "/lain/config/resources" EtcdGuardSwitchKey = "/lain/config/guardswitch" EtcdCloudVolumeRootKey = "/lain/config/cloud_volumes_root" EtcdVolumeRootKey = "/lain/config/volumes_root" EtcdConfigKey = "/lain/deployd/engine/config" DefaultLastSpecCacheTTL = 10 * 60 // 10min DefautDeviceRatio = uint64(70) // 70% so should / 100 )
const ( KCntStatus = "/lain/deployd/histroy" FmtKCntStatusLstPos = "/lain/deployd/histroy/%s/%d/lastpos" FmtKCntStatusInfo = "/lain/deployd/histroy/%s/%d/%d" DefaultStatusSize = 20 )
cnt means container
const ( DefaultHealthInterval = 10 DefaultHealthTimeout = 3 DefaultHealthRetries = 3 DefaultSetUpTime = 20 CPUQuota = int64(1000000) CPUMaxPctg = 50 // max percentage of total cpu CPUMaxLevel = 8 CPUDeafultLevel = 2 CURL_TMPLT = `echo $(curl -m %v -s -o /dev/null -w '%%{http_code}\n' %s) | grep -Eq "^[2-3]..$"` )
const ( OperationStart = "start" OperationOver = "over" )
const ( RunStatePending = iota // waiting for operation RunStateDrift // drifting from one node to another RunStateSuccess // ok RunStateExit // exited RunStateFail // start failed with error RunStateInconsistent // container's state is different between deployd and swarm RunStateMissing // container is missing and need create it. happened when node down .etc RunStateRemoved // removed RunStatePaused // paused RunStateError // call docker interface with error )
const ( HealthStateNone = iota HealthStateStarting HealthStateHealthy HealthStateUnHealthy )
const ( ExpectStateRun = iota ExpectStateStop )
const ( PGOpStateIdle = iota PGOpStateUpgrading PGOpStateScheduling PGOpStateDrifting PGOpStateRemoving PGOpStateStarting PGOpStateStoping PGOpStateRestarting )
const ( MinPodSetupTime = 0 MaxPodSetupTime = 300 MinPodKillTimeout = 10 MaxPodKillTimeout = 120 )
const ( CloudVolumeSingleMode = "single" CloudVolumeMultiMode = "multi" )
const ( DependencyNamespaceLevel = iota DependencyNodeLevel )
const ( RestartPolicyNever = iota RestartPolicyAlways RestartPolicyOnFail )
const (
ClusterFailedThreadSold = 20
)
const (
KeyPrefixStreamPorts = "/lain/deployd/stream/ports"
)
Variables ¶
var ( ErrPodGroupExists = errors.New("PodGroup has already existed") ErrPodGroupNotExists = errors.New("PodGroup not existed") ErrPodGroupCleaning = errors.New("PodGroup is removing, need to wait for that") ErrNotEnoughResources = errors.New("Not enough CPUs and Memory to use") ErrDependencyPodExists = errors.New("DependencyPod has already existed") ErrDependencyPodNotExists = errors.New("DependencyPod not existed") ErrConstraintNotExists = errors.New("Constraint not existed") ErrNotifyNotExists = errors.New("Notify uri not existed") )
var ( NotifyPodMissing = "LAIN found pod missing, ready to redeployd it" NotifyPodDown = "LAIN found pod down, ready to restart it" NotifyPodDownOOM = "LAIN found pod down with OOM, ready to restart it" NotifyLetPodGo = "LAIN found pod restart too many times in a short period, will let it go" NotifyPodIPLost = "LAIN found pod lost IP, please inform the SA team" NotifyPodUnHealthy = "LAIN found pod Unhealthy, please check your service" NotifyClusterUnHealthy = "LAIN found Cluster Manager Unhealthy, please check your cluster" NotifyUpgradeFailedTmplt = "LAIN found Last version:%d upgrade is terrrible, please check your code carefully!!" )
var ByVersionAndDriftCounter = func(c1, c2 *container) bool {
return c1.version > c2.version ||
(c1.version == c2.version && c1.driftCount > c2.driftCount)
}
var DependsGarbageCollectTimeout time.Duration
set GarbageCollectTimeout long enough. sometimes, podgroup refresh goroutine may having some problem(such as swarm exception), and do not verify it's portal for a long time
var (
ErrOperLockedFormat = "Another operation \"%s\" is progressing"
)
var RefreshInterval int
var RestartInfoClearInterval time.Duration
some instances written with JAVA like language may suffer from OOM, if they are restarted before (now - RestartInfoClearInterval), clear the restart info
var RestartMaxCount int
Functions ¶
func CancelPorts ¶
func CancelPorts(sps ...*StreamProc)
func ConfigEngine ¶
func ConfigPortsManager ¶
func ConfigPortsManager(endpoint string)
func GuardGotoSleep ¶
func GuardGotoWork ¶
func HandleDockerEvent ¶
func MaintainEngineStatusHistory ¶
func MaintainEngineStatusHistory(engine *OrcEngine)
func NewConstraintController ¶
func NewConstraintController() *constraintController
func NewNotifyController ¶
func NewNotifyController(stop chan struct{}) *notifyController
func NewPodStatusHistory ¶
func NewPodStatusHistory(podname string, instance int, status *StatusMessage) *podStatusHistory
func OccupiedPorts ¶
func RefreshPorts ¶
func RefreshPorts(pgCtrls map[string]*podGroupController)
func RegisterPorts ¶
func RegisterPorts(sps ...*StreamProc) (bool, []int)
func SyncEventsDataFromStorage ¶
Sync with etcd data when start deployd ugly finished! should change with allKeysByPrefix(return all non-dir node)
func UpdatePorts ¶
func UpdatePorts(sps ...*StreamProc)
func WatchEngineConfig ¶
func WatchEngineConfig(engine *OrcEngine)
Types ¶
type BaseRuntime ¶
type By ¶
type By func(c1, c2 *container) bool
By is the type of a "less" function that defines the ordering of its Planet arguments.
type CloudVolumeSpec ¶
func (CloudVolumeSpec) Clone ¶
func (s CloudVolumeSpec) Clone() CloudVolumeSpec
func (CloudVolumeSpec) Equals ¶
func (s CloudVolumeSpec) Equals(o CloudVolumeSpec) bool
func (CloudVolumeSpec) VerifyParams ¶
func (s CloudVolumeSpec) VerifyParams() bool
type Container ¶
type ContainerLabel ¶
type ContainerLabel struct {
Name string
Namespace string
InstanceNo int
Version int
DriftCount int
ContainerIndex int
Annotation string
}
func (ContainerLabel) Label2Maps ¶
func (label ContainerLabel) Label2Maps() map[string]string
func (ContainerLabel) NameAffinity ¶
func (label ContainerLabel) NameAffinity() string
type ContainerSpec ¶
type ContainerSpec struct {
ImSpec
Image string
Env []string
User string
WorkingDir string
DnsSearch []string
Volumes []string // a stateful flag
SystemVolumes []string // not a stateful flag, every node has system volumes
CloudVolumes []CloudVolumeSpec
Command []string
Entrypoint []string
CpuLimit int
MemoryLimit int64
Expose int
LogConfig adoc.LogConfig
}
func NewContainerSpec ¶
func NewContainerSpec(image string) ContainerSpec
func (ContainerSpec) Clone ¶
func (s ContainerSpec) Clone() ContainerSpec
func (ContainerSpec) Equals ¶
func (s ContainerSpec) Equals(o ContainerSpec) bool
func (ContainerSpec) VerifyParams ¶
func (s ContainerSpec) VerifyParams() bool
type Dependency ¶
type Dependency struct {
PodName string
Policy DependencyPolicy
}
func (Dependency) Clone ¶
func (d Dependency) Clone() Dependency
type DependencyEvent ¶
type DependencyPolicy ¶
type DependencyPolicy int
type EngineConfig ¶
type ExpectState ¶
type ExpectState int
func (ExpectState) String ¶
func (es ExpectState) String() string
type Guard ¶
type Guard struct {
Working bool `json:"Working"`
}
func FetchGuard ¶
func FetchGuard() *Guard
type HealthCnfOptions ¶
type HealthCnfOptions struct {
Interval int `json:"interval"`
Timeout int `json:"timeout"`
Retries int `json:"retries"`
}
func (HealthCnfOptions) Equals ¶
func (hco HealthCnfOptions) Equals(cp HealthCnfOptions) bool
type HealthConfig ¶
type HealthConfig struct {
Cmd string `json:"cmd"`
Options HealthCnfOptions `json:"options"`
}
func (HealthConfig) Equals ¶
func (hc HealthConfig) Equals(cp HealthConfig) bool
func (HealthConfig) FetchOption ¶
func (hc HealthConfig) FetchOption() HealthCnfOptions
type HealthState ¶
type HealthState int
func (HealthState) String ¶
func (hs HealthState) String() string
type ImRuntime ¶
type ImRuntime struct {
BaseRuntime
TargetState ExpectState
DriftCount int
RestartCount int
RestartAt time.Time
}
type LockedError ¶
type LockedError interface {
error
}
type NamespacePodsWithSpec ¶
type NotifySpec ¶
type NotifySpec struct {
Level string
Namespace string
PodName string
InstanceNo int
Timestamp time.Time
Message string
}
func NewNotifySpec ¶
type OperLockedError ¶
type OperLockedError struct {
// contains filtered or unexported fields
}
func (OperLockedError) Error ¶
func (ole OperLockedError) Error() string
type OperationEvent ¶
type OrcEngine ¶
func (*OrcEngine) ChangeState ¶
func (*OrcEngine) Config ¶
func (engine *OrcEngine) Config() EngineConfig
func (*OrcEngine) DeleteConstraints ¶
func (*OrcEngine) DeleteNotify ¶
func (*OrcEngine) FetchPodStaHstry ¶
func (engine *OrcEngine) FetchPodStaHstry(name string, instance int) []*StatusMessage
func (*OrcEngine) GetConstraints ¶
func (engine *OrcEngine) GetConstraints(cstType string) (ConstraintSpec, bool)
func (*OrcEngine) GetDependencyPod ¶
func (engine *OrcEngine) GetDependencyPod(name string) (NamespacePodsWithSpec, error)
func (*OrcEngine) GetNotifies ¶
func (*OrcEngine) GuardGotoSleep ¶
func (*OrcEngine) GuardGotoWork ¶
func (*OrcEngine) HandleEvent ¶
func (engine *OrcEngine) HandleEvent(payload interface{})
func (*OrcEngine) InspectPodGroup ¶
func (engine *OrcEngine) InspectPodGroup(name string) (PodGroupWithSpec, bool)
func (*OrcEngine) ListenerId ¶
func (*OrcEngine) LoadDependsPods ¶
func (*OrcEngine) LoadPodGroups ¶
func (*OrcEngine) Maintaince ¶
func (*OrcEngine) NewDependencyPod ¶
func (*OrcEngine) NewPodGroup ¶
func (engine *OrcEngine) NewPodGroup(spec PodGroupSpec) error
func (*OrcEngine) RefreshPodGroup ¶
func (*OrcEngine) RemoveDependencyPod ¶
func (*OrcEngine) RemoveNode ¶
remove a node should be in such steps show below 1. make target node in maintenance with constraint 2. fetch all containers in target node 3. drift all containers in target node Asynchronously (which can make cluster corrupted but eagle will correct it, don't worry!
in situation: schedule instance(generally shrink) and drift concurrently)
4. stop all process service for lain (generally by lainctl) 5. remove maintenance(generally by lainctl or called in add node phase)
func (*OrcEngine) RemovePodGroup ¶
func (*OrcEngine) RescheduleInstance ¶
func (engine *OrcEngine) RescheduleInstance(name string, numInstances int, restartPolicy ...RestartPolicy) error
func (*OrcEngine) RescheduleSpec ¶
func (*OrcEngine) SetConfig ¶
func (engine *OrcEngine) SetConfig(config EngineConfig)
func (*OrcEngine) UpdateConstraints ¶
func (engine *OrcEngine) UpdateConstraints(spec ConstraintSpec) error
func (*OrcEngine) UpdateDependencyPod ¶
type Pod ¶
func (*Pod) ChangeTargetState ¶
func (pod *Pod) ChangeTargetState(state ExpectState)
func (Pod) ContainerIds ¶
func (Pod) NeedRestart ¶
func (pod Pod) NeedRestart(policy RestartPolicy) bool
func (Pod) RestartEnoughTimes ¶
type PodGroup ¶
type PodGroup struct {
Pods []Pod
BaseRuntime
}
type PodGroupPrevState ¶
type PodGroupPrevState struct {
Nodes []string
// we think a instance only have one ip, as now a instance only have one container.
IPs []string
}
func (PodGroupPrevState) Clone ¶
func (pgps PodGroupPrevState) Clone() PodGroupPrevState
func (PodGroupPrevState) Length ¶
func (pgps PodGroupPrevState) Length() int
func (PodGroupPrevState) Reset ¶
func (pgps PodGroupPrevState) Reset(instanceNo int) PodGroupPrevState
type PodGroupSpec ¶
type PodGroupSpec struct {
ImSpec
Pod PodSpec
NumInstances int
RestartPolicy RestartPolicy
}
func NewPodGroupSpec ¶
func NewPodGroupSpec(name string, namespace string, podSpec PodSpec, numInstances int) PodGroupSpec
func (PodGroupSpec) Clone ¶
func (spec PodGroupSpec) Clone() PodGroupSpec
func (PodGroupSpec) Equals ¶
func (spec PodGroupSpec) Equals(o PodGroupSpec) bool
func (PodGroupSpec) String ¶
func (spec PodGroupSpec) String() string
func (PodGroupSpec) VerifyParams ¶
func (spec PodGroupSpec) VerifyParams() bool
type PodGroupStatusHistory ¶
type PodGroupStatusHistory struct {
// contains filtered or unexported fields
}
type PodGroupWithSpec ¶
type PodGroupWithSpec struct {
Spec PodGroupSpec
PrevState []PodPrevState
PodGroup
}
type PodPrevState ¶
func NewPodPrevState ¶
func NewPodPrevState(length int) PodPrevState
func (PodPrevState) Clone ¶
func (pps PodPrevState) Clone() PodPrevState
type PodSpec ¶
type PodSpec struct {
ImSpec
Network string
Containers []ContainerSpec
Filters []string // for cluster scheduling
Labels map[string]string
Dependencies []Dependency
Annotation string
Stateful bool
SetupTime int
KillTimeout int
PrevState PodPrevState
HealthConfig HealthConfig
}
func NewPodSpec ¶
func NewPodSpec(containerSpec ContainerSpec, otherSpecs ...ContainerSpec) PodSpec
func (PodSpec) GetKillTimeout ¶
func (PodSpec) GetSetupTime ¶
func (PodSpec) HasVolumes ¶
func (PodSpec) IsHardStateful ¶
func (PodSpec) IsStateful ¶
func (PodSpec) VerifyParams ¶
type PortsManager ¶
type PortsManager struct {
// contains filtered or unexported fields
}
func NewPortsManager ¶
func NewPortsManager(endpoint string) *PortsManager
func (*PortsManager) CancelStreamPort ¶
func (pm *PortsManager) CancelStreamPort(sp *StreamProc) bool
func (PortsManager) CancelStreamPorts ¶
func (pm PortsManager) CancelStreamPorts(spArr ...*StreamProc)
func (PortsManager) FetchAllStreamPortsInfo ¶
func (pm PortsManager) FetchAllStreamPortsInfo() []StreamProc
func (PortsManager) Refresh ¶
func (pm PortsManager) Refresh(pgCtrls map[string]*podGroupController)
func (PortsManager) RegisterStreamPort ¶
func (pm PortsManager) RegisterStreamPort(sp *StreamProc) bool
func (PortsManager) RegisterStreamPorts ¶
func (pm PortsManager) RegisterStreamPorts(spArr ...*StreamProc) (bool, []int)
func (*PortsManager) UpdateStreamPort ¶
func (pm *PortsManager) UpdateStreamPort(sp *StreamProc) bool
func (PortsManager) UpdateStreamPorts ¶
func (pm PortsManager) UpdateStreamPorts(spArr ...*StreamProc)
type Publisher ¶
type Publisher interface {
EmitEvent(payload interface{})
AddListener(subscriber Listener)
RemoveListener(subscriber Listener)
}
func NewPublisher ¶
type Resource ¶
type Resource struct {
Cpu int `json:"cpu"`
Memory string `json:"memory"`
Devices []Device `json:"devices"`
}
func FetchResource ¶
func FetchResource() *Resource
type RestartPolicy ¶
type RestartPolicy int
func (RestartPolicy) String ¶
func (rp RestartPolicy) String() string
type RuntimeEaglePod ¶
type RuntimeEaglePod struct {
ContainerLabel
Container adoc.Container
ParseSource string
}
func (RuntimeEaglePod) String ¶
func (pod RuntimeEaglePod) String() string
type RuntimeEagleView ¶
func NewRuntimeEagleView ¶
func NewRuntimeEagleView() *RuntimeEagleView
func (*RuntimeEagleView) Activate ¶
func (ev *RuntimeEagleView) Activate(c cluster.Cluster)
func (*RuntimeEagleView) GetRuntimeEaglePods ¶
func (ev *RuntimeEagleView) GetRuntimeEaglePods(name string) ([]RuntimeEaglePod, bool)
func (*RuntimeEagleView) RefreshPodGroup ¶
func (ev *RuntimeEagleView) RefreshPodGroup(c cluster.Cluster, pgName string) ([]RuntimeEaglePod, error)
func (*RuntimeEagleView) RefreshPodsByNamespace ¶
func (ev *RuntimeEagleView) RefreshPodsByNamespace(c cluster.Cluster, namespace string) ([]RuntimeEaglePod, error)
type SharedPodWithSpec ¶
type SharedPodWithSpec struct {
}
type StatusLastPos ¶
type StatusMessage ¶
type StatusMessage struct {
Status string `json:"status,omitempty"`
From string `json:"from,omitempty"`
Time int64 `json:"time,omitempty"`
Action string `json:"action,omitempty"`
}
func FetchPodStaHstry ¶
func FetchPodStaHstry(engine *OrcEngine, podname string, instance int) []*StatusMessage
type StreamPort ¶
type StreamPort struct {
SrcPort int `json:"srcport"`
DstPort int `json:"dstport"`
Proto string `json:"proto"`
}
func (StreamPort) Equals ¶
func (sp StreamPort) Equals(osp StreamPort) bool
type StreamPorts ¶
type StreamPorts struct {
Ports []StreamPort `json:"ports"`
}
func (StreamPorts) Equals ¶
func (sp StreamPorts) Equals(osp StreamPorts) bool
type StreamProc ¶
type StreamProc struct {
StreamPort
NameSpace string
ProcName string
}
func FetchAllPortsInfo ¶
func FetchAllPortsInfo() []StreamProc