Documentation ¶
Index ¶
- Variables
- type Client
- type ClientOption
- type Context
- type Publisher
- func (publisher *Publisher) Connect() Client
- func (publisher *Publisher) GetServerName(ip string) string
- func (publisher *Publisher) IsPublisherIP(ip string) bool
- func (publisher *Publisher) PublishTopology(params ...string) error
- func (publisher *Publisher) RegisterFilter(filters *filter.Filters) error
- func (publisher *Publisher) Stop()
- func (publisher *Publisher) UpdateTopologyPeriodically()
- type ShipperConfig
- type Topology
- type TransactionalEventPublisher
Constants ¶
This section is empty.
Variables ¶
var (
ErrClientClosed = errors.New("client closed")
)
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client interface { // Close disconnects the Client from the publisher pipeline. Close() error // PublishEvent publishes one event with given options. If Sync option is set, // PublishEvent will block until output plugins report success or failure state // being returned by this method. PublishEvent(event common.MapStr, opts ...ClientOption) bool // PublishEvents publishes multiple events with given options. If Guaranteed // option is set, PublishEvent will block until output plugins report // success or failure state being returned by this method. PublishEvents(events []common.MapStr, opts ...ClientOption) bool }
Client is used by beats to publish new events.
The publish methods add fields that are common to all events. Both methods add the 'beat' field that contains name and hostname. Also they add 'tags' and 'fields'.
Event publishers can override the default index for an event by adding a 'beat' field whose value is a common.MapStr that contains an 'index' field specifying the destination index.
event := common.MapStr{ // Setting a custom index for a single event. "beat": common.MapStr{"index": "custom-index"}, }
Event publishers can add fields and tags to an event. The fields will take precedence over the global fields defined in the shipper configuration.
event := common.MapStr{ // Add custom fields to the root of the event. common.EventMetadataKey: common.EventMetadata{ UnderRoot: true, Fields: common.MapStr{"env": "production"} } }
type ClientOption ¶
ClientOption allows API users to set additional options when publishing events.
func Signal ¶
func Signal(signaler op.Signaler) ClientOption
type Context ¶
func Guaranteed ¶
Guaranteed option will retry publishing the event, until send attempt have been ACKed by output plugin.
func MakeContext ¶
func MakeContext(opts []ClientOption) Context
type Publisher ¶
type Publisher struct { IpAddrs []string Index string Output []*outputWorker TopologyOutput outputs.TopologyOutputer IgnoreOutgoing bool GeoLite *libgeo.GeoIP Filters *filter.Filters RefreshTopologyTimer <-chan time.Time // contains filtered or unexported fields }
func New ¶
func New( beatName string, configs map[string]*common.Config, shipper ShipperConfig, ) (*Publisher, error)
Create new PublisherType
func (*Publisher) GetServerName ¶
func (*Publisher) IsPublisherIP ¶
func (*Publisher) PublishTopology ¶
func (*Publisher) RegisterFilter ¶
func (*Publisher) UpdateTopologyPeriodically ¶
func (publisher *Publisher) UpdateTopologyPeriodically()
type ShipperConfig ¶
type ShipperConfig struct { common.EventMetadata `config:",inline"` // Fields and tags to add to each event. Name string `config:"name"` RefreshTopologyFreq time.Duration `config:"refresh_topology_freq"` Ignore_outgoing bool `config:"ignore_outgoing"` Topology_expire int `config:"topology_expire"` Geoip common.Geoip `config:"geoip"` // internal publisher queue sizes QueueSize *int `config:"queue_size"` BulkQueueSize *int `config:"bulk_queue_size"` MaxProcs *int `config:"max_procs"` }