flow

package
v1.2.8 Latest Latest
Warning

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

Go to latest
Published: Feb 22, 2023 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	BeaconAddress string = "mc/sfe.all"
	RecordPrefix  string = "mc/sfe."
	DirectPrefix  string = "sfe."
)
View Source
const (
	Site             = iota // 0
	Router                  // 1
	Link                    // 2
	Controller              // 3
	Listener                // 4
	Connector               // 5
	Flow                    // 6
	Process                 // 7
	Image                   // 8
	Ingress                 // 9
	Egress                  // 10
	Collector               // 11
	ProcessGroup            // 12
	Host                    // 13
	FlowPair                // 14 (generated)
	FlowAggregate           // 15
	EventSource             // 16
	SitePair                // 17
	ProcessGroupPair        // 18
	ProcessPair             // 19
	Address                 // 20
)

RecordTypes

View Source
const (
	TypeOfRecord    = iota //0
	Identity               // 1
	Parent                 // 2
	StartTime              // 3
	EndTime                // 4
	CounterFlow            // 5
	PeerIdentity           // 6
	ProcessIdentity        // 7
	SiblingOrdinal         // 8
	Location               // 9
	Provider               // 10
	Platform               // 11
	Namespace              // 12
	Mode                   // 13
	SourceHost             // 14
	DestHost               // 15
	Protocol               // 16
	SourcePort             // 17
	DestPort               // 18
	VanAddress             // 19
	ImageName              // 20
	ImageVersion           // 21
	HostName               // 22
	Octets                 // 23
	Latency                // 24
	TransitLatency         // 25
	Backlog                // 26
	Method                 // 27
	Result                 // 28
	Reason                 // 29
	Name                   // 30
	Trace                  // 31
	BuildVersion           // 32
	LinkCost               // 33
	Direction              // 34
	OctetRate              // 35
	OctetsOut              // 36
	OctetsUnacked          // 37
	WindowClosures         // 38
	WindowSize             // 39
	FlowCountL4            // 40
	FlowCountL7            // 41
	FlowRateL4             // 42
	FlowRateL7             // 43
	Duration               // 44
	ImageAttr              // 45
	Group                  // 46
	StreamIdentity         // 47
)

Attribute Types

View Source
const (
	FlowControllerEvent string = "FlowControllerEvent"
)

Variables

This section is empty.

Functions

func ToIntf

func ToIntf(s interface{}) []interface{}

Convert a slice or array of a specific type to array of interface{}

func UpdateHost

func UpdateHost(c *FlowController, deleted bool, name string, host *HostRecord) error

func UpdateProcess

func UpdateProcess(c *FlowController, deleted bool, name string, process *ProcessRecord) error

Types

type ApiRequest

type ApiRequest struct {
	RecordType int
	ItemType   int
	Request    *http.Request
}

type ApiResponse

type ApiResponse struct {
	Body   *string
	Status int
}

type Base

type Base struct {
	RecType   string `json:"recType,omitempty"`
	Identity  string `json:"identity,omitempty"`
	Parent    string `json:"parent,omitempty"`
	StartTime uint64 `json:"startTime,omitempty"`
	EndTime   uint64 `json:"endTime,omitempty"`
}

type BeaconRecord

type BeaconRecord struct {
	Version    uint32 `json:"version,omitempty"`
	SourceType string `json:"sourceType,omitempty"`
	Address    string `json:"address,omitempty"`
	Direct     string `json:"direct,omitempty"`
	Now        uint64 `json:"now,omitempty"`
	Identity   string `json:"identity,omitempty"`
}

type CollectorRecord

type CollectorRecord struct {
	Base
}

type ConnectorRecord

type ConnectorRecord struct {
	Base
	DestHost    *string `json:"destHost,omitempty"`
	DestPort    *string `json:"destPort,omitempty"`
	Protocol    *string `json:"protocol,omitempty"`
	Address     *string `json:"address,omitempty"`
	FlowCountL4 *uint64 `json:"flowCountL4,omitempty"`
	FlowRateL4  *uint64 `json:"flowRateL4,omitempty"`
	FlowCountL7 *uint64 `json:"flowCountL7,omitempty"`
	FlowRateL7  *uint64 `json:"flowRateL7,omitempty"`
	// contains filtered or unexported fields
}

type ControllerRecord

type ControllerRecord struct {
	ImageName    string `json:"imageName,omitempty"`
	ImageVersion string `json:"imageVersion,omitempty"`
	Hostname     string `json:"hostame,omitempty"`
	Name         string `json:"name,omitempty"`
	BuildVersion string `json:"buildVersion,omitempty"`
	// contains filtered or unexported fields
}

type EgressRecord

type EgressRecord struct {
	Base
}

type FlowAggregateRecord

type FlowAggregateRecord struct {
	Base
	PairType                  string  `json:"pairType,omitempty"`
	RecordCount               uint64  `json:"recordCount,omitempty"`
	SourceId                  *string `json:"sourceId,omitempty"`
	SourceName                *string `json:"sourceName,omitempty"`
	DestinationId             *string `json:"destinationId,omitempty"`
	DestinationName           *string `json:"destinationName,omitempty"`
	SourceOctets              uint64  `json:"sourceOctets,omitempty"`
	SourceOctetRate           uint64  `json:"sourceOctetRate,omitempty"`
	SourceMinLatency          uint64  `json:"sourceMinLatency,omitempty"`
	SourceMaxLatency          uint64  `json:"sourceMaxLatency,omitempty"`
	SourceAverageLatency      uint64  `json:"sourceAverageLatency,omitempty"`
	DestinationOctets         uint64  `json:"destinationOctets,omitempty"`
	DestinationOctetRate      uint64  `json:"destinationOctetRate,omitempty"`
	DestinationMinLatency     uint64  `json:"destinationMinLatency,omitempty"`
	DestinationMaxLatency     uint64  `json:"destinationMaxLatency,omitempty"`
	DestinationAverageLatency uint64  `json:"destinationAverageLatency,omitempty"`
}

type FlowCollector

type FlowCollector struct {
	Request  chan ApiRequest
	Response chan ApiResponse

	Beacons        map[string]*BeaconRecord
	Sites          map[string]*SiteRecord
	Hosts          map[string]*HostRecord
	Routers        map[string]*RouterRecord
	Links          map[string]*LinkRecord
	Listeners      map[string]*ListenerRecord
	Connectors     map[string]*ConnectorRecord
	Flows          map[string]*FlowRecord
	FlowPairs      map[string]*FlowPairRecord
	FlowAggregates map[string]*FlowAggregateRecord
	Processes      map[string]*ProcessRecord
	ProcessGroups  map[string]*ProcessGroupRecord
	VanAddresses   map[string]*VanAddressRecord
	// contains filtered or unexported fields
}

func NewFlowCollector

func NewFlowCollector(origin string, connectionFactory messaging.ConnectionFactory) *FlowCollector

func (*FlowCollector) Start

func (c *FlowCollector) Start(stopCh <-chan struct{})

type FlowController

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

func NewFlowController

func NewFlowController(origin string, creationTime uint64, connectionFactory messaging.ConnectionFactory) *FlowController

func (*FlowController) Start

func (c *FlowController) Start(stopCh <-chan struct{})

type FlowPairRecord

type FlowPairRecord struct {
	Base
	SourceSiteId            string      `json:"sourceSiteId,omitempty"`
	DestinationSiteId       string      `json:"destinationSiteId,omitempty"`
	ForwardFlow             *FlowRecord `json:"forwardFlow,omitempty"`
	CounterFlow             *FlowRecord `json:"counterFlow,omitempty"`
	SiteAggregateId         *string     `json:"siteAggregateId,omitempty"`
	ProcessGroupAggregateId *string     `json:"processGroupAggregateId,omitempty"`
	ProcessAggregateId      *string     `json:"processAggregateId,omitempty"`
}

Note a flowpair does not have a defined parent relationship through Base

type FlowRecord

type FlowRecord struct {
	Base
	SourceHost     *string `json:"sourceHost,omitempty"`
	SourcePort     *string `json:"sourcePort,omitempty"`
	CounterFlow    *string `json:"counterFlow,omitempty"`
	Trace          *string `json:"trace,omitempty"`
	Latency        *uint64 `json:"latency,omitempty"`
	Octets         *uint64 `json:"octets"`
	OctetRate      *uint64 `json:"octetRate"`
	OctetsOut      *uint64 `json:"octetsOut,omitempty"`
	OctetsUnacked  *uint64 `json:"octetsUnacked,omitempty"`
	WindowClosures *uint64 `json:"windowClosures,omitempty"`
	WindowSize     *uint64 `json:"windowSize,omitempty"`
	Reason         *string `json:"reason,omitempty"`
	Method         *string `json:"method,omitempty"`
	Result         *string `json:"result,omitempty"`
	Process        *string `json:"process,omitempty"`
	ProcessName    *string `json:"processName,omitempty"`
}

type FlushRecord

type FlushRecord struct {
	Address string `json:"address,omitempty"`
	Source  string `json:"source,omitempty"`
}

type HeartbeatRecord

type HeartbeatRecord struct {
	Source   string `json:"source,omityempty"`
	Identity string `json:"identity,omitempty"`
	Version  uint32 `json:"version,omitempty"`
	Now      uint64 `json:"now,omitempty"`
}

type HostRecord

type HostRecord struct {
	Base
	Location          *string `json:"location,omitempty"`
	Provider          *string `json:"provider,omitempty"`
	Platform          *string `json:"platform,omitempty"`
	Name              *string `json:"name,omitempty"`
	Arch              *string `json:"arch,omitempty"`
	OperatingSystem   *string `json:"operatingSystem,omitempty"`
	OperatingSystemId *string `json:"operatingSystemId,omitempty"`
	Region            *string `json:"region,omitempty"`
	Zone              *string `json:"zone,omitempty"`
	ContainerRuntime  *string `json:"containerRuntime,omitempty"`
	KernelVersion     *string `json:"kernelVersion,omitempty"`
	KubeProxyVersion  *string `json:"kubeProxyVersion,omitempty"`
	KubeletVersion    *string `json:"kubeletVersion,omitempty"`
}

type ImageRecord

type ImageRecord struct {
	Base
	Name    string `json:"name,omitempty"`
	Version string `json:"version,omitempty"`
}

type IngressRecord

type IngressRecord struct {
	Base
}

type LinkRecord

type LinkRecord struct {
	Base
	Mode      *string `json:"mode,omitempty"`
	Name      *string `json:"name,omitempty"`
	LinkCost  *uint64 `json:"linkCost,omitempty"`
	Direction *string `json:"direction,omitempty"`
}

type ListenerRecord

type ListenerRecord struct {
	Base
	Name        *string `json:"name,omitempty"`
	DestHost    *string `json:"destHost,omitempty"`
	DestPort    *string `json:"destPort,omitempty"`
	Protocol    *string `json:"protocol,omitempty"`
	Address     *string `json:"address,omitempty"`
	FlowCountL4 *uint64 `json:"flowCountL4,omitempty"`
	FlowRateL4  *uint64 `json:"flowRateL4,omitempty"`
	FlowCountL7 *uint64 `json:"flowCountL7,omitempty"`
	FlowRateL7  *uint64 `json:"flowRateL7,omitempty"`
}

type Payload

type Payload struct {
	Results       interface{} `json:"results,omitempty"`
	Timestamp     uint64      `json:"timestamp,omitempty"`
	LengthTotal   int         `json:"lengthTotal,omitempty"`
	LengthResults int         `json:"lengthResults,omitempty"`
}

type ProcessGroupRecord

type ProcessGroupRecord struct {
	Base
	Name               *string `json:"name,omitempty"`
	OctetsSent         uint64  `json:"octetsSent"`
	OctetsSentRate     uint64  `json:"octetSentRate"`
	OctetsReceived     uint64  `json:"octetsReceived"`
	OctetsReceivedRate uint64  `json:"octetReceivedRate"`
}

type ProcessRecord

type ProcessRecord struct {
	Base
	Name               *string `json:"name,omitempty"`
	ParentName         *string `json:"parentName,omitempty"`
	ImageName          *string `json:"imageName,omitempty"`
	Image              *string `json:"image,omitempty"`
	GroupName          *string `json:"groupName,omitempty"`
	GroupIdentity      *string `json:"groupIdentity,omitempty"`
	HostName           *string `json:"hostName,omitempty"`
	SourceHost         *string `json:"sourceHost,omitempty"`
	OctetsSent         uint64  `json:"octetsSent"`
	OctetsSentRate     uint64  `json:"octetSentRate"`
	OctetsReceived     uint64  `json:"octetsReceived"`
	OctetsReceivedRate uint64  `json:"octetReceivedRate"`
	// contains filtered or unexported fields
}

type RouterRecord

type RouterRecord struct {
	Base
	Name         *string `json:"name,omitempty"`
	Namespace    *string `json:"namespace,omitempty"`
	Mode         *string `json:"mode,omitempty"`
	ImageName    *string `json:"imageName,omitempty"`
	ImageVersion *string `json:"imageVersion,omitempty"`
	Hostname     *string `json:"hostname,omitempty"`
	BuildVersion *string `json:"buildVersion,omitempty"`
}

type SiteRecord

type SiteRecord struct {
	Base
	Location           *string `json:"location,omitempty"`
	Provider           *string `json:"provider,omitempty"`
	Platform           *string `json:"platform,omitempty"`
	Name               *string `json:"name,omitempty"`
	NameSpace          *string `json:"nameSpace,omitempty"`
	OctetsSent         uint64  `json:"octetsSent"`
	OctetsSentRate     uint64  `json:"octetSentRate"`
	OctetsReceived     uint64  `json:"octetsReceived"`
	OctetsReceivedRate uint64  `json:"octetReceivedRate"`
}

type VanAddressRecord

type VanAddressRecord struct {
	Base
	Name           string `json:"name,omitempty"`
	ListenerCount  int    `json:"listenerCount"`
	ConnectorCount int    `json:"connectorCount"`
	TotalFlows     int    `json:"totalFlows"`
	CurrentFlows   int    `json:"currentFlows"`
}

Van Address represents a service that is attached to the application network

Jump to

Keyboard shortcuts

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