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

morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git


The following commit(s) were added to refs/heads/master by this push:
     new dcd5e5d  [AuditPlugin] Modify load label of audit plugin to avoid load 
confliction (#3681)
dcd5e5d is described below

commit dcd5e5df124e9a3927a64f5940e3200e077fb98b
Author: Mingyu Chen <[email protected]>
AuthorDate: Tue May 26 18:23:07 2020 +0800

    [AuditPlugin] Modify load label of audit plugin to avoid load confliction 
(#3681)
    
    Change the load label of audit plugin as:
    
    `audit_yyyyMMdd_HHmmss_feIdentity`.
    
    The `feIdentity` is got from the FE which run this plugin, currently just 
use FE's IP_editlog_port.
---
 be/src/olap/rowset/alpha_rowset.cpp                       |  3 ++-
 .../main/java/org/apache/doris/plugin/PluginContext.java  | 15 +++++++++++++++
 .../auditloader/src/main/assembly/plugin.properties       |  2 +-
 .../org/apache/doris/plugin/audit/AuditLoaderPlugin.java  |  5 ++++-
 .../org/apache/doris/plugin/audit/DorisStreamLoader.java  | 11 +++++++----
 5 files changed, 29 insertions(+), 7 deletions(-)

diff --git a/be/src/olap/rowset/alpha_rowset.cpp 
b/be/src/olap/rowset/alpha_rowset.cpp
index 3ec52d4..8292913 100644
--- a/be/src/olap/rowset/alpha_rowset.cpp
+++ b/be/src/olap/rowset/alpha_rowset.cpp
@@ -168,7 +168,8 @@ OLAPStatus AlphaRowset::split_range(
     std::shared_ptr<SegmentGroup> largest_segment_group = 
_segment_group_with_largest_size();
     if (largest_segment_group == nullptr || 
largest_segment_group->current_num_rows_per_row_block() == 0) {
         LOG(WARNING) << "failed to get largest_segment_group. is null: " << 
(largest_segment_group == nullptr)
-                << ". version: " << start_version() << "-" << end_version();
+                << ". version: " << start_version() << "-" << end_version()
+                << ". tablet: " << rowset_meta()->tablet_id();
         ranges->emplace_back(start_key.to_tuple());
         ranges->emplace_back(end_key.to_tuple());
         return OLAP_SUCCESS;
diff --git a/fe/src/main/java/org/apache/doris/plugin/PluginContext.java 
b/fe/src/main/java/org/apache/doris/plugin/PluginContext.java
index 1ba6137..fb061aa 100644
--- a/fe/src/main/java/org/apache/doris/plugin/PluginContext.java
+++ b/fe/src/main/java/org/apache/doris/plugin/PluginContext.java
@@ -17,10 +17,20 @@
 
 package org.apache.doris.plugin;
 
+import org.apache.doris.common.Config;
+import org.apache.doris.service.FrontendOptions;
+
 public class PluginContext {
 
     // the dir path where the plugin's files saved
     private String pluginPath;
+    // the identity of the FE which load this plugin. Some plugins need to 
know which FE is running with it.
+    // currently, we just use FE ip and editlog port
+    private String feIdentity;
+
+    public PluginContext() {
+        this.feIdentity = FrontendOptions.getLocalHostAddress() + "_" + 
Config.edit_log_port;
+    }
 
     protected void setPluginPath(String pluginPath) {
         this.pluginPath = pluginPath;
@@ -29,4 +39,9 @@ public class PluginContext {
     public String getPluginPath() {
         return pluginPath;
     }
+
+    public String getFeIdentity() {
+        return feIdentity;
+    }
 }
+
diff --git a/fe_plugins/auditloader/src/main/assembly/plugin.properties 
b/fe_plugins/auditloader/src/main/assembly/plugin.properties
index 1226f9b..3ab896c 100755
--- a/fe_plugins/auditloader/src/main/assembly/plugin.properties
+++ b/fe_plugins/auditloader/src/main/assembly/plugin.properties
@@ -18,6 +18,6 @@
 name=AuditLoader
 type=AUDIT
 description=load audit log to olap load, and user can view the statistic of 
queries
-version=0.12.0
+version=0.12.1
 java.version=1.8.0
 classname=org.apache.doris.plugin.audit.AuditLoaderPlugin
diff --git 
a/fe_plugins/auditloader/src/main/java/org/apache/doris/plugin/audit/AuditLoaderPlugin.java
 
b/fe_plugins/auditloader/src/main/java/org/apache/doris/plugin/audit/AuditLoaderPlugin.java
index c6d0823..8ce6579 100755
--- 
a/fe_plugins/auditloader/src/main/java/org/apache/doris/plugin/audit/AuditLoaderPlugin.java
+++ 
b/fe_plugins/auditloader/src/main/java/org/apache/doris/plugin/audit/AuditLoaderPlugin.java
@@ -107,6 +107,7 @@ public class AuditLoaderPlugin extends Plugin implements 
AuditPlugin {
 
         conf = new AuditLoaderConf();
         conf.init(properties);
+        conf.feIdentity = ctx.getFeIdentity();
     }
 
     @Override
@@ -191,11 +192,13 @@ public class AuditLoaderPlugin extends Plugin implements 
AuditPlugin {
 
         public long maxBatchSize = 50 * 1024 * 1024;
         public long maxBatchIntervalSec = 60;
-        public String frontendHostPort = "127.0.0.1:9030";
+        public String frontendHostPort = "127.0.0.1:8030";
         public String user = "root";
         public String password = "";
         public String database = "doris_audit_db__";
         public String table = "doris_audit_tbl__";
+        // the identity of FE which run this plugin
+        public String feIdentity = "";
 
         public void init(Map<String, String> properties) throws 
PluginException {
             try {
diff --git 
a/fe_plugins/auditloader/src/main/java/org/apache/doris/plugin/audit/DorisStreamLoader.java
 
b/fe_plugins/auditloader/src/main/java/org/apache/doris/plugin/audit/DorisStreamLoader.java
index 5148233..6cb8512 100644
--- 
a/fe_plugins/auditloader/src/main/java/org/apache/doris/plugin/audit/DorisStreamLoader.java
+++ 
b/fe_plugins/auditloader/src/main/java/org/apache/doris/plugin/audit/DorisStreamLoader.java
@@ -41,6 +41,7 @@ public class DorisStreamLoader {
     private String passwd;
     private String loadUrlStr;
     private String authEncoding;
+    private String feIdentity;
 
     public DorisStreamLoader(AuditLoaderPlugin.AuditLoaderConf conf) {
         this.hostPort = conf.frontendHostPort;
@@ -51,6 +52,8 @@ public class DorisStreamLoader {
 
         this.loadUrlStr = String.format(loadUrlPattern, hostPort, db, tbl);
         this.authEncoding = 
Base64.getEncoder().encodeToString(String.format("%s:%s", user, 
passwd).getBytes(StandardCharsets.UTF_8));
+        // currently, FE identity is FE's IP, so we replace the "." in IP to 
make it suitable for label
+        this.feIdentity = conf.feIdentity.replaceAll("\\.", "_");
     }
 
     public static void main(String[] args) {
@@ -98,10 +101,10 @@ public class DorisStreamLoader {
 
     public LoadResponse loadBatch(StringBuilder sb) {
         Calendar calendar = Calendar.getInstance();
-        String label = String.format("audit_%s%02d%02d_%02d%02d%02d",
-                calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), 
calendar.get(Calendar.DAY_OF_MONTH),
-                calendar.get(Calendar.HOUR), calendar.get(Calendar.MINUTE), 
calendar.get(Calendar.SECOND));
-
+        String label = String.format("audit_%s%02d%02d_%02d%02d%02d_%s",
+                calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) + 1, 
calendar.get(Calendar.DAY_OF_MONTH),
+                calendar.get(Calendar.HOUR_OF_DAY), 
calendar.get(Calendar.MINUTE), calendar.get(Calendar.SECOND),
+                feIdentity);
 
         HttpURLConnection feConn = null;
         HttpURLConnection beConn = null;


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

Reply via email to