This is an automated email from the ASF dual-hosted git repository.
somandal pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to refs/heads/master by this push:
new ec2eb3cc005 [audit] Extend audit logging support to broker REST APIs
(#16823)
ec2eb3cc005 is described below
commit ec2eb3cc00587772e54e8d1f4fc29c68425cc9ec
Author: Suvodeep Pyne <[email protected]>
AuthorDate: Wed Sep 17 19:55:07 2025 -0700
[audit] Extend audit logging support to broker REST APIs (#16823)
* [audit] Extend audit logging support to broker
* [audit] Refactor cluster config change handling to use dedicated handler
---
.../pinot/broker/broker/BrokerAdminApiApplication.java | 2 ++
.../apache/pinot/broker/broker/helix/BaseBrokerStarter.java | 13 +++++++++++++
2 files changed, 15 insertions(+)
diff --git
a/pinot-broker/src/main/java/org/apache/pinot/broker/broker/BrokerAdminApiApplication.java
b/pinot-broker/src/main/java/org/apache/pinot/broker/broker/BrokerAdminApiApplication.java
index 64e6cb837b3..874ec1aff5e 100644
---
a/pinot-broker/src/main/java/org/apache/pinot/broker/broker/BrokerAdminApiApplication.java
+++
b/pinot-broker/src/main/java/org/apache/pinot/broker/broker/BrokerAdminApiApplication.java
@@ -35,6 +35,7 @@ import org.apache.helix.HelixManager;
import org.apache.pinot.broker.queryquota.QueryQuotaManager;
import org.apache.pinot.broker.requesthandler.BrokerRequestHandler;
import org.apache.pinot.broker.routing.BrokerRoutingManager;
+import org.apache.pinot.common.audit.AuditLogFilter;
import org.apache.pinot.common.cursors.AbstractResponseStore;
import org.apache.pinot.common.http.PoolingHttpClientConnectionManagerHelper;
import org.apache.pinot.common.metrics.BrokerMetrics;
@@ -131,6 +132,7 @@ public class BrokerAdminApiApplication extends
ResourceConfig {
register(SwaggerApiListingResource.class);
register(SwaggerSerializers.class);
register(AuthenticationFilter.class);
+ register(AuditLogFilter.class);
}
public void start(List<ListenerConfig> listenerConfigs) {
diff --git
a/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BaseBrokerStarter.java
b/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BaseBrokerStarter.java
index 408805c5ebb..e4572288513 100644
---
a/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BaseBrokerStarter.java
+++
b/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BaseBrokerStarter.java
@@ -56,6 +56,8 @@ import
org.apache.pinot.broker.requesthandler.SingleConnectionBrokerRequestHandl
import org.apache.pinot.broker.requesthandler.TimeSeriesRequestHandler;
import org.apache.pinot.broker.routing.BrokerRoutingManager;
import org.apache.pinot.common.Utils;
+import org.apache.pinot.common.audit.AuditServiceBinder;
+import org.apache.pinot.common.config.DefaultClusterConfigChangeHandler;
import org.apache.pinot.common.config.NettyConfig;
import org.apache.pinot.common.config.TlsConfig;
import org.apache.pinot.common.config.provider.TableCache;
@@ -129,6 +131,12 @@ public abstract class BaseBrokerStarter implements
ServiceStartable {
private volatile boolean _isStarting = false;
private volatile boolean _isShuttingDown = false;
+ // Dedicated handler for listening to cluster config changes
+ protected final DefaultClusterConfigChangeHandler
_defaultClusterConfigChangeHandler =
+ new DefaultClusterConfigChangeHandler();
+
+ // TODO To be removed in favor of _defaultClusterConfigChangeHandler to
manage config related changes.
+ // Please use this only if you are reliant specifically on the
ClusterChangeMediator infra.
protected final List<ClusterChangeHandler> _clusterConfigChangeHandlers =
new ArrayList<>();
protected final List<ClusterChangeHandler> _idealStateChangeHandlers = new
ArrayList<>();
protected final List<ClusterChangeHandler> _externalViewChangeHandlers = new
ArrayList<>();
@@ -440,6 +448,10 @@ public abstract class BaseBrokerStarter implements
ServiceStartable {
} else {
_sqlQueryExecutor = new SqlQueryExecutor(_spectatorHelixManager);
}
+
+ LOGGER.info("Wiring up cluster config change handler with helix");
+
_spectatorHelixManager.addClusterfigChangeListener(_defaultClusterConfigChangeHandler);
+
LOGGER.info("Starting broker admin application on: {}",
ListenerConfigUtil.toString(_listenerConfigs));
_brokerAdminApplication = createBrokerAdminApp();
_brokerAdminApplication.start(_listenerConfigs);
@@ -763,6 +775,7 @@ public abstract class BaseBrokerStarter implements
ServiceStartable {
new BrokerAdminApiApplication(_routingManager, _brokerRequestHandler,
_brokerMetrics, _brokerConf,
_sqlQueryExecutor, _serverRoutingStatsManager,
_accessControlFactory, _spectatorHelixManager,
_queryQuotaManager, _responseStore);
+ brokerAdminApiApplication.register(new
AuditServiceBinder(_defaultClusterConfigChangeHandler, getServiceRole()));
registerExtraComponents(brokerAdminApiApplication);
return brokerAdminApiApplication;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]