Documentation
¶
Index ¶
- func ConvHandleStrInt(str string) int
- func Ping(ac *Probe, pingChan chan ProbeData, mtrProbe Probe) error
- type CPUTimes
- type CompleteSystemInfo
- type HostInfo
- type HostMemoryInfo
- type MtrResult
- type NetworkInfoResult
- type OSInfo
- type PingResult
- type Probe
- type ProbeConfig
- type ProbeData
- type ProbeTarget
- type ProbeType
- type RPerfResults
- type SpeedTestResult
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ConvHandleStrInt ¶
Types ¶
type CPUTimes ¶
type CPUTimes struct {
User time.Duration `json:"user"`
System time.Duration `json:"system"`
Idle time.Duration `json:"idle,omitempty"`
IOWait time.Duration `json:"iowait,omitempty"`
IRQ time.Duration `json:"irq,omitempty"`
Nice time.Duration `json:"nice,omitempty"`
SoftIRQ time.Duration `json:"soft_irq,omitempty"`
Steal time.Duration `json:"steal,omitempty"`
}
type CompleteSystemInfo ¶
type CompleteSystemInfo struct {
HostInfo HostInfo `json:"hostInfo"`
MemoryInfo HostMemoryInfo `json:"memoryInfo"`
CPUTimes CPUTimes `json:"CPUTimes"`
Timestamp time.Time `json:"timestamp"`
}
func SystemInfo ¶
func SystemInfo() (CompleteSystemInfo, error)
type HostInfo ¶
type HostInfo struct {
Architecture string `json:"architecture"`
BootTime time.Time `json:"boot_time"`
Containerized *bool `json:"containerized,omitempty"`
Hostname string `json:"name"`
IPs []string `json:"ip,omitempty"`
KernelVersion string `json:"kernel_version"`
MACs []string `json:"mac"`
OS OSInfo `json:"os"`
Timezone string `json:"timezone"`
TimezoneOffsetSec int `json:"timezone_offset_sec"`
UniqueID string `json:"id,omitempty"`
}
type HostMemoryInfo ¶
type HostMemoryInfo struct {
Total uint64 `json:"total_bytes"` // Total physical memory.
Used uint64 `json:"used_bytes"` // Total - Free
Available uint64 `json:"available_bytes"` // Amount of memory available without swapping.
Free uint64 `json:"free_bytes"` // Amount of memory not used by the system.
VirtualTotal uint64 `json:"virtual_total_bytes"` // Total virtual memory.
VirtualUsed uint64 `json:"virtual_used_bytes"` // VirtualTotal - VirtualFree
VirtualFree uint64 `json:"virtual_free_bytes"` // Virtual memory that is not used.
Metrics map[string]uint64 `json:"raw,omitempty"` // Other memory related metrics.
}
HostMemoryInfo (all values are specified in bytes).
type MtrResult ¶
type MtrResult struct {
StartTimestamp time.Time `json:"start_timestamp"bson:"start_timestamp"`
StopTimestamp time.Time `json:"stop_timestamp"bson:"stop_timestamp"`
Report struct {
Info struct {
Target struct {
IP string `json:"ip"`
Hostname string `json:"hostname"`
} `json:"target"`
} `json:"info"`
Hops []struct {
TTL int `json:"ttl"`
Hosts []struct {
IP string `json:"ip"`
Hostname string `json:"hostname"`
} `json:"hosts"`
Extensions []string `json:"extensions"`
LossPct string `json:"loss_pct"`
Sent int `json:"sent"`
Last string `json:"last"`
Recv int `json:"recv"`
Avg string `json:"avg"`
Best string `json:"best"`
Worst string `json:"worst"`
StdDev string `json:"stddev"`
} `json:"hops"`
} `json:"report"bson:"report"`
}
type NetworkInfoResult ¶
type NetworkInfoResult struct {
LocalAddress string `json:"local_address"bson:"local_address"`
DefaultGateway string `json:"default_gateway"bson:"default_gateway"`
PublicAddress string `json:"public_address"bson:"public_address"`
InternetProvider string `json:"internet_provider"bson:"internet_provider"`
Lat string `json:"lat"bson:"lat"`
Long string `json:"long"bson:"long"`
Timestamp time.Time `json:"timestamp"bson:"timestamp"`
}
func NetworkInfo ¶
func NetworkInfo() (NetworkInfoResult, error)
type OSInfo ¶
type OSInfo struct {
Type string `json:"type"`
Family string `json:"family"`
Platform string `json:"platform"`
Name string `json:"name"`
Version string `json:"version"`
Major int `json:"major"`
Minor int `json:"minor"`
Patch int `json:"patch"`
Build string `json:"build,omitempty"`
Codename string `json:"codename,omitempty"`
}
type PingResult ¶
type PingResult struct {
// StartTime is the time that the check started at
StartTimestamp time.Time `json:"start_timestamp"bson:"start_timestamp"`
StopTimestamp time.Time `json:"stop_timestamp"bson:"stop_timestamp"`
// PacketsRecv is the number of packets received.
PacketsRecv int `json:"packets_recv"bson:"packets_recv"`
// PacketsSent is the number of packets sent.
PacketsSent int `json:"packets_sent"bson:"packets_sent"`
// PacketsRecvDuplicates is the number of duplicate responses there were to a sent packet.
PacketsRecvDuplicates int `json:"packets_recv_duplicates"bson:"packets_recv_duplicates"`
// PacketLoss is the percentage of packets lost.
PacketLoss float64 `json:"packet_loss"bson:"packet_loss"`
// Addr is the string address of the host being pinged.
Addr string `json:"addr"bson:"addr"`
// MinRtt is the minimum round-trip time sent via this pinger.
MinRtt time.Duration `json:"min_rtt"bson:"min_rtt"`
// MaxRtt is the maximum round-trip time sent via this pinger.
MaxRtt time.Duration `json:"max_rtt"bson:"max_rtt"`
// AvgRtt is the average round-trip time sent via this pinger.
AvgRtt time.Duration `json:"avg_rtt"bson:"avg_rtt"`
// StdDevRtt is the standard deviation of the round-trip times sent via
// this pinger.
StdDevRtt time.Duration `json:"std_dev_rtt"bson:"std_dev_rtt"`
}
type Probe ¶
type Probe struct {
Type ProbeType `json:"type"bson:"type"`
ID primitive.ObjectID `json:"id"bson:"_id"`
Agent primitive.ObjectID `json:"agent"bson:"agent"`
CreatedAt time.Time `bson:"createdAt"json:"createdAt"`
UpdatedAt time.Time `bson:"updatedAt"json:"updatedAt"`
Notifications bool `json:"notifications"bson:"notifications"` // notifications will be emailed to anyone who has permissions on their account / associated with the site
Config ProbeConfig `bson:"config"json:"config"`
ProbeProcess int
}
type ProbeConfig ¶
type ProbeConfig struct {
Target []ProbeTarget `json:"target" bson:"target"`
Duration int `json:"duration" bson:"duration"`
Count int `json:"count" bson:"count"`
Interval int `json:"interval" bson:"interval"`
Server bool `bson:"server" json:"server"`
Pending time.Time `json:"pending" bson:"pending"` // timestamp of when it was made pending / invalidate it after 10 minutes or so?
}
type ProbeData ¶
type ProbeData struct {
ID primitive.ObjectID `json:"id"bson:"_id"`
ProbeID primitive.ObjectID `json:"probe"bson:"probe"`
Triggered bool `json:"triggered"bson:"triggered"`
CreatedAt time.Time `bson:"createdAt"json:"createdAt"`
UpdatedAt time.Time `bson:"updatedAt"json:"updatedAt"`
Data interface{} `json:"data,omitempty"bson:"data,omitempty"`
}
type ProbeTarget ¶
type RPerfResults ¶
type RPerfResults struct {
StartTimestamp time.Time `json:"start_timestamp"bson:"start_timestamp"`
StopTimestamp time.Time `json:"stop_timestamp"bson:"stop_timestamp"`
Config struct {
Additional struct {
IpVersion int `json:"ip_version"bson:"ip_version"`
OmitSeconds int `json:"omit_seconds"bson:"omit_seconds"`
Reverse bool `json:"reverse"bson:"reverse"`
} `json:"additional"bson:"additional"`
Common struct {
Family string `json:"family"bson:"family"`
Length int `json:"length"bson:"length"`
Streams int `json:"streams"bson:"streams"`
} `json:"common"bson:"common"`
Download struct {
} `json:"download"bson:"download"`
Upload struct {
Bandwidth int `json:"bandwidth"bson:"bandwidth"`
Duration float64 `json:"duration"bson:"duration"`
SendInterval float64 `json:"send_interval"bson:"send_interval"`
} `json:"upload"bson:"upload"`
} `json:"config"bson:"config"`
/*Streams []struct {
Abandoned bool `json:"abandoned"bson:"abandoned"`
Failed bool `json:"failed"bson:"failed"`
Intervals struct {
Receive []struct {
BytesReceived int `json:"bytes_received"bson:"bytes_received"`
Duration float64 `json:"duration"bson:"duration"`
JitterSeconds float64 `json:"jitter_seconds"bson:"jitter_seconds"`
PacketsDuplicated int `json:"packets_duplicated"bson:"packets_duplicated"`
PacketsLost int `json:"packets_lost"bson:"packets_lost"`
PacketsOutOfOrder int `json:"packets_out_of_order"bson:"packets_out_of_order"`
PacketsReceived int `json:"packets_received"bson:"packets_received"`
Timestamp float64 `json:"timestamp"bson:"timestamp"`
UnbrokenSequence int `json:"unbroken_sequence"bson:"unbroken_sequence"`
} `json:"receive"bson:"receive"`
Send []struct {
BytesSent int `json:"bytes_sent"bson:"bytes_sent"`
Duration float64 `json:"duration"bson:"duration"`
PacketsSent int `json:"packets_sent"bson:"packets_sent"`
SendsBlocked int `json:"sends_blocked"bson:"sends_blocked"`
Timestamp float64 `json:"timestamp"bson:"timestamp"`
} `json:"send"bson:"send"`
Summary struct {
BytesReceived int `json:"bytes_received"bson:"bytes_received"`
BytesSent int `json:"bytes_sent"bson:"bytes_sent"`
DurationReceive float64 `json:"duration_receive"bson:"duration_receive"`
DurationSend float64 `json:"duration_send"bson:"duration_send"`
FramedPacketSize int `json:"framed_packet_size"bson:"framed_packet_size"`
JitterAverage float64 `json:"jitter_average"bson:"jitter_average"`
JitterPacketsConsecutive int `json:"jitter_packets_consecutive"bson:"jitter_packets_consecutive"`
PacketsDuplicated int `json:"packets_duplicated"bson:"packets_duplicated"`
PacketsLost int `json:"packets_lost"bson:"packets_lost"`
PacketsOutOfOrder int `json:"packets_out_of_order"bson:"packets_out_of_order"`
PacketsReceived int `json:"packets_received"bson:"packets_received"`
PacketsSent int `json:"packets_sent"bson:"packets_sent"`
} `json:"summary"bson:"summary"`
} `json:"intervals"bson:"intervals"`
} `json:"streams"bson:"streams"`*/
Success bool `json:"success"bson:"success"`
Summary struct {
BytesReceived int `json:"bytes_received"bson:"bytes_received"`
BytesSent int `json:"bytes_sent"bson:"bytes_sent"`
DurationReceive float64 `json:"duration_receive"bson:"duration_receive"`
DurationSend float64 `json:"duration_send"bson:"duration_send"`
FramedPacketSize int `json:"framed_packet_size"bson:"framed_packet_size"`
JitterAverage float64 `json:"jitter_average"bson:"jitter_average"`
JitterPacketsConsecutive int `json:"jitter_packets_consecutive"bson:"jitter_packets_consecutive"`
PacketsDuplicated int `json:"packets_duplicated"bson:"packets_duplicated"`
PacketsLost int `json:"packets_lost"bson:"packets_lost"`
PacketsOutOfOrder int `json:"packets_out_of_order"bson:"packets_out_of_order"`
PacketsReceived int `json:"packets_received"bson:"packets_received"`
PacketsSent int `json:"packets_sent"bson:"packets_sent"`
} `json:"summary"bson:"summary"`
}
func (*RPerfResults) Check ¶
func (r *RPerfResults) Check(cd *Probe) error
func (*RPerfResults) Run ¶
func (r *RPerfResults) Run(cd *Probe) error
type SpeedTestResult ¶
type SpeedTestResult struct {
Latency time.Duration `json:"latency"bson:"latency"`
DLSpeed float64 `json:"dl_speed"bson:"dl_speed"`
ULSpeed float64 `json:"ul_speed"bson:"ul_speed"`
Server string `json:"server"bson:"server"`
Host string `json:"host"bson:"host"`
Timestamp time.Time `json:"timestamp"bson:"timestamp"`
}
func SpeedTest ¶
func SpeedTest(cd *Probe) (SpeedTestResult, error)
Click to show internal directories.
Click to hide internal directories.