Documentation ¶
Index ¶
Constants ¶
View Source
const ( // DefaultBindAddress is the default binding interface if none is specified. DefaultBindAddress = ":8089" // DefaultDatabase is the default database for UDP traffic. DefaultDatabase = "udp" // DefaultRetentionPolicy is the default retention policy used for writes. DefaultRetentionPolicy = "" // DefaultBatchSize is the default UDP batch size. DefaultBatchSize = 5000 // DefaultBatchPending is the default number of pending UDP batches. DefaultBatchPending = 10 // DefaultBatchTimeout is the default UDP batch timeout. DefaultBatchTimeout = time.Second // DefaultPrecision is the default time precision used for UDP services. DefaultPrecision = "n" // DefaultReadBuffer is the default buffer size for the UDP listener. // Sets the size of the operating system's receive buffer associated with // the UDP traffic. Keep in mind that the OS must be able // to handle the number set here or the UDP listener will error and exit. // // DefaultReadBuffer = 0 means to use the OS default, which is usually too // small for high UDP performance. // // Increasing OS buffer limits: // Linux: sudo sysctl -w net.core.rmem_max=<read-buffer> // BSD/Darwin: sudo sysctl -w kern.ipc.maxsockbuf=<read-buffer> DefaultReadBuffer = 0 // DefaultUDPPayloadSize sets the default value of the incoming UDP packet // to the spec max, i.e. 65536. That being said, this value should likely // be tuned lower to match your udp_payload size if using tools like // telegraf. // // https://en.wikipedia.org/wiki/User_Datagram_Protocol#Packet_structure // // Reading packets from a UDP socket in go actually only pulls // one packet at a time, requiring a very fast reader to keep up with // incoming data at scale. Reducing the overhead of the expected packet // helps allocate memory faster (~10-25µs --> ~150ns with go1.5.2), thereby // speeding up the processing of data coming in. // // NOTE: if you send a payload greater than the UDPPayloadSize, you will // cause a buffer overflow...tune your application very carefully to match // udp_payload for your metrics source DefaultUDPPayloadSize = 65536 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { Enabled bool `toml:"enabled"` BindAddress string `toml:"bind-address"` Database string `toml:"database"` RetentionPolicy string `toml:"retention-policy"` BatchSize int `toml:"batch-size"` BatchPending int `toml:"batch-pending"` ReadBuffer int `toml:"read-buffer"` BatchTimeout toml.Duration `toml:"batch-timeout"` Precision string `toml:"precision"` UDPPayloadSize int `toml:"udp-payload-size"` }
Config holds various configuration settings for the UDP listener.
func NewConfig ¶ added in v0.12.0
func NewConfig() Config
NewConfig returns a new instance of Config with defaults.
func (*Config) WithDefaults ¶ added in v0.9.5
WithDefaults takes the given config and returns a new config with any required default values set.
type Service ¶
type Service struct { PointsWriter interface { WritePoints(database, retentionPolicy string, consistencyLevel models.ConsistencyLevel, points []models.Point) error } MetaClient interface { CreateDatabase(name string) (*meta.DatabaseInfo, error) } Logger *log.Logger // contains filtered or unexported fields }
Service represents here an UDP service that will listen for incoming packets formatted with the inline protocol
Click to show internal directories.
Click to hide internal directories.