Documentation ¶
Overview ¶
Package mode defines and implents output strategies with failover or load balancing modes for use by output plugins.
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrNoHostsConfigured = errors.New("no hosts configuration found")
ErrNoHostsConfigured indicates missing host or hosts configuration
View Source
var ( // ErrTempBulkFailure indicates PublishEvents fail temporary to retry. ErrTempBulkFailure = errors.New("temporary bulk send failure") )
Functions ¶
Types ¶
type AsyncProtocolClient ¶
type AsyncProtocolClient interface { Connectable AsyncPublishEvents(cb func([]outputs.Data, error), data []outputs.Data) error AsyncPublishEvent(cb func(error), data outputs.Data) error }
AsyncProtocolClient interface is a output plugin specific client implementation for asynchronous encoding and publishing events.
type Connectable ¶
type Connectable interface { // Connect establishes a connection to the clients sink. // The connection attempt shall report an error if no connection could been // established within the given time interval. A timeout value of 0 == wait // forever. Connect(timeout time.Duration) error // Close closes the established connection. Close() error }
type ConnectionMode ¶
type ConnectionMode interface { // Close will stop the modes it's publisher loop and close all it's // associated clients Close() error // PublishEvents will send all events (potentially asynchronous) to its // clients. PublishEvents(sig op.Signaler, opts outputs.Options, data []outputs.Data) error // PublishEvent will send an event to its clients. PublishEvent(sig op.Signaler, opts outputs.Options, data outputs.Data) error }
ConnectionMode takes care of connecting to hosts and potentially doing load balancing and/or failover
type ProtocolClient ¶
type ProtocolClient interface { Connectable // PublishEvents sends events to the clients sink. On failure or timeout err // must be set. // PublishEvents is free to publish only a subset of given events, even in // error case. On return nextEvents contains all events not yet published. PublishEvents(data []outputs.Data) (nextEvents []outputs.Data, err error) // PublishEvent sends one event to the clients sink. On failure and error is // returned. PublishEvent(data outputs.Data) error }
ProtocolClient interface is a output plugin specific client implementation for encoding and publishing events. A ProtocolClient must be able to connection to it's sink and indicate connection failures in order to be reconnected byte the output plugin.
Click to show internal directories.
Click to hide internal directories.