]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-16292 JMX metric "PendingCount" should return total value of pending tasks...
authorLéo Geoffroy <leo.geoffroy@sonarsource.com>
Thu, 2 Jun 2022 09:27:16 +0000 (11:27 +0200)
committersonartech <sonartech@sonarsource.com>
Thu, 2 Jun 2022 20:03:18 +0000 (20:03 +0000)
server/sonar-ce/src/main/java/org/sonar/ce/container/ComputeEngineContainerImpl.java
server/sonar-ce/src/main/java/org/sonar/ce/monitoring/DistributedCEQueueStatusImpl.java [deleted file]
server/sonar-ce/src/test/java/org/sonar/ce/monitoring/DistributedCEQueueStatusImplTest.java [deleted file]
server/sonar-docs/src/pages/instance-administration/monitoring.md

index 1385558c175b23c337e2136e859fc6f9c82e0e2e..ff9eea4f9f060362cf3636b13959a454b01ed39a 100644 (file)
@@ -52,7 +52,6 @@ import org.sonar.ce.db.ReadOnlyPropertiesDao;
 import org.sonar.ce.issue.index.NoAsyncIssueIndexing;
 import org.sonar.ce.logging.CeProcessLogging;
 import org.sonar.ce.monitoring.CEQueueStatusImpl;
-import org.sonar.ce.monitoring.DistributedCEQueueStatusImpl;
 import org.sonar.ce.platform.CECoreExtensionsInstaller;
 import org.sonar.ce.platform.ComputeEngineExtensionInstaller;
 import org.sonar.ce.platform.DatabaseCompatibility;
@@ -422,6 +421,7 @@ public class ComputeEngineContainerImpl implements ComputeEngineContainer {
 
       // System
       ServerLogging.class,
+      CEQueueStatusImpl.class,
 
       // SonarSource editions
       PlatformEditionProvider.class,
@@ -456,8 +456,7 @@ public class ComputeEngineContainerImpl implements ComputeEngineContainer {
       // no cleaning job on sonarcloud and no distributed information
       container.add(
         NoopCeCleaningSchedulerImpl.class,
-        StandaloneCeDistributedInformation.class,
-        CEQueueStatusImpl.class);
+        StandaloneCeDistributedInformation.class);
     } else if (props.valueAsBoolean(CLUSTER_ENABLED.getKey())) {
       container.add(
         new CeCleaningModule(),
@@ -467,14 +466,11 @@ public class ComputeEngineContainerImpl implements ComputeEngineContainer {
 
         // system info
         DbSection.class,
-        ProcessInfoProvider.class,
-
-        DistributedCEQueueStatusImpl.class);
+        ProcessInfoProvider.class);
     } else {
       container.add(
         new CeCleaningModule(),
-        StandaloneCeDistributedInformation.class,
-        CEQueueStatusImpl.class);
+        StandaloneCeDistributedInformation.class);
     }
   }
 
diff --git a/server/sonar-ce/src/main/java/org/sonar/ce/monitoring/DistributedCEQueueStatusImpl.java b/server/sonar-ce/src/main/java/org/sonar/ce/monitoring/DistributedCEQueueStatusImpl.java
deleted file mode 100644 (file)
index 1caab5c..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2022 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-package org.sonar.ce.monitoring;
-
-import org.sonar.api.utils.System2;
-import org.sonar.db.DbClient;
-
-public class DistributedCEQueueStatusImpl extends CEQueueStatusImpl {
-  public DistributedCEQueueStatusImpl(DbClient dbClient, System2 system2) {
-    super(dbClient, system2);
-  }
-
-  @Override
-  public long getPendingCount() {
-    return 0;
-  }
-}
diff --git a/server/sonar-ce/src/test/java/org/sonar/ce/monitoring/DistributedCEQueueStatusImplTest.java b/server/sonar-ce/src/test/java/org/sonar/ce/monitoring/DistributedCEQueueStatusImplTest.java
deleted file mode 100644 (file)
index c6e1c68..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * SonarQube
- * Copyright (C) 2009-2022 SonarSource SA
- * mailto:info AT sonarsource DOT com
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-package org.sonar.ce.monitoring;
-
-import org.junit.Test;
-import org.mockito.Mockito;
-import org.sonar.api.utils.System2;
-import org.sonar.db.DbClient;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verifyNoInteractions;
-
-public class DistributedCEQueueStatusImplTest extends CommonCEQueueStatusImplTest {
-  private DistributedCEQueueStatusImpl underTest = new DistributedCEQueueStatusImpl(getDbClient(), mock(System2.class));
-
-  public DistributedCEQueueStatusImplTest() {
-    super(mock(DbClient.class, Mockito.RETURNS_DEEP_STUBS));
-  }
-
-  @Override
-  protected CEQueueStatusImpl getUnderTest() {
-    return underTest;
-  }
-
-  @Test
-  public void getPendingCount_returns_0_without_querying_database() {
-    assertThat(underTest.getPendingCount()).isZero();
-
-    verifyNoInteractions(getDbClient());
-  }
-}
index 26af426c00e2f18d4c4f6cb0368b855394d54780..dc3793942dd27afeead9060dfe1de80ce0817f64 100644 (file)
@@ -56,7 +56,7 @@ All these MBeans are read-only. It's not possible to modify or reset their value
 | ---|---
 | ProcessingTime | Measure the time (in ms) spent to process Background Tasks since the last restart of SonarQube. Its value will always increase and will be reset by a restart of SonarQube.  This measure is very powerful when combined with SuccessCount and ErrorCount measures to get the average time to handle a Background Task, or when used to understand how much time the SonarQube Server is spending during a day to handle Background Tasks. It gives you an indication of the load on your server.
 | ErrorCount | Number of Background Tasks which failed since the last restart of SonarQube
-| PendingCount | Number of Background Tasks waiting to be processed since the last restart of SonarQube
+| PendingCount | Number of Background Tasks waiting to be processed since the last restart of SonarQube. This measure is the same for all Compute Engine workers since Background Tasks are waiting in a common queue.
 | InProgressCount | Number of Background Tasks currently under processing. Its value is either 1 or 0, since SonarQube can process only one task at a time.
 | SuccessCount | Number of Background Tasks successfully processed since the last restart of SonarQube
 | WorkerCount | Number of Background Tasks that can be processed at the same time
@@ -133,7 +133,7 @@ admin  adminpassword
 
 Note: on `jmxremote.password`, you should apply `chmod 600` or `400` for security reasons.
 
-## Kubernetes Monitoring
+## Prometheus Monitoring
 You can monitor your SonarQube instance using SonarQube's native integration with Prometheus. Through this integration, you can ensure your instance is running properly and know if you need to take action to prevent future issues. 
 
 Prometheus monitors your SonarQube instance by collecting metrics from the `/api/monitoring/metrics` endpoint. Results are returned in OpenMetrics text format. See Prometheus' documentation on [Exposition Formats](https://prometheus.io/docs/instrumenting/exposition_formats/) for more information on the OpenMetrics text format.