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 a6a2b3ea50 [INLONG-10745][Audit] Unify the range of audit aggregation
intervals (#10747)
a6a2b3ea50 is described below
commit a6a2b3ea504a64f854c92eafebb9f91380e79df7
Author: doleyzi <[email protected]>
AuthorDate: Sun Aug 4 17:12:59 2024 +0800
[INLONG-10745][Audit] Unify the range of audit aggregation intervals
(#10747)
---
.../apache/inlong/audit/config/SqlConstants.java | 14 +++---
.../org/apache/inlong/audit/source/JdbcSource.java | 2 +-
.../apache/inlong/audit/source/JdbcSourceTest.java | 58 ++++++++++++++++++++++
.../apache/inlong/audit}/utils/CacheUtilsTest.java | 4 +-
4 files changed, 67 insertions(+), 11 deletions(-)
diff --git
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/config/SqlConstants.java
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/config/SqlConstants.java
index 1cc794466c..b48368b921 100644
---
a/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/config/SqlConstants.java
+++
b/inlong-audit/audit-service/src/main/java/org/apache/inlong/audit/config/SqlConstants.java
@@ -54,7 +54,7 @@ public class SqlConstants {
", SUM(count) AS cnt, SUM(size) AS size\n" +
"\t\t\t, SUM(delay) AS delay\n" +
"\t\tFROM audit_data\n" +
- "\t\tWHERE log_ts BETWEEN ? AND ?\n" +
+ "\t\tWHERE log_ts >= ? AND log_ts < ? \n" +
"\t\t\tAND audit_id = ?\n" +
"\t\tGROUP BY audit_version, log_ts, inlong_group_id,
inlong_stream_id, audit_id, audit_tag\n" +
"\t) t_all_version\n" +
@@ -66,7 +66,7 @@ public class SqlConstants {
" ELSE audit_tag\n" +
"END AS audit_tag \n" +
"\t\t\tFROM audit_data\n" +
- "\t\t\tWHERE log_ts BETWEEN ? AND ?\n" +
+ "\t\t\tWHERE log_ts >= ? AND log_ts < ? \n" +
"\t\t\t\tAND audit_id = ?\n" +
"\t\t\tGROUP BY log_ts, inlong_group_id, inlong_stream_id,
audit_id, audit_tag\n" +
"\t\t) t_max_version\n" +
@@ -84,7 +84,7 @@ public class SqlConstants {
"SELECT ip, sum(count) AS cnt, sum(size) AS size\n" +
"\t, sum(delay) AS delay\n" +
"FROM audit_data\n" +
- "WHERE log_ts BETWEEN ? AND ?\n" +
+ "WHERE log_ts >= ? AND log_ts < ? \n" +
"\tAND inlong_group_id = ? \n" +
"\tAND inlong_stream_id = ? \n" +
"\tAND audit_id = ? \n" +
@@ -100,7 +100,7 @@ public class SqlConstants {
"\t, sum(count) AS cnt, sum(size) AS size\n" +
"\t, sum(delay) AS delay\n" +
"FROM audit_data\n" +
- "WHERE log_ts BETWEEN ? AND ? \n" +
+ "WHERE log_ts >= ? AND log_ts < ? \n" +
"\tAND audit_id = ? \n" +
"\tAND ip = ? \n" +
"GROUP BY inlong_group_id, inlong_stream_id, audit_id,
audit_tag";
@@ -120,7 +120,7 @@ public class SqlConstants {
" END AS audit_tag ," +
" count, size, delay\n" +
"\tFROM audit_data\n" +
- "\tWHERE log_ts BETWEEN ? AND ?\n" +
+ "\tWHERE log_ts >= ? AND log_ts < ? \n" +
"\t\tAND inlong_group_id = ?\n" +
"\t\tAND inlong_stream_id = ?\n" +
"\t\tAND audit_id = ?\n" +
@@ -137,14 +137,14 @@ public class SqlConstants {
", sum(count) AS cnt, sum(size) AS size\n" +
", sum(delay) AS delay\n" +
"FROM audit_data_temp\n" +
- "WHERE log_ts BETWEEN ? AND ? \n" +
+ "WHERE log_ts >= ? AND log_ts < ? \n" +
"AND audit_id = ? \n" +
"GROUP BY inlong_group_id, inlong_stream_id, audit_id,
audit_tag";
public static final String KEY_MYSQL_SOURCE_QUERY_DAY_SQL =
"mysql.query.day.sql";
public static final String DEFAULT_MYSQL_SOURCE_QUERY_DAY_SQL =
"select
log_ts,inlong_group_id,inlong_stream_id,audit_id,audit_tag,count,size,delay " +
- "from audit_data_day where log_ts between ? and ? and
inlong_group_id=? and inlong_stream_id=? and audit_id =? ";
+ "from audit_data_day where log_ts >= ? AND log_ts < ? AND
inlong_group_id=? AND inlong_stream_id=? AND audit_id =? ";
public static final String KEY_MYSQL_QUERY_AUDIT_ID_SQL =
"mysql.query.audit.id.sql";
public static final String DEFAULT_MYSQL_QUERY_AUDIT_ID_SQL =
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 89157ab9a2..511efc1f97 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
@@ -140,7 +140,7 @@ public class JdbcSource {
StartEndTime statCycle = new StartEndTime();
statCycle.setStartTime(dateFormat.format(calendar.getTime()));
- calendar.set(Calendar.MINUTE, minute + dataCycle - 1);
+ calendar.set(Calendar.MINUTE, minute + dataCycle);
calendar.set(Calendar.SECOND, 0);
statCycle.setEndTime(dateFormat.format(calendar.getTime()));
statCycleList.add(statCycle);
diff --git
a/inlong-audit/audit-service/src/test/java/org/apache/inlong/audit/source/JdbcSourceTest.java
b/inlong-audit/audit-service/src/test/java/org/apache/inlong/audit/source/JdbcSourceTest.java
new file mode 100644
index 0000000000..edb84812d5
--- /dev/null
+++
b/inlong-audit/audit-service/src/test/java/org/apache/inlong/audit/source/JdbcSourceTest.java
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.inlong.audit.source;
+
+import org.apache.inlong.audit.entities.StartEndTime;
+
+import org.junit.Test;
+
+import java.time.Duration;
+import java.time.LocalTime;
+import java.time.format.DateTimeFormatter;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+public class JdbcSourceTest {
+
+ @Test
+ public void getStatCycleOfMinute() {
+ JdbcSource jdbcSource = new JdbcSource(null, null);
+
+ List<StartEndTime> startEndTime = jdbcSource.getStatCycleOfMinute(1,
5);
+ assertEquals(12, startEndTime.size());
+
+ DateTimeFormatter formatterHour =
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+ LocalTime firstElement =
LocalTime.parse(startEndTime.get(0).getStartTime(), formatterHour);
+ LocalTime lastElement =
LocalTime.parse(startEndTime.get(11).getEndTime(), formatterHour);
+ Duration duration = Duration.between(firstElement, lastElement);
+ assertEquals(60, duration.toMinutes());
+
+ DateTimeFormatter formatterMinutes =
DateTimeFormatter.ofPattern("HH:mm:ss");
+ for (StartEndTime entry : startEndTime) {
+ LocalTime startTime =
LocalTime.parse(entry.getStartTime().substring(11), formatterMinutes);
+ boolean check = startTime.getMinute() % 5 == 0 &&
startTime.getSecond() == 0;
+ assertTrue(check);
+
+ LocalTime endTime =
LocalTime.parse(entry.getEndTime().substring(11), formatterMinutes);
+ check = endTime.getMinute() % 5 == 0 && endTime.getSecond() == 0;
+ assertTrue(check);
+ }
+ }
+}
diff --git a/inlong-audit/audit-service/src/test/java/utils/CacheUtilsTest.java
b/inlong-audit/audit-service/src/test/java/org/apache/inlong/audit/utils/CacheUtilsTest.java
similarity index 95%
rename from inlong-audit/audit-service/src/test/java/utils/CacheUtilsTest.java
rename to
inlong-audit/audit-service/src/test/java/org/apache/inlong/audit/utils/CacheUtilsTest.java
index 7a3f252fa9..4032b3e739 100644
--- a/inlong-audit/audit-service/src/test/java/utils/CacheUtilsTest.java
+++
b/inlong-audit/audit-service/src/test/java/org/apache/inlong/audit/utils/CacheUtilsTest.java
@@ -15,9 +15,7 @@
* limitations under the License.
*/
-package utils;
-
-import org.apache.inlong.audit.utils.CacheUtils;
+package org.apache.inlong.audit.utils;
import org.junit.Test;