models

package
v6.7.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 27, 2023 License: Apache-2.0 Imports: 30 Imported by: 0

Documentation

Index

Constants

View Source
const (
	METRIC = "metric"
	LOG    = "logging"
	HOST   = "host"
	LOKI   = "loki"

	PROMETHEUS = "prometheus"
	TDENGINE   = "tdengine"
)
View Source
const (
	SALT            = "salt"
	RSA_PRIVATE_KEY = "rsa_private_key"
	RSA_PUBLIC_KEY  = "rsa_public_key"
	RSA_PASSWORD    = "rsa_password"
)
View Source
const (
	Dingtalk     = "dingtalk"
	Wecom        = "wecom"
	Feishu       = "feishu"
	FeishuCard   = "feishucard"
	Mm           = "mm"
	Telegram     = "telegram"
	Email        = "email"
	EmailSubject = "mailsubject"

	DingtalkKey = "dingtalk_robot_token"
	WecomKey    = "wecom_robot_token"
	FeishuKey   = "feishu_robot_token"
	MmKey       = "mm_webhook_url"
	TelegramKey = "telegram_robot_token"
)
View Source
const AdminRole = "Admin"
View Source
const DatasourceIdAll = 0

if rule's cluster field contains `ClusterAll`, means it take effect in all clusters

View Source
const IBEX = "ibex_server"
View Source
const NOTIFYCHANNEL = "notify_channel"
View Source
const NOTIFYCONTACT = "notify_contact"
View Source
const NOTIFYSCRIPT = "notify_script"
View Source
const Periodic int = 1
View Source
const SMTP = "smtp_config"
View Source
const TimeRange int = 0
View Source
const WEBHOOKKEY = "webhook"

Variables

View Source
var (
	ConfigExternal  = 1 //external type
	ConfigEncrypted = 1 //ciphertext
)
View Source
var (
	DefaultChannels = []string{Dingtalk, Wecom, Feishu, Mm, Telegram, Email, FeishuCard}
)
View Source
var TplMap = map[string]string{
	Dingtalk: `#### {{if .IsRecovered}}<font color="#008800">S{{.Severity}} - Recovered - {{.RuleName}}</font>{{else}}<font color="#FF0000">S{{.Severity}} - Triggered - {{.RuleName}}</font>{{end}}

---

- **规则标题**: {{.RuleName}}{{if .RuleNote}}
- **规则备注**: {{.RuleNote}}{{end}}
{{if not .IsRecovered}}- **触发时值**: {{.TriggerValue}}{{end}}
{{if .TargetIdent}}- **监控对象**: {{.TargetIdent}}{{end}}
- **监控指标**: {{.TagsJSON}}
- {{if .IsRecovered}}**恢复时间**: {{timeformat .LastEvalTime}}{{else}}**触发时间**: {{timeformat .TriggerTime}}{{end}}
- **发送时间**: {{timestamp}}
	`,
	Email: `<!DOCTYPE html>
	<html lang="en">
	<head>
		<meta charset="UTF-8">
		<meta http-equiv="X-UA-Compatible" content="ie=edge">
		<title>夜莺告警通知</title>
		<style type="text/css">
			.wrapper {
				background-color: #f8f8f8;
				padding: 15px;
				height: 100%;
			}
			.main {
				width: 600px;
				padding: 30px;
				margin: 0 auto;
				background-color: #fff;
				font-size: 12px;
				font-family: verdana,'Microsoft YaHei',Consolas,'Deja Vu Sans Mono','Bitstream Vera Sans Mono';
			}
			header {
				border-radius: 2px 2px 0 0;
			}
			header .title {
				font-size: 14px;
				color: #333333;
				margin: 0;
			}
			header .sub-desc {
				color: #333;
				font-size: 14px;
				margin-top: 6px;
				margin-bottom: 0;
			}
			hr {
				margin: 20px 0;
				height: 0;
				border: none;
				border-top: 1px solid #e5e5e5;
			}
			em {
				font-weight: 600;
			}
			table {
				margin: 20px 0;
				width: 100%;
			}
	
			table tbody tr{
				font-weight: 200;
				font-size: 12px;
				color: #666;
				height: 32px;
			}
	
			.succ {
				background-color: green;
				color: #fff;
			}
	
			.fail {
				background-color: red;
				color: #fff;
			}
	
			.succ th, .succ td, .fail th, .fail td {
				color: #fff;
			}
	
			table tbody tr th {
				width: 80px;
				text-align: right;
			}
			.text-right {
				text-align: right;
			}
			.body {
				margin-top: 24px;
			}
			.body-text {
				color: #666666;
				-webkit-font-smoothing: antialiased;
			}
			.body-extra {
				-webkit-font-smoothing: antialiased;
			}
			.body-extra.text-right a {
				text-decoration: none;
				color: #333;
			}
			.body-extra.text-right a:hover {
				color: #666;
			}
			.button {
				width: 200px;
				height: 50px;
				margin-top: 20px;
				text-align: center;
				border-radius: 2px;
				background: #2D77EE;
				line-height: 50px;
				font-size: 20px;
				color: #FFFFFF;
				cursor: pointer;
			}
			.button:hover {
				background: rgb(25, 115, 255);
				border-color: rgb(25, 115, 255);
				color: #fff;
			}
			footer {
				margin-top: 10px;
				text-align: right;
			}
			.footer-logo {
				text-align: right;
			}
			.footer-logo-image {
				width: 108px;
				height: 27px;
				margin-right: 10px;
			}
			.copyright {
				margin-top: 10px;
				font-size: 12px;
				text-align: right;
				color: #999;
				-webkit-font-smoothing: antialiased;
			}
		</style>
	</head>
	<body>
	<div class="wrapper">
		<div class="main">
			<header>
				<h3 class="title">{{.RuleName}}</h3>
				<p class="sub-desc"></p>
			</header>
	
			<hr>
	
			<div class="body">
				<table cellspacing="0" cellpadding="0" border="0">
					<tbody>
					{{if .IsRecovered}}
					<tr class="succ">
						<th>级别状态:</th>
						<td>S{{.Severity}} Recovered</td>
					</tr>
					{{else}}
					<tr class="fail">
						<th>级别状态:</th>
						<td>S{{.Severity}} Triggered</td>
					</tr>
					{{end}}
	
					<tr>
						<th>策略备注:</th>
						<td>{{.RuleNote}}</td>
					</tr>
					<tr>
						<th>设备备注:</th>
						<td>{{.TargetNote}}</td>
					</tr>
					{{if not .IsRecovered}}
					<tr>
						<th>触发时值:</th>
						<td>{{.TriggerValue}}</td>
					</tr>
					{{end}}
	
					{{if .TargetIdent}}
					<tr>
						<th>监控对象:</th>
						<td>{{.TargetIdent}}</td>
					</tr>
					{{end}}
					<tr>
						<th>监控指标:</th>
						<td>{{.TagsJSON}}</td>
					</tr>
	
					{{if .IsRecovered}}
					<tr>
						<th>恢复时间:</th>
						<td>{{timeformat .LastEvalTime}}</td>
					</tr>
					{{else}}
					<tr>
						<th>触发时间:</th>
						<td>
							{{timeformat .TriggerTime}}
						</td>
					</tr>
					{{end}}
	
					<tr>
						<th>发送时间:</th>
						<td>
							{{timestamp}}
						</td>
					</tr>
					</tbody>
				</table>
	
				<hr>
	
				<footer>
					<div class="copyright" style="font-style: italic">
						报警太多?使用 <a href="https://flashcat.cloud/product/flashduty/" target="_blank">FlashDuty</a> 做告警聚合降噪、排班OnCall!
					</div>
				</footer>
			</div>
		</div>
	</div>
	</body>
	</html>`,
	Feishu: `级别状态: S{{.Severity}} {{if .IsRecovered}}Recovered{{else}}Triggered{{end}}   
规则名称: {{.RuleName}}{{if .RuleNote}}   
规则备注: {{.RuleNote}}{{end}}   
监控指标: {{.TagsJSON}}
{{if .IsRecovered}}恢复时间:{{timeformat .LastEvalTime}}{{else}}触发时间: {{timeformat .TriggerTime}}
触发时值: {{.TriggerValue}}{{end}}
发送时间: {{timestamp}}`,
	FeishuCard: `{{ if .IsRecovered }}
{{- if ne .Cate "host"}}
**告警集群:** {{.Cluster}}{{end}}   
**级别状态:** S{{.Severity}} Recovered   
**告警名称:** {{.RuleName}}   
**恢复时间:** {{timeformat .LastEvalTime}}   
**告警描述:** **服务已恢复**   
{{- else }}
{{- if ne .Cate "host"}}   
**告警集群:** {{.Cluster}}{{end}}   
**级别状态:** S{{.Severity}} Triggered   
**告警名称:** {{.RuleName}}   
**触发时间:** {{timeformat .TriggerTime}}   
**发送时间:** {{timestamp}}   
**触发时值:** {{.TriggerValue}}   
{{if .RuleNote }}**告警描述:** **{{.RuleNote}}**{{end}}   
{{- end -}}`,
	EmailSubject: `{{if .IsRecovered}}Recovered{{else}}Triggered{{end}}: {{.RuleName}} {{.TagsJSON}}`,
	Mm: `级别状态: S{{.Severity}} {{if .IsRecovered}}Recovered{{else}}Triggered{{end}}   
规则名称: {{.RuleName}}{{if .RuleNote}}   
规则备注: {{.RuleNote}}{{end}}   
监控指标: {{.TagsJSON}}   
{{if .IsRecovered}}恢复时间:{{timeformat .LastEvalTime}}{{else}}触发时间: {{timeformat .TriggerTime}}   
触发时值: {{.TriggerValue}}{{end}}   
发送时间: {{timestamp}}`,
	Telegram: `**级别状态**: {{if .IsRecovered}}<font color="info">S{{.Severity}} Recovered</font>{{else}}<font color="warning">S{{.Severity}} Triggered</font>{{end}}   
**规则标题**: {{.RuleName}}{{if .RuleNote}}   
**规则备注**: {{.RuleNote}}{{end}}{{if .TargetIdent}}   
**监控对象**: {{.TargetIdent}}{{end}}   
**监控指标**: {{.TagsJSON}}{{if not .IsRecovered}}   
**触发时值**: {{.TriggerValue}}{{end}}   
{{if .IsRecovered}}**恢复时间**: {{timeformat .LastEvalTime}}{{else}}**首次触发时间**: {{timeformat .FirstTriggerTime}}{{end}}   
{{$time_duration := sub now.Unix .FirstTriggerTime }}{{if .IsRecovered}}{{$time_duration = sub .LastEvalTime .FirstTriggerTime }}{{end}}**距离首次告警**: {{humanizeDurationInterface $time_duration}}
**发送时间**: {{timestamp}}`,
	Wecom: `**级别状态**: {{if .IsRecovered}}<font color="info">S{{.Severity}} Recovered</font>{{else}}<font color="warning">S{{.Severity}} Triggered</font>{{end}}   
**规则标题**: {{.RuleName}}{{if .RuleNote}}   
**规则备注**: {{.RuleNote}}{{end}}{{if .TargetIdent}}   
**监控对象**: {{.TargetIdent}}{{end}}   
**监控指标**: {{.TagsJSON}}{{if not .IsRecovered}}   
**触发时值**: {{.TriggerValue}}{{end}}   
{{if .IsRecovered}}**恢复时间**: {{timeformat .LastEvalTime}}{{else}}**首次触发时间**: {{timeformat .FirstTriggerTime}}{{end}}   
{{$time_duration := sub now.Unix .FirstTriggerTime }}{{if .IsRecovered}}{{$time_duration = sub .LastEvalTime .FirstTriggerTime }}{{end}}**距离首次告警**: {{humanizeDurationInterface $time_duration}}
**发送时间**: {{timestamp}}`,
}

Functions

func AlertAggrViewDel

func AlertAggrViewDel(ctx *ctx.Context, ids []int64, createBy ...interface{}) error

AlertAggrViewDel: userid for safe delete

func AlertCurEventDel

func AlertCurEventDel(ctx *ctx.Context, ids []int64) error

func AlertCurEventDelByHash

func AlertCurEventDelByHash(ctx *ctx.Context, hash string) error

func AlertCurEventExists

func AlertCurEventExists(ctx *ctx.Context, where string, args ...interface{}) (bool, error)

func AlertCurEventGetMap

func AlertCurEventGetMap(ctx *ctx.Context, cluster string) (map[int64]map[string]struct{}, error)

func AlertCurEventStatistics added in v6.2.0

func AlertCurEventStatistics(ctx *ctx.Context, stime time.Time) map[string]interface{}

func AlertCurEventTotal

func AlertCurEventTotal(ctx *ctx.Context, prods []string, bgid, stime, etime int64, severity int, dsIds []int64, cates []string, query string) (int64, error)

func AlertCurEventUpgradeToV6

func AlertCurEventUpgradeToV6(ctx *ctx.Context, dsm map[string]Datasource) error

func AlertHisEventTotal

func AlertHisEventTotal(ctx *ctx.Context, prods []string, bgid, stime, etime int64, severity int, recovered int, dsIds []int64, cates []string, query string) (int64, error)

func AlertHisEventUpgradeToV6

func AlertHisEventUpgradeToV6(ctx *ctx.Context, dsm map[string]Datasource) error

func AlertMuteDel

func AlertMuteDel(ctx *ctx.Context, ids []int64) error

func AlertMuteUpgradeToV6

func AlertMuteUpgradeToV6(ctx *ctx.Context, dsm map[string]Datasource) error

func AlertNumbers

func AlertNumbers(ctx *ctx.Context, bgids []int64) (map[int64]int64, error)

for busi_group list page

func AlertRuleDels

func AlertRuleDels(ctx *ctx.Context, ids []int64, bgid ...int64) error

func AlertRuleExists

func AlertRuleExists(ctx *ctx.Context, id, groupId int64, datasourceIds []int64, name string) (bool, error)

func AlertRuleGetName

func AlertRuleGetName(ctx *ctx.Context, id int64) (string, error)

func AlertRuleUpgradeToV6

func AlertRuleUpgradeToV6(ctx *ctx.Context, dsm map[string]Datasource) error

func AlertSubscribeDel

func AlertSubscribeDel(ctx *ctx.Context, ids []int64) error

func AlertSubscribeUpgradeToV6

func AlertSubscribeUpgradeToV6(ctx *ctx.Context, dsm map[string]Datasource) error

func AlertingEngineAdd

func AlertingEngineAdd(ctx *ctx.Context, instance string, datasourceId int64) error

func AlertingEngineDel

func AlertingEngineDel(ctx *ctx.Context, ids []int64) error

func AlertingEngineGetDatasourceIds

func AlertingEngineGetDatasourceIds(ctx *ctx.Context, instance string) ([]int64, error)

func AlertingEngineGetsClusters

func AlertingEngineGetsClusters(ctx *ctx.Context, where string, args ...interface{}) ([]string, error)

func AlertingEngineGetsInstances

func AlertingEngineGetsInstances(ctx *ctx.Context, where string, args ...interface{}) ([]string, error)

func AlertingEngineHeartbeatWithCluster

func AlertingEngineHeartbeatWithCluster(ctx *ctx.Context, instance, cluster string, datasourceId int64) error

func BoardCount

func BoardCount(ctx *ctx.Context, where string, args ...interface{}) (num int64, err error)

func BoardExists

func BoardExists(ctx *ctx.Context, where string, args ...interface{}) (bool, error)

func BoardPayloadGet

func BoardPayloadGet(ctx *ctx.Context, id int64) (string, error)

func BoardPayloadSave

func BoardPayloadSave(ctx *ctx.Context, id int64, payload string) error

func BoardSetHide

func BoardSetHide(ctx *ctx.Context, ids []int64) error

func BuiltinCateDelete

func BuiltinCateDelete(c *ctx.Context, name string, userId int64) error

删除 builtin_cate

func BuiltinCateGetByUserId

func BuiltinCateGetByUserId(c *ctx.Context, userId int64) (map[string]BuiltinCate, error)

根据 userId 获取 builtin_cate

func BusiGroupAdd

func BusiGroupAdd(ctx *ctx.Context, name string, labelEnable int, labelValue string, members []BusiGroupMember, creator string) error

func BusiGroupExists

func BusiGroupExists(ctx *ctx.Context, where string, args ...interface{}) (bool, error)

func BusiGroupGetMap

func BusiGroupGetMap(ctx *ctx.Context) (map[int64]*BusiGroup, error)

func BusiGroupIds

func BusiGroupIds(ctx *ctx.Context, userGroupIds []int64, permFlag ...string) ([]int64, error)

func BusiGroupMemberAdd

func BusiGroupMemberAdd(ctx *ctx.Context, member BusiGroupMember) error

func BusiGroupMemberCount

func BusiGroupMemberCount(ctx *ctx.Context, where string, args ...interface{}) (int64, error)

func BusiGroupMemberDel

func BusiGroupMemberDel(ctx *ctx.Context, where string, args ...interface{}) error

func ChartGroupIdsOf

func ChartGroupIdsOf(ctx *ctx.Context, dashId int64) ([]int64, error)

func ConfigUserVariableGetDecryptMap added in v6.4.0

func ConfigUserVariableGetDecryptMap(context *ctx.Context, privateKey []byte, passWord string) (map[string]string, error)

func ConfigsDel

func ConfigsDel(ctx *ctx.Context, ids []int64) error

func ConfigsGet

func ConfigsGet(ctx *ctx.Context, ckey string) (string, error)

func ConfigsSet

func ConfigsSet(ctx *ctx.Context, ckey, cval string) error

func ConfigsSetWithUname added in v6.4.0

func ConfigsSetWithUname(ctx *ctx.Context, ckey, cval, uName string) error

func ConfigsUserVariableInsert added in v6.3.0

func ConfigsUserVariableInsert(context *ctx.Context, conf Configs) error

func ConfigsUserVariableUpdate added in v6.3.0

func ConfigsUserVariableUpdate(context *ctx.Context, conf Configs) error

func Count

func Count(tx *gorm.DB) (int64, error)

func CryptoPass

func CryptoPass(ctx *ctx.Context, raw string) (string, error)

CryptoPass crypto password use salt

func DB

func DB(ctx *ctx.Context) *gorm.DB

func DashboardCount

func DashboardCount(ctx *ctx.Context, where string, args ...interface{}) (num int64, err error)

func DashboardExists

func DashboardExists(ctx *ctx.Context, where string, args ...interface{}) (bool, error)

func DatasourceDel

func DatasourceDel(ctx *ctx.Context, ids []int64) error

func DatasourceGetMap

func DatasourceGetMap(ctx *ctx.Context) (map[int64]*Datasource, error)

func EsIndexPatternDel

func EsIndexPatternDel(ctx *ctx.Context, ids []int64) error

func EsIndexPatternExists

func EsIndexPatternExists(ctx *ctx.Context, id, datasourceId int64, name string) (bool, error)

func EventPersist

func EventPersist(ctx *ctx.Context, event *AlertCurEvent) error

func Exists

func Exists(tx *gorm.DB) (bool, error)

func GetDatasourceIdsByEngineName

func GetDatasourceIdsByEngineName(ctx *ctx.Context, engineName string) ([]int64, error)

func GetDatasourcesCountBy

func GetDatasourcesCountBy(ctx *ctx.Context, typ, cate, name string) (int64, error)

func GetDatasourcesCountByName

func GetDatasourcesCountByName(ctx *ctx.Context, name string) (int64, error)

func GetDatasourcesGetsByTypes

func GetDatasourcesGetsByTypes(ctx *ctx.Context, typs []string) (map[string]*Datasource, error)

func GetHostsQuery

func GetHostsQuery(queries []HostQuery) []map[string]interface{}

func IdentsFilter

func IdentsFilter(ctx *ctx.Context, idents []string, where string, args ...interface{}) ([]string, error)

func InitNotifyConfig

func InitNotifyConfig(c *ctx.Context, tplDir string)

func InitRSAPassWord added in v6.4.0

func InitRSAPassWord(ctx *ctx.Context) (string, error)

func InitRoot

func InitRoot(ctx *ctx.Context)

func InitSalt

func InitSalt(ctx *ctx.Context)

InitSalt generate random salt

func Insert

func Insert(ctx *ctx.Context, obj interface{}) error

func IsAllDatasource

func IsAllDatasource(datasourceIds []int64) bool

func LabelAndKeyHasKey

func LabelAndKeyHasKey(keys []LabelAndKey, key string) bool

func ListTpls

func ListTpls(c *ctx.Context) (map[string]*template.Template, error)

func MatchDatasource

func MatchDatasource(ids []int64, id int64) bool

func MemberIds

func MemberIds(ctx *ctx.Context, groupId int64) ([]int64, error)

func MetricViewDel

func MetricViewDel(ctx *ctx.Context, ids []int64, createBy ...interface{}) error

MetricViewDel: userid for safe delete

func MissTargetCountByFilter

func MissTargetCountByFilter(ctx *ctx.Context, query []map[string]interface{}, ts int64) (int64, error)

func MyGroupIds

func MyGroupIds(ctx *ctx.Context, userId int64) ([]int64, error)

func NewDefaultChartGroup

func NewDefaultChartGroup(ctx *ctx.Context, dashId int64) error

func NotifyTplCountByChannel

func NotifyTplCountByChannel(c *ctx.Context, channel string) (int64, error)

func OperationsOfRole

func OperationsOfRole(ctx *ctx.Context, roles []string) ([]string, error)

func ParseInt64

func ParseInt64(values []interface{}) []int64

func RecordingRuleDels

func RecordingRuleDels(ctx *ctx.Context, ids []int64, groupId int64) error

func RecordingRuleUpgradeToV6

func RecordingRuleUpgradeToV6(ctx *ctx.Context, dsm map[string]Datasource) error

func RoleCount

func RoleCount(ctx *ctx.Context, where string, args ...interface{}) (num int64, err error)

func RoleHasOperation

func RoleHasOperation(ctx *ctx.Context, roles []string, operation string) (bool, error)

func RoleOperationBind

func RoleOperationBind(ctx *ctx.Context, roleName string, operation []string) error

func SsoConfigCountByName

func SsoConfigCountByName(c *ctx.Context, name string) (int64, error)

get sso_config coutn by name

func Str2Int

func Str2Int(arr []string) []int64

func TargetCountByFilter

func TargetCountByFilter(ctx *ctx.Context, query []map[string]interface{}) (int64, error)

func TargetDel

func TargetDel(ctx *ctx.Context, idents []string) error

func TargetFilterQueryBuild

func TargetFilterQueryBuild(ctx *ctx.Context, query []map[string]interface{}, limit, offset int) *gorm.DB

func TargetGetTags

func TargetGetTags(ctx *ctx.Context, idents []string) ([]string, error)

func TargetIdents

func TargetIdents(ctx *ctx.Context, ids []int64) ([]string, error)

func TargetIds

func TargetIds(ctx *ctx.Context, idents []string) ([]int64, error)

func TargetTotal

func TargetTotal(ctx *ctx.Context, bgids []int64, dsIds []int64, query string, downtime int64) (int64, error)

func TargetTotalCount

func TargetTotalCount(ctx *ctx.Context) (int64, error)

func TargetUpdateBgid

func TargetUpdateBgid(ctx *ctx.Context, idents []string, bgid int64, clearTags bool) error

func TargetUpdateNote

func TargetUpdateNote(ctx *ctx.Context, idents []string, note string) error

func TaskRecordTotal

func TaskRecordTotal(ctx *ctx.Context, bgids []int64, beginTime int64, createBy, query string) (int64, error)

list task, filter by group_id, create_by

func TaskTplTotal

func TaskTplTotal(ctx *ctx.Context, groupIds []int64, query string) (int64, error)

func UserGroupCount

func UserGroupCount(ctx *ctx.Context, where string, args ...interface{}) (num int64, err error)

func UserGroupIdsOfBusiGroup

func UserGroupIdsOfBusiGroup(ctx *ctx.Context, busiGroupId int64, permFlag ...string) ([]int64, error)

func UserGroupMemberAdd

func UserGroupMemberAdd(ctx *ctx.Context, groupId, userId int64) error

func UserGroupMemberCount

func UserGroupMemberCount(ctx *ctx.Context, where string, args ...interface{}) (int64, error)

func UserGroupMemberDel

func UserGroupMemberDel(ctx *ctx.Context, groupId int64, userIds []int64) error

func UserTotal

func UserTotal(ctx *ctx.Context, query string) (num int64, err error)

func WrapExtendIdent added in v6.7.0

func WrapExtendIdent(ident string) string

func WrapIdent

func WrapIdent(ident string) string

Types

type AggrRule

type AggrRule struct {
	Type  string
	Value string
}

type AlertAggrView

type AlertAggrView struct {
	Id       int64  `json:"id" gorm:"primaryKey"`
	Name     string `json:"name"`
	Rule     string `json:"rule"`
	Cate     int    `json:"cate"`
	CreateAt int64  `json:"create_at"`
	CreateBy int64  `json:"create_by"`
	UpdateAt int64  `json:"update_at"`
}

AlertAggrView 在告警聚合视图查看的时候,要存储一些聚合规则

func AlertAggrViewGet

func AlertAggrViewGet(ctx *ctx.Context, where string, args ...interface{}) (*AlertAggrView, error)

func AlertAggrViewGets

func AlertAggrViewGets(ctx *ctx.Context, createBy interface{}) ([]AlertAggrView, error)

func (*AlertAggrView) Add

func (v *AlertAggrView) Add(ctx *ctx.Context) error

func (*AlertAggrView) DB2FE

func (v *AlertAggrView) DB2FE() error

func (*AlertAggrView) TableName

func (v *AlertAggrView) TableName() string

func (*AlertAggrView) Update

func (v *AlertAggrView) Update(ctx *ctx.Context) error

func (*AlertAggrView) Verify

func (v *AlertAggrView) Verify() error

type AlertCurEvent

type AlertCurEvent struct {
	Id                 int64             `json:"id" gorm:"primaryKey"`
	Cate               string            `json:"cate"`
	Cluster            string            `json:"cluster"`
	DatasourceId       int64             `json:"datasource_id"`
	GroupId            int64             `json:"group_id"`   // busi group id
	GroupName          string            `json:"group_name"` // busi group name
	Hash               string            `json:"hash"`       // rule_id + vector_key
	RuleId             int64             `json:"rule_id"`
	RuleName           string            `json:"rule_name"`
	RuleNote           string            `json:"rule_note"`
	RuleProd           string            `json:"rule_prod"`
	RuleAlgo           string            `json:"rule_algo"`
	Severity           int               `json:"severity"`
	PromForDuration    int               `json:"prom_for_duration"`
	PromQl             string            `json:"prom_ql"`
	RuleConfig         string            `json:"-" gorm:"rule_config"` // rule config
	RuleConfigJson     interface{}       `json:"rule_config" gorm:"-"` // rule config for fe
	PromEvalInterval   int               `json:"prom_eval_interval"`
	Callbacks          string            `json:"-"`                  // for db
	CallbacksJSON      []string          `json:"callbacks" gorm:"-"` // for fe
	RunbookUrl         string            `json:"runbook_url"`
	NotifyRecovered    int               `json:"notify_recovered"`
	NotifyChannels     string            `json:"-"`                          // for db
	NotifyChannelsJSON []string          `json:"notify_channels" gorm:"-"`   // for fe
	NotifyGroups       string            `json:"-"`                          // for db
	NotifyGroupsJSON   []string          `json:"notify_groups" gorm:"-"`     // for fe
	NotifyGroupsObj    []*UserGroup      `json:"notify_groups_obj" gorm:"-"` // for fe
	TargetIdent        string            `json:"target_ident"`
	TargetNote         string            `json:"target_note"`
	TriggerTime        int64             `json:"trigger_time"`
	TriggerValue       string            `json:"trigger_value"`
	Tags               string            `json:"-"`                         // for db
	TagsJSON           []string          `json:"tags" gorm:"-"`             // for fe
	TagsMap            map[string]string `json:"tags_map" gorm:"-"`         // for internal usage
	Annotations        string            `json:"-"`                         //
	AnnotationsJSON    map[string]string `json:"annotations" gorm:"-"`      // for fe
	IsRecovered        bool              `json:"is_recovered" gorm:"-"`     // for notify.py
	NotifyUsersObj     []*User           `json:"notify_users_obj" gorm:"-"` // for notify.py
	LastEvalTime       int64             `json:"last_eval_time" gorm:"-"`   // for notify.py 上次计算的时间
	LastSentTime       int64             `json:"last_sent_time" gorm:"-"`   // 上次发送时间
	NotifyCurNumber    int               `json:"notify_cur_number"`         // notify: current number
	FirstTriggerTime   int64             `json:"first_trigger_time"`        // 连续告警的首次告警时间
	ExtraConfig        interface{}       `json:"extra_config" gorm:"-"`
	Status             int               `json:"status" gorm:"-"`
	Claimant           string            `json:"claimant" gorm:"-"`
	SubRuleId          int64             `json:"sub_rule_id" gorm:"-"`
	ExtraInfo          []string          `json:"extra_info" gorm:"-"`
}

func AlertCurEventGet

func AlertCurEventGet(ctx *ctx.Context, where string, args ...interface{}) (*AlertCurEvent, error)

func AlertCurEventGetById

func AlertCurEventGetById(ctx *ctx.Context, id int64) (*AlertCurEvent, error)

func AlertCurEventGetByIds

func AlertCurEventGetByIds(ctx *ctx.Context, ids []int64) ([]*AlertCurEvent, error)

func AlertCurEventGetByRuleIdAndDsId

func AlertCurEventGetByRuleIdAndDsId(ctx *ctx.Context, ruleId int64, datasourceId int64) ([]*AlertCurEvent, error)

func AlertCurEventGets

func AlertCurEventGets(ctx *ctx.Context, prods []string, bgid, stime, etime int64, severity int, dsIds []int64, cates []string, query string, limit, offset int) ([]AlertCurEvent, error)

func AlertCurEventGetsFromAlertMute added in v6.1.0

func AlertCurEventGetsFromAlertMute(ctx *ctx.Context, alertMute *AlertMute) ([]*AlertCurEvent, error)

AlertCurEventGetsFromAlertMute find current events from db.

func (*AlertCurEvent) Add

func (e *AlertCurEvent) Add(ctx *ctx.Context) error

func (*AlertCurEvent) DB2FE

func (e *AlertCurEvent) DB2FE() error

func (*AlertCurEvent) DB2Mem

func (e *AlertCurEvent) DB2Mem()

func (*AlertCurEvent) FE2DB

func (e *AlertCurEvent) FE2DB()

func (*AlertCurEvent) FillNotifyGroups

func (e *AlertCurEvent) FillNotifyGroups(ctx *ctx.Context, cache map[int64]*UserGroup) error

for webui

func (*AlertCurEvent) GenCardTitle

func (e *AlertCurEvent) GenCardTitle(rules []*AggrRule) string

func (*AlertCurEvent) GetField

func (e *AlertCurEvent) GetField(field string) string

func (*AlertCurEvent) GetTagValue

func (e *AlertCurEvent) GetTagValue(tagkey string) string

func (*AlertCurEvent) ParseRule

func (e *AlertCurEvent) ParseRule(field string) error

func (*AlertCurEvent) TableName

func (e *AlertCurEvent) TableName() string

func (*AlertCurEvent) ToHis

func (e *AlertCurEvent) ToHis(ctx *ctx.Context) *AlertHisEvent

func (*AlertCurEvent) UpdateFieldsMap

func (m *AlertCurEvent) UpdateFieldsMap(ctx *ctx.Context, fields map[string]interface{}) error

type AlertHisEvent

type AlertHisEvent struct {
	Id                 int64             `json:"id" gorm:"primaryKey"`
	Cate               string            `json:"cate"`
	IsRecovered        int               `json:"is_recovered"`
	DatasourceId       int64             `json:"datasource_id"`
	Cluster            string            `json:"cluster"`
	GroupId            int64             `json:"group_id"`
	GroupName          string            `json:"group_name"` // busi group name
	Hash               string            `json:"hash"`
	RuleId             int64             `json:"rule_id"`
	RuleName           string            `json:"rule_name"`
	RuleNote           string            `json:"rule_note"`
	RuleProd           string            `json:"rule_prod"`
	RuleAlgo           string            `json:"rule_algo"`
	Severity           int               `json:"severity"`
	PromForDuration    int               `json:"prom_for_duration"`
	PromQl             string            `json:"prom_ql"`
	RuleConfig         string            `json:"-" gorm:"rule_config"` // rule config
	RuleConfigJson     interface{}       `json:"rule_config" gorm:"-"` // rule config for fe
	PromEvalInterval   int               `json:"prom_eval_interval"`
	Callbacks          string            `json:"-"`
	CallbacksJSON      []string          `json:"callbacks" gorm:"-"`
	RunbookUrl         string            `json:"runbook_url"`
	NotifyRecovered    int               `json:"notify_recovered"`
	NotifyChannels     string            `json:"-"`
	NotifyChannelsJSON []string          `json:"notify_channels" gorm:"-"`
	NotifyGroups       string            `json:"-"`
	NotifyGroupsJSON   []string          `json:"notify_groups" gorm:"-"`
	NotifyGroupsObj    []UserGroup       `json:"notify_groups_obj" gorm:"-"`
	TargetIdent        string            `json:"target_ident"`
	TargetNote         string            `json:"target_note"`
	TriggerTime        int64             `json:"trigger_time"`
	TriggerValue       string            `json:"trigger_value"`
	RecoverTime        int64             `json:"recover_time"`
	LastEvalTime       int64             `json:"last_eval_time"`
	Tags               string            `json:"-"`
	TagsJSON           []string          `json:"tags" gorm:"-"`
	Annotations        string            `json:"-"`
	AnnotationsJSON    map[string]string `json:"annotations" gorm:"-"` // for fe
	NotifyCurNumber    int               `json:"notify_cur_number"`    // notify: current number
	FirstTriggerTime   int64             `json:"first_trigger_time"`   // 连续告警的首次告警时间
	ExtraConfig        interface{}       `json:"extra_config" gorm:"-"`
}

func AlertHisEventGet

func AlertHisEventGet(ctx *ctx.Context, where string, args ...interface{}) (*AlertHisEvent, error)

func AlertHisEventGetById

func AlertHisEventGetById(ctx *ctx.Context, id int64) (*AlertHisEvent, error)

func AlertHisEventGets

func AlertHisEventGets(ctx *ctx.Context, prods []string, bgid, stime, etime int64, severity int, recovered int, dsIds []int64, cates []string, query string, limit, offset int) ([]AlertHisEvent, error)

func (*AlertHisEvent) Add

func (e *AlertHisEvent) Add(ctx *ctx.Context) error

func (*AlertHisEvent) DB2FE

func (e *AlertHisEvent) DB2FE()

func (*AlertHisEvent) FillNotifyGroups

func (e *AlertHisEvent) FillNotifyGroups(ctx *ctx.Context, cache map[int64]*UserGroup) error

func (*AlertHisEvent) TableName

func (e *AlertHisEvent) TableName() string

func (*AlertHisEvent) UpdateFieldsMap

func (m *AlertHisEvent) UpdateFieldsMap(ctx *ctx.Context, fields map[string]interface{}) error

type AlertMute

type AlertMute struct {
	Id                int64          `json:"id" gorm:"primaryKey"`
	GroupId           int64          `json:"group_id"`
	Note              string         `json:"note"`
	Cate              string         `json:"cate"`
	Prod              string         `json:"prod"`
	DatasourceIds     string         `json:"-" gorm:"datasource_ids"` // datasource ids
	DatasourceIdsJson []int64        `json:"datasource_ids" gorm:"-"` // for fe
	Cluster           string         `json:"cluster"`                 // take effect by clusters, seperated by space
	Tags              ormx.JSONArr   `json:"tags"`
	Cause             string         `json:"cause"`
	Btime             int64          `json:"btime"`
	Etime             int64          `json:"etime"`
	Disabled          int            `json:"disabled"` // 0: enabled, 1: disabled
	CreateBy          string         `json:"create_by"`
	UpdateBy          string         `json:"update_by"`
	CreateAt          int64          `json:"create_at"`
	UpdateAt          int64          `json:"update_at"`
	ITags             []TagFilter    `json:"-" gorm:"-"`     // inner tags
	MuteTimeType      int            `json:"mute_time_type"` //  0: mute by time range, 1: mute by periodic time
	PeriodicMutes     string         `json:"-" gorm:"periodic_mutes"`
	PeriodicMutesJson []PeriodicMute `json:"periodic_mutes" gorm:"-"`
	Severities        string         `json:"-" gorm:"severities"`
	SeveritiesJson    []int          `json:"severities" gorm:"-"`
}

func AlertMuteGet

func AlertMuteGet(ctx *ctx.Context, where string, args ...interface{}) (*AlertMute, error)

func AlertMuteGetById

func AlertMuteGetById(ctx *ctx.Context, id int64) (*AlertMute, error)

func AlertMuteGets

func AlertMuteGets(ctx *ctx.Context, prods []string, bgid int64, query string) (lst []AlertMute, err error)

func AlertMuteGetsAll

func AlertMuteGetsAll(ctx *ctx.Context) ([]*AlertMute, error)

func AlertMuteGetsByBG

func AlertMuteGetsByBG(ctx *ctx.Context, groupId int64) (lst []AlertMute, err error)

func AlertMuteGetsByBGIds added in v6.6.0

func AlertMuteGetsByBGIds(ctx *ctx.Context, bgIds []int64) (lst []AlertMute, err error)

func (*AlertMute) Add

func (m *AlertMute) Add(ctx *ctx.Context) error

func (*AlertMute) DB2FE

func (m *AlertMute) DB2FE() error

func (*AlertMute) FE2DB

func (m *AlertMute) FE2DB() error

func (*AlertMute) Parse

func (m *AlertMute) Parse() error

func (*AlertMute) TableName

func (m *AlertMute) TableName() string

func (*AlertMute) Update

func (m *AlertMute) Update(ctx *ctx.Context, arm AlertMute) error

func (*AlertMute) UpdateFieldsMap

func (m *AlertMute) UpdateFieldsMap(ctx *ctx.Context, fields map[string]interface{}) error

func (*AlertMute) Verify

func (m *AlertMute) Verify() error

type AlertNumber

type AlertNumber struct {
	GroupId    int64
	GroupCount int64
}

type AlertRule

type AlertRule struct {
	Id                    int64             `json:"id" gorm:"primaryKey"`
	GroupId               int64             `json:"group_id"`                      // busi group id
	Cate                  string            `json:"cate"`                          // alert rule cate (prometheus|elasticsearch)
	DatasourceIds         string            `json:"-" gorm:"datasource_ids"`       // datasource ids
	DatasourceIdsJson     []int64           `json:"datasource_ids" gorm:"-"`       // for fe
	Cluster               string            `json:"cluster"`                       // take effect by clusters, seperated by space
	Name                  string            `json:"name"`                          // rule name
	Note                  string            `json:"note"`                          // will sent in notify
	Prod                  string            `json:"prod"`                          // product empty means n9e
	Algorithm             string            `json:"algorithm"`                     // algorithm (”|holtwinters), empty means threshold
	AlgoParams            string            `json:"-" gorm:"algo_params"`          // params algorithm need
	AlgoParamsJson        interface{}       `json:"algo_params" gorm:"-"`          // for fe
	Delay                 int               `json:"delay"`                         // Time (in seconds) to delay evaluation
	Severity              int               `json:"severity"`                      // 1: Emergency 2: Warning 3: Notice
	Severities            []int             `json:"severities" gorm:"-"`           // 1: Emergency 2: Warning 3: Notice
	Disabled              int               `json:"disabled"`                      // 0: enabled, 1: disabled
	PromForDuration       int               `json:"prom_for_duration"`             // prometheus for, unit:s
	PromQl                string            `json:"prom_ql"`                       // just one ql
	RuleConfig            string            `json:"-" gorm:"rule_config"`          // rule config
	RuleConfigJson        interface{}       `json:"rule_config" gorm:"-"`          // rule config for fe
	PromEvalInterval      int               `json:"prom_eval_interval"`            // unit:s
	EnableStime           string            `json:"-"`                             // split by space: "00:00 10:00 12:00"
	EnableStimeJSON       string            `json:"enable_stime" gorm:"-"`         // for fe
	EnableStimesJSON      []string          `json:"enable_stimes" gorm:"-"`        // for fe
	EnableEtime           string            `json:"-"`                             // split by space: "00:00 10:00 12:00"
	EnableEtimeJSON       string            `json:"enable_etime" gorm:"-"`         // for fe
	EnableEtimesJSON      []string          `json:"enable_etimes" gorm:"-"`        // for fe
	EnableDaysOfWeek      string            `json:"-"`                             // eg: "0 1 2 3 4 5 6 ; 0 1 2"
	EnableDaysOfWeekJSON  []string          `json:"enable_days_of_week" gorm:"-"`  // for fe
	EnableDaysOfWeeksJSON [][]string        `json:"enable_days_of_weeks" gorm:"-"` // for fe
	EnableInBG            int               `json:"enable_in_bg"`                  // 0: global 1: enable one busi-group
	NotifyRecovered       int               `json:"notify_recovered"`              // whether notify when recovery
	NotifyChannels        string            `json:"-"`                             // split by space: sms voice email dingtalk wecom
	NotifyChannelsJSON    []string          `json:"notify_channels" gorm:"-"`      // for fe
	NotifyGroups          string            `json:"-"`                             // split by space: 233 43
	NotifyGroupsObj       []UserGroup       `json:"notify_groups_obj" gorm:"-"`    // for fe
	NotifyGroupsJSON      []string          `json:"notify_groups" gorm:"-"`        // for fe
	NotifyRepeatStep      int               `json:"notify_repeat_step"`            // notify repeat interval, unit: min
	NotifyMaxNumber       int               `json:"notify_max_number"`             // notify: max number
	RecoverDuration       int64             `json:"recover_duration"`              // unit: s
	Callbacks             string            `json:"-"`                             // split by space: http://a.com/api/x http://a.com/api/y'
	CallbacksJSON         []string          `json:"callbacks" gorm:"-"`            // for fe
	RunbookUrl            string            `json:"runbook_url"`                   // sop url
	AppendTags            string            `json:"-"`                             // split by space: service=n9e mod=api
	AppendTagsJSON        []string          `json:"append_tags" gorm:"-"`          // for fe
	Annotations           string            `json:"-"`                             //
	AnnotationsJSON       map[string]string `json:"annotations" gorm:"-"`          // for fe
	ExtraConfig           string            `json:"-" gorm:"extra_config"`         // extra config
	ExtraConfigJSON       interface{}       `json:"extra_config" gorm:"-"`         // for fe
	CreateAt              int64             `json:"create_at"`
	CreateBy              string            `json:"create_by"`
	UpdateAt              int64             `json:"update_at"`
	UpdateBy              string            `json:"update_by"`
}

func AlertRuleGet

func AlertRuleGet(ctx *ctx.Context, where string, args ...interface{}) (*AlertRule, error)

func AlertRuleGetById

func AlertRuleGetById(ctx *ctx.Context, id int64) (*AlertRule, error)

func AlertRuleGets

func AlertRuleGets(ctx *ctx.Context, groupId int64) ([]AlertRule, error)

func AlertRuleGetsAll

func AlertRuleGetsAll(ctx *ctx.Context) ([]*AlertRule, error)

func AlertRuleGetsByBGIds added in v6.6.0

func AlertRuleGetsByBGIds(ctx *ctx.Context, bgids []int64) ([]AlertRule, error)

func AlertRulesGetsBy

func AlertRulesGetsBy(ctx *ctx.Context, prods []string, query, algorithm, cluster string, cates []string, disabled int) ([]*AlertRule, error)

func (*AlertRule) Add

func (ar *AlertRule) Add(ctx *ctx.Context) error

func (*AlertRule) DB2FE

func (ar *AlertRule) DB2FE() error

func (*AlertRule) FE2DB

func (ar *AlertRule) FE2DB() error

func (*AlertRule) FillDatasourceIds

func (ar *AlertRule) FillDatasourceIds() error

for v5 rule

func (*AlertRule) FillNotifyGroups

func (ar *AlertRule) FillNotifyGroups(ctx *ctx.Context, cache map[int64]*UserGroup) error

func (*AlertRule) FillSeverities

func (ar *AlertRule) FillSeverities() error

func (*AlertRule) GenerateNewEvent

func (ar *AlertRule) GenerateNewEvent(ctx *ctx.Context) *AlertCurEvent

func (*AlertRule) GetRuleType

func (ar *AlertRule) GetRuleType() string

func (*AlertRule) IsHostRule

func (ar *AlertRule) IsHostRule() bool

func (*AlertRule) IsLokiRule added in v6.2.0

func (ar *AlertRule) IsLokiRule() bool

func (*AlertRule) IsPrometheusRule

func (ar *AlertRule) IsPrometheusRule() bool

func (*AlertRule) IsTdengineRule added in v6.2.0

func (ar *AlertRule) IsTdengineRule() bool

func (*AlertRule) TableName

func (ar *AlertRule) TableName() string

func (*AlertRule) Update

func (ar *AlertRule) Update(ctx *ctx.Context, arf AlertRule) error

func (*AlertRule) UpdateColumn

func (ar *AlertRule) UpdateColumn(ctx *ctx.Context, column string, value interface{}) error

func (*AlertRule) UpdateEvent

func (ar *AlertRule) UpdateEvent(event *AlertCurEvent)

func (*AlertRule) UpdateFieldsMap

func (ar *AlertRule) UpdateFieldsMap(ctx *ctx.Context, fields map[string]interface{}) error

func (*AlertRule) Verify

func (ar *AlertRule) Verify() error

type AlertSubscribe

type AlertSubscribe struct {
	Id                int64        `json:"id" gorm:"primaryKey"`
	Name              string       `json:"name"`     // AlertSubscribe name
	Disabled          int          `json:"disabled"` // 0: enabled, 1: disabled
	GroupId           int64        `json:"group_id"`
	Prod              string       `json:"prod"`
	Cate              string       `json:"cate"`
	DatasourceIds     string       `json:"-" gorm:"datasource_ids"` // datasource ids
	DatasourceIdsJson []int64      `json:"datasource_ids" gorm:"-"` // for fe
	Cluster           string       `json:"cluster"`                 // take effect by clusters, seperated by space
	RuleId            int64        `json:"rule_id"`
	Severities        string       `json:"-" gorm:"severities"` // sub severity
	SeveritiesJson    []int        `json:"severities" gorm:"-"` // for fe
	ForDuration       int64        `json:"for_duration"`        // for duration, unit: second
	RuleName          string       `json:"rule_name" gorm:"-"`  // for fe
	Tags              ormx.JSONArr `json:"tags"`
	RedefineSeverity  int          `json:"redefine_severity"`
	NewSeverity       int          `json:"new_severity"`
	RedefineChannels  int          `json:"redefine_channels"`
	NewChannels       string       `json:"new_channels"`
	UserGroupIds      string       `json:"user_group_ids"`
	UserGroups        []UserGroup  `json:"user_groups" gorm:"-"` // for fe
	RedefineWebhooks  int          `json:"redefine_webhooks"`
	Webhooks          string       `json:"-" gorm:"webhooks"`
	WebhooksJson      []string     `json:"webhooks" gorm:"-"`
	ExtraConfig       string       `json:"-" grom:"extra_config"`
	ExtraConfigJson   interface{}  `json:"extra_config" gorm:"-"` // for fe
	Note              string       `json:"note"`
	CreateBy          string       `json:"create_by"`
	CreateAt          int64        `json:"create_at"`
	UpdateBy          string       `json:"update_by"`
	UpdateAt          int64        `json:"update_at"`
	ITags             []TagFilter  `json:"-" gorm:"-"` // inner tags
	BusiGroups        ormx.JSONArr `json:"busi_groups"`
	IBusiGroups       []TagFilter  `json:"-" gorm:"-"` // inner busiGroups
}

func AlertSubscribeGet

func AlertSubscribeGet(ctx *ctx.Context, where string, args ...interface{}) (*AlertSubscribe, error)

func AlertSubscribeGets

func AlertSubscribeGets(ctx *ctx.Context, groupId int64) (lst []AlertSubscribe, err error)

func AlertSubscribeGetsAll

func AlertSubscribeGetsAll(ctx *ctx.Context) ([]*AlertSubscribe, error)

func AlertSubscribeGetsByBGIds added in v6.6.0

func AlertSubscribeGetsByBGIds(ctx *ctx.Context, bgIds []int64) (lst []AlertSubscribe, err error)

func AlertSubscribeGetsByService

func AlertSubscribeGetsByService(ctx *ctx.Context) (lst []AlertSubscribe, err error)

func (*AlertSubscribe) Add

func (s *AlertSubscribe) Add(ctx *ctx.Context) error

func (*AlertSubscribe) DB2FE

func (s *AlertSubscribe) DB2FE() error

func (*AlertSubscribe) FE2DB

func (s *AlertSubscribe) FE2DB() error

func (*AlertSubscribe) FillDatasourceIds

func (s *AlertSubscribe) FillDatasourceIds(ctx *ctx.Context) error

for v5 rule

func (*AlertSubscribe) FillRuleName

func (s *AlertSubscribe) FillRuleName(ctx *ctx.Context, cache map[int64]string) error

func (*AlertSubscribe) FillUserGroups

func (s *AlertSubscribe) FillUserGroups(ctx *ctx.Context, cache map[int64]*UserGroup) error

func (*AlertSubscribe) IsDisabled

func (s *AlertSubscribe) IsDisabled() bool

func (*AlertSubscribe) MatchCluster

func (s *AlertSubscribe) MatchCluster(dsId int64) bool

func (*AlertSubscribe) MatchProd

func (s *AlertSubscribe) MatchProd(prod string) bool

func (*AlertSubscribe) ModifyEvent

func (s *AlertSubscribe) ModifyEvent(event *AlertCurEvent)

func (*AlertSubscribe) Parse

func (s *AlertSubscribe) Parse() error

func (*AlertSubscribe) TableName

func (s *AlertSubscribe) TableName() string

func (*AlertSubscribe) Update

func (s *AlertSubscribe) Update(ctx *ctx.Context, selectField interface{}, selectFields ...interface{}) error

func (*AlertSubscribe) UpdateFieldsMap

func (s *AlertSubscribe) UpdateFieldsMap(ctx *ctx.Context, fields map[string]interface{}) error

func (*AlertSubscribe) Verify

func (s *AlertSubscribe) Verify() error

type AlertingEngines

type AlertingEngines struct {
	Id            int64  `json:"id" gorm:"primaryKey"`
	Instance      string `json:"instance"`
	EngineCluster string `json:"cluster" gorm:"engine_cluster"`
	DatasourceId  int64  `json:"datasource_id"`
	Clock         int64  `json:"clock"`
}

func AlertingEngineGet

func AlertingEngineGet(ctx *ctx.Context, where string, args ...interface{}) (*AlertingEngines, error)

func AlertingEngineGets

func AlertingEngineGets(ctx *ctx.Context, where string, args ...interface{}) ([]*AlertingEngines, error)

AlertingEngineGets 拉取列表数据,用户要在页面上看到所有 n9e-server 实例列表,然后为其分配 cluster

func (*AlertingEngines) TableName

func (e *AlertingEngines) TableName() string

func (*AlertingEngines) UpdateDatasourceId

func (e *AlertingEngines) UpdateDatasourceId(ctx *ctx.Context, id int64) error

UpdateCluster 页面上用户会给各个n9e-server分配要关联的目标集群是什么

type Auth

type Auth struct {
	BasicAuth         bool   `json:"basic_auth"`
	BasicAuthUser     string `json:"basic_auth_user"`
	BasicAuthPassword string `json:"basic_auth_password"`
}

type Board

type Board struct {
	Id       int64  `json:"id" gorm:"primaryKey"`
	GroupId  int64  `json:"group_id"`
	Name     string `json:"name"`
	Ident    string `json:"ident"`
	Tags     string `json:"tags"`
	CreateAt int64  `json:"create_at"`
	CreateBy string `json:"create_by"`
	UpdateAt int64  `json:"update_at"`
	UpdateBy string `json:"update_by"`
	Configs  string `json:"configs" gorm:"-"`
	Public   int    `json:"public"`   // 0: false, 1: true
	BuiltIn  int    `json:"built_in"` // 0: false, 1: true
	Hide     int    `json:"hide"`     // 0: false, 1: true
}

func BoardGet

func BoardGet(ctx *ctx.Context, where string, args ...interface{}) (*Board, error)

BoardGet for detail page

func BoardGetByID

func BoardGetByID(ctx *ctx.Context, id int64) (*Board, error)

func BoardGets

func BoardGets(ctx *ctx.Context, query, where string, args ...interface{}) ([]Board, error)

func BoardGetsByBGIds added in v6.6.0

func BoardGetsByBGIds(ctx *ctx.Context, gids []int64, query string) ([]Board, error)

func BoardGetsByGroupId

func BoardGetsByGroupId(ctx *ctx.Context, groupId int64, query string) ([]Board, error)

BoardGets for list page

func (*Board) Add

func (b *Board) Add(ctx *ctx.Context) error

func (*Board) CanRenameIdent

func (b *Board) CanRenameIdent(ctx *ctx.Context, ident string) (bool, error)

func (*Board) DB2FE

func (b *Board) DB2FE() error

func (*Board) Del

func (b *Board) Del(ctx *ctx.Context) error

func (*Board) TableName

func (b *Board) TableName() string

func (*Board) Update

func (b *Board) Update(ctx *ctx.Context, selectField interface{}, selectFields ...interface{}) error

func (*Board) Verify

func (b *Board) Verify() error

type BoardPayload

type BoardPayload struct {
	Id      int64  `json:"id" gorm:"primaryKey"`
	Payload string `json:"payload"`
}

func BoardPayloadGets

func BoardPayloadGets(ctx *ctx.Context, ids []int64) ([]*BoardPayload, error)

func (*BoardPayload) TableName

func (p *BoardPayload) TableName() string

func (*BoardPayload) Update

func (p *BoardPayload) Update(ctx *ctx.Context, selectField interface{}, selectFields ...interface{}) error

type BuiltinCate

type BuiltinCate struct {
	Id     int64  `json:"id" gorm:"primaryKey"`
	Name   string `json:"name"`
	UserId int64  `json:"user_id"`
}

func (*BuiltinCate) Create

func (b *BuiltinCate) Create(c *ctx.Context) error

创建 builtin_cate

func (*BuiltinCate) TableName

func (b *BuiltinCate) TableName() string

type BusiGroup

type BusiGroup struct {
	Id          int64                   `json:"id" gorm:"primaryKey"`
	Name        string                  `json:"name"`
	LabelEnable int                     `json:"label_enable"`
	LabelValue  string                  `json:"label_value"`
	CreateAt    int64                   `json:"create_at"`
	CreateBy    string                  `json:"create_by"`
	UpdateAt    int64                   `json:"update_at"`
	UpdateBy    string                  `json:"update_by"`
	UserGroups  []UserGroupWithPermFlag `json:"user_groups" gorm:"-"`
	DB          *gorm.DB                `json:"-" gorm:"-"`
}

func BusiGroupGet

func BusiGroupGet(ctx *ctx.Context, where string, args ...interface{}) (*BusiGroup, error)

func BusiGroupGetAll

func BusiGroupGetAll(ctx *ctx.Context) ([]*BusiGroup, error)

func BusiGroupGetById

func BusiGroupGetById(ctx *ctx.Context, id int64) (*BusiGroup, error)

func New

func New(db *gorm.DB) *BusiGroup

func (*BusiGroup) AddMembers

func (bg *BusiGroup) AddMembers(ctx *ctx.Context, members []BusiGroupMember, username string) error

func (*BusiGroup) DB2FE

func (bg *BusiGroup) DB2FE() error

func (*BusiGroup) Del

func (bg *BusiGroup) Del(ctx *ctx.Context) error

func (*BusiGroup) DelMembers

func (bg *BusiGroup) DelMembers(ctx *ctx.Context, members []BusiGroupMember, username string) error

func (*BusiGroup) FillUserGroups

func (bg *BusiGroup) FillUserGroups(ctx *ctx.Context) error

func (*BusiGroup) TableName

func (bg *BusiGroup) TableName() string

func (*BusiGroup) Update

func (bg *BusiGroup) Update(ctx *ctx.Context, name string, labelEnable int, labelValue string, updateBy string) error

type BusiGroupMember

type BusiGroupMember struct {
	BusiGroupId int64  `json:"busi_group_id"`
	UserGroupId int64  `json:"user_group_id"`
	PermFlag    string `json:"perm_flag"`
}

func BusiGroupMemberGet

func BusiGroupMemberGet(ctx *ctx.Context, where string, args ...interface{}) (*BusiGroupMember, error)

func BusiGroupMemberGets

func BusiGroupMemberGets(ctx *ctx.Context, where string, args ...interface{}) ([]BusiGroupMember, error)

func BusiGroupMemberGetsByBusiGroupId

func BusiGroupMemberGetsByBusiGroupId(ctx *ctx.Context, busiGroupId int64) ([]BusiGroupMember, error)

func (*BusiGroupMember) DB2FE

func (bgm *BusiGroupMember) DB2FE() error

func (BusiGroupMember) TableName

func (BusiGroupMember) TableName() string

type Chart

type Chart struct {
	Id      int64  `json:"id" gorm:"primaryKey"`
	GroupId int64  `json:"group_id"`
	Configs string `json:"configs"`
	Weight  int    `json:"weight"`
}

func ChartsOf

func ChartsOf(ctx *ctx.Context, chartGroupId int64) ([]Chart, error)

func (*Chart) Add

func (c *Chart) Add(ctx *ctx.Context) error

func (*Chart) Del

func (c *Chart) Del(ctx *ctx.Context) error

func (*Chart) TableName

func (c *Chart) TableName() string

func (*Chart) Update

func (c *Chart) Update(ctx *ctx.Context, selectField interface{}, selectFields ...interface{}) error

type ChartGroup

type ChartGroup struct {
	Id          int64  `json:"id" gorm:"primaryKey"`
	DashboardId int64  `json:"dashboard_id"`
	Name        string `json:"name"`
	Weight      int    `json:"weight"`
}

func ChartGroupsOf

func ChartGroupsOf(ctx *ctx.Context, dashId int64) ([]ChartGroup, error)

func (*ChartGroup) Add

func (cg *ChartGroup) Add(ctx *ctx.Context) error

func (*ChartGroup) Del

func (cg *ChartGroup) Del(ctx *ctx.Context) error

func (*ChartGroup) TableName

func (cg *ChartGroup) TableName() string

func (*ChartGroup) Update

func (cg *ChartGroup) Update(ctx *ctx.Context, selectField interface{}, selectFields ...interface{}) error

func (*ChartGroup) Verify

func (cg *ChartGroup) Verify() error

type ChartShare

type ChartShare struct {
	Id           int64  `json:"id" gorm:"primaryKey"`
	Cluster      string `json:"cluster"`
	DatasourceId int64  `json:"datasource_id"`
	Configs      string `json:"configs"`
	CreateBy     string `json:"create_by"`
	CreateAt     int64  `json:"create_at"`
}

func ChartShareGetsByIds

func ChartShareGetsByIds(ctx *ctx.Context, ids []int64) ([]ChartShare, error)

func (*ChartShare) Add

func (cs *ChartShare) Add(ctx *ctx.Context) error

func (*ChartShare) TableName

func (cs *ChartShare) TableName() string

type Configs

type Configs struct {
	Id        int64  `json:"id" gorm:"primaryKey"`
	Ckey      string `json:"ckey"` // Before inserting external configs, check if they are already defined as built-in configs.
	Cval      string `json:"cval"`
	Note      string `json:"note"`
	External  int    `json:"external"`  //Controls frontend list display: 0 hides built-in (default), 1 shows external
	Encrypted int    `json:"encrypted"` //Indicates whether the value(cval) is encrypted (1 for ciphertext, 0 for plaintext(default))
	CreateAt  int64  `json:"create_at"`
	CreateBy  string `json:"create_by"`
	UpdateAt  int64  `json:"update_at"`
	UpdateBy  string `json:"update_by"`
}

func ConfigGet

func ConfigGet(ctx *ctx.Context, id int64) (*Configs, error)

func ConfigsGetUserVariable added in v6.3.0

func ConfigsGetUserVariable(context *ctx.Context) ([]Configs, error)

func ConfigsGets

func ConfigsGets(ctx *ctx.Context, prefix string, limit, offset int) ([]*Configs, error)

func ConfigsSelectByCkey added in v6.3.0

func ConfigsSelectByCkey(ctx *ctx.Context, ckey string) ([]Configs, error)

func (*Configs) Add

func (c *Configs) Add(ctx *ctx.Context) error

func (*Configs) DB2FE

func (c *Configs) DB2FE() error

func (Configs) TableName

func (Configs) TableName() string

func (*Configs) Update

func (c *Configs) Update(ctx *ctx.Context) error

type Dashboard

type Dashboard struct {
	Id       int64    `json:"id" gorm:"primaryKey"`
	GroupId  int64    `json:"group_id"`
	Name     string   `json:"name"`
	Tags     string   `json:"-"`
	TagsLst  []string `json:"tags" gorm:"-"`
	Configs  string   `json:"configs"`
	CreateAt int64    `json:"create_at"`
	CreateBy string   `json:"create_by"`
	UpdateAt int64    `json:"update_at"`
	UpdateBy string   `json:"update_by"`
}

func DashboardGet

func DashboardGet(ctx *ctx.Context, where string, args ...interface{}) (*Dashboard, error)

func DashboardGetAll

func DashboardGetAll(ctx *ctx.Context) ([]Dashboard, error)

func DashboardGets

func DashboardGets(ctx *ctx.Context, groupId int64, query string) ([]Dashboard, error)

func DashboardGetsByIds

func DashboardGetsByIds(ctx *ctx.Context, ids []int64) ([]Dashboard, error)

func (*Dashboard) Add

func (d *Dashboard) Add(ctx *ctx.Context) error

func (*Dashboard) Del

func (d *Dashboard) Del(ctx *ctx.Context) error

func (*Dashboard) TableName

func (d *Dashboard) TableName() string

func (*Dashboard) Update

func (d *Dashboard) Update(ctx *ctx.Context, selectField interface{}, selectFields ...interface{}) error

func (*Dashboard) Verify

func (d *Dashboard) Verify() error

type DataResp added in v6.2.0

type DataResp struct {
	Ref    string       `json:"ref"`
	Metric model.Metric `json:"metric"`
	Labels string       `json:"-"`
	Values [][]float64  `json:"values"`
}

func (*DataResp) Last added in v6.2.0

func (d *DataResp) Last() (float64, float64, bool)

func (*DataResp) MetricName added in v6.2.0

func (d *DataResp) MetricName() string

type Datasource

type Datasource struct {
	Id             int64                  `json:"id"`
	Name           string                 `json:"name"`
	Description    string                 `json:"description"`
	PluginId       int64                  `json:"plugin_id"`
	PluginType     string                 `json:"plugin_type"`      // prometheus
	PluginTypeName string                 `json:"plugin_type_name"` // Prometheus Like
	Category       string                 `json:"category"`         // timeseries
	ClusterName    string                 `json:"cluster_name"`
	Settings       string                 `json:"-" gorm:"settings"`
	SettingsJson   map[string]interface{} `json:"settings" gorm:"-"`
	Status         string                 `json:"status"`
	HTTP           string                 `json:"-" gorm:"http"`
	HTTPJson       HTTP                   `json:"http" gorm:"-"`
	Auth           string                 `json:"-" gorm:"auth"`
	AuthJson       Auth                   `json:"auth" gorm:"-"`
	CreatedAt      int64                  `json:"created_at"`
	UpdatedAt      int64                  `json:"updated_at"`
	CreatedBy      string                 `json:"created_by"`
	UpdatedBy      string                 `json:"updated_by"`
	IsDefault      bool                   `json:"is_default"`
	Transport      *http.Transport        `json:"-" gorm:"-"`
}

func DatasourceGet

func DatasourceGet(ctx *ctx.Context, id int64) (*Datasource, error)

func GetDatasources

func GetDatasources(ctx *ctx.Context) ([]Datasource, error)

func GetDatasourcesGetsBy

func GetDatasourcesGetsBy(ctx *ctx.Context, typ, cate, name, status string) ([]*Datasource, error)

func (*Datasource) Add

func (ds *Datasource) Add(ctx *ctx.Context) error

func (*Datasource) DB2FE

func (ds *Datasource) DB2FE() error

func (*Datasource) FE2DB

func (ds *Datasource) FE2DB() error

func (*Datasource) Get

func (ds *Datasource) Get(ctx *ctx.Context) error

func (*Datasource) TableName

func (ds *Datasource) TableName() string

func (*Datasource) Update

func (ds *Datasource) Update(ctx *ctx.Context, selectField interface{}, selectFields ...interface{}) error

func (*Datasource) Verify

func (ds *Datasource) Verify() error

type EsIndexPattern

type EsIndexPattern struct {
	Id                         int64  `json:"id" gorm:"primaryKey"`
	DatasourceId               int64  `json:"datasource_id"`
	Name                       string `json:"name"`
	TimeField                  string `json:"time_field"`
	AllowHideSystemIndices     int    `json:"-" gorm:"allow_hide_system_indices"`
	AllowHideSystemIndicesBool bool   `json:"allow_hide_system_indices" gorm:"-"`
	FieldsFormat               string `json:"fields_format"`
	CreateAt                   int64  `json:"create_at"`
	CreateBy                   string `json:"create_by"`
	UpdateAt                   int64  `json:"update_at"`
	UpdateBy                   string `json:"update_by"`
}

func EsIndexPatternGet

func EsIndexPatternGet(ctx *ctx.Context, where string, args ...interface{}) (*EsIndexPattern, error)

func EsIndexPatternGetById

func EsIndexPatternGetById(ctx *ctx.Context, id int64) (*EsIndexPattern, error)

func EsIndexPatternGets

func EsIndexPatternGets(ctx *ctx.Context, where string, args ...interface{}) ([]*EsIndexPattern, error)

func (*EsIndexPattern) Add

func (r *EsIndexPattern) Add(ctx *ctx.Context) error

func (*EsIndexPattern) DB2FE added in v6.1.0

func (dbIndexPatten *EsIndexPattern) DB2FE()

func (*EsIndexPattern) FE2DB added in v6.1.0

func (feIndexPatten *EsIndexPattern) FE2DB()

func (*EsIndexPattern) TableName

func (t *EsIndexPattern) TableName() string

func (*EsIndexPattern) Update

func (ei *EsIndexPattern) Update(ctx *ctx.Context, eip EsIndexPattern) error

type HTTP

type HTTP struct {
	Timeout             int64             `json:"timeout"`
	DialTimeout         int64             `json:"dial_timeout"`
	TLS                 TLS               `json:"tls"`
	MaxIdleConnsPerHost int               `json:"max_idle_conns_per_host"`
	Url                 string            `json:"url"`
	Headers             map[string]string `json:"headers"`
}

func (HTTP) IsLoki added in v6.0.2

func (h HTTP) IsLoki() bool

type HeartbeatInfo

type HeartbeatInfo struct {
	Instance      string `json:"instance"`
	EngineCluster string `json:"engine_cluster"`
	DatasourceId  int64  `json:"datasource_id"`
}

type HostMeta

type HostMeta struct {
	AgentVersion string                 `json:"agent_version"`
	OS           string                 `json:"os"`
	Arch         string                 `json:"arch"`
	Hostname     string                 `json:"hostname"`
	CpuNum       int                    `json:"cpu_num"`
	CpuUtil      float64                `json:"cpu_util"`
	MemUtil      float64                `json:"mem_util"`
	Offset       int64                  `json:"offset"`
	UnixTime     int64                  `json:"unixtime"`
	RemoteAddr   string                 `json:"remote_addr"`
	HostIp       string                 `json:"host_ip"`
	GlobalLabels map[string]string      `json:"global_labels"`
	ExtendInfo   map[string]interface{} `json:"extend_info"`
}

func (HostMeta) MarshalBinary

func (h HostMeta) MarshalBinary() ([]byte, error)

func (*HostMeta) UnmarshalBinary

func (h *HostMeta) UnmarshalBinary(data []byte) error

type HostQuery

type HostQuery struct {
	Key    string        `json:"key"`
	Op     string        `json:"op"`
	Values []interface{} `json:"values"`
}

type HostRuleConfig

type HostRuleConfig struct {
	Queries  []HostQuery   `json:"queries"`
	Triggers []HostTrigger `json:"triggers"`
	Inhibit  bool          `json:"inhibit"`
}

type HostTrigger

type HostTrigger struct {
	Type     string `json:"type"`
	Duration int    `json:"duration"`
	Percent  int    `json:"percent"`
	Severity int    `json:"severity"`
}

type LabelAndKey

type LabelAndKey struct {
	Label string `json:"label"`
	Key   string `json:"key"`
}

type MetricView

type MetricView struct {
	Id       int64  `json:"id" gorm:"primaryKey"`
	Name     string `json:"name"`
	Cate     int    `json:"cate"`
	Configs  string `json:"configs"`
	CreateAt int64  `json:"create_at"`
	CreateBy int64  `json:"create_by"`
	UpdateAt int64  `json:"update_at"`
}

MetricView 在告警聚合视图查看的时候,要存储一些聚合规则

func MetricViewGet

func MetricViewGet(ctx *ctx.Context, where string, args ...interface{}) (*MetricView, error)

func MetricViewGets

func MetricViewGets(ctx *ctx.Context, createBy interface{}) ([]MetricView, error)

func (*MetricView) Add

func (v *MetricView) Add(ctx *ctx.Context) error

func (*MetricView) DB2FE

func (v *MetricView) DB2FE() error

func (*MetricView) TableName

func (v *MetricView) TableName() string

func (*MetricView) Update

func (v *MetricView) Update(ctx *ctx.Context, name, configs string, cate int, createBy int64) error

func (*MetricView) Verify

func (v *MetricView) Verify() error

type NotifyChannel

type NotifyChannel struct {
	Name    string `json:"name"`
	Ident   string `json:"ident"`
	Hide    bool   `json:"hide"`
	BuiltIn bool   `json:"built_in"`
}

type NotifyContact

type NotifyContact struct {
	Name    string `json:"name"`
	Ident   string `json:"ident"`
	Hide    bool   `json:"hide"`
	BuiltIn bool   `json:"built_in"`
}

type NotifyScript

type NotifyScript struct {
	Enable  bool   `json:"enable"`
	Type    int    `json:"type"` // 0 script 1 path
	Content string `json:"content"`
	Timeout int    `json:"timeout"`
}

type NotifyTpl

type NotifyTpl struct {
	Id       int64  `json:"id"`
	Name     string `json:"name"`
	Channel  string `json:"channel"`
	Content  string `json:"content"`
	BuiltIn  bool   `json:"built_in" gorm:"-"`
	CreateAt int64  `json:"create_at"`
	CreateBy string `json:"create_by"`
	UpdateAt int64  `json:"update_at"`
	UpdateBy string `json:"update_by"`
}

func NotifyTplGet added in v6.7.0

func NotifyTplGet(c *ctx.Context, id int64) (*NotifyTpl, error)

get notify by id

func NotifyTplGets

func NotifyTplGets(c *ctx.Context) ([]*NotifyTpl, error)

func (*NotifyTpl) Create

func (n *NotifyTpl) Create(c *ctx.Context) error

func (*NotifyTpl) CreateIfNotExists

func (n *NotifyTpl) CreateIfNotExists(c *ctx.Context, channel string) error

func (*NotifyTpl) DB2FE

func (n *NotifyTpl) DB2FE() error

func (*NotifyTpl) NotifyTplDelete

func (n *NotifyTpl) NotifyTplDelete(ctx *ctx.Context, id int64) error

func (*NotifyTpl) TableName

func (n *NotifyTpl) TableName() string

func (*NotifyTpl) Update

func (n *NotifyTpl) Update(c *ctx.Context) error

func (*NotifyTpl) UpdateContent

func (n *NotifyTpl) UpdateContent(c *ctx.Context) error

type PeriodicMute

type PeriodicMute struct {
	EnableStime      string `json:"enable_stime"`        // split by space: "00:00 10:00 12:00"
	EnableEtime      string `json:"enable_etime"`        // split by space: "00:00 10:00 12:00"
	EnableDaysOfWeek string `json:"enable_days_of_week"` // eg: "0 1 2 3 4 5 6"
}

type PromQuery

type PromQuery struct {
	PromQl   string `json:"prom_ql"`
	Severity int    `json:"severity"`
}

type PromRuleConfig

type PromRuleConfig struct {
	Queries    []PromQuery `json:"queries"`
	Inhibit    bool        `json:"inhibit"`
	PromQl     string      `json:"prom_ql"`
	Severity   int         `json:"severity"`
	AlgoParams interface{} `json:"algo_params"`
}

type Query

type Query struct {
	DatasourceIds []int64     `json:"datasource_ids"`
	Cate          string      `json:"cate"`
	Config        interface{} `json:"config"`
}

type QueryConfig

type QueryConfig struct {
	Queries           []Query `json:"queries"`
	NewMetric         string  `json:"new_metric"`
	Exp               string  `json:"exp"`
	WriteDatasourceId int64   `json:"write_datasource_id"`
	Delay             int     `json:"delay"`
}

type QueryParam added in v6.2.0

type QueryParam struct {
	Cate         string        `json:"cate"`
	DatasourceId int64         `json:"datasource_id"`
	Querys       []interface{} `json:"query"`
}

type RecordingRule

type RecordingRule struct {
	Id                int64         `json:"id" gorm:"primaryKey"`
	GroupId           int64         `json:"group_id"`                // busi group id
	DatasourceIds     string        `json:"-" gorm:"datasource_ids"` // datasource ids
	DatasourceIdsJson []int64       `json:"datasource_ids" gorm:"-"` // for fe
	Cluster           string        `json:"cluster"`                 // take effect by cluster, seperated by space
	Name              string        `json:"name"`                    // new metric name
	Disabled          int           `json:"disabled"`                // 0: enabled, 1: disabled
	PromQl            string        `json:"prom_ql"`                 // just one ql for promql
	QueryConfigs      string        `json:"-" gorm:"query_configs"`  // query_configs
	QueryConfigsJson  []QueryConfig `json:"query_configs" gorm:"-"`  // query_configs for fe
	PromEvalInterval  int           `json:"prom_eval_interval"`      // unit:s
	AppendTags        string        `json:"-"`                       // split by space: service=n9e mod=api
	AppendTagsJSON    []string      `json:"append_tags" gorm:"-"`    // for fe
	Note              string        `json:"note"`                    // note
	CreateAt          int64         `json:"create_at"`
	CreateBy          string        `json:"create_by"`
	UpdateAt          int64         `json:"update_at"`
	UpdateBy          string        `json:"update_by"`
}

A RecordingRule records its vector expression into new timeseries.

func RecordingRuleEnabledGets

func RecordingRuleEnabledGets(ctx *ctx.Context) ([]*RecordingRule, error)

func RecordingRuleGet

func RecordingRuleGet(ctx *ctx.Context, where string, regs ...interface{}) (*RecordingRule, error)

func RecordingRuleGetById

func RecordingRuleGetById(ctx *ctx.Context, id int64) (*RecordingRule, error)

func RecordingRuleGets

func RecordingRuleGets(ctx *ctx.Context, groupId int64) ([]RecordingRule, error)

func RecordingRuleGetsByBGIds added in v6.6.0

func RecordingRuleGetsByBGIds(ctx *ctx.Context, bgIds []int64) ([]RecordingRule, error)

func RecordingRuleGetsByCluster

func RecordingRuleGetsByCluster(ctx *ctx.Context) ([]*RecordingRule, error)

func (*RecordingRule) Add

func (re *RecordingRule) Add(ctx *ctx.Context) error

func (*RecordingRule) DB2FE

func (re *RecordingRule) DB2FE() error

func (*RecordingRule) FE2DB

func (re *RecordingRule) FE2DB()

func (*RecordingRule) TableName

func (re *RecordingRule) TableName() string

func (*RecordingRule) Update

func (re *RecordingRule) Update(ctx *ctx.Context, ref RecordingRule) error

func (*RecordingRule) UpdateFieldsMap

func (re *RecordingRule) UpdateFieldsMap(ctx *ctx.Context, fields map[string]interface{}) error

func (*RecordingRule) Verify

func (re *RecordingRule) Verify() error

type RelationKey added in v6.2.0

type RelationKey struct {
	LeftKey  string `json:"left_key"`
	RightKey string `json:"right_key"`
	OP       string `json:"op"`
}

type Role

type Role struct {
	Id   int64  `json:"id" gorm:"primaryKey"`
	Name string `json:"name"`
	Note string `json:"note"`
}

func RoleGet

func RoleGet(ctx *ctx.Context, where string, args ...interface{}) (*Role, error)

func RoleGets

func RoleGets(ctx *ctx.Context, where string, args ...interface{}) ([]Role, error)

func RoleGetsAll

func RoleGetsAll(ctx *ctx.Context) ([]Role, error)

func (*Role) Add

func (r *Role) Add(ctx *ctx.Context) error

增加角色

func (*Role) DB2FE

func (r *Role) DB2FE() error

func (*Role) Del

func (r *Role) Del(ctx *ctx.Context) error

删除角色

func (Role) TableName

func (Role) TableName() string

func (*Role) Update

func (ug *Role) Update(ctx *ctx.Context, selectField interface{}, selectFields ...interface{}) error

更新角色

type RoleOperation

type RoleOperation struct {
	RoleName  string
	Operation string
}

func (*RoleOperation) DB2FE added in v6.6.0

func (r *RoleOperation) DB2FE() error

func (RoleOperation) TableName

func (RoleOperation) TableName() string

type RuleQuery

type RuleQuery struct {
	Inhibit  bool          `json:"inhibit"`
	Queries  []interface{} `json:"queries"`
	Triggers []Trigger     `json:"triggers"`
}

type Series added in v6.2.0

type Series struct {
	SeriesStore map[uint64]DataResp            `josn:"store"`
	SeriesIndex map[string]map[uint64]struct{} `json:"index"`
}

type SsoConfig

type SsoConfig struct {
	Id      int64  `json:"id"`
	Name    string `json:"name"`
	Content string `json:"content"`
}

func SsoConfigGets

func SsoConfigGets(c *ctx.Context) ([]SsoConfig, error)

get all sso_config

func (*SsoConfig) Create

func (b *SsoConfig) Create(c *ctx.Context) error

创建 builtin_cate

func (*SsoConfig) DB2FE

func (b *SsoConfig) DB2FE() error

func (*SsoConfig) TableName

func (b *SsoConfig) TableName() string

func (*SsoConfig) Update

func (b *SsoConfig) Update(c *ctx.Context) error

type Statistics

type Statistics struct {
	Total       int64 `gorm:"total"`
	LastUpdated int64 `gorm:"last_updated"`
}

func AlertMuteStatistics

func AlertMuteStatistics(ctx *ctx.Context) (*Statistics, error)

func AlertRuleStatistics

func AlertRuleStatistics(ctx *ctx.Context) (*Statistics, error)

func AlertSubscribeStatistics

func AlertSubscribeStatistics(ctx *ctx.Context) (*Statistics, error)

func BusiGroupStatistics

func BusiGroupStatistics(ctx *ctx.Context) (*Statistics, error)

func ConfigsUserVariableStatistics added in v6.4.0

func ConfigsUserVariableStatistics(context *ctx.Context) (*Statistics, error)

func DatasourceStatistics

func DatasourceStatistics(ctx *ctx.Context) (*Statistics, error)

func RecordingRuleStatistics

func RecordingRuleStatistics(ctx *ctx.Context) (*Statistics, error)

func StatisticsGet

func StatisticsGet[T any](ctx *ctx.Context, model T) (*Statistics, error)

func TargetStatistics

func TargetStatistics(ctx *ctx.Context) (*Statistics, error)

func UserGroupStatistics

func UserGroupStatistics(ctx *ctx.Context) (*Statistics, error)

func UserStatistics

func UserStatistics(ctx *ctx.Context) (*Statistics, error)

type TLS

type TLS struct {
	SkipTlsVerify bool `json:"skip_tls_verify"`
}

type TagFilter

type TagFilter struct {
	Key    string              `json:"key"`   // tag key
	Func   string              `json:"func"`  // `==` | `=~` | `in` | `!=` | `!~` | `not in`
	Value  string              `json:"value"` // tag value
	Regexp *regexp.Regexp      // parse value to regexp if func = '=~' or '!~'
	Vset   map[string]struct{} // parse value to regexp if func = 'in' or 'not in'
}

func GetTagFilters added in v6.0.2

func GetTagFilters(jsonArr ormx.JSONArr) ([]TagFilter, error)

type Target

type Target struct {
	Id           int64             `json:"id" gorm:"primaryKey"`
	GroupId      int64             `json:"group_id"`
	GroupObj     *BusiGroup        `json:"group_obj" gorm:"-"`
	Ident        string            `json:"ident"`
	Note         string            `json:"note"`
	Tags         string            `json:"-"`
	TagsJSON     []string          `json:"tags" gorm:"-"`
	TagsMap      map[string]string `json:"tags_maps" gorm:"-"` // internal use, append tags to series
	UpdateAt     int64             `json:"update_at"`
	HostIp       string            `json:"host_ip"` //ipv4,do not needs range select
	AgentVersion string            `json:"agent_version"`

	UnixTime   int64   `json:"unixtime" gorm:"-"`
	Offset     int64   `json:"offset" gorm:"-"`
	TargetUp   float64 `json:"target_up" gorm:"-"`
	MemUtil    float64 `json:"mem_util" gorm:"-"`
	CpuNum     int     `json:"cpu_num" gorm:"-"`
	CpuUtil    float64 `json:"cpu_util" gorm:"-"`
	OS         string  `json:"os" gorm:"-"`
	Arch       string  `json:"arch" gorm:"-"`
	RemoteAddr string  `json:"remote_addr" gorm:"-"`
}

func MissTargetGetsByFilter

func MissTargetGetsByFilter(ctx *ctx.Context, query []map[string]interface{}, ts int64) ([]*Target, error)

func TargetGet

func TargetGet(ctx *ctx.Context, where string, args ...interface{}) (*Target, error)

func TargetGetById

func TargetGetById(ctx *ctx.Context, id int64) (*Target, error)

func TargetGetByIdent

func TargetGetByIdent(ctx *ctx.Context, ident string) (*Target, error)

func TargetGets

func TargetGets(ctx *ctx.Context, bgids []int64, dsIds []int64, query string, downtime int64, limit, offset int) ([]*Target, error)

func TargetGetsAll

func TargetGetsAll(ctx *ctx.Context) ([]*Target, error)

func TargetGetsByFilter

func TargetGetsByFilter(ctx *ctx.Context, query []map[string]interface{}, limit, offset int) ([]*Target, error)

根据 groupids, tags, hosts 查询 targets

func (*Target) AddTags

func (t *Target) AddTags(ctx *ctx.Context, tags []string) error

func (*Target) DB2FE

func (t *Target) DB2FE() error

func (*Target) DelTags

func (t *Target) DelTags(ctx *ctx.Context, tags []string) error

func (*Target) FillGroup

func (t *Target) FillGroup(ctx *ctx.Context, cache map[int64]*BusiGroup) error

func (*Target) FillMeta

func (t *Target) FillMeta(meta *HostMeta)

func (*Target) FillTagsMap

func (t *Target) FillTagsMap()

func (*Target) GetTagsMap added in v6.7.1

func (t *Target) GetTagsMap() map[string]string

func (*Target) TableName

func (t *Target) TableName() string

func (*Target) UpdateFieldsMap

func (m *Target) UpdateFieldsMap(ctx *ctx.Context, fields map[string]interface{}) error

type TaskRecord

type TaskRecord struct {
	Id           int64  `json:"id" gorm:"primaryKey"`
	EventId      int64  `json:"event_id"`
	GroupId      int64  `json:"group_id"`
	IbexAddress  string `json:"ibex_address"`
	IbexAuthUser string `json:"ibex_auth_user"`
	IbexAuthPass string `json:"ibex_auth_pass"`
	Title        string `json:"title"`
	Account      string `json:"account"`
	Batch        int    `json:"batch"`
	Tolerance    int    `json:"tolerance"`
	Timeout      int    `json:"timeout"`
	Pause        string `json:"pause"`
	Script       string `json:"script"`
	Args         string `json:"args"`
	CreateAt     int64  `json:"create_at"`
	CreateBy     string `json:"create_by"`
}

func TaskRecordGets

func TaskRecordGets(ctx *ctx.Context, bgids []int64, beginTime int64, createBy, query string, limit, offset int) ([]*TaskRecord, error)

func (*TaskRecord) Add

func (r *TaskRecord) Add(ctx *ctx.Context) error

create task

func (*TaskRecord) TableName

func (r *TaskRecord) TableName() string

func (*TaskRecord) UpdateIsDone

func (r *TaskRecord) UpdateIsDone(ctx *ctx.Context, isDone int) error

update is_done field

type TaskTpl

type TaskTpl struct {
	Id        int64    `json:"id" gorm:"primaryKey"`
	GroupId   int64    `json:"group_id"`
	Title     string   `json:"title"`
	Batch     int      `json:"batch"`
	Tolerance int      `json:"tolerance"`
	Timeout   int      `json:"timeout"`
	Pause     string   `json:"pause"`
	Script    string   `json:"script"`
	Args      string   `json:"args"`
	Tags      string   `json:"-"`
	TagsJSON  []string `json:"tags" gorm:"-"`
	Account   string   `json:"account"`
	CreateAt  int64    `json:"create_at"`
	CreateBy  string   `json:"create_by"`
	UpdateAt  int64    `json:"update_at"`
	UpdateBy  string   `json:"update_by"`
}

func TaskTplGet

func TaskTplGet(ctx *ctx.Context, where string, args ...interface{}) (*TaskTpl, error)

func TaskTplGetById added in v6.0.1

func TaskTplGetById(ctx *ctx.Context, id int64) (*TaskTpl, error)

func TaskTplGets

func TaskTplGets(ctx *ctx.Context, groupIds []int64, query string, limit, offset int) ([]TaskTpl, error)

func (*TaskTpl) AddTags

func (t *TaskTpl) AddTags(ctx *ctx.Context, tags []string, updateBy string) error

func (*TaskTpl) CleanFields

func (t *TaskTpl) CleanFields() error

func (*TaskTpl) DB2FE

func (t *TaskTpl) DB2FE() error

func (*TaskTpl) Del

func (t *TaskTpl) Del(ctx *ctx.Context) error

func (*TaskTpl) DelTags

func (t *TaskTpl) DelTags(ctx *ctx.Context, tags []string, updateBy string) error

func (*TaskTpl) Hosts

func (t *TaskTpl) Hosts(ctx *ctx.Context) ([]string, error)

func (*TaskTpl) Save

func (t *TaskTpl) Save(ctx *ctx.Context, hosts []string) error

func (*TaskTpl) TableName

func (t *TaskTpl) TableName() string

func (*TaskTpl) Update

func (t *TaskTpl) Update(ctx *ctx.Context, hosts []string) error

func (*TaskTpl) UpdateGroup

func (t *TaskTpl) UpdateGroup(ctx *ctx.Context, groupId int64, updateBy string) error

type Trigger

type Trigger struct {
	Expressions interface{} `json:"expressions"`
	Mode        int         `json:"mode"`
	Exp         string      `json:"exp"`
	Severity    int         `json:"severity"`
}

type User

type User struct {
	Id         int64        `json:"id" gorm:"primaryKey"`
	Username   string       `json:"username"`
	Nickname   string       `json:"nickname"`
	Password   string       `json:"-"`
	Phone      string       `json:"phone"`
	Email      string       `json:"email"`
	Portrait   string       `json:"portrait"`
	Roles      string       `json:"-"`              // 这个字段写入数据库
	RolesLst   []string     `json:"roles" gorm:"-"` // 这个字段和前端交互
	Contacts   ormx.JSONObj `json:"contacts"`       // 内容为 map[string]string 结构
	Maintainer int          `json:"maintainer"`     // 是否给管理员发消息 0:not send 1:send
	CreateAt   int64        `json:"create_at"`
	CreateBy   string       `json:"create_by"`
	UpdateAt   int64        `json:"update_at"`
	UpdateBy   string       `json:"update_by"`
	Admin      bool         `json:"admin" gorm:"-"` // 方便前端使用
}

func LdapLogin

func LdapLogin(ctx *ctx.Context, username, pass, roles string, ldap *ldapx.SsoClient) (*User, error)

func PassLogin

func PassLogin(ctx *ctx.Context, username, pass string) (*User, error)

func UserGet

func UserGet(ctx *ctx.Context, where string, args ...interface{}) (*User, error)

func UserGetAll

func UserGetAll(ctx *ctx.Context) ([]*User, error)

func UserGetById

func UserGetById(ctx *ctx.Context, id int64) (*User, error)

func UserGetByUsername

func UserGetByUsername(ctx *ctx.Context, username string) (*User, error)

func UserGets

func UserGets(ctx *ctx.Context, query string, limit, offset int) ([]User, error)

func UserGetsByIds

func UserGetsByIds(ctx *ctx.Context, ids []int64) ([]User, error)

func (*User) Add

func (u *User) Add(ctx *ctx.Context) error

func (*User) BusiGroups

func (u *User) BusiGroups(ctx *ctx.Context, limit int, query string, all ...bool) ([]BusiGroup, error)

我是管理员,返回所有 或者我是成员

func (*User) CanDoBusiGroup

func (u *User) CanDoBusiGroup(ctx *ctx.Context, bg *BusiGroup, permFlag ...string) (bool, error)

func (*User) CanModifyUserGroup

func (u *User) CanModifyUserGroup(ctx *ctx.Context, ug *UserGroup) (bool, error)

func (*User) ChangePassword

func (u *User) ChangePassword(ctx *ctx.Context, oldpass, newpass string) error

func (*User) CheckPerm

func (u *User) CheckPerm(ctx *ctx.Context, operation string) (bool, error)

func (*User) DB2FE

func (u *User) DB2FE() error

func (*User) Del

func (u *User) Del(ctx *ctx.Context) error

func (*User) ExtractToken

func (u *User) ExtractToken(key string) (string, bool)

func (*User) IsAdmin

func (u *User) IsAdmin() bool

func (*User) NopriIdents

func (u *User) NopriIdents(ctx *ctx.Context, idents []string) ([]string, error)

func (*User) String

func (u *User) String() string

func (*User) TableName

func (u *User) TableName() string

func (*User) Update

func (u *User) Update(ctx *ctx.Context, selectField interface{}, selectFields ...interface{}) error

func (*User) UpdateAllFields

func (u *User) UpdateAllFields(ctx *ctx.Context) error

func (*User) UpdatePassword

func (u *User) UpdatePassword(ctx *ctx.Context, password, updateBy string) error

func (*User) UserGroups

func (u *User) UserGroups(ctx *ctx.Context, limit int, query string) ([]UserGroup, error)

func (*User) Verify

func (u *User) Verify() error

type UserGroup

type UserGroup struct {
	Id       int64   `json:"id" gorm:"primaryKey"`
	Name     string  `json:"name"`
	Note     string  `json:"note"`
	CreateAt int64   `json:"create_at"`
	CreateBy string  `json:"create_by"`
	UpdateAt int64   `json:"update_at"`
	UpdateBy string  `json:"update_by"`
	UserIds  []int64 `json:"-" gorm:"-"`
}

func UserGroupGet

func UserGroupGet(ctx *ctx.Context, where string, args ...interface{}) (*UserGroup, error)

func UserGroupGetAll

func UserGroupGetAll(ctx *ctx.Context) ([]*UserGroup, error)

func UserGroupGetById

func UserGroupGetById(ctx *ctx.Context, id int64) (*UserGroup, error)

func UserGroupGetByIds

func UserGroupGetByIds(ctx *ctx.Context, ids []int64) ([]UserGroup, error)

func (*UserGroup) Add

func (ug *UserGroup) Add(ctx *ctx.Context) error

func (*UserGroup) AddMembers

func (ug *UserGroup) AddMembers(ctx *ctx.Context, userIds []int64) error

func (*UserGroup) DB2FE

func (ug *UserGroup) DB2FE() error

func (*UserGroup) Del

func (ug *UserGroup) Del(ctx *ctx.Context) error

func (*UserGroup) DelMembers

func (ug *UserGroup) DelMembers(ctx *ctx.Context, userIds []int64) error

func (*UserGroup) TableName

func (ug *UserGroup) TableName() string

func (*UserGroup) Update

func (ug *UserGroup) Update(ctx *ctx.Context, selectField interface{}, selectFields ...interface{}) error

func (*UserGroup) Verify

func (ug *UserGroup) Verify() error

type UserGroupMember

type UserGroupMember struct {
	GroupId int64
	UserId  int64
}

func UserGroupMemberGetAll

func UserGroupMemberGetAll(ctx *ctx.Context) ([]*UserGroupMember, error)

func (UserGroupMember) DB2FE

func (UserGroupMember) DB2FE() error

func (UserGroupMember) TableName

func (UserGroupMember) TableName() string

type UserGroupWithPermFlag

type UserGroupWithPermFlag struct {
	UserGroup *UserGroup `json:"user_group"`
	PermFlag  string     `json:"perm_flag"`
}

type Webhook

type Webhook struct {
	Enable        bool              `json:"enable"`
	Url           string            `json:"url"`
	BasicAuthUser string            `json:"basic_auth_user"`
	BasicAuthPass string            `json:"basic_auth_pass"`
	Timeout       int               `json:"timeout"`
	HeaderMap     map[string]string `json:"headers"`
	Headers       []string          `json:"headers_str"`
	SkipVerify    bool              `json:"skip_verify"`
	Note          string            `json:"note"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL