This is an automated email from the ASF dual-hosted git repository.

wuzhiguo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/bigtop-manager.git


The following commit(s) were added to refs/heads/main by this push:
     new 3e23f386 BIGTOP-4258: Support prometheus on openeuler22 aarch64 (#98)
3e23f386 is described below

commit 3e23f38657ebae619e4027ba66d0bdf1d3c50fee
Author: haopeng <[email protected]>
AuthorDate: Fri Nov 1 14:47:32 2024 +0800

    BIGTOP-4258: Support prometheus on openeuler22 aarch64 (#98)
---
 .../infra/1.0.0/services/prometheus/metainfo.xml      | 14 ++++++++++++++
 .../bigtop/manager/stack/core/param/BaseParams.java   |  2 +-
 .../v1_0_0/prometheus/PrometheusServerScript.java     | 19 ++++++++++++++++---
 3 files changed, 31 insertions(+), 4 deletions(-)

diff --git 
a/bigtop-manager-server/src/main/resources/stacks/infra/1.0.0/services/prometheus/metainfo.xml
 
b/bigtop-manager-server/src/main/resources/stacks/infra/1.0.0/services/prometheus/metainfo.xml
index 97cc63e6..ec1ec1e9 100644
--- 
a/bigtop-manager-server/src/main/resources/stacks/infra/1.0.0/services/prometheus/metainfo.xml
+++ 
b/bigtop-manager-server/src/main/resources/stacks/infra/1.0.0/services/prometheus/metainfo.xml
@@ -61,6 +61,20 @@
                     </package>
                 </packages>
             </package-specific>
+            <package-specific>
+                <operating-systems>
+                    <os>openeuler22</os>
+                </operating-systems>
+                <architectures>
+                    <arch>aarch64</arch>
+                </architectures>
+                <packages>
+                    <package>
+                        <name>prometheus-2.54.0.linux-arm64.tar.gz</name>
+                        
<checksum>SHA-256:ed50b67cb833a225ec2a53b487c6e20372b20e56dce226423fa8611c8aa50392</checksum>
+                    </package>
+                </packages>
+            </package-specific>
         </package-specifics>
     </service>
 </metainfo>
\ No newline at end of file
diff --git 
a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/param/BaseParams.java
 
b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/param/BaseParams.java
index d5df7a46..e17f47de 100644
--- 
a/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/param/BaseParams.java
+++ 
b/bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/param/BaseParams.java
@@ -106,7 +106,7 @@ public abstract class BaseParams implements Params {
                 .filter(r -> OSDetection.getArch().equals(r.getArch()))
                 .findFirst()
                 .orElseThrow(() -> new StackException(
-                        "Cannot find repo for os: [{}] and arch: [{}]", 
OSDetection.getOS(), OSDetection.getArch()));
+                        "Cannot find repo for os: [{0}] and arch: [{1}]", 
OSDetection.getOS(), OSDetection.getArch()));
     }
 
     @Override
diff --git 
a/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/prometheus/PrometheusServerScript.java
 
b/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/prometheus/PrometheusServerScript.java
index 581ddb67..c9341607 100644
--- 
a/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/prometheus/PrometheusServerScript.java
+++ 
b/bigtop-manager-stack/bigtop-manager-stack-infra/src/main/java/org/apache/bigtop/manager/stack/infra/v1_0_0/prometheus/PrometheusServerScript.java
@@ -54,7 +54,19 @@ public class PrometheusServerScript extends 
AbstractServerScript {
                 "nohup {0}/prometheus --config.file={0}/prometheus.yml 
--storage.tsdb.path={0}/data > {0}/nohup.out 2>&1 &",
                 prometheusParams.serviceHome());
         try {
-            return LinuxOSUtils.sudoExecCmd(cmd, prometheusParams.user());
+            LinuxOSUtils.sudoExecCmd(cmd, prometheusParams.user());
+            long startTime = System.currentTimeMillis();
+            long maxWaitTime = 5000;
+            long pollInterval = 500;
+
+            while (System.currentTimeMillis() - startTime < maxWaitTime) {
+                ShellResult statusResult = status(params);
+                if (statusResult.getExitCode() == 0) {
+                    return statusResult;
+                }
+                Thread.sleep(pollInterval);
+            }
+            return status(params);
         } catch (Exception e) {
             throw new StackException(e);
         }
@@ -63,7 +75,7 @@ public class PrometheusServerScript extends 
AbstractServerScript {
     @Override
     public ShellResult stop(Params params) {
         PrometheusParams prometheusParams = (PrometheusParams) params;
-        String cmd = "pkill -f prometheus";
+        String cmd = MessageFormat.format("pkill -f {0}/prometheus", 
prometheusParams.serviceHome());
         try {
             return LinuxOSUtils.sudoExecCmd(cmd, prometheusParams.user());
         } catch (Exception e) {
@@ -73,7 +85,8 @@ public class PrometheusServerScript extends 
AbstractServerScript {
 
     @Override
     public ShellResult status(Params params) {
-        String cmd = "pgrep -f prometheus";
+        PrometheusParams prometheusParams = (PrometheusParams) params;
+        String cmd = MessageFormat.format("pgrep -f {0}/prometheus", 
prometheusParams.serviceHome());
         try {
             ShellResult result = LinuxOSUtils.execCmd(cmd);
             if (result.getExitCode() == 0) {

Reply via email to