make ruler json again

This commit is contained in:
Domas committed 2021-02-19 16:01:16 +02:00
1 parent e721368447
commit e0109cdebd
2 files changed
+81 -129

No files matched your search

+21 -11
View File
@@ -2,58 +2,59 @@ package api
import (
"github.com/grafana/grafana/pkg/services/ngalert/eval"
promapi "github.com/prometheus/client_golang/api/prometheus/v1/api"
"github.com/prometheus/common/model"
"github.com/prometheus/prometheus/pkg/rulefmt"
)
// swagger:route Get /api/v1/rules RulerConfig RouteGetRulesConfig
// swagger:route Get /api/v1/rules ruler RouteGetRulesConfig
//
// List rule groups
//
// Produces:
// - application/yaml
// - application/json
//
// Responses:
// 202: NamespaceConfigResponse
// swagger:route POST /api/v1/rules/{Namespace} RulerConfig RoutePostNameRulesConfig
// swagger:route POST /api/v1/rules/{Namespace} ruler RoutePostNameRulesConfig
//
// Creates or updates a rule group
//
// Consumes:
// - application/yaml
// - application/json
//
// Responses:
// 202: Ack
// swagger:route Get /api/v1/rules/{Namespace} RulerConfig RouteGetNamespaceRulesConfig
// swagger:route Get /api/v1/rules/{Namespace} ruler RouteGetNamespaceRulesConfig
//
// Get rule groups by namespace
//
// Produces:
// - application/yaml
// - application/json
//
// Responses:
// 202: NamespaceConfigResponse
// swagger:route Delete /api/v1/rules/{Namespace} RulerConfig RouteDeleteNamespaceRulesConfig
// swagger:route Delete /api/v1/rules/{Namespace} ruler RouteDeleteNamespaceRulesConfig
//
// Delete namespace
//
// Responses:
// 202: Ack
// swagger:route Get /api/v1/rules/{Namespace}/{Groupname} RulerConfig RouteGetRulegGroupConfig
// swagger:route Get /api/v1/rules/{Namespace}/{Groupname} ruler RouteGetRulegGroupConfig
//
// Get rule group
//
// Produces:
// - application/yaml
// - application/json
//
// Responses:
// 202: RuleGroupConfigResponse
// swagger:route Delete /api/v1/rules/{Namespace}/{Groupname} RulerConfig RouteDeleteRuleGroupConfig
// swagger:route Delete /api/v1/rules/{Namespace}/{Groupname} ruler RouteDeleteRuleGroupConfig
//
// Delete rule group
//
@@ -97,8 +98,17 @@ type RuleGroupConfig struct {
Rules []ExtendedRuleNode `yaml:"rules" json:"rules"`
}
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 ExtendedRuleNode struct {
rulefmt.RuleNode
ApiRuleNode
//GrafanaManagedAlert yaml.Node `yaml:"grafana_alert,omitempty"`
GrafanaManagedAlert ExtendedUpsertAlertDefinitionCommand `yaml:"grafana_alert,omitempty" json:"grafana_alert,omitempty"`
}