traversal

package
v0.19.0 Latest Latest
Warning

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

Go to latest
Published: Aug 8, 2018 License: Apache-2.0 Imports: 17 Imported by: 18

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewSocketIndexer added in v0.17.0

func NewSocketIndexer(g *graph.Graph) *graph.GraphIndexer

NewSocketIndexer returns a new socket graph indexer

func TopologyGremlinQuery

func TopologyGremlinQuery(g *graph.Graph, query string) (traversal.GraphTraversalStep, error)

TopologyGremlinQuery run a gremlin query on the graph g without any extension

Types

type AggregatesGremlinTraversalStep

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

AggregatesGremlinTraversalStep aggregates step

func (*AggregatesGremlinTraversalStep) Context

Context Aggregates step

func (*AggregatesGremlinTraversalStep) Exec

Exec Aggregates step

func (*AggregatesGremlinTraversalStep) Reduce

Reduce Aggregates step

type BpfGremlinTraversalStep

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

BpfGremlinTraversalStep step

func (*BpfGremlinTraversalStep) Context

Context of BPF step

func (*BpfGremlinTraversalStep) Exec

Exec BPF step

func (*BpfGremlinTraversalStep) Reduce

Reduce BPF step

type CaptureNodeGremlinTraversalStep

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

CaptureNodeGremlinTraversalStep capture step

func (*CaptureNodeGremlinTraversalStep) Context

Context step

func (*CaptureNodeGremlinTraversalStep) Exec

Exec Capture step

func (*CaptureNodeGremlinTraversalStep) Reduce

Reduce Capture step

type DescendantsGremlinTraversalStep added in v0.19.0

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

DescendantsGremlinTraversalStep rawpackets step

func (*DescendantsGremlinTraversalStep) Context added in v0.19.0

Context Descendants step

func (*DescendantsGremlinTraversalStep) Exec added in v0.19.0

Exec Descendants step

func (*DescendantsGremlinTraversalStep) Reduce added in v0.19.0

Reduce Descendants step

type DescendantsTraversalExtension added in v0.19.0

type DescendantsTraversalExtension struct {
	DescendantsToken traversal.Token
}

DescendantsTraversalExtension describes a new extension to enhance the topology

func NewDescendantsTraversalExtension added in v0.19.0

func NewDescendantsTraversalExtension() *DescendantsTraversalExtension

NewDescendantsTraversalExtension returns a new graph traversal extension

func (*DescendantsTraversalExtension) ParseStep added in v0.19.0

ParseStep parses descendants step

func (*DescendantsTraversalExtension) ScanIdent added in v0.19.0

ScanIdent returns an associated graph token

type FlowGremlinTraversalStep

type FlowGremlinTraversalStep struct {
	TableClient *flow.TableClient
	Storage     storage.Storage
	// contains filtered or unexported fields
}

FlowGremlinTraversalStep a flow Gremlin language step

func (*FlowGremlinTraversalStep) Context

Context flow step

func (*FlowGremlinTraversalStep) Exec

Exec flow step

func (*FlowGremlinTraversalStep) Reduce

Reduce flow step

type FlowTraversalExtension

type FlowTraversalExtension struct {
	FlowToken        traversal.Token
	HopsToken        traversal.Token
	NodesToken       traversal.Token
	CaptureNodeToken traversal.Token
	AggregatesToken  traversal.Token
	BpfToken         traversal.Token
	TableClient      *flow.TableClient
	Storage          storage.Storage
}

FlowTraversalExtension describes flows in a graph Gremlin language extension

func NewFlowTraversalExtension

func NewFlowTraversalExtension(client *flow.TableClient, storage storage.Storage) *FlowTraversalExtension

NewFlowTraversalExtension creates a new flow traversal extension for Gremlin parser

func (*FlowTraversalExtension) ParseStep

ParseStep creates steps from token

func (*FlowTraversalExtension) ScanIdent

func (e *FlowTraversalExtension) ScanIdent(s string) (traversal.Token, bool)

ScanIdent tokenize the step

type FlowTraversalStep

type FlowTraversalStep struct {
	GraphTraversal *traversal.GraphTraversal
	Storage        storage.Storage
	// contains filtered or unexported fields
}

FlowTraversalStep a flow step linked to a storage

func (*FlowTraversalStep) Both

func (f *FlowTraversalStep) Both(s ...interface{}) *traversal.GraphTraversalV

Both returns A and B nodes

func (*FlowTraversalStep) CaptureNode

func (f *FlowTraversalStep) CaptureNode(s ...interface{}) *traversal.GraphTraversalV

CaptureNode step

func (*FlowTraversalStep) Count

func (f *FlowTraversalStep) Count(s ...interface{}) *traversal.GraphTraversalValue

Count step

func (*FlowTraversalStep) Dedup

func (f *FlowTraversalStep) Dedup(keys ...interface{}) *FlowTraversalStep

Dedup deduplicate step

func (*FlowTraversalStep) Error

func (f *FlowTraversalStep) Error() error

Error returns traversal error

func (*FlowTraversalStep) FlowMetrics

func (f *FlowTraversalStep) FlowMetrics() *MetricsTraversalStep

FlowMetrics returns flow metric counters

func (*FlowTraversalStep) Has

func (f *FlowTraversalStep) Has(s ...interface{}) *FlowTraversalStep

Has step

func (*FlowTraversalStep) Hops

func (f *FlowTraversalStep) Hops(s ...interface{}) *traversal.GraphTraversalV

Hops returns all the capture nodes where the flow was seen

func (*FlowTraversalStep) In

func (f *FlowTraversalStep) In(s ...interface{}) *traversal.GraphTraversalV

In returns the A node

func (*FlowTraversalStep) MarshalJSON

func (f *FlowTraversalStep) MarshalJSON() ([]byte, error)

MarshalJSON serialize in JSON

func (*FlowTraversalStep) Nodes

func (f *FlowTraversalStep) Nodes(s ...interface{}) *traversal.GraphTraversalV

Nodes returns A, B and the capture nodes

func (*FlowTraversalStep) Out

func (f *FlowTraversalStep) Out(s ...interface{}) *traversal.GraphTraversalV

Out returns the B node

func (*FlowTraversalStep) PropertyKeys

func (f *FlowTraversalStep) PropertyKeys(keys ...interface{}) *traversal.GraphTraversalValue

PropertyKeys returns flow fields

func (*FlowTraversalStep) PropertyValues

func (f *FlowTraversalStep) PropertyValues(keys ...interface{}) *traversal.GraphTraversalValue

PropertyValues returns a flow field value

func (*FlowTraversalStep) RawPackets

func (f *FlowTraversalStep) RawPackets() *RawPacketsTraversalStep

RawPackets searches for RawPacket based on previous flow filter from either agents or datastore.

func (*FlowTraversalStep) Sockets added in v0.17.0

func (f *FlowTraversalStep) Sockets(s ...interface{}) *SocketsTraversalStep

Sockets returns the sockets at both sides of the specified flows

func (*FlowTraversalStep) Sort

func (f *FlowTraversalStep) Sort(keys ...interface{}) *FlowTraversalStep

Sort step

func (*FlowTraversalStep) Sum

func (f *FlowTraversalStep) Sum(keys ...interface{}) *traversal.GraphTraversalValue

Sum aggregates integer values mapped by 'key' cross flows

func (*FlowTraversalStep) Values

func (f *FlowTraversalStep) Values() []interface{}

Values returns list of flows

type HopsGremlinTraversalStep

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

HopsGremlinTraversalStep hops step

func (*HopsGremlinTraversalStep) Context

Context hops step

func (*HopsGremlinTraversalStep) Exec

Exec hops step

func (*HopsGremlinTraversalStep) Reduce

Reduce hops step

type MetricsGremlinTraversalStep

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

MetricsGremlinTraversalStep describes the Metrics gremlin traversal step

func (*MetricsGremlinTraversalStep) Context

Context metrics step

func (*MetricsGremlinTraversalStep) Exec

Exec executes the metrics step

func (*MetricsGremlinTraversalStep) Reduce

Reduce metrics step

type MetricsTraversalExtension

type MetricsTraversalExtension struct {
	MetricsToken traversal.Token
}

MetricsTraversalExtension describes a new extension to enhance the topology

func NewMetricsTraversalExtension

func NewMetricsTraversalExtension() *MetricsTraversalExtension

NewMetricsTraversalExtension returns a new graph traversal extension

func (*MetricsTraversalExtension) ParseStep

ParseStep parse metrics step

func (*MetricsTraversalExtension) ScanIdent

ScanIdent returns an associated graph token

type MetricsTraversalStep

type MetricsTraversalStep struct {
	GraphTraversal *traversal.GraphTraversal
	// contains filtered or unexported fields
}

MetricsTraversalStep traversal step metric interface counters

func InterfaceMetrics

func InterfaceMetrics(tv *traversal.GraphTraversalV) *MetricsTraversalStep

InterfaceMetrics returns a Metrics step from interface metric metadata

func NewMetricsTraversalStep

func NewMetricsTraversalStep(gt *traversal.GraphTraversal, metrics map[string][]common.Metric) *MetricsTraversalStep

NewMetricsTraversalStep creates a new traversal metric step

func NewMetricsTraversalStepFromError added in v0.17.0

func NewMetricsTraversalStepFromError(err error) *MetricsTraversalStep

NewMetricsTraversalStepFromError creates a new traversal metric step

func (*MetricsTraversalStep) Aggregates

func (m *MetricsTraversalStep) Aggregates(s ...interface{}) *MetricsTraversalStep

Aggregates merges multiple metrics array into one by summing overlapping metrics. It returns a unique array will all the aggregated metrics.

func (*MetricsTraversalStep) Count

func (m *MetricsTraversalStep) Count(s ...interface{}) *traversal.GraphTraversalValue

Count step

func (*MetricsTraversalStep) Error

func (m *MetricsTraversalStep) Error() error

Error returns error present at this step

func (*MetricsTraversalStep) MarshalJSON

func (m *MetricsTraversalStep) MarshalJSON() ([]byte, error)

MarshalJSON serialize in JSON

func (*MetricsTraversalStep) PropertyKeys added in v0.19.0

func (m *MetricsTraversalStep) PropertyKeys(keys ...interface{}) *traversal.GraphTraversalValue

PropertyKeys returns metric fields

func (*MetricsTraversalStep) Sum

func (m *MetricsTraversalStep) Sum(keys ...interface{}) *traversal.GraphTraversalValue

Sum aggregates integer values mapped by 'key' cross flows

func (*MetricsTraversalStep) Values

func (m *MetricsTraversalStep) Values() []interface{}

Values returns the graph metric values

type NodesGremlinTraversalStep

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

NodesGremlinTraversalStep nodes step

func (*NodesGremlinTraversalStep) Context

Context Nodes step

func (*NodesGremlinTraversalStep) Exec

Exec Nodes step

func (*NodesGremlinTraversalStep) Reduce

Reduce Nodes step

type RawPacketsGremlinTraversalStep

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

RawPacketsGremlinTraversalStep rawpackets step

func (*RawPacketsGremlinTraversalStep) Context

Context RawPackets step

func (*RawPacketsGremlinTraversalStep) Exec

Exec RawPackets step

func (*RawPacketsGremlinTraversalStep) Reduce

Reduce RawPackets step

type RawPacketsTraversalExtension added in v0.19.0

type RawPacketsTraversalExtension struct {
	RawPacketsToken traversal.Token
}

RawPacketsTraversalExtension describes a new extension to enhance the topology

func NewRawPacketsTraversalExtension added in v0.19.0

func NewRawPacketsTraversalExtension() *RawPacketsTraversalExtension

NewRawPacketsTraversalExtension returns a new graph traversal extension

func (*RawPacketsTraversalExtension) ParseStep added in v0.19.0

ParseStep parse metrics step

func (*RawPacketsTraversalExtension) ScanIdent added in v0.19.0

ScanIdent returns an associated graph token

type RawPacketsTraversalStep

type RawPacketsTraversalStep struct {
	GraphTraversal *traversal.GraphTraversal
	// contains filtered or unexported fields
}

RawPacketsTraversalStep rawpackets step

func (*RawPacketsTraversalStep) BPF

func (r *RawPacketsTraversalStep) BPF(s ...interface{}) *RawPacketsTraversalStep

BPF returns only the raw packets that matches the specified BPF filter

func (*RawPacketsTraversalStep) Error

func (r *RawPacketsTraversalStep) Error() error

Error returns traversal error

func (*RawPacketsTraversalStep) MarshalJSON

func (r *RawPacketsTraversalStep) MarshalJSON() ([]byte, error)

MarshalJSON serialize in JSON

func (*RawPacketsTraversalStep) Values

func (r *RawPacketsTraversalStep) Values() []interface{}

Values returns list of raw packets

type SocketsGremlinTraversalStep added in v0.17.0

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

SocketsGremlinTraversalStep describes the Sockets gremlin traversal step

func (*SocketsGremlinTraversalStep) Context added in v0.17.0

Context sockets step

func (*SocketsGremlinTraversalStep) Exec added in v0.17.0

Exec executes the metrics step

func (*SocketsGremlinTraversalStep) Reduce added in v0.17.0

Reduce flow step

type SocketsTraversalExtension added in v0.17.0

type SocketsTraversalExtension struct {
	SocketsToken traversal.Token
}

SocketsTraversalExtension describes a new extension to enhance the topology

func NewSocketsTraversalExtension added in v0.17.0

func NewSocketsTraversalExtension() *SocketsTraversalExtension

NewSocketsTraversalExtension returns a new graph traversal extension

func (*SocketsTraversalExtension) ParseStep added in v0.17.0

ParseStep parse connections step

func (*SocketsTraversalExtension) ScanIdent added in v0.17.0

ScanIdent returns an associated graph token

type SocketsTraversalStep added in v0.17.0

type SocketsTraversalStep struct {
	GraphTraversal *traversal.GraphTraversal
	// contains filtered or unexported fields
}

SocketsTraversalStep connections step

func Sockets added in v0.17.0

Sockets returns a sockets step from host/namespace sockets

func (*SocketsTraversalStep) Error added in v0.17.0

func (s *SocketsTraversalStep) Error() error

Error returns traversal error

func (*SocketsTraversalStep) Has added in v0.17.0

func (s *SocketsTraversalStep) Has(params ...interface{}) *SocketsTraversalStep

Has step

func (*SocketsTraversalStep) MarshalJSON added in v0.17.0

func (s *SocketsTraversalStep) MarshalJSON() ([]byte, error)

MarshalJSON serialize in JSON

func (*SocketsTraversalStep) PropertyValues added in v0.17.0

func (s *SocketsTraversalStep) PropertyValues(keys ...interface{}) *traversal.GraphTraversalValue

PropertyValues returns a flow field value

func (*SocketsTraversalStep) Values added in v0.17.0

func (s *SocketsTraversalStep) Values() []interface{}

Values returns list of socket informations

Jump to

Keyboard shortcuts

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