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

gongchao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hertzbeat.git


The following commit(s) were added to refs/heads/master by this push:
     new 558599350 [bugfix] added basic auth support for VictoriaMetrics status 
check (#2282)
558599350 is described below

commit 5585993503d7b6f0963b2ad0a768f31c10af4141
Author: Logic <[email protected]>
AuthorDate: Tue Jul 16 16:35:44 2024 +0800

    [bugfix] added basic auth support for VictoriaMetrics status check (#2282)
---
 .../store/history/vm/VictoriaMetricsDataStorage.java  | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git 
a/warehouse/src/main/java/org/apache/hertzbeat/warehouse/store/history/vm/VictoriaMetricsDataStorage.java
 
b/warehouse/src/main/java/org/apache/hertzbeat/warehouse/store/history/vm/VictoriaMetricsDataStorage.java
index 6a687fa29..2770956a3 100644
--- 
a/warehouse/src/main/java/org/apache/hertzbeat/warehouse/store/history/vm/VictoriaMetricsDataStorage.java
+++ 
b/warehouse/src/main/java/org/apache/hertzbeat/warehouse/store/history/vm/VictoriaMetricsDataStorage.java
@@ -17,7 +17,6 @@
 
 package org.apache.hertzbeat.warehouse.store.history.vm;
 
-import com.fasterxml.jackson.databind.JsonNode;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.net.URI;
@@ -103,13 +102,21 @@ public class VictoriaMetricsDataStorage extends 
AbstractHistoryDataStorage {
     private boolean checkVictoriaMetricsDatasourceAvailable() {
         // check server status
         try {
-            String result = 
restTemplate.getForObject(victoriaMetricsProp.url() + STATUS_PATH, 
String.class);
-
-            JsonNode jsonNode = JsonUtil.fromJson(result);
-            if (jsonNode != null && 
STATUS_SUCCESS.equalsIgnoreCase(jsonNode.get(STATUS).asText())) {
+            HttpHeaders headers = new HttpHeaders();
+            if (StringUtils.hasText(victoriaMetricsProp.username())
+                    && StringUtils.hasText(victoriaMetricsProp.password())) {
+                String authStr = victoriaMetricsProp.username() + ":" + 
victoriaMetricsProp.password();
+                String encodedAuth = new 
String(Base64.encodeBase64(authStr.getBytes(StandardCharsets.UTF_8)), 
StandardCharsets.UTF_8);
+                headers.add(HttpHeaders.AUTHORIZATION,  BASIC + " " + 
encodedAuth);
+            }
+            HttpEntity<Void> httpEntity = new HttpEntity<>(headers);
+            ResponseEntity<String> responseEntity = 
restTemplate.exchange(victoriaMetricsProp.url() + STATUS_PATH,
+                    HttpMethod.GET, httpEntity, String.class);
+            if (responseEntity.getStatusCode().is2xxSuccessful()) {
+                log.info("check victoria metrics server status success.");
                 return true;
             }
-            log.error("check victoria metrics server status not success: {}.", 
result);
+            log.error("check victoria metrics server status not success: {}.", 
responseEntity.getBody());
         } catch (Exception e) {
             log.error("check victoria metrics server status error: {}.", 
e.getMessage());
         }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to