Documentation ¶
Overview ¶
Package collectd provides a service for InfluxDB to ingest data via the collectd protocol.
Index ¶
- Constants
- func TypesDBFile(path string) (typesdb *api.TypesDB, err error)
- type Config
- type Configs
- type Service
- func (s *Service) Addr() net.Addr
- func (s *Service) Close() error
- func (s *Service) Open() error
- func (s *Service) SetTypes(types string) (err error)
- func (s *Service) Statistics(tags map[string]string) []models.Statistic
- func (s *Service) UnmarshalValueList(vl *api.ValueList) []models.Point
- func (s *Service) UnmarshalValueListPacked(vl *api.ValueList) []models.Point
- func (s *Service) WithLogger(log *zap.Logger)
- type Statistics
Constants ¶
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" // DefaultParseMultiValuePlugin is "split", defaulting to version <1.2 where plugin values were split into separate rows DefaultParseMultiValuePlugin = "split" )
Variables ¶
This section is empty.
Functions ¶
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"` 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"` ParseMultiValuePlugin string `toml:"parse-multivalue-plugin"` }
Config represents a configuration for the collectd service.
func (*Config) WithDefaults ¶
WithDefaults takes the given config and returns a new config with any required default values set.
type Configs ¶
type Configs []Config
Configs wraps a slice of Config to aggregate diagnostics.
func (Configs) Diagnostics ¶
func (c Configs) Diagnostics() (*diagnostics.Diagnostics, error)
Diagnostics returns one set of diagnostics for all of the Configs.
type Service ¶
type Service struct { Config *Config MetaClient metaClient PointsWriter pointsWriter Logger *zap.Logger // contains filtered or unexported fields }
Service represents a UDP server which receives metrics in collectd's binary protocol and stores them in InfluxDB.
func NewService ¶
NewService returns a new instance of the collectd service.
func (*Service) Statistics ¶
Statistics returns statistics for periodic monitoring.
func (*Service) UnmarshalValueList ¶
UnmarshalValueList translates a ValueList into InfluxDB data points.
func (*Service) UnmarshalValueListPacked ¶
UnmarshalValueListPacked is an alternative to the original UnmarshalValueList. The difference is that the original provided measurements like (PLUGIN_DSNAME, ["value",xxx]) while this one will provide measurements like (PLUGIN, {["DSNAME",xxx]}). This effectively joins collectd data that should go together, such as: (df, {["used",1000],["free",2500]}).
func (*Service) WithLogger ¶
WithLogger sets the service's logger.