gatus/config/endpoint/result.go

65 lines
1.8 KiB
Go
Raw Normal View History

package endpoint
2019-09-07 02:25:31 +02:00
import (
"time"
)
// Result of the evaluation of a Endpoint
2019-09-07 02:25:31 +02:00
type Result struct {
2020-10-23 22:29:20 +02:00
// HTTPStatus is the HTTP response status code
HTTPStatus int `json:"status,omitempty"`
// DNSRCode is the response code of a DNS query in a human-readable format
//
// Possible values: NOERROR, FORMERR, SERVFAIL, NXDOMAIN, NOTIMP, REFUSED
2020-11-30 15:40:57 +01:00
DNSRCode string `json:"-"`
2020-11-18 00:55:31 +01:00
// Hostname extracted from Endpoint.URL
2021-11-04 03:18:23 +01:00
Hostname string `json:"hostname,omitempty"`
// IP resolved from the Endpoint URL
2020-10-23 22:29:20 +02:00
IP string `json:"-"`
// Connected whether a connection to the host was established successfully
Connected bool `json:"-"`
// Duration time that the request took
Duration time.Duration `json:"duration"`
// Errors encountered during the evaluation of the Endpoint's health
2021-11-04 03:18:23 +01:00
Errors []string `json:"errors,omitempty"`
// ConditionResults are the results of each of the Endpoint's Condition
ConditionResults []*ConditionResult `json:"conditionResults,omitempty"`
// Success whether the result signifies a success or not
Success bool `json:"success"`
// Timestamp when the request was sent
Timestamp time.Time `json:"timestamp"`
// CertificateExpiration is the duration before the certificate expires
2020-11-30 15:40:57 +01:00
CertificateExpiration time.Duration `json:"-"`
// DomainExpiration is the duration before the domain expires
DomainExpiration time.Duration `json:"-"`
// Body is the response body
//
// Note that this field is not persisted in the storage.
// It is used for health evaluation as well as debugging purposes.
Body []byte `json:"-"`
2019-09-07 02:25:31 +02:00
}
2021-06-06 00:50:24 +02:00
// AddError adds an error to the result's list of errors.
// It also ensures that there are no duplicates.
func (r *Result) AddError(error string) {
for _, resultError := range r.Errors {
if resultError == error {
// If the error already exists, don't add it
return
}
}
r.Errors = append(r.Errors, error)
}