aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-ce
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@sonarsource.com>2016-03-16 23:01:11 +0100
committerSimon Brandhof <simon.brandhof@sonarsource.com>2016-03-25 09:58:44 +0100
commit6bc55b17ebd87802cb9b55d5b6625e1a935f3909 (patch)
tree0a50457cc294c211ad7a3ee081dabb93e4231286 /server/sonar-ce
parent4250bb53f050b5a7f86b211ec2b34f85f7cc3ddc (diff)
downloadsonarqube-6bc55b17ebd87802cb9b55d5b6625e1a935f3909.tar.gz
sonarqube-6bc55b17ebd87802cb9b55d5b6625e1a935f3909.zip
SONAR-7436 Monitoring of CE process in system WS and console
Diffstat (limited to 'server/sonar-ce')
-rw-r--r--server/sonar-ce/src/main/java/org/sonar/ce/app/WebServerWatcherImpl.java4
-rw-r--r--server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java4
-rw-r--r--server/sonar-ce/src/test/java/org/sonar/ce/app/WebServerWatcherImplTest.java4
-rw-r--r--server/sonar-ce/src/test/java/org/sonar/ce/container/ComputeEngineContainerImplTest.java6
4 files changed, 11 insertions, 7 deletions
diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/app/WebServerWatcherImpl.java b/server/sonar-ce/src/main/java/org/sonar/ce/app/WebServerWatcherImpl.java
index 4ebc8f80030..73bde24aa0e 100644
--- a/server/sonar-ce/src/main/java/org/sonar/ce/app/WebServerWatcherImpl.java
+++ b/server/sonar-ce/src/main/java/org/sonar/ce/app/WebServerWatcherImpl.java
@@ -23,10 +23,10 @@ import java.io.File;
import org.sonar.api.utils.log.Logger;
import org.sonar.api.utils.log.Loggers;
import org.sonar.process.DefaultProcessCommands;
+import org.sonar.process.ProcessId;
public class WebServerWatcherImpl implements WebServerWatcher {
private static final Logger LOG = Loggers.get(WebServerWatcherImpl.class);
- private static final int WEB_SERVER_PROCESS_NUMBER = 2;
private static final int POLL_DELAY = 200;
// accounting only every 5 log calls so that only one every second (because delay is 200ms) is taken into account
private static final int CALL_RATIO = 5;
@@ -39,7 +39,7 @@ public class WebServerWatcherImpl implements WebServerWatcher {
@Override
public boolean waitForOperational() {
- try (DefaultProcessCommands processCommands = DefaultProcessCommands.secondary(sharedDir, WEB_SERVER_PROCESS_NUMBER)) {
+ try (DefaultProcessCommands processCommands = DefaultProcessCommands.secondary(sharedDir, ProcessId.WEB_SERVER.getIpcIndex())) {
if (processCommands.isOperational()) {
return true;
}
diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java b/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java
index 42527bf4e8b..be0bda6e858 100644
--- a/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java
+++ b/server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java
@@ -108,6 +108,7 @@ import org.sonar.server.platform.ServerImpl;
import org.sonar.server.platform.ServerLifecycleNotifier;
import org.sonar.server.platform.ServerLogging;
import org.sonar.server.platform.TempFolderProvider;
+import org.sonar.server.platform.monitoring.JmxConnectorProvider;
import org.sonar.server.plugins.InstalledPluginReferentialFactory;
import org.sonar.server.plugins.ServerExtensionInstaller;
import org.sonar.server.properties.ProjectSettingsFactory;
@@ -138,6 +139,7 @@ public class ComputeEngineContainerImpl implements ComputeEngineContainer {
private static final Object[] LEVEL_1_COMPONENTS = new Object[] {
ComputeEngineSettings.class,
new SonarQubeVersionProvider(),
+ new JmxConnectorProvider(),
ServerImpl.class,
UuidFactoryImpl.INSTANCE,
// no EmbeddedDatabaseFactory.class, creating H2 DB if responsibility of WebServer
@@ -521,7 +523,7 @@ public class ComputeEngineContainerImpl implements ComputeEngineContainer {
// SonarQubeMonitor.class, no Monitor in CE, responsibility of Web Server
// EsMonitor.class, no Monitor in CE, responsibility of Web Server
// PluginsMonitor.class, no Monitor in CE, responsibility of Web Server
- // JvmPropertiesMonitor.class, no Monitor in CE, responsibility of Web Server
+ // JvmPropsMonitor.class, no Monitor in CE, responsibility of Web Server
// DatabaseMonitor.class, no Monitor in CE, responsibility of Web Server
// MigrateDbAction.class, no Web Service in CE
// LogsAction.class, no Web Service in CE
diff --git a/server/sonar-ce/src/test/java/org/sonar/ce/app/WebServerWatcherImplTest.java b/server/sonar-ce/src/test/java/org/sonar/ce/app/WebServerWatcherImplTest.java
index 32007dc60f1..d4a9ae285a4 100644
--- a/server/sonar-ce/src/test/java/org/sonar/ce/app/WebServerWatcherImplTest.java
+++ b/server/sonar-ce/src/test/java/org/sonar/ce/app/WebServerWatcherImplTest.java
@@ -30,12 +30,12 @@ import org.junit.rules.Timeout;
import org.sonar.api.utils.log.LogTester;
import org.sonar.api.utils.log.LoggerLevel;
import org.sonar.process.DefaultProcessCommands;
+import org.sonar.process.ProcessId;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static org.assertj.core.api.Assertions.assertThat;
public class WebServerWatcherImplTest {
- private static final int WEB_SERVER_PROCESS_NUMBER = 2;
@Rule
public Timeout timeout = Timeout.seconds(1);
@@ -102,7 +102,7 @@ public class WebServerWatcherImplTest {
}
private void setWebServerOperational() {
- try (DefaultProcessCommands processCommands = DefaultProcessCommands.secondary(sharedDir, WEB_SERVER_PROCESS_NUMBER)) {
+ try (DefaultProcessCommands processCommands = DefaultProcessCommands.secondary(sharedDir, ProcessId.WEB_SERVER.getIpcIndex())) {
processCommands.setOperational();
}
}
diff --git a/server/sonar-ce/src/test/java/org/sonar/ce/container/ComputeEngineContainerImplTest.java b/server/sonar-ce/src/test/java/org/sonar/ce/container/ComputeEngineContainerImplTest.java
index b56bd13daf1..291093f2b45 100644
--- a/server/sonar-ce/src/test/java/org/sonar/ce/container/ComputeEngineContainerImplTest.java
+++ b/server/sonar-ce/src/test/java/org/sonar/ce/container/ComputeEngineContainerImplTest.java
@@ -34,6 +34,7 @@ import org.sonar.db.DbTester;
import org.sonar.process.Props;
import static org.assertj.core.api.Assertions.assertThat;
+import static org.sonar.process.ProcessEntryPoint.PROPERTY_SHARED_PATH;
import static org.sonar.process.ProcessProperties.PATH_DATA;
import static org.sonar.process.ProcessProperties.PATH_HOME;
import static org.sonar.process.ProcessProperties.PATH_TEMP;
@@ -65,6 +66,7 @@ public class ComputeEngineContainerImplTest {
properties.setProperty(PATH_HOME, homeDir.getAbsolutePath());
properties.setProperty(PATH_DATA, dataDir.getAbsolutePath());
properties.setProperty(PATH_TEMP, tmpDir.getAbsolutePath());
+ properties.setProperty(PROPERTY_SHARED_PATH, tmpDir.getAbsolutePath());
String url = ((BasicDataSource) dbTester.database().getDataSource()).getUrl();
properties.setProperty(DatabaseProperties.PROP_URL, url);
properties.setProperty(DatabaseProperties.PROP_USER, "sonar");
@@ -77,7 +79,7 @@ public class ComputeEngineContainerImplTest {
assertThat(picoContainer.getComponentAdapters())
.hasSize(
CONTAINER_ITSELF
- + 77 // level 4
+ + 78 // level 4
+ 5 // content of CeModule
+ 7 // content of CeQueueModule
+ 4 // content of ReportProcessingModule
@@ -93,7 +95,7 @@ public class ComputeEngineContainerImplTest {
);
assertThat(picoContainer.getParent().getParent().getParent().getComponentAdapters()).hasSize(
COMPONENTS_IN_LEVEL_1_AT_CONSTRUCTION
- + 22 // level 1
+ + 23 // level 1
+ 47 // content of DaoModule
+ 1 // content of EsSearchModule
+ 56 // content of CorePropertyDefinitions