mode

package
v0.0.0-...-bc1b659 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 9, 2016 License: Apache-2.0 Imports: 6 Imported by: 0

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

func Dropped

func Dropped(i int)

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.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL