mirror of
https://github.com/TwiN/gatus.git
synced 2024-11-28 02:43:10 +01:00
9d151fcdb4
* refactor: Partially break core package into dns, result and ssh packages * refactor: Move core package to config/endpoint * refactor: Fix warning about overlapping imported package name with endpoint variable * refactor: Rename EndpointStatus to Status * refactor: Merge result pkg back into endpoint pkg, because it makes more sense * refactor: Rename parameter r to result in Condition.evaluate * refactor: Rename parameter r to result * refactor: Revert accidental change to endpoint.TypeDNS * refactor: Rename parameter r to result * refactor: Merge util package into endpoint package * refactor: Rename parameter r to result
40 lines
1000 B
Go
40 lines
1000 B
Go
package endpoint
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
// Event is something that happens at a specific time
|
|
type Event struct {
|
|
// Type is the kind of event
|
|
Type EventType `json:"type"`
|
|
|
|
// Timestamp is the moment at which the event happened
|
|
Timestamp time.Time `json:"timestamp"`
|
|
}
|
|
|
|
// EventType is, uh, the types of events?
|
|
type EventType string
|
|
|
|
var (
|
|
// EventStart is a type of event that represents when an endpoint starts being monitored
|
|
EventStart EventType = "START"
|
|
|
|
// EventHealthy is a type of event that represents an endpoint passing all of its conditions
|
|
EventHealthy EventType = "HEALTHY"
|
|
|
|
// EventUnhealthy is a type of event that represents an endpoint failing one or more of its conditions
|
|
EventUnhealthy EventType = "UNHEALTHY"
|
|
)
|
|
|
|
// NewEventFromResult creates an Event from a Result
|
|
func NewEventFromResult(result *Result) *Event {
|
|
event := &Event{Timestamp: result.Timestamp}
|
|
if result.Success {
|
|
event.Type = EventHealthy
|
|
} else {
|
|
event.Type = EventUnhealthy
|
|
}
|
|
return event
|
|
}
|