udp - ActiveState ActiveGo 1.8

Package udp

import "github.com/influxdata/influxdb/services/udp"

Overview ▾

Package udp provides the UDP input service for InfluxDB.


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
const (

    // MAX_UDP_PAYLOAD is largest payload size the UDP service will accept.
    MAX_UDP_PAYLOAD = 64 * 1024

type Config

Config holds various configuration settings for the UDP listener.

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"`
    // contains filtered or unexported fields

func NewConfig

func NewConfig() Config

NewConfig returns a new instance of Config with defaults.

func (*Config) WithDefaults

func (c *Config) WithDefaults() *Config

WithDefaults takes the given config and returns a new config with any required default values set.

type Service

Service is a UDP service that will listen for incoming packets of line protocol.

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 zap.Logger
    // contains filtered or unexported fields

func NewService

func NewService(c Config) *Service

NewService returns a new instance of Service.

func (*Service) Addr

func (s *Service) Addr() net.Addr

Addr returns the listener's address.

func (*Service) Close

func (s *Service) Close() error

Close closes the service and the underlying listener.

func (*Service) Closed

func (s *Service) Closed() bool

Closed returns true if the service is currently closed.

func (*Service) Open

func (s *Service) Open() (err error)

Open starts the service.

func (*Service) Statistics

func (s *Service) Statistics(tags map[string]string) []models.Statistic

Statistics returns statistics for periodic monitoring.

func (*Service) WithLogger

func (s *Service) WithLogger(log zap.Logger)

WithLogger sets the logger on the service.

type Statistics

Statistics maintains statistics for the UDP service.

type Statistics struct {
    PointsReceived      int64
    BytesReceived       int64
    PointsParseFail     int64
    ReadFail            int64
    BatchesTransmitted  int64
    PointsTransmitted   int64
    BatchesTransmitFail int64