/** * {@inheritDoc} */ @Override public void init(Context context) { readMetrics = new DefaultTableReadMetrics(context, this, tableId); TableMetricsUtil tableMetricsUtil = new TableMetricsUtil(context, this, tableId); readRateLimiter.setTimerMetric(tableMetricsUtil.newTimer("get-throttle-ns")); }
/** * {@inheritDoc} */ @Override public void init(Context context) { readMetrics = new DefaultTableReadMetrics(context, this, tableId); TableMetricsUtil tableMetricsUtil = new TableMetricsUtil(context, this, tableId); readRateLimiter.setTimerMetric(tableMetricsUtil.newTimer("get-throttle-ns")); }
/** * {@inheritDoc} */ @Override public void init(Context context) { readMetrics = new DefaultTableReadMetrics(context, this, tableId); TableMetricsUtil tableMetricsUtil = new TableMetricsUtil(context, this, tableId); readRateLimiter.setTimerMetric(tableMetricsUtil.newTimer("get-throttle-ns")); }
/** * {@inheritDoc} */ @Override public void init(Context context) { readMetrics = new DefaultTableReadMetrics(context, this, tableId); TableMetricsUtil tableMetricsUtil = new TableMetricsUtil(context, this, tableId); readRateLimiter.setTimerMetric(tableMetricsUtil.newTimer("get-throttle-ns")); }
public TableRateLimiter<String, String> getThrottler(String tag) { TableRateLimiter.CreditFunction<String, String> credFn = (TableRateLimiter.CreditFunction<String, String>) (key, value) -> { int credits = key == null ? 0 : 3; credits += value == null ? 0 : 3; return credits; }; RateLimiter rateLimiter = mock(RateLimiter.class); doReturn(Collections.singleton(tag)).when(rateLimiter).getSupportedTags(); TableRateLimiter<String, String> rateLimitHelper = new TableRateLimiter<>("foo", rateLimiter, credFn, tag); Timer timer = mock(Timer.class); rateLimitHelper.setTimerMetric(timer); return rateLimitHelper; }
/** * {@inheritDoc} */ @Override public void init(Context context) { super.init(context); writeMetrics = new DefaultTableWriteMetrics(context, this, tableId); TableMetricsUtil tableMetricsUtil = new TableMetricsUtil(context, this, tableId); writeRateLimiter.setTimerMetric(tableMetricsUtil.newTimer("put-throttle-ns")); }
/** * {@inheritDoc} */ @Override public void init(Context context) { super.init(context); writeMetrics = new DefaultTableWriteMetrics(context, this, tableId); TableMetricsUtil tableMetricsUtil = new TableMetricsUtil(context, this, tableId); writeRateLimiter.setTimerMetric(tableMetricsUtil.newTimer("put-throttle-ns")); }
/** * {@inheritDoc} */ @Override public void init(Context context) { super.init(context); writeMetrics = new DefaultTableWriteMetrics(context, this, tableId); TableMetricsUtil tableMetricsUtil = new TableMetricsUtil(context, this, tableId); writeRateLimiter.setTimerMetric(tableMetricsUtil.newTimer("put-throttle-ns")); }
/** * {@inheritDoc} */ @Override public void init(Context context) { super.init(context); writeMetrics = new DefaultTableWriteMetrics(context, this, tableId); TableMetricsUtil tableMetricsUtil = new TableMetricsUtil(context, this, tableId); writeRateLimiter.setTimerMetric(tableMetricsUtil.newTimer("put-throttle-ns")); }
@Override public void init(Context context) { table.init(context); MetricsConfig metricsConfig = new MetricsConfig(context.getJobContext().getConfig()); if (metricsConfig.getMetricsTimerEnabled()) { TableMetricsUtil tableMetricsUtil = new TableMetricsUtil(context, this, tableId); if (isReadRateLimited()) { readRateLimiter.setTimerMetric(tableMetricsUtil.newTimer("get-throttle-ns")); } if (isWriteRateLimited()) { writeRateLimiter.setTimerMetric(tableMetricsUtil.newTimer("put-throttle-ns")); } } }
@Test public void testThrottle() { TableRateLimiter<String, String> rateLimitHelper = getThrottler(); Timer timer = mock(Timer.class); rateLimitHelper.setTimerMetric(timer); rateLimitHelper.throttle("foo"); verify(rateLimitHelper.rateLimiter, times(1)).acquire(anyMap()); verify(timer, times(1)).update(anyLong()); }