Documentation ¶
Overview ¶
Grafana Alerting API.
Package definitions includes the types required for generating or consuming an OpenAPI spec for the Grafana Alerting API.
Schemes: http, https BasePath: /api/v1 Version: 1.1.0 Consumes: - application/json Produces: - application/json Security: - basic SecurityDefinitions: basic: type: basic
swagger:meta
Index ¶
- Constants
- func AllReceivers(route *config.Route) (res []string)
- type Ack
- type Alert
- type AlertDiscovery
- type AlertGroup
- type AlertGroups
- type AlertInstancesResponse
- type AlertManagerNotReady
- type AlertQuery
- type AlertQueryExport
- type AlertResponse
- type AlertRuleExport
- type AlertRuleGroup
- type AlertRuleGroupExport
- type AlertRuleGroupMetadata
- type AlertRuleGroupPayload
- type AlertRuleHeaders
- type AlertRulePayload
- type AlertRuleUIDReference
- type AlertingFileExport
- type AlertingRule
- type AlertingStatus
- type AlertmanagersChoice
- type AlertsParams
- type ApiRuleNode
- type Backend
- type BacktestConfig
- type BacktestConfigRequest
- type BacktestResult
- type BodyAlertingConfig
- type Config
- type ContactPointParams
- type ContactPointPayload
- type ContactPointUIDReference
- type ContactPoints
- type CreateSilenceParams
- type DatasourceUIDReference
- type DiscoveryBase
- type Duration
- type EmbeddedContactPoint
- type EncryptFn
- type EvalAlertConditionCommand
- type EvalQueriesPayload
- type EvalQueriesRequest
- type EvalQueriesResponse
- type ExecutionErrorState
- type ExportQueryParams
- type ExtendedReceiver
- type Failure
- type FolderUIDPathParam
- type GetDeleteSilenceParams
- type GetGrafanaAlertStatusesParams
- type GetGrafanaRuleStatusesParams
- type GetSilencesParams
- type GettableAlert
- type GettableAlertmanagers
- type GettableAlerts
- type GettableApiAlertingConfig
- type GettableApiReceiver
- type GettableExtendedRuleNode
- type GettableGrafanaReceiver
- type GettableGrafanaReceivers
- type GettableGrafanaRule
- type GettableHistoricUserConfig
- type GettableHistoricUserConfigs
- type GettableNGalertConfig
- type GettableRuleGroupConfig
- type GettableSilence
- type GettableSilences
- type GettableStatus
- type GettableUserConfig
- type Integration
- type MultiStatus
- type MuteTimeInterval
- type MuteTimingPayload
- type MuteTimings
- type NGalertConfig
- type NamespaceConfig
- type NamespaceConfigResponse
- type NoDataState
- type NotFound
- type NotificationTemplate
- type NotificationTemplateContent
- type NotificationTemplatePayload
- type NotificationTemplates
- type ObjectMatchers
- type PathGetRulesParams
- type PathNamespaceConfig
- type PathRouleGroupConfig
- type PermissionDenied
- type Policytree
- type PostSilencesOKBody
- type PostableAlerts
- type PostableApiAlertingConfig
- type PostableApiReceiver
- type PostableExtendedRuleNode
- type PostableGrafanaReceiver
- type PostableGrafanaReceivers
- type PostableGrafanaRule
- type PostableNGalertConfig
- type PostableRuleGroupConfig
- type PostableSilence
- type PostableUserConfig
- func (c *PostableUserConfig) GetGrafanaReceiverMap() map[string]*PostableGrafanaReceiver
- func (c *PostableUserConfig) MarshalYAML() (interface{}, error)
- func (c *PostableUserConfig) ProcessConfig(encrypt EncryptFn) error
- func (c *PostableUserConfig) UnmarshalJSON(b []byte) error
- func (c *PostableUserConfig) UnmarshalYAML(value *yaml.Node) error
- type Provenance
- type ProvisionedAlertRule
- type ProvisionedAlertRules
- type RawMessage
- type Receiver
- type ReceiverType
- type ReceiversResponse
- type RelativeTimeRange
- type ResponseDetails
- type Route
- func (r *Route) AsAMRoute() *config.Route
- func (r *Route) ResourceID() string
- func (r *Route) ResourceType() string
- func (r *Route) UnmarshalYAML(unmarshal func(interface{}) error) error
- func (r *Route) Validate() error
- func (r *Route) ValidateMuteTimes(muteTimes map[string]struct{}) error
- func (r *Route) ValidateReceivers(receivers map[string]struct{}) error
- type RouteGetGrafanaAlertingConfigHistoryParams
- type RouteGetMuteTimingParam
- type RouteGetTemplateParam
- type Rule
- type RuleDiscovery
- type RuleGroup
- type RuleGroupConfigResponse
- type RuleGroupPathParam
- type RuleResponse
- type RuleType
- type SmtpNotEnabled
- type StateHistory
- type Success
- type TestReceiverConfigResult
- type TestReceiverRequest
- type TestReceiverResult
- type TestReceiversConfigAlertParams
- type TestReceiversConfigBodyParams
- type TestReceiversConfigParams
- type TestReceiversResult
- type TestRulePayload
- type TestRuleRequest
- type TestRuleResponse
- type ValidationError
Constants ¶
const RedactedValue = "[REDACTED]"
Variables ¶
This section is empty.
Functions ¶
func AllReceivers ¶
AllReceivers will recursively walk a routing tree and return a list of all the referenced receiver names.
Types ¶
type Alert ¶
type Alert struct { // required: true Labels overrideLabels `json:"labels"` // required: true Annotations overrideLabels `json:"annotations"` // required: true State string `json:"state"` ActiveAt *time.Time `json:"activeAt"` // required: true Value string `json:"value"` }
Alert has info for an alert. swagger:model
type AlertDiscovery ¶
type AlertDiscovery struct { // required: true Alerts []*Alert `json:"alerts"` }
AlertDiscovery has info for all active alerts. swagger:model
type AlertInstancesResponse ¶
type AlertInstancesResponse struct { // Instances is an array of arrow encoded dataframes // each frame has a single row, and a column for each instance (alert identified by unique labels) with a boolean value (firing/not firing) Instances [][]byte `json:"instances"` }
swagger:model
type AlertQuery ¶
type AlertQuery struct { // RefID is the unique identifier of the query, set by the frontend call. RefID string `json:"refId"` // QueryType is an optional identifier for the type of query. // It can be used to distinguish different types of queries. QueryType string `json:"queryType"` // RelativeTimeRange is the relative Start and End of the query as sent by the frontend. RelativeTimeRange RelativeTimeRange `json:"relativeTimeRange"` // Grafana data source unique identifier; it should be '__expr__' for a Server Side Expression operation. DatasourceUID string `json:"datasourceUid"` // JSON is the raw JSON query and includes the above properties as well as custom properties. Model json.RawMessage `json:"model"` }
AlertQuery represents a single query associated with an alert definition.
type AlertQueryExport ¶
type AlertQueryExport struct { RefID string `json:"refId" yaml:"refId"` QueryType string `json:"queryType,omitempty" yaml:"queryType,omitempty"` RelativeTimeRange RelativeTimeRange `json:"relativeTimeRange,omitempty" yaml:"relativeTimeRange,omitempty"` DatasourceUID string `json:"datasourceUid" yaml:"datasourceUid"` Model map[string]interface{} `json:"model" yaml:"model"` }
AlertQueryExport is the provisioned export of models.AlertQuery.
type AlertResponse ¶
type AlertResponse struct { // in: body DiscoveryBase // in: body Data AlertDiscovery `json:"data"` }
swagger:model
type AlertRuleExport ¶
type AlertRuleExport struct { UID string `json:"uid" yaml:"uid"` Title string `json:"title" yaml:"title"` Condition string `json:"condition" yaml:"condition"` Data []AlertQueryExport `json:"data" yaml:"data"` DashboardUID string `json:"dasboardUid,omitempty" yaml:"dashboardUid,omitempty"` PanelID int64 `json:"panelId,omitempty" yaml:"panelId,omitempty"` NoDataState NoDataState `json:"noDataState" yaml:"noDataState"` ExecErrState ExecutionErrorState `json:"execErrState" yaml:"execErrState"` For model.Duration `json:"for" yaml:"for"` Annotations map[string]string `json:"annotations,omitempty" yaml:"annotations,omitempty"` Labels map[string]string `json:"labels,omitempty" yaml:"labels,omitempty"` IsPaused bool `json:"isPaused" yaml:"isPaused"` }
AlertRuleExport is the provisioned file export of models.AlertRule.
type AlertRuleGroup ¶
type AlertRuleGroup struct { Title string `json:"title"` FolderUID string `json:"folderUid"` Interval int64 `json:"interval"` Rules []ProvisionedAlertRule `json:"rules"` }
swagger:model
type AlertRuleGroupExport ¶
type AlertRuleGroupExport struct { OrgID int64 `json:"orgId" yaml:"orgId"` Name string `json:"name" yaml:"name"` Folder string `json:"folder" yaml:"folder"` Interval model.Duration `json:"interval" yaml:"interval"` Rules []AlertRuleExport `json:"rules" yaml:"rules"` }
AlertRuleGroupExport is the provisioned file export of AlertRuleGroupV1.
type AlertRuleGroupMetadata ¶
type AlertRuleGroupMetadata struct {
Interval int64 `json:"interval"`
}
swagger:model
type AlertRuleGroupPayload ¶
type AlertRuleGroupPayload struct { // in:body Body AlertRuleGroup }
swagger:parameters RoutePutAlertRuleGroup
type AlertRuleHeaders ¶
type AlertRuleHeaders struct { // in:header XDisableProvenance string `json:"X-Disable-Provenance"` }
swagger:parameters RoutePostAlertRule RoutePutAlertRule
type AlertRulePayload ¶
type AlertRulePayload struct { // in:body Body ProvisionedAlertRule }
swagger:parameters RoutePostAlertRule RoutePutAlertRule
type AlertRuleUIDReference ¶
type AlertRuleUIDReference struct { // Alert rule UID // in:path UID string }
swagger:parameters RouteGetAlertRule RoutePutAlertRule RouteDeleteAlertRule RouteGetAlertRuleExport
type AlertingFileExport ¶
type AlertingFileExport struct { APIVersion int64 `json:"apiVersion" yaml:"apiVersion"` Groups []AlertRuleGroupExport `json:"groups" yaml:"groups"` }
AlertingFileExport is the full provisioned file export. swagger:model
type AlertingRule ¶
type AlertingRule struct { // State can be "pending", "firing", "inactive". // required: true State string `json:"state,omitempty"` // required: true Name string `json:"name,omitempty"` // required: true Query string `json:"query,omitempty"` Duration float64 `json:"duration,omitempty"` // required: true Annotations overrideLabels `json:"annotations,omitempty"` // required: true Alerts []*Alert `json:"alerts,omitempty"` Rule }
adapted from cortex swagger:model
type AlertingStatus ¶
type AlertingStatus struct { AlertmanagersChoice AlertmanagersChoice `json:"alertmanagersChoice"` NumExternalAlertmanagers int `json:"numExternalAlertmanagers"` }
swagger:model
type AlertmanagersChoice ¶
type AlertmanagersChoice string
swagger:enum AlertmanagersChoice
const ( AllAlertmanagers AlertmanagersChoice = "all" InternalAlertmanager AlertmanagersChoice = "internal" ExternalAlertmanagers AlertmanagersChoice = "external" HandleGrafanaManagedAlerts = "handleGrafanaManagedAlerts" )
type AlertsParams ¶
type AlertsParams struct { // Show active alerts // in: query // required: false // default: true Active bool `json:"active"` // Show silenced alerts // in: query // required: false // default: true Silenced bool `json:"silenced"` // Show inhibited alerts // in: query // required: false // default: true Inhibited bool `json:"inhibited"` // A list of matchers to filter alerts by // in: query // required: false Matchers []string `json:"filter"` // A regex matching receivers to filter alerts by // in: query // required: false Receivers string `json:"receiver"` }
swagger:parameters RouteGetAMAlerts RouteGetAMAlertGroups RouteGetGrafanaAMAlerts RouteGetGrafanaAMAlertGroups
type ApiRuleNode ¶
type ApiRuleNode struct { Record string `yaml:"record,omitempty" json:"record,omitempty"` Alert string `yaml:"alert,omitempty" json:"alert,omitempty"` Expr string `yaml:"expr" json:"expr"` For *model.Duration `yaml:"for,omitempty" json:"for,omitempty"` Labels map[string]string `yaml:"labels,omitempty" json:"labels,omitempty"` Annotations map[string]string `yaml:"annotations,omitempty" json:"annotations,omitempty"` }
type BacktestConfig ¶
type BacktestConfig struct { From time.Time `json:"from"` To time.Time `json:"to"` Interval model.Duration `json:"interval,omitempty"` Condition string `json:"condition"` Data []AlertQuery `json:"data"` For model.Duration `json:"for,omitempty"` Title string `json:"title"` Labels map[string]string `json:"labels,omitempty"` Annotations map[string]string `json:"annotations,omitempty"` NoDataState NoDataState `json:"no_data_state"` }
swagger:model
type BacktestConfigRequest ¶
type BacktestConfigRequest struct { // in:body Body BacktestConfig }
swagger:parameters BacktestConfig
type BodyAlertingConfig ¶
type BodyAlertingConfig struct { // in:body Body PostableUserConfig }
swagger:parameters RoutePostAlertingConfig RoutePostGrafanaAlertingConfig
type Config ¶
type Config struct { Global *config.GlobalConfig `yaml:"global,omitempty" json:"global,omitempty"` Route *Route `yaml:"route,omitempty" json:"route,omitempty"` InhibitRules []config.InhibitRule `yaml:"inhibit_rules,omitempty" json:"inhibit_rules,omitempty"` MuteTimeIntervals []config.MuteTimeInterval `yaml:"mute_time_intervals,omitempty" json:"mute_time_intervals,omitempty"` Templates []string `yaml:"templates" json:"templates"` }
Config is the top-level configuration for Alertmanager's config files.
func (*Config) UnmarshalJSON ¶
Config is the entrypoint for the embedded Alertmanager config with the exception of receivers. Prometheus historically uses yaml files as the method of configuration and thus some post-validation is included in the UnmarshalYAML method. Here we simply run this with a noop unmarshaling function in order to benefit from said validation.
type ContactPointParams ¶
type ContactPointParams struct { // Filter by name // in: query // required: false Name string `json:"name"` }
swagger:parameters RouteGetContactpoints
type ContactPointPayload ¶
type ContactPointPayload struct { // in:body Body EmbeddedContactPoint }
swagger:parameters RoutePostContactpoints RoutePutContactpoint
type ContactPointUIDReference ¶
type ContactPointUIDReference struct { // UID is the contact point unique identifier // in:path UID string }
swagger:parameters RoutePutContactpoint RouteDeleteContactpoints
type CreateSilenceParams ¶
type CreateSilenceParams struct { // in:body Silence PostableSilence }
swagger:parameters RouteCreateSilence RouteCreateGrafanaSilence
type DatasourceUIDReference ¶
type DatasourceUIDReference struct { // DatasoureUID should be the datasource UID identifier // in:path DatasourceUID string }
alertmanager routes swagger:parameters RoutePostAlertingConfig RouteGetAlertingConfig RouteDeleteAlertingConfig RouteGetAMStatus RouteGetAMAlerts RoutePostAMAlerts RouteGetAMAlertGroups RouteGetSilences RouteCreateSilence RouteGetSilence RouteDeleteSilence RoutePostAlertingConfig testing routes swagger:parameters RouteTestRuleConfig prom routes swagger:parameters RouteGetRuleStatuses RouteGetAlertStatuses ruler routes swagger:parameters RouteGetRulesConfig RoutePostNameRulesConfig RouteGetNamespaceRulesConfig RouteDeleteNamespaceRulesConfig RouteGetRulegGroupConfig RouteDeleteRuleGroupConfig
type DiscoveryBase ¶
type DiscoveryBase struct { // required: true Status string `json:"status"` // required: false ErrorType v1.ErrorType `json:"errorType,omitempty"` // required: false Error string `json:"error,omitempty"` }
swagger:model
type Duration ¶
Duration is a type used for marshalling durations.
func (Duration) MarshalJSON ¶
func (Duration) MarshalYAML ¶
func (*Duration) UnmarshalJSON ¶
func (*Duration) UnmarshalYAML ¶
type EmbeddedContactPoint ¶
type EmbeddedContactPoint struct { // UID is the unique identifier of the contact point. The UID can be // set by the user. // example: my_external_reference UID string `json:"uid"` // Name is used as grouping key in the UI. Contact points with the // same name will be grouped in the UI. // example: webhook_1 Name string `json:"name" binding:"required"` // required: true // example: webhook // enum: alertmanager, dingding, discord, email, googlechat, kafka, line, opsgenie, pagerduty, pushover, sensugo, slack, teams, telegram, threema, victorops, webhook, wecom Type string `json:"type" binding:"required"` // required: true Settings *simplejson.Json `json:"settings" binding:"required"` // example: false DisableResolveMessage bool `json:"disableResolveMessage"` // readonly: true Provenance string `json:"provenance,omitempty"` }
EmbeddedContactPoint is the contact point type that is used by grafanas embedded alertmanager implementation. swagger:model
func (*EmbeddedContactPoint) ResourceID ¶
func (e *EmbeddedContactPoint) ResourceID() string
func (*EmbeddedContactPoint) ResourceType ¶
func (e *EmbeddedContactPoint) ResourceType() string
type EvalAlertConditionCommand ¶
type EvalAlertConditionCommand struct { Condition string `json:"condition"` Data []AlertQuery `json:"data"` Now time.Time `json:"now"` }
EvalAlertConditionCommand is the command for evaluating a condition
func (*EvalAlertConditionCommand) UnmarshalJSON ¶
func (cmd *EvalAlertConditionCommand) UnmarshalJSON(b []byte) error
type EvalQueriesPayload ¶
type EvalQueriesPayload struct { Data []AlertQuery `json:"data"` Now time.Time `json:"now"` }
swagger:model
type EvalQueriesRequest ¶
type EvalQueriesRequest struct { // in:body Body EvalQueriesPayload }
swagger:parameters RouteEvalQueries
type ExecutionErrorState ¶
type ExecutionErrorState string
swagger:enum ExecutionErrorState
const ( OkErrState ExecutionErrorState = "OK" AlertingErrState ExecutionErrorState = "Alerting" ErrorErrState ExecutionErrorState = "Error" )
type ExportQueryParams ¶
type ExportQueryParams struct { // Whether to initiate a download of the file or not. // in: query // required: false // default: false Download bool `json:"download"` // Format of the downloaded file, either yaml or json. Accept header can also be used, but the query parameter will take precedence. // in: query // required: false // default: yaml Format string `json:"format"` }
swagger:parameters RouteGetAlertRuleGroupExport RouteGetAlertRuleExport RouteGetAlertRulesExport
type ExtendedReceiver ¶
type ExtendedReceiver struct { EmailConfigs config.EmailConfig `yaml:"email_configs,omitempty" json:"email_configs,omitempty"` PagerdutyConfigs config.PagerdutyConfig `yaml:"pagerduty_configs,omitempty" json:"pagerduty_configs,omitempty"` SlackConfigs config.SlackConfig `yaml:"slack_configs,omitempty" json:"slack_configs,omitempty"` WebhookConfigs config.WebhookConfig `yaml:"webhook_configs,omitempty" json:"webhook_configs,omitempty"` OpsGenieConfigs config.OpsGenieConfig `yaml:"opsgenie_configs,omitempty" json:"opsgenie_configs,omitempty"` WechatConfigs config.WechatConfig `yaml:"wechat_configs,omitempty" json:"wechat_configs,omitempty"` PushoverConfigs config.PushoverConfig `yaml:"pushover_configs,omitempty" json:"pushover_configs,omitempty"` VictorOpsConfigs config.VictorOpsConfig `yaml:"victorops_configs,omitempty" json:"victorops_configs,omitempty"` GrafanaReceiver PostableGrafanaReceiver `yaml:"grafana_managed_receiver,omitempty" json:"grafana_managed_receiver,omitempty"` }
swagger:model
type FolderUIDPathParam ¶
type FolderUIDPathParam struct { // in:path FolderUID string `json:"FolderUID"` }
swagger:parameters RouteGetAlertRuleGroup RoutePutAlertRuleGroup RouteGetAlertRuleGroupExport
type GetDeleteSilenceParams ¶
type GetDeleteSilenceParams struct { // in:path SilenceId string }
swagger:parameters RouteGetSilence RouteDeleteSilence RouteGetGrafanaSilence RouteDeleteGrafanaSilence
type GetGrafanaAlertStatusesParams ¶
type GetGrafanaAlertStatusesParams struct { // Include Grafana specific labels as part of the response. // in: query // required: false // default: false IncludeInternalLabels bool `json:"includeInternalLabels"` }
swagger:parameters RouteGetGrafanaAlertStatuses
type GetGrafanaRuleStatusesParams ¶
type GetGrafanaRuleStatusesParams struct { // Include Grafana specific labels as part of the response. // in: query // required: false // default: false IncludeInternalLabels bool `json:"includeInternalLabels"` // Filter the list of rules to those that belong to the specified dashboard UID. // in: query // required: false DashboardUID string // Filter the list of rules to those that belong to the specified panel ID. Dashboard UID must be specified. // in: query // required: false PanelID int64 }
swagger:parameters RouteGetGrafanaRuleStatuses
type GetSilencesParams ¶
type GetSilencesParams struct { // in:query Filter []string `json:"filter"` }
swagger:parameters RouteGetSilences RouteGetGrafanaSilences
type GettableAlertmanagers ¶
type GettableAlertmanagers struct { Status string `json:"status"` Data v1.AlertManagersResult `json:"data"` }
swagger:model
type GettableApiAlertingConfig ¶
type GettableApiAlertingConfig struct { Config `yaml:",inline"` MuteTimeProvenances map[string]Provenance `yaml:"muteTimeProvenances,omitempty" json:"muteTimeProvenances,omitempty"` // Override with our superset receiver type Receivers []*GettableApiReceiver `yaml:"receivers,omitempty" json:"receivers,omitempty"` }
func (*GettableApiAlertingConfig) UnmarshalJSON ¶
func (c *GettableApiAlertingConfig) UnmarshalJSON(b []byte) error
type GettableApiReceiver ¶
type GettableApiReceiver struct { config.Receiver `yaml:",inline"` GettableGrafanaReceivers `yaml:",inline"` }
func (*GettableApiReceiver) Type ¶
func (r *GettableApiReceiver) Type() ReceiverType
func (*GettableApiReceiver) UnmarshalJSON ¶
func (r *GettableApiReceiver) UnmarshalJSON(b []byte) error
type GettableExtendedRuleNode ¶
type GettableExtendedRuleNode struct { // note: this works with yaml v3 but not v2 (the inline tag isn't accepted on pointers in v2) *ApiRuleNode `yaml:",inline"` //GrafanaManagedAlert yaml.Node `yaml:"grafana_alert,omitempty"` GrafanaManagedAlert *GettableGrafanaRule `yaml:"grafana_alert,omitempty" json:"grafana_alert,omitempty"` }
func (*GettableExtendedRuleNode) Type ¶
func (n *GettableExtendedRuleNode) Type() RuleType
func (*GettableExtendedRuleNode) UnmarshalJSON ¶
func (n *GettableExtendedRuleNode) UnmarshalJSON(b []byte) error
type GettableGrafanaReceiver ¶
type GettableGrafanaReceiver struct { UID string `json:"uid"` Name string `json:"name"` Type string `json:"type"` DisableResolveMessage bool `json:"disableResolveMessage"` Settings RawMessage `json:"settings,omitempty"` SecureFields map[string]bool `json:"secureFields"` Provenance Provenance `json:"provenance,omitempty"` }
type GettableGrafanaReceivers ¶
type GettableGrafanaReceivers struct {
GrafanaManagedReceivers []*GettableGrafanaReceiver `yaml:"grafana_managed_receiver_configs,omitempty" json:"grafana_managed_receiver_configs,omitempty"`
}
type GettableGrafanaRule ¶
type GettableGrafanaRule struct { ID int64 `json:"id" yaml:"id"` OrgID int64 `json:"orgId" yaml:"orgId"` Title string `json:"title" yaml:"title"` Condition string `json:"condition" yaml:"condition"` Data []AlertQuery `json:"data" yaml:"data"` Updated time.Time `json:"updated" yaml:"updated"` IntervalSeconds int64 `json:"intervalSeconds" yaml:"intervalSeconds"` Version int64 `json:"version" yaml:"version"` UID string `json:"uid" yaml:"uid"` NamespaceUID string `json:"namespace_uid" yaml:"namespace_uid"` NamespaceID int64 `json:"namespace_id" yaml:"namespace_id"` RuleGroup string `json:"rule_group" yaml:"rule_group"` NoDataState NoDataState `json:"no_data_state" yaml:"no_data_state"` ExecErrState ExecutionErrorState `json:"exec_err_state" yaml:"exec_err_state"` Provenance Provenance `json:"provenance,omitempty" yaml:"provenance,omitempty"` IsPaused bool `json:"is_paused" yaml:"is_paused"` }
swagger:model
type GettableHistoricUserConfig ¶
type GettableHistoricUserConfig struct { ID int64 `yaml:"id" json:"id"` TemplateFiles map[string]string `yaml:"template_files" json:"template_files"` TemplateFileProvenances map[string]Provenance `yaml:"template_file_provenances,omitempty" json:"template_file_provenances,omitempty"` AlertmanagerConfig GettableApiAlertingConfig `yaml:"alertmanager_config" json:"alertmanager_config"` LastApplied *strfmt.DateTime `yaml:"last_applied,omitempty" json:"last_applied,omitempty"` }
type GettableHistoricUserConfigs ¶
type GettableHistoricUserConfigs struct { // in:body Body []GettableHistoricUserConfig }
swagger:response GettableHistoricUserConfigs
type GettableNGalertConfig ¶
type GettableNGalertConfig struct {
AlertmanagersChoice AlertmanagersChoice `json:"alertmanagersChoice"`
}
swagger:model
type GettableRuleGroupConfig ¶
type GettableRuleGroupConfig struct { Name string `yaml:"name" json:"name"` Interval model.Duration `yaml:"interval,omitempty" json:"interval,omitempty"` SourceTenants []string `yaml:"source_tenants,omitempty" json:"source_tenants,omitempty"` Rules []GettableExtendedRuleNode `yaml:"rules" json:"rules"` }
swagger:model
func (*GettableRuleGroupConfig) Type ¶
func (c *GettableRuleGroupConfig) Type() (backend Backend)
Type requires validate has been called and just checks the first rule type
func (*GettableRuleGroupConfig) UnmarshalJSON ¶
func (c *GettableRuleGroupConfig) UnmarshalJSON(b []byte) error
type GettableSilences ¶
type GettableSilences = amv2.GettableSilences
swagger:model gettableSilences
type GettableStatus ¶
type GettableStatus struct { // cluster // Required: true Cluster *amv2.ClusterStatus `json:"cluster"` // config // Required: true Config *PostableApiAlertingConfig `json:"config"` // uptime // Required: true // Format: date-time Uptime *strfmt.DateTime `json:"uptime"` // version info // Required: true VersionInfo *amv2.VersionInfo `json:"versionInfo"` }
swagger:model
func NewGettableStatus ¶
func NewGettableStatus(cfg *PostableApiAlertingConfig) *GettableStatus
func (*GettableStatus) UnmarshalJSON ¶
func (s *GettableStatus) UnmarshalJSON(b []byte) error
type GettableUserConfig ¶
type GettableUserConfig struct { TemplateFiles map[string]string `yaml:"template_files" json:"template_files"` TemplateFileProvenances map[string]Provenance `yaml:"template_file_provenances,omitempty" json:"template_file_provenances,omitempty"` AlertmanagerConfig GettableApiAlertingConfig `yaml:"alertmanager_config" json:"alertmanager_config"` // contains filtered or unexported fields }
swagger:model
func (*GettableUserConfig) GetGrafanaReceiverMap ¶
func (c *GettableUserConfig) GetGrafanaReceiverMap() map[string]*GettableGrafanaReceiver
GetGrafanaReceiverMap returns a map that associates UUIDs to grafana receivers
func (*GettableUserConfig) MarshalJSON ¶
func (c *GettableUserConfig) MarshalJSON() ([]byte, error)
func (*GettableUserConfig) UnmarshalYAML ¶
func (c *GettableUserConfig) UnmarshalYAML(value *yaml.Node) error
type MuteTimeInterval ¶
type MuteTimeInterval struct { config.MuteTimeInterval `json:",inline" yaml:",inline"` Provenance Provenance `json:"provenance,omitempty"` }
swagger:model
func (*MuteTimeInterval) ResourceID ¶
func (mt *MuteTimeInterval) ResourceID() string
func (*MuteTimeInterval) ResourceType ¶
func (mt *MuteTimeInterval) ResourceType() string
func (*MuteTimeInterval) Validate ¶
func (mt *MuteTimeInterval) Validate() error
type MuteTimingPayload ¶
type MuteTimingPayload struct { // in:body Body MuteTimeInterval }
swagger:parameters RoutePostMuteTiming RoutePutMuteTiming
type NGalertConfig ¶
type NGalertConfig struct { // in:body Body PostableNGalertConfig }
swagger:parameters RoutePostNGalertConfig
type NamespaceConfig ¶
type NamespaceConfig struct { // in:path Namespace string // in:body Body PostableRuleGroupConfig }
swagger:parameters RoutePostNameRulesConfig RoutePostNameGrafanaRulesConfig
type NamespaceConfigResponse ¶
type NamespaceConfigResponse map[string][]GettableRuleGroupConfig
swagger:model
type NoDataState ¶
type NoDataState string
swagger:enum NoDataState
const ( Alerting NoDataState = "Alerting" NoData NoDataState = "NoData" OK NoDataState = "OK" )
type NotificationTemplate ¶
type NotificationTemplate struct { Name string `json:"name"` Template string `json:"template"` Provenance Provenance `json:"provenance,omitempty"` }
swagger:model
func (*NotificationTemplate) ResourceID ¶
func (t *NotificationTemplate) ResourceID() string
func (*NotificationTemplate) ResourceType ¶
func (t *NotificationTemplate) ResourceType() string
func (*NotificationTemplate) Validate ¶
func (t *NotificationTemplate) Validate() error
type NotificationTemplateContent ¶
type NotificationTemplateContent struct {
Template string `json:"template"`
}
type NotificationTemplatePayload ¶
type NotificationTemplatePayload struct { // in:body Body NotificationTemplateContent }
swagger:parameters RoutePutTemplate
type ObjectMatchers ¶
ObjectMatchers is Matchers with a different Unmarshal and Marshal methods that accept matchers as objects that have already been parsed.
func (ObjectMatchers) MarshalJSON ¶
func (m ObjectMatchers) MarshalJSON() ([]byte, error)
MarshalJSON implements the json.Marshaler interface for Matchers.
func (ObjectMatchers) MarshalYAML ¶
func (m ObjectMatchers) MarshalYAML() (interface{}, error)
MarshalYAML implements the yaml.Marshaler interface for Matchers.
func (*ObjectMatchers) UnmarshalJSON ¶
func (m *ObjectMatchers) UnmarshalJSON(data []byte) error
UnmarshalJSON implements the json.Unmarshaler interface for Matchers.
func (*ObjectMatchers) UnmarshalYAML ¶
func (m *ObjectMatchers) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML implements the yaml.Unmarshaler interface for Matchers.
type PathGetRulesParams ¶
swagger:parameters RouteGetRulesConfig RouteGetGrafanaRulesConfig
type PathNamespaceConfig ¶
type PathNamespaceConfig struct { // in: path Namespace string }
swagger:parameters RouteGetNamespaceRulesConfig RouteDeleteNamespaceRulesConfig RouteGetNamespaceGrafanaRulesConfig RouteDeleteNamespaceGrafanaRulesConfig
type PathRouleGroupConfig ¶
swagger:parameters RouteGetRulegGroupConfig RouteDeleteRuleGroupConfig RouteGetGrafanaRuleGroupConfig RouteDeleteGrafanaRuleGroupConfig
type Policytree ¶
type Policytree struct { // The new notification routing tree to use // in:body Body Route }
swagger:parameters RoutePutPolicyTree
type PostSilencesOKBody ¶
type PostSilencesOKBody struct { // silence ID SilenceID string `json:"silenceID,omitempty"` }
swagger:model postSilencesOKBody
type PostableAlerts ¶
type PostableAlerts struct { // in:body PostableAlerts []amv2.PostableAlert `yaml:"" json:""` }
swagger:parameters RoutePostAMAlerts
type PostableApiAlertingConfig ¶
type PostableApiAlertingConfig struct { Config `yaml:",inline"` // Override with our superset receiver type Receivers []*PostableApiReceiver `yaml:"receivers,omitempty" json:"receivers,omitempty"` }
func (*PostableApiAlertingConfig) ReceiverType ¶
func (c *PostableApiAlertingConfig) ReceiverType() ReceiverType
Type requires validate has been called and just checks the first receiver type
func (*PostableApiAlertingConfig) UnmarshalJSON ¶
func (c *PostableApiAlertingConfig) UnmarshalJSON(b []byte) error
type PostableApiReceiver ¶
type PostableApiReceiver struct { config.Receiver `yaml:",inline"` PostableGrafanaReceivers `yaml:",inline"` }
func (*PostableApiReceiver) Type ¶
func (r *PostableApiReceiver) Type() ReceiverType
func (*PostableApiReceiver) UnmarshalJSON ¶
func (r *PostableApiReceiver) UnmarshalJSON(b []byte) error
func (*PostableApiReceiver) UnmarshalYAML ¶
func (r *PostableApiReceiver) UnmarshalYAML(unmarshal func(interface{}) error) error
type PostableExtendedRuleNode ¶
type PostableExtendedRuleNode struct { // note: this works with yaml v3 but not v2 (the inline tag isn't accepted on pointers in v2) *ApiRuleNode `yaml:",inline"` //GrafanaManagedAlert yaml.Node `yaml:"grafana_alert,omitempty"` GrafanaManagedAlert *PostableGrafanaRule `yaml:"grafana_alert,omitempty" json:"grafana_alert,omitempty"` }
func (*PostableExtendedRuleNode) Type ¶
func (n *PostableExtendedRuleNode) Type() RuleType
func (*PostableExtendedRuleNode) UnmarshalJSON ¶
func (n *PostableExtendedRuleNode) UnmarshalJSON(b []byte) error
type PostableGrafanaReceiver ¶
type PostableGrafanaReceivers ¶
type PostableGrafanaReceivers struct {
GrafanaManagedReceivers []*PostableGrafanaReceiver `yaml:"grafana_managed_receiver_configs,omitempty" json:"grafana_managed_receiver_configs,omitempty"`
}
type PostableGrafanaRule ¶
type PostableGrafanaRule struct { Title string `json:"title" yaml:"title"` Condition string `json:"condition" yaml:"condition"` Data []AlertQuery `json:"data" yaml:"data"` UID string `json:"uid" yaml:"uid"` NoDataState NoDataState `json:"no_data_state" yaml:"no_data_state"` ExecErrState ExecutionErrorState `json:"exec_err_state" yaml:"exec_err_state"` IsPaused *bool `json:"is_paused" yaml:"is_paused"` }
swagger:model
type PostableNGalertConfig ¶
type PostableNGalertConfig struct {
AlertmanagersChoice AlertmanagersChoice `json:"alertmanagersChoice"`
}
swagger:model
type PostableRuleGroupConfig ¶
type PostableRuleGroupConfig struct { Name string `yaml:"name" json:"name"` Interval model.Duration `yaml:"interval,omitempty" json:"interval,omitempty"` Rules []PostableExtendedRuleNode `yaml:"rules" json:"rules"` }
swagger:model
func (*PostableRuleGroupConfig) Type ¶
func (c *PostableRuleGroupConfig) Type() (backend Backend)
Type requires validate has been called and just checks the first rule type
func (*PostableRuleGroupConfig) UnmarshalJSON ¶
func (c *PostableRuleGroupConfig) UnmarshalJSON(b []byte) error
type PostableUserConfig ¶
type PostableUserConfig struct { TemplateFiles map[string]string `yaml:"template_files" json:"template_files"` AlertmanagerConfig PostableApiAlertingConfig `yaml:"alertmanager_config" json:"alertmanager_config"` // contains filtered or unexported fields }
swagger:model
func (*PostableUserConfig) GetGrafanaReceiverMap ¶
func (c *PostableUserConfig) GetGrafanaReceiverMap() map[string]*PostableGrafanaReceiver
GetGrafanaReceiverMap returns a map that associates UUIDs to grafana receivers
func (*PostableUserConfig) MarshalYAML ¶
func (c *PostableUserConfig) MarshalYAML() (interface{}, error)
MarshalYAML implements yaml.Marshaller.
func (*PostableUserConfig) ProcessConfig ¶
func (c *PostableUserConfig) ProcessConfig(encrypt EncryptFn) error
ProcessConfig parses grafana receivers, encrypts secrets and assigns UUIDs (if they are missing)
func (*PostableUserConfig) UnmarshalJSON ¶
func (c *PostableUserConfig) UnmarshalJSON(b []byte) error
func (*PostableUserConfig) UnmarshalYAML ¶
func (c *PostableUserConfig) UnmarshalYAML(value *yaml.Node) error
type Provenance ¶
type Provenance string
type ProvisionedAlertRule ¶
type ProvisionedAlertRule struct { ID int64 `json:"id"` UID string `json:"uid"` // required: true OrgID int64 `json:"orgID"` // required: true // example: project_x FolderUID string `json:"folderUID"` // required: true // minLength: 1 // maxLength: 190 // example: eval_group_1 RuleGroup string `json:"ruleGroup"` // required: true // minLength: 1 // maxLength: 190 // example: Always firing Title string `json:"title"` // required: true // example: A Condition string `json:"condition"` // required: true // example: [{"refId":"A","queryType":"","relativeTimeRange":{"from":0,"to":0},"datasourceUid":"__expr__","model":{"conditions":[{"evaluator":{"params":[0,0],"type":"gt"},"operator":{"type":"and"},"query":{"params":[]},"reducer":{"params":[],"type":"avg"},"type":"query"}],"datasource":{"type":"__expr__","uid":"__expr__"},"expression":"1 == 1","hide":false,"intervalMs":1000,"maxDataPoints":43200,"refId":"A","type":"math"}}] Data []AlertQuery `json:"data"` // readonly: true Updated time.Time `json:"updated,omitempty"` // required: true NoDataState NoDataState `json:"noDataState"` // required: true ExecErrState ExecutionErrorState `json:"execErrState"` // required: true For model.Duration `json:"for"` // example: {"runbook_url": "https://supercoolrunbook.com/page/13"} Annotations map[string]string `json:"annotations,omitempty"` // example: {"team": "sre-team-1"} Labels map[string]string `json:"labels,omitempty"` // readonly: true Provenance Provenance `json:"provenance,omitempty"` // example: false IsPaused bool `json:"isPaused"` }
type RawMessage ¶
type RawMessage json.RawMessage // This type alias adds YAML marshaling to the json.RawMessage.
func (RawMessage) MarshalJSON ¶
func (r RawMessage) MarshalJSON() ([]byte, error)
MarshalJSON returns m as the JSON encoding of m.
func (RawMessage) MarshalYAML ¶
func (r RawMessage) MarshalYAML() (interface{}, error)
func (*RawMessage) UnmarshalJSON ¶
func (r *RawMessage) UnmarshalJSON(data []byte) error
func (*RawMessage) UnmarshalYAML ¶
func (r *RawMessage) UnmarshalYAML(unmarshal func(interface{}) error) error
type ReceiverType ¶
type ReceiverType int
const ( GrafanaReceiverType ReceiverType = 1 << iota AlertmanagerReceiverType EmptyReceiverType = GrafanaReceiverType | AlertmanagerReceiverType )
func (ReceiverType) Can ¶
func (r ReceiverType) Can(other ReceiverType) bool
Can determines whether a receiver type can implement another receiver type. This is useful as receivers with just names but no contact points are valid in all backends.
func (ReceiverType) String ¶
func (r ReceiverType) String() string
type ReceiversResponse ¶
swagger:response receiversResponse
type RelativeTimeRange ¶
type RelativeTimeRange struct { From Duration `json:"from" yaml:"from"` To Duration `json:"to" yaml:"to"` }
RelativeTimeRange is the per query start and end time for requests.
type Route ¶
type Route struct { Receiver string `yaml:"receiver,omitempty" json:"receiver,omitempty"` GroupByStr []string `yaml:"group_by,omitempty" json:"group_by,omitempty"` GroupBy []model.LabelName `yaml:"-" json:"-"` GroupByAll bool `yaml:"-" json:"-"` // Deprecated. Remove before v1.0 release. Match map[string]string `yaml:"match,omitempty" json:"match,omitempty"` // Deprecated. Remove before v1.0 release. MatchRE config.MatchRegexps `yaml:"match_re,omitempty" json:"match_re,omitempty"` Matchers config.Matchers `yaml:"matchers,omitempty" json:"matchers,omitempty"` ObjectMatchers ObjectMatchers `yaml:"object_matchers,omitempty" json:"object_matchers,omitempty"` MuteTimeIntervals []string `yaml:"mute_time_intervals,omitempty" json:"mute_time_intervals,omitempty"` Continue bool `yaml:"continue" json:"continue,omitempty"` Routes []*Route `yaml:"routes,omitempty" json:"routes,omitempty"` GroupWait *model.Duration `yaml:"group_wait,omitempty" json:"group_wait,omitempty"` GroupInterval *model.Duration `yaml:"group_interval,omitempty" json:"group_interval,omitempty"` RepeatInterval *model.Duration `yaml:"repeat_interval,omitempty" json:"repeat_interval,omitempty"` Provenance Provenance `yaml:"provenance,omitempty" json:"provenance,omitempty"` }
A Route is a node that contains definitions of how to handle alerts. This is modified from the upstream alertmanager in that it adds the ObjectMatchers property.
func AsGrafanaRoute ¶
AsGrafanaRoute returns a Grafana route from an Alertmanager route. The Matchers are converted to ObjectMatchers.
func (*Route) AsAMRoute ¶
AsAMRoute returns an Alertmanager route from a Grafana route. The ObjectMatchers are converted to Matchers.
func (*Route) ResourceID ¶
func (*Route) ResourceType ¶
func (*Route) UnmarshalYAML ¶
UnmarshalYAML implements the yaml.Unmarshaler interface for Route. This is a copy of alertmanager's upstream except it removes validation on the label key.
func (*Route) Validate ¶
Validate normalizes a Route r, and returns errors if r is an invalid root route. Root routes must satisfy a few additional conditions.
func (*Route) ValidateMuteTimes ¶
func (*Route) ValidateReceivers ¶
type RouteGetGrafanaAlertingConfigHistoryParams ¶
type RouteGetGrafanaAlertingConfigHistoryParams struct { // Limit response to n historic configurations. // in:query Limit int `json:"limit"` }
swagger:parameters RouteGetGrafanaAlertingConfigHistory
type RouteGetMuteTimingParam ¶
type RouteGetMuteTimingParam struct { // Mute timing name // in:path Name string `json:"name"` }
swagger:parameters RouteGetTemplate RouteGetMuteTiming RoutePutMuteTiming stable RouteDeleteMuteTiming
type RouteGetTemplateParam ¶
type RouteGetTemplateParam struct { // Template Name // in:path Name string `json:"name"` }
swagger:parameters RouteGetTemplate RoutePutTemplate RouteDeleteTemplate
type Rule ¶
type Rule struct { // required: true Name string `json:"name"` // required: true Query string `json:"query"` Labels overrideLabels `json:"labels,omitempty"` // required: true Health string `json:"health"` LastError string `json:"lastError,omitempty"` // required: true Type v1.RuleType `json:"type"` LastEvaluation time.Time `json:"lastEvaluation"` EvaluationTime float64 `json:"evaluationTime"` }
adapted from cortex swagger:model
type RuleDiscovery ¶
type RuleDiscovery struct { // required: true RuleGroups []*RuleGroup `json:"groups"` }
swagger:model
type RuleGroup ¶
type RuleGroup struct { // required: true Name string `json:"name"` // required: true File string `json:"file"` // In order to preserve rule ordering, while exposing type (alerting or recording) // specific properties, both alerting and recording rules are exposed in the // same array. // required: true Rules []AlertingRule `json:"rules"` // required: true Interval float64 `json:"interval"` LastEvaluation time.Time `json:"lastEvaluation"` EvaluationTime float64 `json:"evaluationTime"` }
swagger:model
type RuleGroupConfigResponse ¶
type RuleGroupConfigResponse struct {
GettableRuleGroupConfig
}
swagger:model
type RuleGroupPathParam ¶
type RuleGroupPathParam struct { // in:path Group string `json:"Group"` }
swagger:parameters RouteGetAlertRuleGroup RoutePutAlertRuleGroup RouteGetAlertRuleGroupExport
type RuleResponse ¶
type RuleResponse struct { // in: body DiscoveryBase // in: body Data RuleDiscovery `json:"data"` }
swagger:model
type StateHistory ¶
type TestReceiverConfigResult ¶
type TestReceiverConfigResult struct { Name string `json:"name"` UID string `json:"uid"` Status string `json:"status"` Error string `json:"error,omitempty"` }
swagger:model
type TestReceiverRequest ¶
type TestReceiverRequest struct { // in:body Body ExtendedReceiver }
swagger:parameters RouteTestReceiverConfig
type TestReceiverResult ¶
type TestReceiverResult struct { Name string `json:"name"` Configs []TestReceiverConfigResult `json:"grafana_managed_receiver_configs"` }
swagger:model
type TestReceiversConfigBodyParams ¶
type TestReceiversConfigBodyParams struct { Alert *TestReceiversConfigAlertParams `yaml:"alert,omitempty" json:"alert,omitempty"` Receivers []*PostableApiReceiver `yaml:"receivers,omitempty" json:"receivers,omitempty"` }
func (*TestReceiversConfigBodyParams) ProcessConfig ¶
func (c *TestReceiversConfigBodyParams) ProcessConfig(encrypt EncryptFn) error
type TestReceiversConfigParams ¶
type TestReceiversConfigParams struct { // in:body Body TestReceiversConfigBodyParams }
swagger:parameters RoutePostTestGrafanaReceivers
type TestReceiversResult ¶
type TestReceiversResult struct { Alert TestReceiversConfigAlertParams `json:"alert"` Receivers []TestReceiverResult `json:"receivers"` NotifiedAt time.Time `json:"notified_at"` }
swagger:model
type TestRulePayload ¶
type TestRulePayload struct { // Example: (node_filesystem_avail_bytes{fstype!="",job="integrations/node_exporter"} node_filesystem_size_bytes{fstype!="",job="integrations/node_exporter"} * 100 < 5 and node_filesystem_readonly{fstype!="",job="integrations/node_exporter"} == 0) Expr string `json:"expr,omitempty"` // GrafanaManagedCondition for grafana alerts GrafanaManagedCondition *EvalAlertConditionCommand `json:"grafana_condition,omitempty"` }
swagger:model
func (*TestRulePayload) Type ¶
func (p *TestRulePayload) Type() (backend Backend)
func (*TestRulePayload) UnmarshalJSON ¶
func (p *TestRulePayload) UnmarshalJSON(b []byte) error
type TestRuleRequest ¶
type TestRuleRequest struct { // in:body Body TestRulePayload }
swagger:parameters RouteTestRuleConfig RouteTestRuleGrafanaConfig
type TestRuleResponse ¶
type TestRuleResponse struct { Alerts promql.Vector `json:"alerts"` GrafanaAlertInstances AlertInstancesResponse `json:"grafana_alert_instances"` }
swagger:model
type ValidationError ¶
type ValidationError struct { // example: error message Msg string `json:"msg"` }
swagger:model