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

zhaoqingran pushed a commit to branch log-oltp
in repository https://gitbox.apache.org/repos/asf/hertzbeat.git


The following commit(s) were added to refs/heads/log-oltp by this push:
     new ece13b5e6 modify api endpoints
ece13b5e6 is described below

commit ece13b5e6be7f766fa24b6be60daeed3deda5c46
Author: Logic <[email protected]>
AuthorDate: Tue Nov 19 00:44:07 2024 +0800

    modify api endpoints
---
 .../client/VictoriaLogsQueryClient.java            | 28 +++++++++++++++-------
 .../log/victorialogs/model/LogQueryRequest.java    |  2 ++
 2 files changed, 21 insertions(+), 9 deletions(-)

diff --git 
a/hertzbeat-log/src/main/java/org/apache/hertzbeat/log/victorialogs/client/VictoriaLogsQueryClient.java
 
b/hertzbeat-log/src/main/java/org/apache/hertzbeat/log/victorialogs/client/VictoriaLogsQueryClient.java
index a4d42b46b..60ab26eb1 100644
--- 
a/hertzbeat-log/src/main/java/org/apache/hertzbeat/log/victorialogs/client/VictoriaLogsQueryClient.java
+++ 
b/hertzbeat-log/src/main/java/org/apache/hertzbeat/log/victorialogs/client/VictoriaLogsQueryClient.java
@@ -18,6 +18,8 @@
 package org.apache.hertzbeat.log.victorialogs.client;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.hertzbeat.log.victorialogs.config.VictoriaLogsProperties;
 import org.apache.hertzbeat.log.victorialogs.model.LogQueryResponse;
@@ -37,6 +39,7 @@ import java.time.Duration;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.function.Consumer;
+import org.springframework.web.util.UriUtils;
 
 @Slf4j
 @Component
@@ -77,7 +80,7 @@ public class VictoriaLogsQueryClient {
      */
     public List<LogQueryResponse> query(LogQueryRequest request) {
         String url = buildQueryUrl(request);
-        log.debug("Executing query: {}", url);
+        log.info("Executing query: {}", url);
 
         try {
             String response = restTemplate.getForObject(url, String.class);
@@ -153,24 +156,31 @@ public class VictoriaLogsQueryClient {
      * Build URL for regular queries
      */
     private String buildQueryUrl(LogQueryRequest request) {
-        UriComponentsBuilder builder = UriComponentsBuilder
-                .fromHttpUrl(properties.url())
-                .path(QUERY)
-                .queryParam("query", request.getQuery());
+        // 不使用 UriComponentsBuilder,因为它可能会导致多次编码
+        StringBuilder urlBuilder = new StringBuilder(properties.url())
+                .append("/select/logsql/query?query=");
 
+        // 只编码一次查询参数
+        urlBuilder.append(URLEncoder.encode(request.getQuery(), 
StandardCharsets.UTF_8));
+
+        // 添加其他参数
         if (StringUtils.hasText(request.getStart())) {
-            builder.queryParam("start", request.getStart());
+            
urlBuilder.append("&start=").append(URLEncoder.encode(request.getStart(), 
StandardCharsets.UTF_8));
         }
         if (StringUtils.hasText(request.getEnd())) {
-            builder.queryParam("end", request.getEnd());
+            
urlBuilder.append("&end=").append(URLEncoder.encode(request.getEnd(), 
StandardCharsets.UTF_8));
         }
         if (request.getLimit() != null) {
-            builder.queryParam("limit", request.getLimit());
+            urlBuilder.append("&limit=").append(request.getLimit());
+        } else {
+            urlBuilder.append("&limit=500");
         }
 
-        return builder.build().encode().toUriString();
+        return urlBuilder.toString();
     }
 
+
+
     /**
      * Build URL for count queries
      */
diff --git 
a/hertzbeat-log/src/main/java/org/apache/hertzbeat/log/victorialogs/model/LogQueryRequest.java
 
b/hertzbeat-log/src/main/java/org/apache/hertzbeat/log/victorialogs/model/LogQueryRequest.java
index f7e37b567..7906ee2f5 100644
--- 
a/hertzbeat-log/src/main/java/org/apache/hertzbeat/log/victorialogs/model/LogQueryRequest.java
+++ 
b/hertzbeat-log/src/main/java/org/apache/hertzbeat/log/victorialogs/model/LogQueryRequest.java
@@ -23,6 +23,8 @@ import jakarta.validation.constraints.NotBlank;
 import java.util.Set;
 import lombok.Builder;
 import lombok.Data;
+import lombok.Value;
+import org.springframework.boot.context.properties.bind.DefaultValue;
 
 
 /**


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

Reply via email to