Documentation ¶
Index ¶
- func MakePath(index string, doc_type string, id string) (string, error)
- func UrlEncode(params map[string]string) string
- type Connection
- type ConnectionPool
- func (pool *ConnectionPool) GetConnection() *Connection
- func (pool *ConnectionPool) MarkDead(conn *Connection) error
- func (pool *ConnectionPool) MarkLive(conn *Connection) error
- func (pool *ConnectionPool) SelectRoundRobin() *Connection
- func (pool *ConnectionPool) SetConnections(urls []string, username string, password string) error
- func (pool *ConnectionPool) SetDeadTimeout(timeout int)
- type Elasticsearch
- func (es *Elasticsearch) Bulk(index string, doc_type string, params map[string]string, body chan interface{}) (*QueryResult, error)
- func (es *Elasticsearch) BulkRequest(method string, path string, params map[string]string, body chan interface{}) ([]byte, error)
- func (es *Elasticsearch) CreateIndex(index string) (*QueryResult, error)
- func (es *Elasticsearch) Delete(index string, doc_type string, id string, params map[string]string) (*QueryResult, error)
- func (es *Elasticsearch) Index(index string, doc_type string, id string, params map[string]string, ...) (*QueryResult, error)
- func (es *Elasticsearch) PerformRequest(conn *Connection, req *http.Request) ([]byte, bool, error)
- func (es *Elasticsearch) Refresh(index string) (*QueryResult, error)
- func (es *Elasticsearch) Request(method string, path string, params map[string]string, body interface{}) ([]byte, error)
- func (es *Elasticsearch) SearchUri(index string, doc_type string, params map[string]string) (*SearchResults, error)
- func (es *Elasticsearch) SetMaxRetries(max_retries int)
- type ElasticsearchOutput
- func (out *ElasticsearchOutput) EnableTTL() error
- func (out *ElasticsearchOutput) GetNameByIP(ip string) string
- func (out *ElasticsearchOutput) Init(config outputs.MothershipConfig, topology_expire int) error
- func (out *ElasticsearchOutput) InsertBulkMessage(bulkChannel chan interface{})
- func (out *ElasticsearchOutput) PublishEvent(ts time.Time, event common.MapStr) error
- func (out *ElasticsearchOutput) PublishIPs(name string, localAddrs []string) error
- func (out *ElasticsearchOutput) SendMessagesGoroutine()
- func (out *ElasticsearchOutput) UpdateLocalTopologyMap()
- type EventMsg
- type Hits
- type PublishedTopology
- type QueryResult
- type SearchResults
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Connection ¶
type ConnectionPool ¶
type ConnectionPool struct { Connections []*Connection // options Dead_timeout time.Duration // contains filtered or unexported fields }
func (*ConnectionPool) GetConnection ¶
func (pool *ConnectionPool) GetConnection() *Connection
func (*ConnectionPool) MarkDead ¶
func (pool *ConnectionPool) MarkDead(conn *Connection) error
If a connection fails, it will be marked as dead and put on timeout. timeout = default_timeout * 2 ** (fail_count - 1) When the timeout is over, the connection will be resurrected and returned to the live pool
func (*ConnectionPool) MarkLive ¶
func (pool *ConnectionPool) MarkLive(conn *Connection) error
A connection that has been previously marked as dead and succeeds will be marked as live and the dead_count is set to zero
func (*ConnectionPool) SelectRoundRobin ¶
func (pool *ConnectionPool) SelectRoundRobin() *Connection
func (*ConnectionPool) SetConnections ¶
func (pool *ConnectionPool) SetConnections(urls []string, username string, password string) error
func (*ConnectionPool) SetDeadTimeout ¶
func (pool *ConnectionPool) SetDeadTimeout(timeout int)
type Elasticsearch ¶
type Elasticsearch struct { MaxRetries int // contains filtered or unexported fields }
func NewElasticsearch ¶
func NewElasticsearch(urls []string, username string, password string) *Elasticsearch
Create a connection to Elasticsearch
func (*Elasticsearch) Bulk ¶
func (es *Elasticsearch) Bulk(index string, doc_type string, params map[string]string, body chan interface{}) (*QueryResult, error)
Perform many index/delete operations in a single API call. Implements: http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html
func (*Elasticsearch) BulkRequest ¶
func (es *Elasticsearch) BulkRequest(method string, path string, params map[string]string, body chan interface{}) ([]byte, error)
Create a HTTP request containing a bunch of operations and send them to Elasticsearch. The request is retransmitted up to max_retries before returning an error.
func (*Elasticsearch) CreateIndex ¶
func (es *Elasticsearch) CreateIndex(index string) (*QueryResult, error)
Adds a typed JSON document in a specific index, making it searchable. Implements: <http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-index_.html>
func (*Elasticsearch) Delete ¶
func (es *Elasticsearch) Delete(index string, doc_type string, id string, params map[string]string) (*QueryResult, error)
Deletes a typed JSON document from a specific index based on its id. Implements: http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete.html
func (*Elasticsearch) Index ¶
func (es *Elasticsearch) Index(index string, doc_type string, id string, params map[string]string, body interface{}) (*QueryResult, error)
Index adds or updates a typed JSON document in a specified index, making it searchable. In case id is empty, a new id is created over a HTTP POST request. Otherwise, a HTTP PUT request is issued. Implements: http://www.elastic.co/guide/en/elasticsearch/reference/current/docs-index_.html
func (*Elasticsearch) PerformRequest ¶
func (es *Elasticsearch) PerformRequest(conn *Connection, req *http.Request) ([]byte, bool, error)
Perform the actual request. If the operation was successful, mark it as live and return the response. If it fails, mark it as dead for a period of time. It returns the response, if it should retry sending the request and the error
func (*Elasticsearch) Refresh ¶
func (es *Elasticsearch) Refresh(index string) (*QueryResult, error)
Refresh an index. Call this after doing inserts or creating/deleting indexes in unit tests.
func (*Elasticsearch) Request ¶
func (es *Elasticsearch) Request(method string, path string, params map[string]string, body interface{}) ([]byte, error)
Create an HTTP request and send it to Elasticsearch. The request is retransmitted max_retries before returning an error.
func (*Elasticsearch) SearchUri ¶
func (es *Elasticsearch) SearchUri(index string, doc_type string, params map[string]string) (*SearchResults, error)
A search request can be executed purely using a URI by providing request parameters. Implements: http://www.elastic.co/guide/en/elasticsearch/reference/current/search-uri-request.html
func (*Elasticsearch) SetMaxRetries ¶
func (es *Elasticsearch) SetMaxRetries(max_retries int)
type ElasticsearchOutput ¶
type ElasticsearchOutput struct { Index string TopologyExpire int Conn *Elasticsearch FlushInterval time.Duration BulkMaxSize int TopologyMap map[string]string // contains filtered or unexported fields }
func (*ElasticsearchOutput) EnableTTL ¶
func (out *ElasticsearchOutput) EnableTTL() error
Enable using ttl as paramters in a server-ip doc type
func (*ElasticsearchOutput) GetNameByIP ¶
func (out *ElasticsearchOutput) GetNameByIP(ip string) string
Get the name of a shipper by its IP address from the local topology map
func (*ElasticsearchOutput) Init ¶
func (out *ElasticsearchOutput) Init(config outputs.MothershipConfig, topology_expire int) error
Initialize Elasticsearch as output
func (*ElasticsearchOutput) InsertBulkMessage ¶
func (out *ElasticsearchOutput) InsertBulkMessage(bulkChannel chan interface{})
Insert a list of events in the bulkChannel
func (*ElasticsearchOutput) PublishEvent ¶
Publish an event by adding it to the queue of events.
func (*ElasticsearchOutput) PublishIPs ¶
func (out *ElasticsearchOutput) PublishIPs(name string, localAddrs []string) error
Each shipper publishes a list of IPs together with its name to Elasticsearch
func (*ElasticsearchOutput) SendMessagesGoroutine ¶
func (out *ElasticsearchOutput) SendMessagesGoroutine()
Goroutine that sends one or multiple events to Elasticsearch. If the flush_interval > 0, then the events are sent in batches. Otherwise, one by one.
func (*ElasticsearchOutput) UpdateLocalTopologyMap ¶
func (out *ElasticsearchOutput) UpdateLocalTopologyMap()
Update the local topology map
type Hits ¶
type Hits struct { Total int Hits []json.RawMessage `json:"hits"` }
type PublishedTopology ¶
type QueryResult ¶
type QueryResult struct { Ok bool `json:"ok"` Index string `json:"_index"` Type string `json:"_type"` Id string `json:"_id"` Source json.RawMessage `json:"_source"` Version int `json:"_version"` Found bool `json:"found"` Exists bool `json:"exists"` Created bool `json:"created"` Matches []string `json:"matches"` }
func ReadQueryResult ¶
func ReadQueryResult(obj []byte) (*QueryResult, error)
func (QueryResult) String ¶
func (r QueryResult) String() string
type SearchResults ¶
type SearchResults struct { Took int `json:"took"` Shards json.RawMessage `json:"_shards"` Hits Hits `json:"hits"` Aggs map[string]json.RawMessage `json:"aggregations"` }
func ReadSearchResult ¶
func ReadSearchResult(obj []byte) (*SearchResults, error)