12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- package uptime
- import "imuslab.com/zoraxy/mod/info/logger"
- const (
- logModuleName = "uptime-monitor"
- )
- type Record struct {
- Timestamp int64
- ID string
- Name string
- URL string
- Protocol string
- Online bool
- StatusCode int
- Latency int64
- }
- type ProxyType string
- const (
- ProxyType_Host ProxyType = "Origin Server"
- ProxyType_Vdir ProxyType = "Virtual Directory"
- )
- type Target struct {
- ID string
- Name string
- URL string
- Protocol string
- ProxyType ProxyType
- }
- type Config struct {
- Targets []*Target
- Interval int
- MaxRecordsStore int
- OnlineStateNotify func(upstreamIP string, isOnline bool)
- Logger *logger.Logger
- }
- type Monitor struct {
- Config *Config
- OnlineStatusLog map[string][]*Record
- }
- // Default configs
- var exampleTarget = Target{
- ID: "example",
- Name: "Example",
- URL: "example.com",
- Protocol: "https",
- }
- func defaultNotify(upstreamIP string, isOnline bool) {
- // Do nothing
- }
|