Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { HTTPRelays []HTTPConfig `toml:"http"` UDPRelays []UDPConfig `toml:"udp"` Filters Filters `toml:"filter"` Verbose bool }
Config is an object created from a configuration file It is a list of HTTP and/or UDP relays Each relay has its own list of backends
func LoadConfigFile ¶
LoadConfigFile parses the specified file into a Config object
type Filter ¶
type Filter struct { // Type is how the regex result will be interpreted Type string `toml:"type"` // TagExpression is a valid Go regex // It will be applied on each tag of any request to the backend TagExpression string `toml:"tag-expression"` // MeasurementExpression is a valid Go regex // It will be applied on the measurement of any request to the backend MeasurementExpression string `toml:"measurement-expression"` // TagRegexp is the compiled tag regexp TagRegexp *regexp.Regexp // MeasurementRegexp is the compiled measurement regexp MeasurementRegexp *regexp.Regexp // Outputs are the endoints the regex are applied on Outputs []string `toml:"outputs"` }
Filter represents a regex which may be applied to the incoming requests
type Filters ¶
type Filters []Filter
Filters is a type representing an array of Filter, wow
func (Filters) LoadRegexps ¶
LoadRegexps will try to compile all the eventual regular expressions for each filter Any error here is critical
type HTTPConfig ¶
type HTTPConfig struct { // Name identifies the HTTP relay Name string `toml:"name"` // Addr should be set to the desired listening host:port Addr string `toml:"bind-addr"` // Set certificate in order to handle HTTPS requests SSLCombinedPem string `toml:"ssl-combined-pem"` // Default retention policy to set for forwarded requests DefaultRetentionPolicy string `toml:"default-retention-policy"` DefaultPingResponse int `toml:"default-ping-response"` // Rate limit on specific HTTP relay RateLimit int `toml:"rate-limit"` // Burst allowed by rate limit BurstLimit int `toml:"burst-limit"` // Outputs is a list of backed servers where writes will be forwarded Outputs []HTTPOutputConfig `toml:"output"` HealthTimeout int64 `toml:"health-timeout-ms"` }
HTTPConfig represents an HTTP relay
type HTTPEndpointConfig ¶
type HTTPEndpointConfig struct { // Must be the standard write endpoint in influxdb. Write string `toml:"write"` // Must be the prometheus specific influxdb endpoint PromWrite string `toml:"write_prom"` // Must be the ping endpoint Ping string `toml:"ping"` // Must be the query influxdb endpoint Query string `toml:"query"` }
HTTPEndpointConfig details the remote endpoints to use
type HTTPOutputConfig ¶
type HTTPOutputConfig struct { // Name of the backend server Name string `toml:"name"` // Location should be set to the hostname for the influxdb endpoint (for example https://influxdb.com/) Location string `toml:"location"` // Endpoints should contain the path to the different influxdb endpoints used Endpoints HTTPEndpointConfig `toml:"endpoints"` // Timeout sets a per-backend timeout for write requests (default: 10s) // The format used is the same seen in time.ParseDuration Timeout string `toml:"timeout"` // Buffer failed writes up to maximum count (default: 0, retry/buffering disabled) BufferSizeMB int `toml:"buffer-size-mb"` // Maximum batch size in KB (default: 512) MaxBatchKB int `toml:"max-batch-kb"` // Maximum delay between retry attempts // The format used is the same seen in time.ParseDuration (default: 10s) MaxDelayInterval string `toml:"max-delay-interval"` // Skip TLS verification in order to use self signed certificate // WARNING: It's insecure, use it only for developing and don't use in production SkipTLSVerification bool `toml:"skip-tls-verification"` }
HTTPOutputConfig represents the specification of an HTTP backend target
type UDPConfig ¶
type UDPConfig struct { // Name identifies the UDP relay Name string `toml:"name"` // Addr is where the UDP relay will listen for packets Addr string `toml:"bind-addr"` // Precision sets the precision of the timestamps (input and output) Precision string `toml:"precision"` // ReadBuffer sets the socket buffer for incoming connections ReadBuffer int `toml:"read-buffer"` // Outputs is a list of backend servers where writes will be forwarded Outputs []UDPOutputConfig `toml:"output"` }
UDPConfig represents a UDP relay
type UDPOutputConfig ¶
type UDPOutputConfig struct { // Name identifies the UDP backend Name string `toml:"name"` // Location should be set to the host:port of the backend server Location string `toml:"location"` // MTU sets the maximum output payload size, default is 1024 MTU int `toml:"mtu"` }
UDPOutputConfig represents the specification of a UDP backend target