Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
ebpf.Config
// ServiceMonitoringEnabled is whether the service monitoring feature is enabled or not
ServiceMonitoringEnabled bool
// CollectTCPConns specifies whether the tracer should collect traffic statistics for TCP connections
CollectTCPConns bool
// CollectUDPConns specifies whether the tracer should collect traffic statistics for UDP connections
CollectUDPConns bool
// CollectIPv6Conns specifics whether the tracer should capture traffic for IPv6 TCP/UDP connections
CollectIPv6Conns bool
// CollectLocalDNS specifies whether the tracer should capture traffic for local DNS calls
CollectLocalDNS bool
// DNSInspection specifies whether the tracer should enhance connection data with domain names by inspecting DNS traffic
// Notice this does *not* depend on CollectLocalDNS
DNSInspection bool
// CollectDNSStats specifies whether the tracer should enhance connection data with relevant DNS stats
// It is relevant *only* when DNSInspection is enabled.
CollectDNSStats bool
// CollectDNSDomains specifies whether collected DNS stats would be scoped by domain
// It is relevant *only* when DNSInspection and CollectDNSStats is enabled.
CollectDNSDomains bool
// DNSTimeout determines the length of time to wait before considering a DNS Query to have timed out
DNSTimeout time.Duration
// MaxDNSStats determines the number of separate DNS Stats objects DNSStatkeeper can have at any given time
// These stats objects get flushed on every client request (default 30s check interval)
MaxDNSStats int
// EnableHTTPMonitoring specifies whether the tracer should monitor HTTP traffic
EnableHTTPMonitoring bool
// EnableHTTPMonitoring specifies whether the tracer should monitor HTTPS traffic
// Supported libraries: OpenSSL
EnableHTTPSMonitoring bool
// UDPConnTimeout determines the length of traffic inactivity between two
// (IP, port)-pairs before declaring a UDP connection as inactive. This is
// set to /proc/sys/net/netfilter/nf_conntrack_udp_timeout on Linux by
// default.
UDPConnTimeout time.Duration
// UDPStreamTimeout is the timeout for udp streams. This is set to
// /proc/sys/net/netfilter/nf_conntrack_udp_timeout_stream on Linux by
// default.
UDPStreamTimeout time.Duration
// TCPConnTimeout is like UDPConnTimeout, but for TCP connections. TCP connections are cleared when
// the BPF module receives a tcp_close call, but TCP connections also age out to catch cases where
// tcp_close is not intercepted for some reason.
TCPConnTimeout time.Duration
// TCPClosedTimeout represents the maximum amount of time a closed TCP connection can remain buffered in eBPF before
// being marked as idle and flushed to the perf ring.
TCPClosedTimeout time.Duration
// MaxTrackedConnections specifies the maximum number of connections we can track. This determines the size of the eBPF Maps
MaxTrackedConnections uint
// MaxClosedConnectionsBuffered represents the maximum number of closed connections we'll buffer in memory. These closed connections
// get flushed on every client request (default 30s check interval)
MaxClosedConnectionsBuffered int
// MaxDNSStatsBuffered represents the maximum number of DNS stats we'll buffer in memory. These stats
// get flushed on every client request (default 30s check interval)
MaxDNSStatsBuffered int
// MaxHTTPStatsBuffered represents the maximum number of HTTP stats we'll buffer in memory. These stats
// get flushed on every client request (default 30s check interval)
MaxHTTPStatsBuffered int
// MaxConnectionsStateBuffered represents the maximum number of state objects that we'll store in memory. These state objects store
// the stats for a connection so we can accurately determine traffic change between client requests.
MaxConnectionsStateBuffered int
// ClientStateExpiry specifies the max time a client (e.g. process-agent)'s state will be stored in memory before being evicted.
ClientStateExpiry time.Duration
// EnableConntrack enables probing conntrack for network address translation
EnableConntrack bool
// IgnoreConntrackInitFailure will ignore any conntrack initialization failiures during system-probe load. If this is set to false, system-probe
// will fail to start if there is a conntrack initialization failure.
IgnoreConntrackInitFailure bool
// ConntrackMaxStateSize specifies the maximum number of connections with NAT we can track
ConntrackMaxStateSize int
// ConntrackRateLimit specifies the maximum number of netlink messages *per second* that can be processed
// Setting it to -1 disables the limit and can result in a high CPU usage.
ConntrackRateLimit int
// ConntrackInitTimeout specifies how long we wait for conntrack to initialize before failing
ConntrackInitTimeout time.Duration
// EnableConntrackAllNamespaces enables network address translation via netlink for all namespaces that are peers of the root namespace.
// default is true
EnableConntrackAllNamespaces bool
// ClosedChannelSize specifies the size for closed channel for the tracer
ClosedChannelSize int
// ExcludedSourceConnections is a map of source connections to blacklist
ExcludedSourceConnections map[string][]string
// ExcludedDestinationConnections is a map of destination connections to blacklist
ExcludedDestinationConnections map[string][]string
// OffsetGuessThreshold is the size of the byte threshold we will iterate over when guessing offsets
OffsetGuessThreshold uint64
// EnableMonotonicCount (Windows only) determines if we will calculate send/recv bytes of connections with headers and retransmits
EnableMonotonicCount bool
// DriverBufferSize (Windows only) determines the size (in bytes) of the buffer we pass to the driver when reading flows
DriverBufferSize int
// EnableGatewayLookup enables looking up gateway information for connection destinations
EnableGatewayLookup bool
// RecordedQueryTypes enables specific DNS query types to be recorded
RecordedQueryTypes []string
}
Config stores all flags used by the network eBPF tracer
Click to show internal directories.
Click to hide internal directories.