updateRateLimiters method
void
updateRateLimiters()
Update rate limiters with custom configurations from ConfigController
Implementation
void updateRateLimiters() {
final config = ConfigController.instance.config;
final rateLimitsConfig = config?.rateLimits;
if (rateLimitsConfig == null) {
ObslyLogger.debug(
'No custom rate limits configuration found, using defaults');
return;
}
ObslyLogger.debug('Updating rate limiters with custom configuration');
// Update each rate limiter if custom config is provided
if (rateLimitsConfig.base != null) {
_baseRateLimiter?.dispose();
_baseRateLimiter = RateLimiterFactory.create(
_originalEventProcessor,
RateLimiterFactory.defaultBaseConfig,
rateLimitsConfig.base,
);
}
if (rateLimitsConfig.request != null) {
_requestRateLimiter?.dispose();
_requestRateLimiter = RateLimiterFactory.create(
_originalEventProcessor,
RateLimiterFactory.defaultRequestConfig,
rateLimitsConfig.request,
);
}
if (rateLimitsConfig.tag != null) {
_tagRateLimiter?.dispose();
_tagRateLimiter = RateLimiterFactory.create(
_originalEventProcessor,
RateLimiterFactory.defaultTagConfig,
rateLimitsConfig.tag,
);
}
if (rateLimitsConfig.console != null) {
_consoleRateLimiter?.dispose();
_consoleRateLimiter = RateLimiterFactory.create(
_originalEventProcessor,
RateLimiterFactory.defaultConsoleConfig,
rateLimitsConfig.console,
);
}
if (rateLimitsConfig.ui != null) {
_uiRateLimiter?.dispose();
_uiRateLimiter = RateLimiterFactory.create(
_originalEventProcessor,
RateLimiterFactory.defaultUIConfig,
rateLimitsConfig.ui,
);
}
if (rateLimitsConfig.metric != null) {
_metricRateLimiter?.dispose();
_metricRateLimiter = RateLimiterFactory.create(
_originalEventProcessor,
RateLimiterFactory.defaultMetricConfig,
rateLimitsConfig.metric,
);
}
if (rateLimitsConfig.error != null) {
_errorRateLimiter?.dispose();
_errorRateLimiter = RateLimiterFactory.create(
_originalEventProcessor,
RateLimiterFactory.defaultErrorConfig,
rateLimitsConfig.error,
);
}
if (rateLimitsConfig.performance != null) {
_performanceRateLimiter?.dispose();
_performanceRateLimiter = RateLimiterFactory.create(
_originalEventProcessor,
RateLimiterFactory.defaultPerformanceConfig,
rateLimitsConfig.performance,
);
}
if (rateLimitsConfig.navigation != null) {
_navigationRateLimiter?.dispose();
_navigationRateLimiter = RateLimiterFactory.create(
_originalEventProcessor,
RateLimiterFactory.defaultNavigationConfig,
rateLimitsConfig.navigation,
);
}
ObslyLogger.debug('Rate limiters updated successfully');
}