collectd - ActiveState ActiveGo 1.8

Package collectd

import ""

Overview ▾

Package collectd provides a service for InfluxDB to ingest data via the collectd protocol.


const (
    // DefaultBindAddress is the default port to bind to.
    DefaultBindAddress = ":25826"

    // DefaultDatabase is the default DB to write to.
    DefaultDatabase = "collectd"

    // DefaultRetentionPolicy is the default retention policy of the writes.
    DefaultRetentionPolicy = ""

    // DefaultBatchSize is the default write batch size.
    DefaultBatchSize = 5000

    // DefaultBatchPending is the default number of pending write batches.
    DefaultBatchPending = 10

    // DefaultBatchDuration is the default batch timeout duration.
    DefaultBatchDuration = toml.Duration(10 * time.Second)

    // DefaultTypesDB is the default location of the collectd types db file.
    DefaultTypesDB = "/usr/share/collectd/types.db"

    // 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

    // DefaultSecurityLevel is the default security level.
    DefaultSecurityLevel = "none"

    // DefaultAuthFile is the default location of the user/password file.
    DefaultAuthFile = "/etc/collectd/auth_file"

func TypesDBFile

func TypesDBFile(path string) (typesdb *api.TypesDB, err error)

TypesDBFile reads a collectd types db from a file.

type Config

Config represents a configuration for the collectd service.

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"`
    BatchDuration   toml.Duration `toml:"batch-timeout"`
    ReadBuffer      int           `toml:"read-buffer"`
    TypesDB         string        `toml:"typesdb"`
    SecurityLevel   string        `toml:"security-level"`
    AuthFile        string        `toml:"auth-file"`

func NewConfig

func NewConfig() Config

NewConfig returns a new instance of Config with defaults.

func (*Config) Validate

func (c *Config) Validate() error

Validate returns an error if the Config is invalid.

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 represents a UDP server which receives metrics in collectd's binary protocol and stores them in InfluxDB.

type Service struct {
    Config       *Config
    MetaClient   metaClient
    PointsWriter pointsWriter
    Logger       zap.Logger
    // contains filtered or unexported fields

func NewService

func NewService(c Config) *Service

NewService returns a new instance of the collectd service.

func (*Service) Addr

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

Addr returns the listener's address. It returns nil if listener is closed.

func (*Service) Close

func (s *Service) Close() error

Close stops the service.

func (*Service) Open

func (s *Service) Open() error

Open starts the service.

func (*Service) SetTypes

func (s *Service) SetTypes(types string) (err error)

SetTypes sets collectd types db.

func (*Service) Statistics

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

Statistics returns statistics for periodic monitoring.

func (*Service) UnmarshalValueList

func (s *Service) UnmarshalValueList(vl *api.ValueList) []models.Point

UnmarshalValueList translates a ValueList into InfluxDB data points.

func (*Service) WithLogger

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

WithLogger sets the service's logger.

type Statistics

Statistics maintains statistics for the collectd service.

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


Name Synopsis