diff options
author | Pierre Guillot <50145663+pierre-guillot-sonarsource@users.noreply.github.com> | 2022-08-19 14:59:11 +0200 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2022-09-05 20:02:56 +0000 |
commit | 3aae5514421557500b047eab24d728979fe24f25 (patch) | |
tree | dc1295e705580a5d2706580f6c72582c4b1e6766 /server/sonar-webserver-core | |
parent | 78c0eb9e35d9925b7451fea5ec4c71f82b81d258 (diff) | |
download | sonarqube-3aae5514421557500b047eab24d728979fe24f25.tar.gz sonarqube-3aae5514421557500b047eab24d728979fe24f25.zip |
SONAR-17197 change telemetry to once a day
Diffstat (limited to 'server/sonar-webserver-core')
2 files changed, 14 insertions, 18 deletions
diff --git a/server/sonar-webserver-core/src/main/java/org/sonar/server/telemetry/TelemetryDaemon.java b/server/sonar-webserver-core/src/main/java/org/sonar/server/telemetry/TelemetryDaemon.java index 8880b874b73..23544746705 100644 --- a/server/sonar-webserver-core/src/main/java/org/sonar/server/telemetry/TelemetryDaemon.java +++ b/server/sonar-webserver-core/src/main/java/org/sonar/server/telemetry/TelemetryDaemon.java @@ -47,7 +47,7 @@ import static org.sonar.process.ProcessProperties.Property.SONAR_TELEMETRY_URL; @ServerSide public class TelemetryDaemon implements Startable { private static final String THREAD_NAME_PREFIX = "sq-telemetry-service-"; - private static final int SEVEN_DAYS = 7 * 24 * 60 * 60 * 1_000; + private static final int ONE_DAY = 24 * 60 * 60 * 1_000; private static final String I_PROP_LAST_PING = "telemetry.lastPing"; private static final String I_PROP_OPT_OUT = "telemetry.optOut"; private static final String LOCK_NAME = "TelemetryStat"; @@ -128,7 +128,7 @@ public class TelemetryDaemon implements Startable { long now = system2.now(); if (shouldUploadStatistics(now)) { uploadStatistics(); - internalProperties.write(I_PROP_LAST_PING, String.valueOf(startOfDay(now))); + internalProperties.write(I_PROP_LAST_PING, String.valueOf(now)); } } catch (Exception e) { LOG.debug("Error while checking SonarQube statistics: {}", e); @@ -158,11 +158,7 @@ public class TelemetryDaemon implements Startable { private boolean shouldUploadStatistics(long now) { Optional<Long> lastPing = internalProperties.read(I_PROP_LAST_PING).map(Long::valueOf); - return !lastPing.isPresent() || now - lastPing.get() >= SEVEN_DAYS; - } - - private static long startOfDay(long now) { - return parseDate(formatDate(new Date(now))).getTime(); + return !lastPing.isPresent() || now - lastPing.get() >= ONE_DAY; } private int frequency() { diff --git a/server/sonar-webserver-core/src/test/java/org/sonar/server/telemetry/TelemetryDaemonTest.java b/server/sonar-webserver-core/src/test/java/org/sonar/server/telemetry/TelemetryDaemonTest.java index bfbd334d55e..1a4f4b48d82 100644 --- a/server/sonar-webserver-core/src/test/java/org/sonar/server/telemetry/TelemetryDaemonTest.java +++ b/server/sonar-webserver-core/src/test/java/org/sonar/server/telemetry/TelemetryDaemonTest.java @@ -124,9 +124,9 @@ public class TelemetryDaemonTest { initTelemetrySettingsToDefaultValues(); when(lockManager.tryLock(any(), anyInt())).thenReturn(true); long now = system2.now(); - long sixDaysAgo = now - (ONE_DAY * 6L); - long sevenDaysAgo = now - (ONE_DAY * 7L); - internalProperties.write("telemetry.lastPing", String.valueOf(sixDaysAgo)); + long twentyHoursAgo = now - (ONE_HOUR * 20L); + long oneDayAgo = now - ONE_DAY; + internalProperties.write("telemetry.lastPing", String.valueOf(twentyHoursAgo)); settings.setProperty("sonar.telemetry.frequencyInSeconds", "1"); when(dataLoader.load()).thenReturn(SOME_TELEMETRY_DATA); mockDataJsonWriterDoingSomething(); @@ -136,36 +136,36 @@ public class TelemetryDaemonTest { verify(dataJsonWriter, after(2_000).never()).writeTelemetryData(any(JsonWriter.class), same(SOME_TELEMETRY_DATA)); verify(client, never()).upload(anyString()); - internalProperties.write("telemetry.lastPing", String.valueOf(sevenDaysAgo)); + internalProperties.write("telemetry.lastPing", String.valueOf(oneDayAgo)); verify(client, timeout(2_000)).upload(anyString()); verify(dataJsonWriter).writeTelemetryData(any(JsonWriter.class), same(SOME_TELEMETRY_DATA)); } @Test - public void do_not_send_data_if_last_ping_earlier_than_one_week_ago() throws IOException { + public void do_not_send_data_if_last_ping_earlier_than_one_day_ago() throws IOException { initTelemetrySettingsToDefaultValues(); when(lockManager.tryLock(any(), anyInt())).thenReturn(true); settings.setProperty("sonar.telemetry.frequencyInSeconds", "1"); long now = system2.now(); - long sixDaysAgo = now - (ONE_DAY * 6L); + long twentyHoursAgo = now - (ONE_HOUR * 20L); mockDataJsonWriterDoingSomething(); - internalProperties.write("telemetry.lastPing", String.valueOf(sixDaysAgo)); + internalProperties.write("telemetry.lastPing", String.valueOf(twentyHoursAgo)); underTest.start(); verify(client, after(2_000).never()).upload(anyString()); } @Test - public void send_data_if_last_ping_is_one_week_ago() throws IOException { + public void send_data_if_last_ping_is_over_one_day_ago() throws IOException { initTelemetrySettingsToDefaultValues(); when(lockManager.tryLock(any(), anyInt())).thenReturn(true); settings.setProperty("sonar.telemetry.frequencyInSeconds", "1"); long today = parseDate("2017-08-01").getTime(); - system2.setNow(today + 15 * ONE_HOUR); - long sevenDaysAgo = today - (ONE_DAY * 7L); - internalProperties.write("telemetry.lastPing", String.valueOf(sevenDaysAgo)); + system2.setNow(today); + long oneDayAgo = today - ONE_DAY - ONE_HOUR; + internalProperties.write("telemetry.lastPing", String.valueOf(oneDayAgo)); reset(internalProperties); mockDataJsonWriterDoingSomething(); |