Files
EdgeCommon/pkg/nodeconfigs/node_value_thresholds.go

122 lines
4.6 KiB
Go
Raw Normal View History

2021-09-12 20:21:27 +08:00
// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
package nodeconfigs
import "github.com/iwind/TeaGo/maps"
type IPAddressThresholdItem = string
const (
IPAddressThresholdItemNodeAvgRequests IPAddressThresholdItem = "nodeAvgRequests" // 个
IPAddressThresholdItemNodeAvgTrafficOut IPAddressThresholdItem = "nodeAvgTrafficOut" // 节点下行流量 M
IPAddressThresholdItemNodeAvgTrafficIn IPAddressThresholdItem = "nodeAvgTrafficIn" // 节点上行流量 M
IPAddressThresholdItemGroupAvgRequests IPAddressThresholdItem = "groupAvgRequests" // 个
IPAddressThresholdItemGroupAvgTrafficIn IPAddressThresholdItem = "groupAvgTrafficIn" // 分组上行流量 M
IPAddressThresholdItemGroupAvgTrafficOut IPAddressThresholdItem = "groupAvgTrafficOut" // 分组下行流量 M
IPAddressThresholdItemClusterAvgRequests IPAddressThresholdItem = "clusterAvgRequests" // 个
IPAddressThresholdItemClusterAvgTrafficIn IPAddressThresholdItem = "clusterAvgTrafficIn" // 集群上行流量 M
IPAddressThresholdItemClusterAvgTrafficOut IPAddressThresholdItem = "clusterAvgTrafficOut" // 集群下行流量 M
IPAddressThresholdItemConnectivity IPAddressThresholdItem = "connectivity" // 0-100
2021-09-12 20:21:27 +08:00
)
func FindAllIPAddressThresholdItems() []maps.Map {
return []maps.Map{
{
"name": "节点平均请求数",
"code": "nodeAvgRequests",
"description": "当前节点在单位时间内接收到的平均请求数。",
"unit": "个",
},
{
"name": "节点平均下行流量",
"code": "nodeAvgTrafficOut",
"description": "当前节点在单位时间内发送的下行流量。",
"unit": "M",
},
{
"name": "节点平均上行流量",
"code": "nodeAvgTrafficIn",
"description": "当前节点在单位时间内接收的上行流量。",
"unit": "M",
},
{
"name": "IP连通性",
"code": "connectivity",
"description": "通过区域监控得到的当前IP地址的连通性数值取值在0和100之间。",
"unit": "%",
},
{
"name": "分组平均请求数",
"code": "groupAvgRequests",
"description": "当前节点所在分组在单位时间内接收到的平均请求数。",
"unit": "个",
},
{
"name": "分组平均下行流量",
"code": "groupAvgTrafficOut",
"description": "当前节点所在分组在单位时间内发送的下行流量。",
"unit": "M",
},
{
"name": "分组平均上行流量",
"code": "groupAvgTrafficIn",
"description": "当前节点所在分组在单位时间内接收的上行流量。",
"unit": "M",
},
{
"name": "集群平均请求数",
"code": "clusterAvgRequests",
"description": "当前节点所在集群在单位时间内接收到的平均请求数。",
"unit": "个",
},
{
"name": "集群平均下行流量",
"code": "clusterAvgTrafficOut",
"description": "当前节点所在集群在单位时间内发送的下行流量。",
"unit": "M",
},
{
"name": "集群平均上行流量",
"code": "clusterAvgTrafficIn",
"description": "当前节点所在集群在单位时间内接收的上行流量。",
"unit": "M",
},
}
}
2021-09-12 20:21:27 +08:00
// NodeValueThresholdConfig 阈值列表
type NodeValueThresholdConfig struct {
Id int64 `json:"id"`
Items []*NodeValueThresholdItemConfig `json:"items"`
Actions []*NodeValueThresholdActionConfig `json:"actions"`
}
// NodeValueThresholdItemConfig 阈值项目
type NodeValueThresholdItemConfig struct {
Item NodeValueItem `json:"item"`
Operator NodeValueOperator `json:"operator"`
Value float64 `json:"value"`
Duration int `json:"duration"`
DurationUnit NodeValueDurationUnit `json:"durationUnit"`
Options maps.Map `json:"options"` // 附加选项
}
type NodeValueThresholdActionConfig struct {
Action string `json:"action"`
Options maps.Map `json:"options"`
}
// NodeValueThresholdAction 动作
type NodeValueThresholdAction = string
const (
NodeValueThresholdActionUp NodeValueThresholdAction = "up" // 上线
NodeValueThresholdActionDown NodeValueThresholdAction = "down" // 下线
NodeValueThresholdActionNotify NodeValueThresholdAction = "notify" // 通知
NodeValueThresholdActionSwitch NodeValueThresholdAction = "switch" // 切换到备用IP
NodeValueThresholdActionWebHook NodeValueThresholdAction = "webHook" // 调用外部Webhook
2021-09-12 20:21:27 +08:00
)