Skip to content

Commit

Permalink
[fix](audit_loader) fix that old external audit loader plugin not wor…
Browse files Browse the repository at this point in the history
…k because of incompatibility with new audit plugin (apache#40565)

1、rename org.apache.doris.plugin.audit.AuditLoaderPlugin to
org.apache.doris.plugin.audit.AuditLoader to avoid potential conflict
with old external audit plugin
2、rename org.apache.doris.plugin.audit.AuditEvent to
org.apache.doris.plugin.AuditEvent to keep eventFilter in AuditPlugin be
compatible with old external audit plugin

Co-authored-by: caiconghui1 <[email protected]>
  • Loading branch information
2 people authored and morningman committed Sep 27, 2024
1 parent df4b1ca commit 874e434
Show file tree
Hide file tree
Showing 18 changed files with 38 additions and 33 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
import org.apache.doris.analysis.ColumnNullableType;
import org.apache.doris.analysis.TypeDef;
import org.apache.doris.common.UserException;
import org.apache.doris.plugin.audit.AuditLoaderPlugin;
import org.apache.doris.plugin.audit.AuditLoader;
import org.apache.doris.statistics.StatisticConstants;

import com.google.common.collect.Lists;
Expand Down Expand Up @@ -168,7 +168,7 @@ public static List<ColumnDef> getCopiedSchema(String tblName) throws UserExcepti
case StatisticConstants.HISTOGRAM_TBL_NAME:
schema = HISTO_STATS_SCHEMA;
break;
case AuditLoaderPlugin.AUDIT_LOG_TABLE:
case AuditLoader.AUDIT_LOG_TABLE:
schema = AUDIT_SCHEMA;
break;
default:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
import org.apache.doris.common.util.PropertyAnalyzer;
import org.apache.doris.datasource.InternalCatalog;
import org.apache.doris.ha.FrontendNodeType;
import org.apache.doris.plugin.audit.AuditLoaderPlugin;
import org.apache.doris.plugin.audit.AuditLoader;
import org.apache.doris.statistics.StatisticConstants;
import org.apache.doris.statistics.util.StatisticsUtil;

Expand Down Expand Up @@ -95,7 +95,7 @@ public void run() {
Database database = op.get();
modifyTblReplicaCount(database, StatisticConstants.TABLE_STATISTIC_TBL_NAME);
modifyTblReplicaCount(database, StatisticConstants.PARTITION_STATISTIC_TBL_NAME);
modifyTblReplicaCount(database, AuditLoaderPlugin.AUDIT_LOG_TABLE);
modifyTblReplicaCount(database, AuditLoader.AUDIT_LOG_TABLE);
}

@VisibleForTesting
Expand Down Expand Up @@ -208,7 +208,7 @@ private static CreateTableStmt buildStatisticsTblStmt(String statsTableName, Lis

private static CreateTableStmt buildAuditTblStmt() throws UserException {
TableName tableName = new TableName("",
FeConstants.INTERNAL_DB_NAME, AuditLoaderPlugin.AUDIT_LOG_TABLE);
FeConstants.INTERNAL_DB_NAME, AuditLoader.AUDIT_LOG_TABLE);

String engineName = "olap";
ArrayList<String> dupKeys = Lists.newArrayList("query_id", "time", "client_ip");
Expand All @@ -233,7 +233,7 @@ private static CreateTableStmt buildAuditTblStmt() throws UserException {

PropertyAnalyzer.getInstance().rewriteForceProperties(properties);
CreateTableStmt createTableStmt = new CreateTableStmt(true, false,
tableName, InternalSchema.getCopiedSchema(AuditLoaderPlugin.AUDIT_LOG_TABLE),
tableName, InternalSchema.getCopiedSchema(AuditLoader.AUDIT_LOG_TABLE),
engineName, keysDesc, partitionDesc, distributionDesc,
properties, null, "Doris internal audit table, DO NOT MODIFY IT", null);
StatisticsUtil.analyze(createTableStmt);
Expand Down Expand Up @@ -275,7 +275,7 @@ private boolean created() {
}

// 3. check audit table
optionalStatsTbl = db.getTable(AuditLoaderPlugin.AUDIT_LOG_TABLE);
optionalStatsTbl = db.getTable(AuditLoader.AUDIT_LOG_TABLE);
return optionalStatsTbl.isPresent();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@
import org.apache.doris.datasource.InternalCatalog;
import org.apache.doris.mysql.privilege.PrivPredicate;
import org.apache.doris.persist.gson.GsonUtils;
import org.apache.doris.plugin.audit.AuditEvent;
import org.apache.doris.plugin.audit.AuditEvent.EventType;
import org.apache.doris.plugin.AuditEvent;
import org.apache.doris.plugin.AuditEvent.EventType;
import org.apache.doris.plugin.audit.StreamLoadAuditEvent;
import org.apache.doris.qe.ConnectContext;
import org.apache.doris.system.Backend;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
import org.apache.doris.load.EtlJobType;
import org.apache.doris.load.FailMsg;
import org.apache.doris.persist.gson.GsonPostProcessable;
import org.apache.doris.plugin.audit.AuditEvent;
import org.apache.doris.plugin.AuditEvent;
import org.apache.doris.plugin.audit.LoadAuditEvent;
import org.apache.doris.qe.ConnectContext;
import org.apache.doris.qe.OriginStatement;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.

package org.apache.doris.plugin.audit;
package org.apache.doris.plugin;


import java.lang.annotation.Retention;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@

package org.apache.doris.plugin;

import org.apache.doris.plugin.audit.AuditEvent;

/**
* Audit plugin interface describe.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
import org.apache.doris.nereids.parser.Dialect;
import org.apache.doris.plugin.PluginInfo.PluginType;
import org.apache.doris.plugin.PluginLoader.PluginStatus;
import org.apache.doris.plugin.audit.AuditLoaderPlugin;
import org.apache.doris.plugin.audit.AuditLoader;
import org.apache.doris.plugin.audit.AuditLogBuilder;
import org.apache.doris.plugin.dialect.HttpDialectConverterPlugin;

Expand Down Expand Up @@ -113,7 +113,7 @@ private void initBuiltinPlugins() {
}

// AuditLoader: log audit log to internal table
AuditLoaderPlugin auditLoaderPlugin = new AuditLoaderPlugin();
AuditLoader auditLoaderPlugin = new AuditLoader();
if (!registerBuiltinPlugin(auditLoaderPlugin.getPluginInfo(), auditLoaderPlugin)) {
LOG.warn("failed to register audit log builder");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import org.apache.doris.catalog.Env;
import org.apache.doris.common.util.DigitalVersion;
import org.apache.doris.common.util.TimeUtils;
import org.apache.doris.plugin.AuditEvent;
import org.apache.doris.plugin.AuditPlugin;
import org.apache.doris.plugin.Plugin;
import org.apache.doris.plugin.PluginContext;
Expand All @@ -42,8 +43,8 @@
/*
* This plugin will load audit log to specified doris table at specified interval
*/
public class AuditLoaderPlugin extends Plugin implements AuditPlugin {
private static final Logger LOG = LogManager.getLogger(AuditLoaderPlugin.class);
public class AuditLoader extends Plugin implements AuditPlugin {
private static final Logger LOG = LogManager.getLogger(AuditLoader.class);

public static final String AUDIT_LOG_TABLE = "audit_log";

Expand All @@ -65,10 +66,10 @@ public class AuditLoaderPlugin extends Plugin implements AuditPlugin {

private final PluginInfo pluginInfo;

public AuditLoaderPlugin() {
public AuditLoader() {
pluginInfo = new PluginInfo(PluginMgr.BUILTIN_PLUGIN_PREFIX + "AuditLoader", PluginType.AUDIT,
"builtin audit loader, to load audit log to internal table", DigitalVersion.fromString("2.1.0"),
DigitalVersion.fromString("1.8.31"), AuditLoaderPlugin.class.getName(), null, null);
DigitalVersion.fromString("1.8.31"), AuditLoader.class.getName(), null, null);
}

public PluginInfo getPluginInfo() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,14 @@
import org.apache.doris.common.AuditLog;
import org.apache.doris.common.Config;
import org.apache.doris.common.util.DigitalVersion;
import org.apache.doris.plugin.AuditEvent;
import org.apache.doris.plugin.AuditEvent.AuditField;
import org.apache.doris.plugin.AuditEvent.EventType;
import org.apache.doris.plugin.AuditPlugin;
import org.apache.doris.plugin.Plugin;
import org.apache.doris.plugin.PluginInfo;
import org.apache.doris.plugin.PluginInfo.PluginType;
import org.apache.doris.plugin.PluginMgr;
import org.apache.doris.plugin.audit.AuditEvent.AuditField;
import org.apache.doris.plugin.audit.AuditEvent.EventType;

import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public class AuditStreamLoader {
public AuditStreamLoader() {
this.hostPort = "127.0.0.1:" + Config.http_port;
this.db = FeConstants.INTERNAL_DB_NAME;
this.auditLogTbl = AuditLoaderPlugin.AUDIT_LOG_TABLE;
this.auditLogTbl = AuditLoader.AUDIT_LOG_TABLE;
this.auditLogLoadUrlStr = String.format(loadUrlPattern, hostPort, db, auditLogTbl);
// currently, FE identity is FE's IP, so we replace the "." in IP to make it suitable for label
this.feIdentity = hostPort.replaceAll("\\.", "_").replaceAll(":", "_");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@

package org.apache.doris.plugin.audit;

import org.apache.doris.plugin.AuditEvent;

public class LoadAuditEvent extends AuditEvent {

@AuditField(value = "JobId")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@

package org.apache.doris.plugin.audit;

import org.apache.doris.plugin.AuditEvent;

public class StreamLoadAuditEvent extends AuditEvent {

@AuditField(value = "Label")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@
package org.apache.doris.qe;

import org.apache.doris.common.Config;
import org.apache.doris.plugin.AuditEvent;
import org.apache.doris.plugin.AuditPlugin;
import org.apache.doris.plugin.Plugin;
import org.apache.doris.plugin.PluginInfo.PluginType;
import org.apache.doris.plugin.PluginMgr;
import org.apache.doris.plugin.audit.AuditEvent;

import com.google.common.base.Strings;
import com.google.common.collect.Queues;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@
import org.apache.doris.nereids.trees.plans.logical.LogicalInlineTable;
import org.apache.doris.nereids.trees.plans.logical.LogicalPlan;
import org.apache.doris.nereids.trees.plans.logical.LogicalUnion;
import org.apache.doris.plugin.audit.AuditEvent.AuditEventBuilder;
import org.apache.doris.plugin.audit.AuditEvent.EventType;
import org.apache.doris.plugin.AuditEvent.AuditEventBuilder;
import org.apache.doris.plugin.AuditEvent.EventType;
import org.apache.doris.qe.QueryState.MysqlStateType;
import org.apache.doris.service.FrontendOptions;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
import org.apache.doris.nereids.trees.expressions.literal.Literal;
import org.apache.doris.plsql.Exec;
import org.apache.doris.plsql.executor.PlSqlOperation;
import org.apache.doris.plugin.audit.AuditEvent.AuditEventBuilder;
import org.apache.doris.plugin.AuditEvent.AuditEventBuilder;
import org.apache.doris.resource.Tag;
import org.apache.doris.service.arrowflight.results.FlightSqlChannel;
import org.apache.doris.statistics.ColumnStatistic;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
import org.apache.doris.common.Config;
import org.apache.doris.common.Pair;
import org.apache.doris.common.util.MasterDaemon;
import org.apache.doris.plugin.audit.AuditEvent;
import org.apache.doris.plugin.AuditEvent;
import org.apache.doris.thrift.TQueryStatistics;
import org.apache.doris.thrift.TReportWorkloadRuntimeStatusParams;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.Config;
import org.apache.doris.common.FeConstants;
import org.apache.doris.plugin.audit.AuditLoaderPlugin;
import org.apache.doris.plugin.audit.AuditLoader;
import org.apache.doris.statistics.StatisticConstants;
import org.apache.doris.utframe.TestWithFeService;

Expand All @@ -54,11 +54,12 @@ protected void runBeforeAll() throws Exception {
public void testModifyTblReplicaCount() throws AnalysisException {
Database db = Env.getCurrentEnv().getCatalogMgr()
.getInternalCatalog().getDbNullable(FeConstants.INTERNAL_DB_NAME);

InternalSchemaInitializer.modifyTblReplicaCount(db, StatisticConstants.TABLE_STATISTIC_TBL_NAME);
InternalSchemaInitializer.modifyTblReplicaCount(db, AuditLoaderPlugin.AUDIT_LOG_TABLE);
InternalSchemaInitializer.modifyTblReplicaCount(db, AuditLoader.AUDIT_LOG_TABLE);

checkReplicationNum(db, StatisticConstants.TABLE_STATISTIC_TBL_NAME);
checkReplicationNum(db, AuditLoaderPlugin.AUDIT_LOG_TABLE);
checkReplicationNum(db, AuditLoader.AUDIT_LOG_TABLE);
}

private void checkReplicationNum(Database db, String tblName) throws AnalysisException {
Expand All @@ -77,7 +78,7 @@ public void testCheckAuditLogTable() throws AnalysisException {
Database db = Env.getCurrentEnv().getCatalogMgr()
.getInternalCatalog().getDbNullable(FeConstants.INTERNAL_DB_NAME);
Assertions.assertNotNull(db);
OlapTable table = db.getOlapTableOrAnalysisException(AuditLoaderPlugin.AUDIT_LOG_TABLE);
OlapTable table = db.getOlapTableOrAnalysisException(AuditLoader.AUDIT_LOG_TABLE);
Assertions.assertNotNull(table);
for (ColumnDef def : InternalSchema.AUDIT_SCHEMA) {
Assertions.assertNotNull(table.getColumn(def.getName()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@

import org.apache.doris.catalog.Env;
import org.apache.doris.common.util.DigitalVersion;
import org.apache.doris.plugin.AuditEvent;
import org.apache.doris.plugin.AuditEvent.EventType;
import org.apache.doris.plugin.PluginInfo;
import org.apache.doris.plugin.audit.AuditEvent;
import org.apache.doris.plugin.audit.AuditEvent.EventType;
import org.apache.doris.plugin.audit.AuditLogBuilder;
import org.apache.doris.utframe.UtFrameUtils;

Expand Down

0 comments on commit 874e434

Please sign in to comment.