Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ExponentialDuration

func ExponentialDuration(attempt int) time.Duration

ExponentialDuration returns a duration that grows exponentially with each attempt. It is maxed out at 15 seconds.

func NewVisitor

func NewVisitor(w Writer, metrics metrics, log *log.Logger) logcache.Visitor

Types

type DialFunc

type DialFunc func(addr string) (net.Conn, error)

DialFunc represents a method for creating a connection, either TCP or TLS.

type HTTPSWriter

type HTTPSWriter struct {
	// contains filtered or unexported fields
}

func (*HTTPSWriter) Close

func (*HTTPSWriter) Close() error

func (*HTTPSWriter) Write

func (w *HTTPSWriter) Write(env *loggregator_v2.Envelope) error

type LogClient

type LogClient interface {
	EmitLog(message string, opts ...loggregator.EmitLogOption)
}

type NetworkConfig

type NetworkConfig struct {
	Keepalive      time.Duration
	DialTimeout    time.Duration
	WriteTimeout   time.Duration
	SkipCertVerify bool
}

NetworkTimeoutConfig stores various timeout values.

type RetryDuration

type RetryDuration func(attempt int) time.Duration

RetryDuration calculates a duration based on the number of write attempts.

type RetryWriter

type RetryWriter struct {
	// contains filtered or unexported fields
}

RetryWriter wraps a WriteCloser and will retry writes if the first fails.

func (*RetryWriter) Close

func (r *RetryWriter) Close() error

Close delegates to the syslog writer.

func (*RetryWriter) Write

Write will retry writes unitl maxRetries has been reached.

type TCPWriter

type TCPWriter struct {
	// contains filtered or unexported fields
}

TCPWriter represents a syslog writer that connects over unencrypted TCP. This writer is not meant to be used from multiple goroutines. The same goroutine that calls `.Write()` should be the one that calls `.Close()`.

func (*TCPWriter) Close

func (w *TCPWriter) Close() error

Close tears down any active connections to the drain and prevents reconnect.

func (*TCPWriter) Write

func (w *TCPWriter) Write(env *loggregator_v2.Envelope) error

Write writes an envelope to the syslog drain connection.

type TLSWriter

type TLSWriter struct {
	TCPWriter
}

TLSWriter represents a syslog writer that connects over unencrypted TCP.

type URLBinding

type URLBinding struct {
	Context  context.Context
	Hostname string
	URL      *url.URL
}

application is identified by AppID and Hostname. The syslog URL is identified by URL.

func (*URLBinding) Scheme

func (u *URLBinding) Scheme() string

Scheme is a convenience wrapper around the *url.URL Scheme field

type WriteCloser

type WriteCloser interface {
	Writer
	io.Closer
}

WriteCloser is the interface for all syslog writers.

func NewHTTPSWriter

func NewHTTPSWriter(
	binding *URLBinding,
	netConf NetworkConfig,
) WriteCloser

func NewTCPWriter

func NewTCPWriter(
	binding *URLBinding,
	netConf NetworkConfig,
) WriteCloser

NewTCPWriter creates a new TCP syslog writer.

func NewTLSWriter

func NewTLSWriter(
	binding *URLBinding,
	netConf NetworkConfig,
) WriteCloser

func NewWriter

func NewWriter(sourceHost string, url *url.URL, netConf NetworkConfig, log *log.Logger) WriteCloser

type Writer

type Writer interface {
	Write(*loggregator_v2.Envelope) error
}

Write is the interface for all diode writers.

type WriterConstructor

type WriterConstructor func(
	binding *URLBinding,
	netConf NetworkConfig,
) WriteCloser

func RetryWrapper

func RetryWrapper(
	wc WriterConstructor,
	r RetryDuration,
	maxRetries int,
	logClient LogClient,
	sourceIndex string,
) WriterConstructor

RetryWrapper wraps a WriterConstructer, allowing it to retry writes.

Directories

Path Synopsis