Documentation ¶
Index ¶
- Constants
- Variables
- func IsServiceSentinelNeeded(t uint64) bool
- 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 DDNSProfile
- type DDNSProvider
- type Host
- type HostState
- type Monitor
- type MonitorHistory
- type NAT
- type NResult
- type Notification
- type NotificationServerBundle
- type Response
- type Rule
- type SensorTemperature
- type Server
- type ServiceItemResponse
- type TaskFM
- type TaskNAT
- 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" ConfigTypeCloudflare = "cloudflare" ConfigTypeOidc = "oidc" )
View Source
const ( ConfigCoverAll = iota ConfigCoverIgnoreAll )
View Source
const ( CronCoverIgnoreAll = iota CronCoverAll CronCoverAlertTrigger CronTypeCronTask = 0 CronTypeTriggerTask = 1 )
View Source
const ( ProviderDummy = iota ProviderWebHook ProviderCloudflare ProviderTencentCloud )
View Source
const ( TaskTypeHTTPGet TaskTypeICMPPing TaskTypeTCPPing TaskTypeCommand TaskTypeTerminal TaskTypeUpgrade TaskTypeKeepalive TaskTypeTerminalGRPC TaskTypeNAT TaskTypeReportHostInfo TaskTypeFM )
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 CtxKeyPreferredTheme = "ckpt"
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 ProviderList = []DDNSProvider{ { Name: _Dummy, ID: ProviderDummy, }, { Name: _Cloudflare, ID: ProviderCloudflare, AccessSecret: true, }, { Name: _TencentCloud, ID: ProviderTencentCloud, AccessID: true, AccessSecret: true, }, { Name: _WebHook, ID: ProviderWebHook, AccessID: true, AccessSecret: true, WebhookURL: true, WebhookMethod: true, WebhookRequestType: true, WebhookRequestBody: true, WebhookHeaders: true, }, }
View Source
var ProviderMap = map[uint8]string{ ProviderDummy: _Dummy, ProviderWebHook: _WebHook, ProviderCloudflare: _Cloudflare, ProviderTencentCloud: _TencentCloud, }
View Source
var Themes = map[string]string{
"default": "Default",
"daynight": "JackieSung DayNight",
"mdui": "Neko Mdui",
"hotaru": "Hotaru",
"angel-kanade": "AngelKanade",
"server-status": "ServerStatus",
"custom": "Custom(local)",
}
Functions ¶
func IsServiceSentinelNeeded ¶
IsServiceSentinelNeeded 判断该任务类型是否需要进行服务监控 需要则返回true
Types ¶
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 CustomCodeDashboard string ViewPassword string // 前台查看密码 } Oauth2 struct { Type string Admin string // 管理员用户名列表 AdminGroups string // 管理员用户组列表 ClientID string ClientSecret string Endpoint string OidcDisplayName string // for OIDC Display Name OidcIssuer string // for OIDC Issuer OidcLogoutURL string // for OIDC Logout URL OidcRegisterURL string // for OIDC Register URL OidcLoginClaim string // for OIDC Claim OidcGroupClaim string // for OIDC Group Claim OidcScopes string // for OIDC Scopes OidcAutoCreate bool // for OIDC Auto Create OidcAutoLogin bool // for OIDC Auto Login } HTTPPort uint GRPCPort uint GRPCHost string ProxyGRPCPort uint TLS bool EnablePlainIPInNotification bool // 通知信息IP不打码 DisableSwitchTemplateInFrontend bool // 前台禁用切换模板功能 // 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在特定服务器列表内) MaxTCPPingValue int32 AvgPingCount int DNSServers string // 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 DDNSProfile ¶
type DDNSProfile struct { Common EnableIPv4 *bool EnableIPv6 *bool MaxRetries uint64 Name string Provider uint8 AccessID string AccessSecret string WebhookURL string WebhookMethod uint8 WebhookRequestType uint8 WebhookRequestBody string WebhookHeaders string Domains []string `gorm:"-"` DomainsRaw string }
func (DDNSProfile) TableName ¶
func (d DDNSProfile) TableName() string
type DDNSProvider ¶
type Host ¶
type HostState ¶
type HostState struct { CPU float64 MemUsed uint64 SwapUsed uint64 DiskUsed uint64 NetInTransfer uint64 NetOutTransfer uint64 NetInSpeed uint64 NetOutSpeed uint64 Uptime uint64 Load1 float64 Load5 float64 Load15 float64 TcpConnCount uint64 UdpConnCount uint64 ProcessCount uint64 Temperatures []SensorTemperature GPU float64 }
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"` EnableShowInService 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 { ID uint64 `gorm:"primaryKey"` CreatedAt time.Time `gorm:"index;<-:create;index:idx_server_id_created_at_monitor_id_avg_delay"` UpdatedAt time.Time `gorm:"autoUpdateTime"` DeletedAt gorm.DeletedAt `gorm:"index"` MonitorID uint64 `gorm:"index:idx_server_id_created_at_monitor_id_avg_delay"` ServerID uint64 `gorm:"index:idx_server_id_created_at_monitor_id_avg_delay"` AvgDelay float32 `gorm:"index:idx_server_id_created_at_monitor_id_avg_delay"` // 平均延迟,毫秒 Up uint64 // 检查状态良好计数 Down uint64 // 检查状态异常计数 Data string }
MonitorHistory 历史监控记录
type Notification ¶
type NotificationServerBundle ¶
type NotificationServerBundle struct { Notification *Notification Server *Server Loc *time.Location }
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 SensorTemperature ¶
type Server ¶
type Server struct { Common Name string Tag string // 分组名 Secret string `gorm:"uniqueIndex" json:"-"` Note string `json:"-"` // 管理员可见备注 PublicNote string `json:"PublicNote,omitempty"` // 公开备注 DisplayIndex int // 展示排序,越大越靠前 HideForGuest bool // 对游客隐藏 EnableDDNS bool // 启用DDNS DDNSProfiles []uint64 `gorm:"-" json:"-"` // DDNS配置 DDNSProfilesRaw string `gorm:"default:'[]';column:ddns_profiles_raw" json:"-"` Host *Host `gorm:"-"` State *HostState `gorm:"-"` LastActive time.Time `gorm:"-"` TaskClose chan error `gorm:"-" json:"-"` TaskCloseLock *sync.Mutex `gorm:"-" json:"-"` TaskStream pb.NezhaService_RequestTaskServer `gorm:"-" json:"-"` PrevTransferInSnapshot int64 `gorm:"-" json:"-"` // 上次数据点时的入站使用量 PrevTransferOutSnapshot int64 `gorm:"-" json:"-"` // 上次数据点时的出站使用量 }
func (*Server) CopyFromRunningServer ¶
func (Server) MarshalForDashboard ¶
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 TerminalTask struct {
StreamID string
}
type User ¶
type User struct { Common Login string `json:"login,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 NewUserFromGitHub ¶
func NewUserFromGitea ¶
func NewUserFromGitlab ¶
func NewUserFromGitlab(gu *gitlab.User) User
Click to show internal directories.
Click to hide internal directories.