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.