Documentation ¶
Index ¶
Constants ¶
View Source
const ( ListenPoll = "poll" ListenWatch = "watch" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { // Export selects the flows' exporter protocol. Accepted values are: grpc (default) or kafka. Export string `env:"EXPORT" envDefault:"grpc"` // TargetHost is the host name or IP of the target Flow collector, when the EXPORT variable is // set to "grpc" TargetHost string `env:"FLOWS_TARGET_HOST"` // TargetPort is the port the target Flow collector, when the EXPORT variable is set to "grpc" TargetPort int `env:"FLOWS_TARGET_PORT"` // Interfaces contains the interface names from where flows will be collected. If empty, the agent // will fetch all the interfaces in the system, excepting the ones listed in ExcludeInterfaces. // If an entry is enclosed by slashes (e.g. `/br-/`), it will match as regular expression, // otherwise it will be matched as a case-sensitive string. Interfaces []string `env:"INTERFACES" envSeparator:","` // ExcludeInterfaces contains the interface names that will be excluded from flow tracing. Default: // "lo" (loopback). // If an entry is enclosed by slashes (e.g. `/br-/`), it will match as regular expression, // otherwise it will be matched as a case-sensitive string. ExcludeInterfaces []string `env:"EXCLUDE_INTERFACES" envSeparator:"," envDefault:"lo"` // BuffersLength establishes the length of communication channels between the different processing // stages BuffersLength int `env:"BUFFERS_LENGTH" envDefault:"50"` // CacheMaxFlows specifies how many flows can be accumulated in the accounting cache before // being flushed for its later export CacheMaxFlows int `env:"CACHE_MAX_FLOWS" envDefault:"1000"` // CacheActiveTimeout specifies the maximum duration that flows are kept in the accounting // cache before being flushed for its later export CacheActiveTimeout time.Duration `env:"CACHE_ACTIVE_TIMEOUT" envDefault:"5s"` // Logger level. From more to less verbose: trace, debug, info, warn, error, fatal, panic. LogLevel string `env:"LOG_LEVEL" envDefault:"info"` // Sampling holds the rate at which packets should be sampled and sent to the target collector. // E.g. if set to 100, one out of 100 packets, on average, will be sent to the target collector. Sampling uint32 `env:"SAMPLING" envDefault:"0"` // ListenInterfaces specifies the mechanism used by the agent to listen for added or removed // network interfaces. Accepted values are "watch" (default) or "poll". // If the value is "watch", interfaces are traced immediately after they are created. This is // the recommended setting for most configurations. "poll" value is a fallback mechanism that // periodically queries the current network interfaces (frequency specified by ListenPollPeriod). ListenInterfaces string `env:"LISTEN_INTERFACES" envDefault:"watch"` // ListenPollPeriod specifies the periodicity to query the network interfaces when the // ListenInterfaces value is set to "poll". ListenPollPeriod time.Duration `env:"LISTEN_POLL_PERIOD" envDefault:"10s"` // KafkaBrokers is a comma-separated list of tha addresses of the brokers of the Kafka cluster // that this agent is configured to send messages to. KafkaBrokers []string `env:"KAFKA_BROKERS" envSeparator:","` // KafkaTopic is the name of the topic where the flows' processor will receive the flows from. KafkaTopic string `env:"KAFKA_TOPIC" envDefault:"network-flows"` // KafkaBatchSize sets the limit on how many messages will be buffered before being sent to a // partition. KafkaBatchSize int `env:"KAFKA_BATCH_SIZE" envDefault:"100"` // KafkaBatchBytes sets the limit of the maximum size of a request in bytes before being sent // to a partition. KafkaBatchBytes int64 `env:"KAFKA_BATCH_BYTES" envDefault:"1048576"` // KafkaAsync. If it's true, the message writing process will never block. It also means that // errors are ignored since the caller will not receive the returned value. KafkaAsync bool `env:"KAFKA_ASYNC" envDefault:"true"` // KafkaCompression sets the compression codec to be used to compress messages. The accepted // values are: none (default), gzip, snappy, lz4, zstd. KafkaCompression string `env:"KAFKA_COMPRESSION" envDefault:"none"` }
type Flows ¶
type Flows struct {
// contains filtered or unexported fields
}
Flows reporting agent
func FlowsAgent ¶
FlowsAgent instantiates a new agent, given a configuration.
Click to show internal directories.
Click to hide internal directories.