Documentation
¶
Index ¶
- Constants
- Variables
- func IsServiceSentinelNeeded(t uint64) bool
- type AgentConfig
- type AlertRule
- func (r *AlertRule) AfterFind(tx *gorm.DB) error
- func (r *AlertRule) BeforeSave(tx *gorm.DB) error
- func (r *AlertRule) Check(points [][]interface{}) (int, bool)
- func (r *AlertRule) Enabled() bool
- func (r *AlertRule) Snapshot(cycleTransferStats *CycleTransferStats, server *Server, db *gorm.DB) []interface{}
- type ApiToken
- type Common
- type Config
- type Cron
- type CycleTransferStats
- type Host
- type HostState
- type Monitor
- type MonitorHistory
- type NResult
- type Notification
- type NotificationServerBundle
- type Response
- type Rule
- type Server
- type ServiceItemResponse
- type TerminalTask
- type Transfer
- type User
Constants ¶
View Source
const ( ModeAlwaysTrigger = 0 ModeOnetimeTrigger = 1 )
View Source
const ( ConfigTypeGitHub = "github" ConfigTypeGitee = "gitee" ConfigTypeGitlab = "gitlab" ConfigTypeJihulab = "jihulab" ConfigTypeGitea = "gitea" )
View Source
const ( ConfigCoverAll = iota ConfigCoverIgnoreAll )
View Source
const ( CronCoverIgnoreAll = iota CronCoverAll CronCoverAlertTrigger CronTypeCronTask = 0 CronTypeTriggerTask = 1 )
View Source
const ( TaskTypeHTTPGET TaskTypeICMPPing TaskTypeTCPPing TaskTypeCommand TaskTypeTerminal TaskTypeUpgrade TaskTypeKeepalive )
View Source
const ( MonitorCoverAll = iota MonitorCoverIgnoreAll )
View Source
const ( NotificationRequestTypeJSON NotificationRequestTypeForm )
View Source
const ( NotificationRequestMethodGET NotificationRequestMethodPOST )
View Source
const ( RuleCoverAll = iota RuleCoverIgnoreAll )
View Source
const CacheKeyOauth2State = "p:a:state"
View Source
const CtxKeyAuthorizedUser = "ckau"
View Source
const CtxKeyViewPasswordVerified = "ckvpv"
View Source
const (
MTReportHostState
)
Variables ¶
View Source
var DashboardThemes = map[string]string{
"default": "Default",
"custom": "Custom(local)",
}
View Source
var Languages = map[string]string{
"zh-CN": "简体中文",
"zh-TW": "繁體中文",
"en-US": "English",
"es-ES": "Español",
}
View Source
var Themes = map[string]string{
"default": "Default",
"daynight": "JackieSung DayNight",
"mdui": "Neko Mdui",
"hotaru": "Hotaru",
"angel-kanade": "AngelKanade",
"custom": "Custom(local)",
}
Functions ¶
func IsServiceSentinelNeeded ¶
IsServiceSentinelNeeded 判断该任务类型是否需要进行服务监控 需要则返回true
Types ¶
type AgentConfig ¶
type AgentConfig struct {
HardDrivePartitionAllowlist []string
NICAllowlist map[string]bool
// contains filtered or unexported fields
}
func (*AgentConfig) Save ¶
func (c *AgentConfig) Save() error
type AlertRule ¶
type AlertRule struct {
Common
Name string
RulesRaw string
Enable *bool
TriggerMode int `gorm:"default:0"` // 触发模式: 0-始终触发(默认) 1-单次触发
NotificationTag string // 该报警规则所在的通知组
FailTriggerTasksRaw string `gorm:"default:'[]'"`
RecoverTriggerTasksRaw string `gorm:"default:'[]'"`
Rules []Rule `gorm:"-" json:"-"`
FailTriggerTasks []uint64 `gorm:"-" json:"-"` // 失败时执行的触发任务id
RecoverTriggerTasks []uint64 `gorm:"-" json:"-"` // 恢复时执行的触发任务id
}
type Config ¶
type Config struct {
Debug bool // debug模式开关
Language string // 系统语言,默认 zh-CN
Site struct {
Brand string // 站点名称
CookieName string // 浏览器 Cookie 名称
Theme string
DashboardTheme string
CustomCode string
ViewPassword string // 前台查看密码
}
HTTPPort uint
GRPCPort uint
GRPCHost string
ProxyGRPCPort uint
TLS bool
EnablePlainIPInNotification bool // 通知信息IP不打码
// IP变更提醒
EnableIPChangeNotification bool
IPChangeNotificationTag string
Cover uint8 // 覆盖范围(0:提醒未被 IgnoredIPNotification 包含的所有服务器; 1:仅提醒被 IgnoredIPNotification 包含的服务器;)
IgnoredIPNotification string // 特定服务器IP(多个服务器用逗号分隔)
Location string // 时区,默认为 Asia/Shanghai
IgnoredIPNotificationServerIDs map[uint64]bool // [ServerID] -> bool(值为true代表当前ServerID在特定服务器列表内)
// contains filtered or unexported fields
}
Config 站点配置
type Cron ¶
type Cron struct {
Common
Name string
TaskType uint8 `gorm:"default:0"` // 0:计划任务 1:触发任务
Scheduler string //分钟 小时 天 月 星期
Command string
Servers []uint64 `gorm:"-"`
PushSuccessful bool // 推送成功的通知
NotificationTag string // 指定通知方式的分组
LastExecutedAt time.Time // 最后一次执行时间
LastResult bool // 最后一次执行结果
Cover uint8 // 计划任务覆盖范围 (0:仅覆盖特定服务器 1:仅忽略特定服务器 2:由触发该计划任务的服务器执行)
CronJobID cron.EntryID `gorm:"-"`
ServersRaw string
}
type CycleTransferStats ¶
type Host ¶
type HostState ¶
type Monitor ¶
type Monitor struct {
Common
Name string
Type uint8
Target string
SkipServersRaw string
Duration uint64
Notify bool
NotificationTag string // 当前服务监控所属的通知组
Cover uint8
EnableTriggerTask bool `gorm:"default: false"`
FailTriggerTasksRaw string `gorm:"default:'[]'"`
RecoverTriggerTasksRaw string `gorm:"default:'[]'"`
FailTriggerTasks []uint64 `gorm:"-" json:"-"` // 失败时执行的触发任务id
RecoverTriggerTasks []uint64 `gorm:"-" json:"-"` // 恢复时执行的触发任务id
MinLatency float32
MaxLatency float32
LatencyNotify bool
SkipServers map[uint64]bool `gorm:"-" json:"-"`
CronJobID cron.EntryID `gorm:"-" json:"-"`
}
func (*Monitor) InitSkipServers ¶
type MonitorHistory ¶
type MonitorHistory struct {
Common
MonitorID uint64
AvgDelay float32 // 平均延迟,毫秒
Up uint64 // 检查状态良好计数
Down uint64 // 检查状态异常计数
Data string
}
MonitorHistory 历史监控记录
type Notification ¶
type NotificationServerBundle ¶
type NotificationServerBundle struct {
Notification *Notification
Server *Server
}
func (*NotificationServerBundle) Send ¶
func (ns *NotificationServerBundle) Send(message string) error
type Rule ¶
type Rule struct {
// 指标类型,cpu、memory、swap、disk、net_in_speed、net_out_speed
// net_all_speed、transfer_in、transfer_out、transfer_all、offline
// transfer_in_cycle、transfer_out_cycle、transfer_all_cycle
Type string `json:"type,omitempty"`
Min float64 `json:"min,omitempty"` // 最小阈值 (百分比、字节 kb ÷ 1024)
Max float64 `json:"max,omitempty"` // 最大阈值 (百分比、字节 kb ÷ 1024)
CycleStart *time.Time `json:"cycle_start,omitempty"` // 流量统计的开始时间
CycleInterval uint64 `json:"cycle_interval,omitempty"` // 流量统计周期
CycleUnit string `json:"cycle_unit,omitempty"` // 流量统计周期单位,默认hour,可选(hour, day, week, month, year)
Duration uint64 `json:"duration,omitempty"` // 持续时间 (秒)
Cover uint64 `json:"cover,omitempty"` // 覆盖范围 RuleCoverAll/IgnoreAll
Ignore map[uint64]bool `json:"ignore,omitempty"` // 覆盖范围的排除
// 只作为缓存使用,记录下次该检测的时间
NextTransferAt map[uint64]time.Time `json:"-"`
LastCycleStatus map[uint64]interface{} `json:"-"`
}
func (Rule) GetTransferDurationEnd ¶
GetTransferDurationEnd 获取周期流量结束时间
func (Rule) GetTransferDurationStart ¶
GetTransferDurationStart 获取周期流量的起始时间
func (Rule) IsTransferDurationRule ¶
IsTransferDurationRule 判断该规则是否属于周期流量规则 属于则返回true
type Server ¶
type Server struct {
Common
Name string
Tag string // 分组名
Secret string `gorm:"uniqueIndex" json:"-"`
Note string `json:"-"` // 管理员可见备注
DisplayIndex int // 展示排序,越大越靠前
HideForGuest bool // 对游客隐藏
Host *Host `gorm:"-"`
State *HostState `gorm:"-"`
LastActive time.Time `gorm:"-"`
TaskClose chan error `gorm:"-" json:"-"`
TaskStream pb.NezhaService_RequestTaskServer `gorm:"-" json:"-"`
PrevHourlyTransferIn int64 `gorm:"-" json:"-"` // 上次数据点时的入站使用量
PrevHourlyTransferOut int64 `gorm:"-" json:"-"` // 上次数据点时的出站使用量
}
func (*Server) CopyFromRunningServer ¶
type ServiceItemResponse ¶
type ServiceItemResponse struct {
Monitor *Monitor
CurrentUp uint64
CurrentDown uint64
TotalUp uint64
TotalDown uint64
Delay *[30]float32
Up *[30]int
Down *[30]int
}
func (ServiceItemResponse) TotalUptime ¶
func (r ServiceItemResponse) TotalUptime() float32
type TerminalTask ¶
type User ¶
type User struct {
Common
Login string `json:"login,omitempty"` // 登录名
Password string `json:"password,omitempty"` // 密码
AvatarURL string `json:"avatar_url,omitempty"` // 头像地址
Name string `json:"name,omitempty"` // 昵称
Blog string `json:"blog,omitempty"` // 网站链接
Email string `json:"email,omitempty"` // 邮箱
Hireable bool `json:"hireable,omitempty"`
Bio string `json:"bio,omitempty"` // 个人简介
Token string `json:"-"` // 认证 Token
TokenExpired time.Time `json:"token_expired,omitempty"` // Token 过期时间
SuperAdmin bool `json:"super_admin,omitempty"` // 超级管理员
}
func NewUserFromUP ¶
Click to show internal directories.
Click to hide internal directories.