Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Alert ¶
type Alert struct { // ID is a unique UUID string identifying this alert ID string // RuleName is the name of the rule that generated // this alert RuleName string // Method is a set of alert.AlertMethod instances // which that the AlertHAndler will use to send // alerts Methods []Method // Records are the processed response data from an // Elasticsearch query Records []*Record }
Alert represents a unique set of results from an Elasticsearch query that the AlertHandler sends to the specified outputs.
type Field ¶
type Field struct { // Key is a concatenation of any 'key' fields match a filter. // See github.com/morningconsult/go-elasticsearch-alerts/internal/jsonpath.GetAll() // for more information on how this key is created Key string `json:"key" mapstructure:"key"` // Count is the number of fields which match a filter Count int `json:"doc_count" mapstructure:"doc_count"` }
Field represents a summary of the query results that match one of the filters specified in the 'filters' field of a rule configuration file.
type Handler ¶ added in v0.1.55
type Handler struct { // StopCh is used to terminate the Run() loop StopCh chan struct{} // DoneCh is closed when Run() returns. Once closed, // Run() should not be called again DoneCh chan struct{} // contains filtered or unexported fields }
Handler is used to send alerts to various outputs.
func NewHandler ¶ added in v0.1.55
func NewHandler(config *HandlerConfig) *Handler
NewHandler creates a new *Handler instance.
func (*Handler) Run ¶ added in v0.1.55
Run starts the *AlertHandler running. Once started, it waits to receive a new *Alert from outputCh. When it receives the alert, it will attempt to send the alert with the AlertMethods included in the alert. If it fails, it will backoff for a few seconds before trying to send the alert twice more. If it fails all three attempts, it will quit trying to send the alert. Run will return if ctx.Done() or StopCh becomes unblocked. Before returning, it will close the DoneCh. Once DoneCh is closed, Run should not be called again.
type HandlerConfig ¶ added in v0.1.55
HandlerConfig is used to provide the logger with which the alert handlers will log messages.
type Record ¶
type Record struct { // Filter is the filter (either one of the elements of // the 'filter' array field or the 'body_field' field // of a rule configuration file) on which the results // of an Elasticsearch query is grouped Filter string `json:"filter,omitempty"` // Text is any text to be included with this record. // This will generally only be non-empty if the Filter // is the body field (e.g. 'hits.hits._source'). It is // generally just the JSON objects stringified and // concatenated Text string `json:"text,omitempty"` // BodyField is whether this record used the 'body_field' // index (per the rule configuration file) to group the // Elasticsearch response JSON BodyField bool `json:"-"` // Fields is the collection of elements of the // Elasticsearch response JSON that match the filter. // This will be non-empty only when the Filter is not // the body field Fields []*Field `json:"fields,omitempty"` }
Record is used to send the results of an Elasticsearch query to the *alert.AlertHandler.