Documentation ¶
Overview ¶
Package output - Defines dispatchers of data for a variety of targets. All output types must implement interface output.Type.
Index ¶
- Variables
- func Descriptions() string
- type AMQP
- type AMQPConfig
- type Config
- type FanOutConfig
- type FileConfig
- type HTTPClient
- type HTTPClientConfig
- type HTTPServer
- type HTTPServerConfig
- type Kafka
- type KafkaConfig
- type NATS
- type NATSConfig
- type NSQ
- type NSQConfig
- type PipelineConstructor
- type RoundRobinConfig
- type ScaleProto
- type ScaleProtoConfig
- type Type
- func New(conf Config, log log.Modular, stats metrics.Type, ...) (Type, error)
- func NewAMQP(conf Config, log log.Modular, stats metrics.Type) (Type, error)
- func NewFanOut(conf Config, log log.Modular, stats metrics.Type) (Type, error)
- func NewFile(conf Config, log log.Modular, stats metrics.Type) (Type, error)
- func NewHTTPClient(conf Config, log log.Modular, stats metrics.Type) (Type, error)
- func NewHTTPServer(conf Config, log log.Modular, stats metrics.Type) (Type, error)
- func NewKafka(conf Config, log log.Modular, stats metrics.Type) (Type, error)
- func NewNATS(conf Config, log log.Modular, stats metrics.Type) (Type, error)
- func NewNSQ(conf Config, log log.Modular, stats metrics.Type) (Type, error)
- func NewRoundRobin(conf Config, log log.Modular, stats metrics.Type) (Type, error)
- func NewSTDOUT(conf Config, log log.Modular, stats metrics.Type) (Type, error)
- func NewScaleProto(conf Config, log log.Modular, stats metrics.Type) (Type, error)
- func WrapWithPipelines(out Type, pipeConstructors ...PipelineConstructor) (Type, error)
- type WithPipeline
- type ZMQ4Config
Constants ¶
This section is empty.
Variables ¶
var ( // ErrFanOutNoOutputs - Returned when creating a FanOut type with zero outputs. ErrFanOutNoOutputs = errors.New("attempting to create fan_out output type with no outputs") )
var ( // ErrRoundRobinNoOutputs - Returned when creating a RoundRobin type with zero outputs. ErrRoundRobinNoOutputs = errors.New("attempting to create round_robin output with no outputs") )
Functions ¶
func Descriptions ¶
func Descriptions() string
Descriptions - Returns a formatted string of collated descriptions of each type.
Types ¶
type AMQP ¶ added in v0.0.2
type AMQP struct {
// contains filtered or unexported fields
}
AMQP - An output type that serves AMQP messages.
func (*AMQP) CloseAsync ¶ added in v0.0.2
func (a *AMQP) CloseAsync()
CloseAsync - Shuts down the AMQP output and stops processing messages.
func (*AMQP) ResponseChan ¶ added in v0.0.2
ResponseChan - Returns the errors channel.
func (*AMQP) StartReceiving ¶ added in v0.0.2
StartReceiving - Assigns a messages channel for the output to read.
type AMQPConfig ¶ added in v0.0.2
type AMQPConfig struct { URI string `json:"uri" yaml:"uri"` Exchange string `json:"exchange" yaml:"exchange"` ExchangeType string `json:"exchange_type" yaml:"exchange_type"` BindingKey string `json:"key" yaml:"key"` }
AMQPConfig - Configuration for the AMQP output type.
func NewAMQPConfig ¶ added in v0.0.2
func NewAMQPConfig() AMQPConfig
NewAMQPConfig - Creates a new AMQPConfig with default values.
type Config ¶
type Config struct { Type string `json:"type" yaml:"type"` HTTPClient HTTPClientConfig `json:"http_client" yaml:"http_client"` HTTPServer HTTPServerConfig `json:"http_server" yaml:"http_server"` ScaleProto ScaleProtoConfig `json:"scalability_protocols" yaml:"scalability_protocols"` Kafka KafkaConfig `json:"kafka" yaml:"kafka"` AMQP AMQPConfig `json:"amqp" yaml:"amqp"` NSQ NSQConfig `json:"nsq" yaml:"nsq"` NATS NATSConfig `json:"nats" yaml:"nats"` ZMQ4 *ZMQ4Config `json:"zmq4,omitempty" yaml:"zmq4,omitempty"` File FileConfig `json:"file" yaml:"file"` STDOUT struct{} `json:"stdout" yaml:"stdout"` FanOut FanOutConfig `json:"fan_out" yaml:"fan_out"` RoundRobin RoundRobinConfig `json:"round_robin" yaml:"round_robin"` Processors []processor.Config `json:"processors" yaml:"processors"` }
Config - The all encompassing configuration struct for all output types. Note that some configs are empty structs, as the type has no optional values but we want to list it as an option.
type FanOutConfig ¶
type FanOutConfig struct {
Outputs []interface{} `json:"outputs" yaml:"outputs"`
}
FanOutConfig - Configuration for the FanOut output type.
func NewFanOutConfig ¶
func NewFanOutConfig() FanOutConfig
NewFanOutConfig - Creates a new FanOutConfig with default values.
type FileConfig ¶
type FileConfig struct {
Path string `json:"path" yaml:"path"`
}
FileConfig - Configuration values for the file based output type.
func NewFileConfig ¶
func NewFileConfig() FileConfig
NewFileConfig - Create a new FileConfig with default values.
type HTTPClient ¶
type HTTPClient struct {
// contains filtered or unexported fields
}
HTTPClient - An output type that pushes messages to HTTPClient.
func (*HTTPClient) CloseAsync ¶
func (h *HTTPClient) CloseAsync()
CloseAsync - Shuts down the HTTPClient output and stops processing messages.
func (*HTTPClient) ResponseChan ¶
func (h *HTTPClient) ResponseChan() <-chan types.Response
ResponseChan - Returns the errors channel.
func (*HTTPClient) StartReceiving ¶
func (h *HTTPClient) StartReceiving(msgs <-chan types.Message) error
StartReceiving - Assigns a messages channel for the output to read.
func (*HTTPClient) WaitForClose ¶
func (h *HTTPClient) WaitForClose(timeout time.Duration) error
WaitForClose - Blocks until the HTTPClient output has closed down.
type HTTPClientConfig ¶
type HTTPClientConfig struct { URL string `json:"url" yaml:"url"` TimeoutMS int64 `json:"timeout_ms" yaml:"timeout_ms"` RetryMS int64 `json:"retry_period_ms" yaml:"retry_period_ms"` NumRetries int `json:"retries" yaml:"retries"` }
HTTPClientConfig - Configuration for the HTTPClient output type.
func NewHTTPClientConfig ¶
func NewHTTPClientConfig() HTTPClientConfig
NewHTTPClientConfig - Creates a new HTTPClientConfig with default values.
type HTTPServer ¶
type HTTPServer struct {
// contains filtered or unexported fields
}
HTTPServer - An input type that serves HTTPServer POST requests.
func (*HTTPServer) CloseAsync ¶
func (h *HTTPServer) CloseAsync()
CloseAsync - Shuts down the HTTPServer input and stops processing requests.
func (*HTTPServer) ResponseChan ¶
func (h *HTTPServer) ResponseChan() <-chan types.Response
ResponseChan - Returns the errors channel.
func (*HTTPServer) StartReceiving ¶
func (h *HTTPServer) StartReceiving(msgs <-chan types.Message) error
StartReceiving - Assigns a messages channel for the output to read.
func (*HTTPServer) WaitForClose ¶
func (h *HTTPServer) WaitForClose(timeout time.Duration) error
WaitForClose - Blocks until the HTTPServer output has closed down.
type HTTPServerConfig ¶
type HTTPServerConfig struct { Address string `json:"address" yaml:"address"` Path string `json:"path" yaml:"path"` ServerTimeoutMS int64 `json:"server_timeout_ms" yaml:"server_timeout_ms"` ClientTimeoutMS int64 `json:"client_timeout_ms" yaml:"client_timeout_ms"` }
HTTPServerConfig - Configuration for the HTTPServer input type.
func NewHTTPServerConfig ¶
func NewHTTPServerConfig() HTTPServerConfig
NewHTTPServerConfig - Creates a new HTTPServerConfig with default values.
type Kafka ¶
type Kafka struct {
// contains filtered or unexported fields
}
Kafka - An output type that writes messages into kafka.
func (*Kafka) CloseAsync ¶
func (k *Kafka) CloseAsync()
CloseAsync - Shuts down the Kafka output and stops processing messages.
func (*Kafka) ResponseChan ¶
ResponseChan - Returns the errors channel.
func (*Kafka) StartReceiving ¶
StartReceiving - Assigns a messages channel for the output to read.
type KafkaConfig ¶
type KafkaConfig struct { Addresses []string `json:"addresses" yaml:"addresses"` ClientID string `json:"client_id" yaml:"client_id"` Topic string `json:"topic" yaml:"topic"` }
KafkaConfig - Configuration for the Kafka output type.
func NewKafkaConfig ¶
func NewKafkaConfig() KafkaConfig
NewKafkaConfig - Creates a new KafkaConfig with default values.
type NATS ¶ added in v0.2.2
type NATS struct {
// contains filtered or unexported fields
}
NATS - An output type that serves NATS messages.
func (*NATS) CloseAsync ¶ added in v0.2.2
func (n *NATS) CloseAsync()
CloseAsync - Shuts down the NATS output and stops processing messages.
func (*NATS) ResponseChan ¶ added in v0.2.2
ResponseChan - Returns the errors channel.
func (*NATS) StartReceiving ¶ added in v0.2.2
StartReceiving - Assigns a messages channel for the output to read.
type NATSConfig ¶ added in v0.2.2
type NATSConfig struct { URL string `json:"url" yaml:"url"` Subject string `json:"subject" yaml:"subject"` }
NATSConfig - Configuration for the NATS output type.
func NewNATSConfig ¶ added in v0.2.2
func NewNATSConfig() NATSConfig
NewNATSConfig - Creates a new NATSConfig with default values.
type NSQ ¶ added in v0.1.1
type NSQ struct {
// contains filtered or unexported fields
}
NSQ - An output type that serves NSQ messages.
func (*NSQ) CloseAsync ¶ added in v0.1.1
func (n *NSQ) CloseAsync()
CloseAsync - Shuts down the NSQ output and stops processing messages.
func (*NSQ) ResponseChan ¶ added in v0.1.1
ResponseChan - Returns the errors channel.
func (*NSQ) StartReceiving ¶ added in v0.1.1
StartReceiving - Assigns a messages channel for the output to read.
type NSQConfig ¶ added in v0.1.1
type NSQConfig struct { Address string `json:"nsqd_tcp_address" yaml:"nsqd_tcp_address"` Topic string `json:"topic" yaml:"topic"` UserAgent string `json:"user_agent" yaml:"user_agent"` MaxInFlight int `json:"max_in_flight" yaml:"max_in_flight"` }
NSQConfig - Configuration for the NSQ output type.
func NewNSQConfig ¶ added in v0.1.1
func NewNSQConfig() NSQConfig
NewNSQConfig - Creates a new NSQConfig with default values.
type PipelineConstructor ¶ added in v0.3.0
PipelineConstructor is a func that constructs a unique pipeline.
type RoundRobinConfig ¶
type RoundRobinConfig struct {
Outputs []interface{} `json:"outputs" yaml:"outputs"`
}
RoundRobinConfig - Configuration for the RoundRobin output type.
func NewRoundRobinConfig ¶
func NewRoundRobinConfig() RoundRobinConfig
NewRoundRobinConfig - Creates a new RoundRobinConfig with default values.
type ScaleProto ¶
type ScaleProto struct {
// contains filtered or unexported fields
}
ScaleProto - An output type that serves ScaleProto messages.
func (*ScaleProto) CloseAsync ¶
func (s *ScaleProto) CloseAsync()
CloseAsync - Shuts down the ScaleProto output and stops processing messages.
func (*ScaleProto) ResponseChan ¶
func (s *ScaleProto) ResponseChan() <-chan types.Response
ResponseChan - Returns the errors channel.
func (*ScaleProto) StartReceiving ¶
func (s *ScaleProto) StartReceiving(msgs <-chan types.Message) error
StartReceiving - Assigns a messages channel for the output to read.
func (*ScaleProto) WaitForClose ¶
func (s *ScaleProto) WaitForClose(timeout time.Duration) error
WaitForClose - Blocks until the ScaleProto output has closed down.
type ScaleProtoConfig ¶
type ScaleProtoConfig struct { Address string `json:"address" yaml:"address"` Bind bool `json:"bind_address" yaml:"bind_address"` SocketType string `json:"socket_type" yaml:"socket_type"` PollTimeoutMS int `json:"poll_timeout_ms" yaml:"poll_timeout_ms"` }
ScaleProtoConfig - Configuration for the ScaleProto output type.
func NewScaleProtoConfig ¶
func NewScaleProtoConfig() ScaleProtoConfig
NewScaleProtoConfig - Creates a new ScaleProtoConfig with default values.
type Type ¶
Type - The standard interface of an output type.
func New ¶ added in v0.0.2
func New( conf Config, log log.Modular, stats metrics.Type, pipelines ...PipelineConstructor, ) (Type, error)
New - Create an input type based on an input configuration.
func NewFanOut ¶
NewFanOut - Create a new FanOut output type. Messages will be sent out to ALL outputs, outputs which block will apply backpressure upstream, meaning other outputs will also stop receiving messages.
func NewHTTPClient ¶
NewHTTPClient - Create a new HTTPClient output type.
func NewHTTPServer ¶
NewHTTPServer - Create a new HTTPServer input type.
func NewRoundRobin ¶
NewRoundRobin - Create a new RoundRobin output type. Messages will be sent out to an output chosen by following their original order. If an output blocks this will block all throughput.
func NewScaleProto ¶
NewScaleProto - Create a new ScaleProto output type.
func WrapWithPipelines ¶ added in v0.3.0
func WrapWithPipelines(out Type, pipeConstructors ...PipelineConstructor) (Type, error)
WrapWithPipelines wraps an output with a variadic number of pipelines.
type WithPipeline ¶ added in v0.3.0
type WithPipeline struct {
// contains filtered or unexported fields
}
WithPipeline is a type that wraps both an output type and a pipeline type by routing the pipeline through the output, and implements the output.Type interface in order to act like an ordinary output.
func WrapWithPipeline ¶ added in v0.3.0
func WrapWithPipeline(out Type, pipeConstructor PipelineConstructor) (*WithPipeline, error)
WrapWithPipeline routes a processing pipeline directly into an output and returns a type that manages both and acts like an ordinary output.
func (*WithPipeline) CloseAsync ¶ added in v0.3.0
func (i *WithPipeline) CloseAsync()
CloseAsync triggers a closure of this object but does not block.
func (*WithPipeline) ResponseChan ¶ added in v0.3.0
func (i *WithPipeline) ResponseChan() <-chan types.Response
ResponseChan returns the channel used for reading response messages from this output.
func (*WithPipeline) StartReceiving ¶ added in v0.3.0
func (i *WithPipeline) StartReceiving(msgChan <-chan types.Message) error
StartReceiving starts the type listening to a message channel from a producer.
func (*WithPipeline) WaitForClose ¶ added in v0.3.0
func (i *WithPipeline) WaitForClose(timeout time.Duration) error
WaitForClose is a blocking call to wait until the object has finished closing down and cleaning up resources.