gatus/config/endpoint/event.go

40 lines
1000 B
Go
Raw Normal View History

package endpoint
2021-01-29 04:44:31 +01:00
import (
"time"
)
2021-01-29 04:44:31 +01:00
// 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
2021-01-29 04:44:31 +01:00
EventStart EventType = "START"
// EventHealthy is a type of event that represents an endpoint passing all of its conditions
2021-01-29 04:44:31 +01:00
EventHealthy EventType = "HEALTHY"
// EventUnhealthy is a type of event that represents an endpoint failing one or more of its conditions
2021-01-29 04:44:31 +01:00
EventUnhealthy EventType = "UNHEALTHY"
)
2021-07-17 01:51:09 +02:00
// 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
}