aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-webserver-core
diff options
context:
space:
mode:
authorPierre Guillot <50145663+pierre-guillot-sonarsource@users.noreply.github.com>2022-08-19 14:59:11 +0200
committersonartech <sonartech@sonarsource.com>2022-09-05 20:02:56 +0000
commit3aae5514421557500b047eab24d728979fe24f25 (patch)
treedc1295e705580a5d2706580f6c72582c4b1e6766 /server/sonar-webserver-core
parent78c0eb9e35d9925b7451fea5ec4c71f82b81d258 (diff)
downloadsonarqube-3aae5514421557500b047eab24d728979fe24f25.tar.gz
sonarqube-3aae5514421557500b047eab24d728979fe24f25.zip
SONAR-17197 change telemetry to once a day
Diffstat (limited to 'server/sonar-webserver-core')
-rw-r--r--server/sonar-webserver-core/src/main/java/org/sonar/server/telemetry/TelemetryDaemon.java10
-rw-r--r--server/sonar-webserver-core/src/test/java/org/sonar/server/telemetry/TelemetryDaemonTest.java22
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();