Increase grace period of status for hosts (#3151)

* Increase grace period of status for hosts

* Update tests

* Update more tests
This commit is contained in:
Tomas Touceda 2021-11-30 18:37:27 -03:00 committed by GitHub
parent 5a5551147c
commit 4ef9cfdf63
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 14 additions and 13 deletions

View file

@ -0,0 +1 @@
* Increase the grace period for host status to 1 min to prevent flapping of status from hosts

View file

@ -69,7 +69,7 @@ func testTargetsCountHosts(t *testing.T, ds *Datastore) {
h1 := initHost(mockClock.Now().Add(-1*time.Second), 10, 60, &team1.ID)
h2 := initHost(mockClock.Now().Add(-1*time.Hour), 30, 7200, &team2.ID)
h3 := initHost(mockClock.Now().Add(-5*time.Second), 20, 20, &team2.ID)
h4 := initHost(mockClock.Now().Add(-47*time.Second), 10, 10, &team2.ID)
h4 := initHost(mockClock.Now().Add(-127*time.Second), 10, 10, &team2.ID)
h5 := initHost(mockClock.Now(), 5, 5, nil)
const thirtyDaysAndAMinuteAgo = -1 * (30*24*60 + 1)
h6 := initHost(mockClock.Now().Add(thirtyDaysAndAMinuteAgo*time.Minute), 3600, 3600, nil)
@ -235,20 +235,20 @@ func testTargetsHostStatus(t *testing.T, ds *Datastore) {
metrics fleet.TargetMetrics
}{
{mockClock.Now().Add(-30 * time.Second), 10, 3600, expectOnline},
{mockClock.Now().Add(-45 * time.Second), 10, 3600, expectOffline},
{mockClock.Now().Add(-125 * time.Second), 10, 3600, expectOffline},
{mockClock.Now().Add(-30 * time.Second), 3600, 10, expectOnline},
{mockClock.Now().Add(-45 * time.Second), 3600, 10, expectOffline},
{mockClock.Now().Add(-125 * time.Second), 3600, 10, expectOffline},
{mockClock.Now().Add(-70 * time.Second), 60, 60, expectOnline},
{mockClock.Now().Add(-91 * time.Second), 60, 60, expectOffline},
{mockClock.Now().Add(-121 * time.Second), 60, 60, expectOffline},
{mockClock.Now().Add(-1 * time.Second), 10, 10, expectOnline},
{mockClock.Now().Add(-1 * time.Minute), 10, 10, expectOffline},
{mockClock.Now().Add(-2 * time.Minute), 10, 10, expectOffline},
{mockClock.Now().Add(-31 * 24 * time.Hour), 10, 10, expectMIA},
// Ensure behavior is reasonable if we don't have the values
{mockClock.Now().Add(-1 * time.Second), 0, 0, expectOnline},
{mockClock.Now().Add(-1 * time.Minute), 0, 0, expectOffline},
{mockClock.Now().Add(-2 * time.Minute), 0, 0, expectOffline},
{mockClock.Now().Add(-31 * 24 * time.Hour), 0, 0, expectMIA},
}

View file

@ -29,7 +29,7 @@ const (
// OnlineIntervalBuffer is the additional time in seconds to add to the
// online interval to avoid flapping of hosts that check in a bit later
// than their expected checkin interval.
OnlineIntervalBuffer = 30
OnlineIntervalBuffer = 60
)
type HostListOptions struct {

View file

@ -18,20 +18,20 @@ func TestHostStatus(t *testing.T) {
status HostStatus
}{
{mockClock.Now().Add(-30 * time.Second), 10, 3600, StatusOnline},
{mockClock.Now().Add(-45 * time.Second), 10, 3600, StatusOffline},
{mockClock.Now().Add(-75 * time.Second), 10, 3600, StatusOffline},
{mockClock.Now().Add(-30 * time.Second), 3600, 10, StatusOnline},
{mockClock.Now().Add(-45 * time.Second), 3600, 10, StatusOffline},
{mockClock.Now().Add(-75 * time.Second), 3600, 10, StatusOffline},
{mockClock.Now().Add(-70 * time.Second), 60, 60, StatusOnline},
{mockClock.Now().Add(-91 * time.Second), 60, 60, StatusOffline},
{mockClock.Now().Add(-60 * time.Second), 60, 60, StatusOnline},
{mockClock.Now().Add(-121 * time.Second), 60, 60, StatusOffline},
{mockClock.Now().Add(-1 * time.Second), 10, 10, StatusOnline},
{mockClock.Now().Add(-1 * time.Minute), 10, 10, StatusOffline},
{mockClock.Now().Add(-2 * time.Minute), 10, 10, StatusOffline},
{mockClock.Now().Add(-31 * 24 * time.Hour), 10, 10, StatusMIA},
// Ensure behavior is reasonable if we don't have the values
{mockClock.Now().Add(-1 * time.Second), 0, 0, StatusOnline},
{mockClock.Now().Add(-1 * time.Minute), 0, 0, StatusOffline},
{mockClock.Now().Add(-2 * time.Minute), 0, 0, StatusOffline},
{mockClock.Now().Add(-31 * 24 * time.Hour), 0, 0, StatusMIA},
}