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 // HTTP replace rules HTTPReplaceRules []*ReplaceRule }
Config stores all flags used by the network eBPF tracer
type ReplaceRule ¶
type ReplaceRule struct { // Pattern specifies the regexp pattern to be used when replacing. It must compile. Pattern string `mapstructure:"pattern"` // Re holds the compiled Pattern and is only used internally. Re *regexp.Regexp `mapstructure:"-"` // Repl specifies the replacement string to be used when Pattern matches. Repl string `mapstructure:"repl"` }
ReplaceRule specifies a replace rule.
Click to show internal directories.
Click to hide internal directories.