From 4558e5786f367160a219fd8bbc1f9872e51ea661 Mon Sep 17 00:00:00 2001 From: Duarte Meneses Date: Thu, 25 Feb 2021 15:21:10 -0600 Subject: SONAR-14518 Telemetry - include number of sonarlint users --- .../server/telemetry/TelemetryDataLoaderImpl.java | 2 +- .../server/platform/ClusterSystemInfoWriterTest.java | 5 +++-- .../platform/StandaloneSystemInfoWriterTest.java | 3 ++- .../server/telemetry/TelemetryDataLoaderImplTest.java | 18 ++++++++++++++++-- 4 files changed, 22 insertions(+), 6 deletions(-) (limited to 'server/sonar-webserver-core') diff --git a/server/sonar-webserver-core/src/main/java/org/sonar/server/telemetry/TelemetryDataLoaderImpl.java b/server/sonar-webserver-core/src/main/java/org/sonar/server/telemetry/TelemetryDataLoaderImpl.java index c944b32e857..16354f7b359 100644 --- a/server/sonar-webserver-core/src/main/java/org/sonar/server/telemetry/TelemetryDataLoaderImpl.java +++ b/server/sonar-webserver-core/src/main/java/org/sonar/server/telemetry/TelemetryDataLoaderImpl.java @@ -144,6 +144,7 @@ public class TelemetryDataLoaderImpl implements TelemetryDataLoader { .stream() .collect(Collectors.toMap(ProjectCountPerAnalysisPropertyValue::getPropertyValue, ProjectCountPerAnalysisPropertyValue::getCount)); data.setProjectCountByScm(projectCountPerScmDetected); + data.setSonarlintWeeklyUsers(dbClient.userDao().countSonarlintWeeklyUsers(dbSession)); } setSecurityCustomConfigIfPresent(data); @@ -153,7 +154,6 @@ public class TelemetryDataLoaderImpl implements TelemetryDataLoader { Optional installationVersionProperty = internalProperties.read(InternalProperties.INSTALLATION_VERSION); data.setInstallationVersion(installationVersionProperty.orElse(null)); data.setInDocker(dockerSupport.isRunningInDocker()); - return data.build(); } diff --git a/server/sonar-webserver-core/src/test/java/org/sonar/server/platform/ClusterSystemInfoWriterTest.java b/server/sonar-webserver-core/src/test/java/org/sonar/server/platform/ClusterSystemInfoWriterTest.java index 560e4461f19..e22bbe0cd20 100644 --- a/server/sonar-webserver-core/src/test/java/org/sonar/server/platform/ClusterSystemInfoWriterTest.java +++ b/server/sonar-webserver-core/src/test/java/org/sonar/server/platform/ClusterSystemInfoWriterTest.java @@ -73,8 +73,9 @@ public class ClusterSystemInfoWriterTest { + "\"Application Nodes\":[{\"Name\":\"appNodes\",\"\":{\"name\":\"appNodes\"}}]," + "\"Search Nodes\":[{\"Name\":\"searchNodes\",\"\":{\"name\":\"searchNodes\"}}]," + "\"Statistics\":{\"id\":\"\",\"version\":\"\",\"database\":{\"name\":\"\",\"version\":\"\"},\"plugins\":[]," - + "\"userCount\":0,\"projectCount\":0,\"usingBranches\":false,\"ncloc\":0,\"projectCountByLanguage\":[]," + - "\"nclocByLanguage\":[],\"almIntegrationCount\":[],\"externalAuthProviders\":[],\"projectCountByScm\":[],\"installationDate\":0,\"installationVersion\":\"\",\"docker\":false}}"); + + "\"userCount\":0,\"projectCount\":0,\"usingBranches\":false,\"ncloc\":0,\"projectCountByLanguage\":[]," + + "\"nclocByLanguage\":[],\"almIntegrationCount\":[],\"externalAuthProviders\":[],\"projectCountByScm\":[],\"sonarlintWeeklyUsers\":0,\"installationDate\":0," + + "\"installationVersion\":\"\",\"docker\":false}}"); } private static NodeInfo createNodeInfo(String name) { diff --git a/server/sonar-webserver-core/src/test/java/org/sonar/server/platform/StandaloneSystemInfoWriterTest.java b/server/sonar-webserver-core/src/test/java/org/sonar/server/platform/StandaloneSystemInfoWriterTest.java index c22757e9e81..d9e68091ae1 100644 --- a/server/sonar-webserver-core/src/test/java/org/sonar/server/platform/StandaloneSystemInfoWriterTest.java +++ b/server/sonar-webserver-core/src/test/java/org/sonar/server/platform/StandaloneSystemInfoWriterTest.java @@ -80,7 +80,8 @@ public class StandaloneSystemInfoWriterTest { // response does not contain empty "Section Three" assertThat(writer).hasToString("{\"Health\":\"GREEN\",\"Health Causes\":[],\"Section One\":{\"foo\":\"bar\"},\"Section Two\":{\"one\":1,\"two\":2}," + "\"Statistics\":{\"id\":\"\",\"version\":\"\",\"database\":{\"name\":\"\",\"version\":\"\"},\"plugins\":[],\"userCount\":0,\"projectCount\":0,\"usingBranches\":false," + - "\"ncloc\":0,\"projectCountByLanguage\":[],\"nclocByLanguage\":[],\"almIntegrationCount\":[],\"externalAuthProviders\":[],\"projectCountByScm\":[],\"installationDate\":0,\"installationVersion\":\"\",\"docker\":false}}"); + "\"ncloc\":0,\"projectCountByLanguage\":[],\"nclocByLanguage\":[],\"almIntegrationCount\":[],\"externalAuthProviders\":[],\"projectCountByScm\":[]," + + "\"sonarlintWeeklyUsers\":0,\"installationDate\":0,\"installationVersion\":\"\",\"docker\":false}}"); } private void logInAsSystemAdministrator() { diff --git a/server/sonar-webserver-core/src/test/java/org/sonar/server/telemetry/TelemetryDataLoaderImplTest.java b/server/sonar-webserver-core/src/test/java/org/sonar/server/telemetry/TelemetryDataLoaderImplTest.java index dd78c60e233..4ec49748d9b 100644 --- a/server/sonar-webserver-core/src/test/java/org/sonar/server/telemetry/TelemetryDataLoaderImplTest.java +++ b/server/sonar-webserver-core/src/test/java/org/sonar/server/telemetry/TelemetryDataLoaderImplTest.java @@ -66,15 +66,17 @@ import static org.sonar.server.metric.UnanalyzedLanguageMetrics.UNANALYZED_CPP_K import static org.sonar.server.metric.UnanalyzedLanguageMetrics.UNANALYZED_C_KEY; public class TelemetryDataLoaderImplTest { + private final static Long NOW = 100_000_000L; + private final TestSystem2 system2 = new TestSystem2().setNow(NOW); + @Rule - public DbTester db = DbTester.create(); + public DbTester db = DbTester.create(system2); @Rule public EsTester es = EsTester.create(); private final FakeServer server = new FakeServer(); private final PluginRepository pluginRepository = mock(PluginRepository.class); private final Configuration configuration = mock(Configuration.class); - private final TestSystem2 system2 = new TestSystem2().setNow(System.currentTimeMillis()); private final PlatformEditionProvider editionProvider = mock(PlatformEditionProvider.class); private final DockerSupport dockerSupport = mock(DockerSupport.class); private final InternalProperties internalProperties = spy(new MapInternalProperties()); @@ -201,6 +203,18 @@ public class TelemetryDataLoaderImplTest { assertThat(data.getLicenseType()).isEmpty(); } + @Test + public void data_contains_weekly_count_sonarlint_users() { + db.users().insertUser(c -> c.setLastSonarlintConnectionDate(NOW - 100_000L)); + db.users().insertUser(c -> c.setLastSonarlintConnectionDate(NOW)); + // these don't count + db.users().insertUser(c -> c.setLastSonarlintConnectionDate(NOW - 1_000_000_000L)); + db.users().insertUser(); + + TelemetryData data = communityUnderTest.load(); + assertThat(data.sonarlintWeeklyUsers()).isEqualTo(2L); + } + @Test public void data_has_license_type_on_commercial_edition_if_no_license() { String licenseType = randomAlphabetic(12); -- cgit v1.2.3