Class BaseMemoryMetricsDatastore<SUPPLIER,MSG extends QueueMessage>
java.lang.Object
com.slack.api.rate_limits.metrics.impl.BaseMemoryMetricsDatastore<SUPPLIER,MSG>
- All Implemented Interfaces:
MetricsDatastore,AutoCloseable
- Direct Known Subclasses:
MemoryMetricsDatastore,MemoryMetricsDatastore,MemoryMetricsDatastore,MemoryMetricsDatastore
public abstract class BaseMemoryMetricsDatastore<SUPPLIER,MSG extends QueueMessage>
extends Object
implements MetricsDatastore
-
Nested Class Summary
Nested Classes -
Field Summary
Fields inherited from interface com.slack.api.rate_limits.metrics.MetricsDatastore
DEFAULT_SINGLETON_EXECUTOR_NAME -
Constructor Summary
ConstructorsConstructorDescriptionBaseMemoryMetricsDatastore(int numberOfNodes) BaseMemoryMetricsDatastore(int numberOfNodes, ExecutorServiceProvider executorServiceProvider) BaseMemoryMetricsDatastore(int numberOfNodes, ExecutorServiceProvider executorServiceProvider, boolean statsEnabled, long rateLimiterBackgroundJobIntervalMillis) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddToLastMinuteRequests(String executorName, String teamId, String methodName, Long currentMillis) voidaddToWaitingMessageIds(String executorName, String teamId, String methodName, String messageId) voidclose()voiddeleteFromWaitingMessageIds(String executorName, String teamId, String methodName, String messageId) getLastMinuteRequests(String executorName, String teamId, String methodName) protected abstract StringgetNumberOfLastMinuteRequests(String executorName, String teamId, String methodName) intgetRateLimitedMethodRetryEpochMillis(String executorName, String teamId, String methodName) longabstract RateLimitQueue<SUPPLIER,MSG> getRateLimitQueue(String executorName, String teamId) voidincrementAllCompletedCalls(String executorName, String teamId, String methodName) voidincrementFailedCalls(String executorName, String teamId, String methodName) voidincrementSuccessfulCalls(String executorName, String teamId, String methodName) voidincrementUnsuccessfulCalls(String executorName, String teamId, String methodName) protected voidbooleanisClosed()booleanbooleanvoidsetCurrentQueueSize(String executorName, String teamId, String methodName, Integer size) voidsetExecutorServiceProvider(ExecutorServiceProvider executorServiceProvider) voidsetNumberOfLastMinuteRequests(String executorName, String teamId, String methodName, Integer value) voidsetRateLimitedMethodRetryEpochMillis(String executorName, String teamId, String methodName, Long epochTimeMillis) voidsetRateLimiterBackgroundJobIntervalMillis(long rateLimiterBackgroundJobIntervalMillis) voidsetStatsEnabled(boolean statsEnabled) voidsetTraceMode(boolean traceMode) voidupdateCurrentQueueSize(String executorName, String teamId, String methodName) voidupdateNumberOfLastMinuteRequests(String executorName, String teamId, String methodName) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.slack.api.rate_limits.metrics.MetricsDatastore
getStats
-
Constructor Details
-
BaseMemoryMetricsDatastore
public BaseMemoryMetricsDatastore(int numberOfNodes) -
BaseMemoryMetricsDatastore
public BaseMemoryMetricsDatastore(int numberOfNodes, ExecutorServiceProvider executorServiceProvider) -
BaseMemoryMetricsDatastore
public BaseMemoryMetricsDatastore(int numberOfNodes, ExecutorServiceProvider executorServiceProvider, boolean statsEnabled, long rateLimiterBackgroundJobIntervalMillis)
-
-
Method Details
-
initializeRateLimiterBackgroundJob
protected void initializeRateLimiterBackgroundJob() -
close
- Specified by:
closein interfaceAutoCloseable- Throws:
Exception
-
isClosed
public boolean isClosed()- Specified by:
isClosedin interfaceMetricsDatastore
-
getMetricsType
-
getThreadGroupName
-
getNumberOfNodes
public int getNumberOfNodes()- Specified by:
getNumberOfNodesin interfaceMetricsDatastore
-
getAllStats
- Specified by:
getAllStatsin interfaceMetricsDatastore
-
getStats
- Specified by:
getStatsin interfaceMetricsDatastore
-
getExecutorServiceProvider
- Specified by:
getExecutorServiceProviderin interfaceMetricsDatastore
-
setExecutorServiceProvider
- Specified by:
setExecutorServiceProviderin interfaceMetricsDatastore
-
isTraceMode
public boolean isTraceMode()- Specified by:
isTraceModein interfaceMetricsDatastore
-
setTraceMode
public void setTraceMode(boolean traceMode) - Specified by:
setTraceModein interfaceMetricsDatastore
-
isStatsEnabled
public boolean isStatsEnabled()- Specified by:
isStatsEnabledin interfaceMetricsDatastore
-
setStatsEnabled
public void setStatsEnabled(boolean statsEnabled) - Specified by:
setStatsEnabledin interfaceMetricsDatastore
-
getRateLimiterBackgroundJobIntervalMillis
public long getRateLimiterBackgroundJobIntervalMillis()- Specified by:
getRateLimiterBackgroundJobIntervalMillisin interfaceMetricsDatastore
-
setRateLimiterBackgroundJobIntervalMillis
public void setRateLimiterBackgroundJobIntervalMillis(long rateLimiterBackgroundJobIntervalMillis) - Specified by:
setRateLimiterBackgroundJobIntervalMillisin interfaceMetricsDatastore
-
incrementAllCompletedCalls
- Specified by:
incrementAllCompletedCallsin interfaceMetricsDatastore
-
incrementSuccessfulCalls
- Specified by:
incrementSuccessfulCallsin interfaceMetricsDatastore
-
incrementUnsuccessfulCalls
- Specified by:
incrementUnsuccessfulCallsin interfaceMetricsDatastore
-
incrementFailedCalls
- Specified by:
incrementFailedCallsin interfaceMetricsDatastore
-
getRateLimitQueue
-
updateCurrentQueueSize
- Specified by:
updateCurrentQueueSizein interfaceMetricsDatastore
-
setCurrentQueueSize
public void setCurrentQueueSize(String executorName, String teamId, String methodName, Integer size) - Specified by:
setCurrentQueueSizein interfaceMetricsDatastore
-
getNumberOfLastMinuteRequests
- Specified by:
getNumberOfLastMinuteRequestsin interfaceMetricsDatastore
-
updateNumberOfLastMinuteRequests
- Specified by:
updateNumberOfLastMinuteRequestsin interfaceMetricsDatastore
-
setNumberOfLastMinuteRequests
public void setNumberOfLastMinuteRequests(String executorName, String teamId, String methodName, Integer value) - Specified by:
setNumberOfLastMinuteRequestsin interfaceMetricsDatastore
-
getRateLimitedMethodRetryEpochMillis
public Long getRateLimitedMethodRetryEpochMillis(String executorName, String teamId, String methodName) - Specified by:
getRateLimitedMethodRetryEpochMillisin interfaceMetricsDatastore
-
setRateLimitedMethodRetryEpochMillis
public void setRateLimitedMethodRetryEpochMillis(String executorName, String teamId, String methodName, Long epochTimeMillis) - Specified by:
setRateLimitedMethodRetryEpochMillisin interfaceMetricsDatastore
-
addToLastMinuteRequests
public void addToLastMinuteRequests(String executorName, String teamId, String methodName, Long currentMillis) - Specified by:
addToLastMinuteRequestsin interfaceMetricsDatastore
-
getLastMinuteRequests
public LastMinuteRequests getLastMinuteRequests(String executorName, String teamId, String methodName) - Specified by:
getLastMinuteRequestsin interfaceMetricsDatastore
-
addToWaitingMessageIds
public void addToWaitingMessageIds(String executorName, String teamId, String methodName, String messageId) - Specified by:
addToWaitingMessageIdsin interfaceMetricsDatastore
-
deleteFromWaitingMessageIds
public void deleteFromWaitingMessageIds(String executorName, String teamId, String methodName, String messageId) - Specified by:
deleteFromWaitingMessageIdsin interfaceMetricsDatastore
-