mirror of
				https://github.com/taigrr/wtf
				synced 2025-01-18 04:03:14 -08:00 
			
		
		
		
	The NewRelic module relies on yfronto/newrelic, which no longer exists. yfronto deleted that directory quite awhile ago, and since then it has been vendored. But vendoring a missing repository creates problems when trying to update the vendored code. This PR brings the yfronto/newrelic code into the mainline. Signed-off-by: Chris Cummer <chriscummer@me.com>
		
			
				
	
	
		
			61 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package newrelic
 | |
| 
 | |
| // AlertEvent describes a triggered event.
 | |
| type AlertEvent struct {
 | |
| 	ID            int    `json:"id,omitempty"`
 | |
| 	EventType     string `json:"event_type,omitempty"`
 | |
| 	Product       string `json:"product,omitempty"`
 | |
| 	EntityType    string `json:"entity_type,omitempty"`
 | |
| 	EntityGroupID int    `json:"entity_group_id,omitempty"`
 | |
| 	EntityID      int    `json:"entity_id,omitempty"`
 | |
| 	Priority      string `json:"priority,omitempty"`
 | |
| 	Description   string `json:"description,omitempty"`
 | |
| 	Timestamp     int64  `json:"timestamp,omitempty"`
 | |
| 	IncidentID    int    `json:"incident_id"`
 | |
| }
 | |
| 
 | |
| // AlertEventFilter provides filters for AlertEventOptions when calling
 | |
| // GetAlertEvents.
 | |
| type AlertEventFilter struct {
 | |
| 	// TODO: New relic restricts these options
 | |
| 	Product       string
 | |
| 	EntityType    string
 | |
| 	EntityGroupID int
 | |
| 	EntityID      int
 | |
| 	EventType     string
 | |
| }
 | |
| 
 | |
| // AlertEventOptions is an optional means of filtering AlertEvents when
 | |
| // calling GetAlertEvents.
 | |
| type AlertEventOptions struct {
 | |
| 	Filter AlertEventFilter
 | |
| 	Page   int
 | |
| }
 | |
| 
 | |
| func (o *AlertEventOptions) String() string {
 | |
| 	if o == nil {
 | |
| 		return ""
 | |
| 	}
 | |
| 	return encodeGetParams(map[string]interface{}{
 | |
| 		"filter[product]":         o.Filter.Product,
 | |
| 		"filter[entity_type]":     o.Filter.EntityType,
 | |
| 		"filter[entity_group_id]": o.Filter.EntityGroupID,
 | |
| 		"filter[entity_id]":       o.Filter.EntityID,
 | |
| 		"filter[event_type]":      o.Filter.EventType,
 | |
| 		"page":                    o.Page,
 | |
| 	})
 | |
| }
 | |
| 
 | |
| // GetAlertEvents will return a slice of recent AlertEvent items triggered,
 | |
| // optionally filtering by AlertEventOptions.
 | |
| func (c *Client) GetAlertEvents(options *AlertEventOptions) ([]AlertEvent, error) {
 | |
| 	resp := &struct {
 | |
| 		RecentEvents []AlertEvent `json:"recent_events,omitempty"`
 | |
| 	}{}
 | |
| 	err := c.doGet("alerts_events.json", options, resp)
 | |
| 	if err != nil {
 | |
| 		return nil, err
 | |
| 	}
 | |
| 	return resp.RecentEvents, nil
 | |
| }
 |