| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- package statsd
- import (
- "fmt"
- "time"
- )
- // Events support
- // EventAlertType and EventAlertPriority became exported types after this issue was submitted: https://github.com/DataDog/datadog-go/issues/41
- // The reason why they got exported is so that client code can directly use the types.
- // EventAlertType is the alert type for events
- type EventAlertType string
- const (
- // Info is the "info" AlertType for events
- Info EventAlertType = "info"
- // Error is the "error" AlertType for events
- Error EventAlertType = "error"
- // Warning is the "warning" AlertType for events
- Warning EventAlertType = "warning"
- // Success is the "success" AlertType for events
- Success EventAlertType = "success"
- )
- // EventPriority is the event priority for events
- type EventPriority string
- const (
- // Normal is the "normal" Priority for events
- Normal EventPriority = "normal"
- // Low is the "low" Priority for events
- Low EventPriority = "low"
- )
- // An Event is an object that can be posted to your DataDog event stream.
- type Event struct {
- // Title of the event. Required.
- Title string
- // Text is the description of the event. Required.
- Text string
- // Timestamp is a timestamp for the event. If not provided, the dogstatsd
- // server will set this to the current time.
- Timestamp time.Time
- // Hostname for the event.
- Hostname string
- // AggregationKey groups this event with others of the same key.
- AggregationKey string
- // Priority of the event. Can be statsd.Low or statsd.Normal.
- Priority EventPriority
- // SourceTypeName is a source type for the event.
- SourceTypeName string
- // AlertType can be statsd.Info, statsd.Error, statsd.Warning, or statsd.Success.
- // If absent, the default value applied by the dogstatsd server is Info.
- AlertType EventAlertType
- // Tags for the event.
- Tags []string
- }
- // NewEvent creates a new event with the given title and text. Error checking
- // against these values is done at send-time, or upon running e.Check.
- func NewEvent(title, text string) *Event {
- return &Event{
- Title: title,
- Text: text,
- }
- }
- // Check verifies that an event is valid.
- func (e Event) Check() error {
- if len(e.Title) == 0 {
- return fmt.Errorf("statsd.Event title is required")
- }
- if len(e.Text) == 0 {
- return fmt.Errorf("statsd.Event text is required")
- }
- return nil
- }
- // Encode returns the dogstatsd wire protocol representation for an event.
- // Tags may be passed which will be added to the encoded output but not to
- // the Event's list of tags, eg. for default tags.
- func (e Event) Encode(tags ...string) (string, error) {
- err := e.Check()
- if err != nil {
- return "", err
- }
- var buffer []byte
- buffer = appendEvent(buffer, e, tags)
- return string(buffer), nil
- }
|