You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@inlong.apache.org by he...@apache.org on 2022/09/09 06:39:34 UTC

[inlong] branch release-1.3.0 updated: [INLONG-5828][Agent] Fix to merge data error when collect nonstandard log of k8s (#5829)

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

healchow pushed a commit to branch release-1.3.0
in repository https://gitbox.apache.org/repos/asf/inlong.git


The following commit(s) were added to refs/heads/release-1.3.0 by this push:
     new 99fdcc1bf [INLONG-5828][Agent] Fix to merge data error when collect nonstandard log of k8s (#5829)
99fdcc1bf is described below

commit 99fdcc1bf7289109b13ea3743bea652d1609212a
Author: ganfengtan <Ga...@users.noreply.github.com>
AuthorDate: Fri Sep 9 14:20:07 2022 +0800

    [INLONG-5828][Agent] Fix to merge data error when collect nonstandard log of k8s (#5829)
---
 .../inlong/agent/plugin/sources/reader/file/MonitorTextFile.java     | 3 ++-
 .../java/org/apache/inlong/agent/plugin/utils/FileDataUtils.java     | 2 +-
 .../java/org/apache/inlong/agent/plugin/utils/MetaDataUtils.java     | 5 ++++-
 3 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/inlong-agent/agent-plugins/src/main/java/org/apache/inlong/agent/plugin/sources/reader/file/MonitorTextFile.java b/inlong-agent/agent-plugins/src/main/java/org/apache/inlong/agent/plugin/sources/reader/file/MonitorTextFile.java
index 4a2644dba..dfad65450 100644
--- a/inlong-agent/agent-plugins/src/main/java/org/apache/inlong/agent/plugin/sources/reader/file/MonitorTextFile.java
+++ b/inlong-agent/agent-plugins/src/main/java/org/apache/inlong/agent/plugin/sources/reader/file/MonitorTextFile.java
@@ -133,8 +133,9 @@ public final class MonitorTextFile {
                     this.fileReaderOperator.position = 0;
                 }
                 this.textFileReader.getData();
-                this.fileReaderOperator.iterator = fileReaderOperator.stream.iterator();
+                this.textFileReader.mergeData(this.fileReaderOperator);
                 this.attributesBefore = attributesAfter;
+                this.fileReaderOperator.iterator = fileReaderOperator.stream.iterator();
             }
         }
     }
diff --git a/inlong-agent/agent-plugins/src/main/java/org/apache/inlong/agent/plugin/utils/FileDataUtils.java b/inlong-agent/agent-plugins/src/main/java/org/apache/inlong/agent/plugin/utils/FileDataUtils.java
index 923c0dcc4..381ed6745 100644
--- a/inlong-agent/agent-plugins/src/main/java/org/apache/inlong/agent/plugin/utils/FileDataUtils.java
+++ b/inlong-agent/agent-plugins/src/main/java/org/apache/inlong/agent/plugin/utils/FileDataUtils.java
@@ -45,7 +45,7 @@ public class FileDataUtils {
         if (!isJson) {
             return log;
         }
-        Type type = new TypeToken<HashMap<Integer, String>>() {
+        Type type = new TypeToken<HashMap<String, String>>() {
         }.getType();
         Map<String, String> logJson = GSON.fromJson(log, type);
         return logJson.getOrDefault(KUBERNETES_LOG, log);
diff --git a/inlong-agent/agent-plugins/src/main/java/org/apache/inlong/agent/plugin/utils/MetaDataUtils.java b/inlong-agent/agent-plugins/src/main/java/org/apache/inlong/agent/plugin/utils/MetaDataUtils.java
index b3e76d201..e3a00ee9d 100644
--- a/inlong-agent/agent-plugins/src/main/java/org/apache/inlong/agent/plugin/utils/MetaDataUtils.java
+++ b/inlong-agent/agent-plugins/src/main/java/org/apache/inlong/agent/plugin/utils/MetaDataUtils.java
@@ -46,6 +46,9 @@ public class MetaDataUtils {
 
     private static final String LOG_MARK = ".log";
 
+    // standard log path for k8s
+    private static final String STANDARD_OUT = "/var/log/containers";
+
     /**
      * standard log for k8s
      *
@@ -53,7 +56,7 @@ public class MetaDataUtils {
      */
     public static Map<String, String> getLogInfo(String fileName) {
         Map<String, String> podInf = new HashMap<>();
-        if (!StringUtils.isNoneBlank(fileName) && fileName.contains(CommonConstants.DELIMITER_UNDERLINE)) {
+        if (StringUtils.isBlank(fileName) || !fileName.contains(STANDARD_OUT)) {
             return podInf;
         }
         // file name example: /var/log/containers/<pod_name>_<namespace>_<container_name>-<continer_id>.log