mirror of
https://github.com/taigrr/wtf
synced 2025-01-18 04:03:14 -08:00
* Upgrade godo to latest * Fix a bunch of issues found by * Running staticcheck on a codebase for the first time is a sobering experience * go mod tidy * More static improvements Signed-off-by: Chris Cummer <chriscummer@me.com>
60 lines
2.0 KiB
Go
60 lines
2.0 KiB
Go
package newrelic
|
|
|
|
// AlertCondition describes what triggers an alert for a specific policy.
|
|
type AlertCondition struct {
|
|
Enabled bool `json:"enabled,omitempty"`
|
|
Entities []string `json:"entities,omitempty"`
|
|
ID int `json:"id,omitempty"`
|
|
Metric string `json:"metric,omitempty"`
|
|
Name string `json:"name,omitempty"`
|
|
RunbookURL string `json:"runbook_url,omitempty"`
|
|
Terms []AlertConditionTerm `json:"terms,omitempty"`
|
|
Type string `json:"type,omitempty"`
|
|
UserDefined AlertUserDefined `json:"user_defined,omitempty"`
|
|
}
|
|
|
|
// AlertConditionTerm defines thresholds that trigger an AlertCondition.
|
|
type AlertConditionTerm struct {
|
|
Duration string `json:"duration,omitempty"`
|
|
Operator string `json:"operator,omitempty"`
|
|
Priority string `json:"priority,omitempty"`
|
|
Threshold string `json:"threshold,omitempty"`
|
|
TimeFunction string `json:"time_function,omitempty"`
|
|
}
|
|
|
|
// AlertUserDefined describes user-defined behavior for an AlertCondition.
|
|
type AlertUserDefined struct {
|
|
Metric string `json:"metric,omitempty"`
|
|
ValueFunction string `json:"value_function,omitempty"`
|
|
}
|
|
|
|
// AlertConditionOptions define filters for GetAlertConditions.
|
|
type AlertConditionOptions struct {
|
|
policyID int
|
|
Page int
|
|
}
|
|
|
|
func (o *AlertConditionOptions) String() string {
|
|
if o == nil {
|
|
return ""
|
|
}
|
|
return encodeGetParams(map[string]interface{}{
|
|
"policy_id": o.policyID,
|
|
"page": o.Page,
|
|
})
|
|
}
|
|
|
|
// GetAlertConditions will return any AlertCondition defined for a given
|
|
// policy, optionally filtered by AlertConditionOptions.
|
|
func (c *Client) GetAlertConditions(policy int, options *AlertConditionOptions) ([]AlertCondition, error) {
|
|
resp := &struct {
|
|
Conditions []AlertCondition `json:"conditions,omitempty"`
|
|
}{}
|
|
options.policyID = policy
|
|
err := c.doGet("alerts_conditions.json", options, resp)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return resp.Conditions, nil
|
|
}
|