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

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


The following commit(s) were added to refs/heads/master by this push:
     new 9f829fac3b [INLONG-10274][Audit] The OpenAPI of Audit Service returns 
the average transmission time (#10275)
9f829fac3b is described below

commit 9f829fac3b88487ba56d9c99b8167a007db03c7f
Author: doleyzi <[email protected]>
AuthorDate: Mon May 27 13:00:23 2024 +0800

    [INLONG-10274][Audit] The OpenAPI of Audit Service returns the average 
transmission time (#10275)
---
 .../apache/inlong/audit/cache/RealTimeQuery.java   | 15 ++++++----
 .../org/apache/inlong/audit/source/JdbcSource.java |  6 ++--
 .../org/apache/inlong/audit/utils/CacheUtils.java  |  4 +++
 .../java/utils/CacheUtilsTest.java}                | 34 ++++++++++++----------
 4 files changed, 36 insertions(+), 23 deletions(-)

diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/cache/RealTimeQuery.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/cache/RealTimeQuery.java
index 6eea81ec9d..45984e203b 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/cache/RealTimeQuery.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/cache/RealTimeQuery.java
@@ -216,9 +216,10 @@ public class RealTimeQuery {
                     data.setInlongStreamId(resultSet.getString(3));
                     data.setAuditId(resultSet.getString(4));
                     data.setAuditTag(resultSet.getString(5));
-                    data.setCount(resultSet.getLong(6));
+                    long count = resultSet.getLong(6);
+                    data.setCount(count);
                     data.setSize(resultSet.getLong(7));
-                    data.setDelay(resultSet.getLong(8));
+                    data.setDelay(CacheUtils.calculateAverageDelay(count, 
resultSet.getLong(8)));
                     data.setAuditVersion(resultSet.getLong(9));
                     result.add(data);
                 }
@@ -281,9 +282,10 @@ public class RealTimeQuery {
                     data.setInlongStreamId(resultSet.getString(2));
                     data.setAuditId(resultSet.getString(3));
                     data.setAuditTag(resultSet.getString(4));
-                    data.setCount(resultSet.getLong(5));
+                    long count = resultSet.getLong(5);
+                    data.setCount(count);
                     data.setSize(resultSet.getLong(6));
-                    data.setDelay(resultSet.getLong(7));
+                    data.setDelay(CacheUtils.calculateAverageDelay(count, 
resultSet.getLong(7)));
                     result.add(data);
                 }
             } catch (SQLException sqlException) {
@@ -345,9 +347,10 @@ public class RealTimeQuery {
                 while (resultSet.next()) {
                     StatData data = new StatData();
                     data.setIp(resultSet.getString(1));
-                    data.setCount(resultSet.getLong(2));
+                    long count = resultSet.getLong(2);
+                    data.setCount(count);
                     data.setSize(resultSet.getLong(3));
-                    data.setDelay(resultSet.getLong(4));
+                    data.setDelay(CacheUtils.calculateAverageDelay(count, 
resultSet.getLong(4)));
                     result.add(data);
                 }
             } catch (SQLException sqlException) {
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/source/JdbcSource.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/source/JdbcSource.java
index db485e72ea..89ee94b9e1 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/source/JdbcSource.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/source/JdbcSource.java
@@ -23,6 +23,7 @@ import org.apache.inlong.audit.entities.SourceConfig;
 import org.apache.inlong.audit.entities.StartEndTime;
 import org.apache.inlong.audit.entities.StatData;
 import org.apache.inlong.audit.service.ConfigService;
+import org.apache.inlong.audit.utils.CacheUtils;
 
 import com.zaxxer.hikari.HikariConfig;
 import com.zaxxer.hikari.HikariDataSource;
@@ -304,9 +305,10 @@ public class JdbcSource {
                         } else {
                             data.setAuditTag(auditTag);
                         }
-                        data.setCount(resultSet.getLong(5));
+                        long count = resultSet.getLong(5);
+                        data.setCount(count);
                         data.setSize(resultSet.getLong(6));
-                        data.setDelay(resultSet.getLong(7));
+                        data.setDelay(CacheUtils.calculateAverageDelay(count, 
resultSet.getLong(7)));
                         dataQueue.push(data);
                     }
                 } catch (SQLException sqlException) {
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/utils/CacheUtils.java
 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/utils/CacheUtils.java
index 4c9e8ff72a..f1319b02f9 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/utils/CacheUtils.java
+++ 
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/utils/CacheUtils.java
@@ -32,4 +32,8 @@ public class CacheUtils {
                 .append(auditTag)
                 .toString();
     }
+
+    public static long calculateAverageDelay(long totalCount, long totalDelay) 
{
+        return totalCount == 0 ? 0 : (totalDelay / Math.abs(totalCount));
+    }
 }
diff --git 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/utils/CacheUtils.java
 b/inlong-audit/audit-service/src/test/java/utils/CacheUtilsTest.java
similarity index 59%
copy from 
inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/utils/CacheUtils.java
copy to inlong-audit/audit-service/src/test/java/utils/CacheUtilsTest.java
index 4c9e8ff72a..7a3f252fa9 100644
--- 
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/utils/CacheUtils.java
+++ b/inlong-audit/audit-service/src/test/java/utils/CacheUtilsTest.java
@@ -15,21 +15,25 @@
  * limitations under the License.
  */
 
-package org.apache.inlong.audit.utils;
+package utils;
 
-/**
- * Cache utils
- */
-public class CacheUtils {
-
-    public static String buildCacheKey(String logTs, String inlongGroupId, 
String inlongStreamId,
-            String auditId, String auditTag) {
-        return new StringBuilder()
-                .append(logTs)
-                .append(inlongGroupId)
-                .append(inlongStreamId)
-                .append(auditId)
-                .append(auditTag)
-                .toString();
+import org.apache.inlong.audit.utils.CacheUtils;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class CacheUtilsTest {
+
+    @Test
+    public void calculateAverageDelay() {
+        long averageDelay = CacheUtils.calculateAverageDelay(10, 100);
+        assertEquals(10, averageDelay);
+
+        averageDelay = CacheUtils.calculateAverageDelay(-10, 100);
+        assertEquals(10, averageDelay);
+
+        averageDelay = CacheUtils.calculateAverageDelay(0, 100);
+        assertEquals(0, averageDelay);
     }
 }

Reply via email to