25 lines
		
	
	
		
			905 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			905 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package core
 | |
| 
 | |
| // Uptime is the struct that contains the relevant data for calculating the uptime as well as the uptime itself
 | |
| // and some other statistics
 | |
| type Uptime struct {
 | |
| 	// HourlyStatistics is a map containing metrics collected (value) for every hourly unix timestamps (key)
 | |
| 	//
 | |
| 	// Used only if the storage type is memory
 | |
| 	HourlyStatistics map[int64]*HourlyUptimeStatistics `json:"-"`
 | |
| }
 | |
| 
 | |
| // HourlyUptimeStatistics is a struct containing all metrics collected over the course of an hour
 | |
| type HourlyUptimeStatistics struct {
 | |
| 	TotalExecutions             uint64 // Total number of checks
 | |
| 	SuccessfulExecutions        uint64 // Number of successful executions
 | |
| 	TotalExecutionsResponseTime uint64 // Total response time for all executions in milliseconds
 | |
| }
 | |
| 
 | |
| // NewUptime creates a new Uptime
 | |
| func NewUptime() *Uptime {
 | |
| 	return &Uptime{
 | |
| 		HourlyStatistics: make(map[int64]*HourlyUptimeStatistics),
 | |
| 	}
 | |
| }
 |