Package org.graylog2.periodical
Class ThrottleStateUpdaterThread
java.lang.Object
org.graylog2.plugin.periodical.Periodical
org.graylog2.periodical.ThrottleStateUpdaterThread
- All Implemented Interfaces:
Runnable
The ThrottleStateUpdater publishes the current state buffer state of the journal to other interested parties,
chiefly the ThrottleableTransports.
It only includes the necessary information to make a decision about whether to throttle parts of the system, but does not send "throttle" commands. This allows for a flexible approach in picking a throttling strategy.
The implementation expects to be called once per second to have a rough estimate about the events per second, over the last second.
-
Constructor Summary
ConstructorsConstructorDescriptionThrottleStateUpdaterThread(Journal journal, ProcessBuffer processBuffer, com.google.common.eventbus.EventBus eventBus, NotificationService notificationService, ServerStatus serverStatus, com.codahale.metrics.MetricRegistry metricRegistry, com.github.joschi.jadconfig.util.Size retentionSize) -
Method Summary
Modifier and TypeMethodDescriptionvoiddoRun()intprotected org.slf4j.LoggerintbooleanisDaemon()Should this periodical be run as a daemon thread?booleanDetermines if this periodical should run only on the leader node.booleanDefines if this thread should be called periodically or only once on startup.booleanStart on this node? Useful to decide if to start the periodical based on local configuration.booleanShould this thread be stopped when a graceful shutdown is in progress? This means that stop() is called and that is no longer triggered periodically.Methods inherited from class org.graylog2.plugin.periodical.Periodical
getParallelism, initialize, masterOnly, run
-
Constructor Details
-
Method Details
-
runsForever
public boolean runsForever()Description copied from class:PeriodicalDefines if this thread should be called periodically or only once on startup.- Specified by:
runsForeverin classPeriodical- Returns:
-
stopOnGracefulShutdown
public boolean stopOnGracefulShutdown()Description copied from class:PeriodicalShould this thread be stopped when a graceful shutdown is in progress? This means that stop() is called and that is no longer triggered periodically.- Specified by:
stopOnGracefulShutdownin classPeriodical- Returns:
-
leaderOnly
public boolean leaderOnly()Description copied from class:PeriodicalDetermines if this periodical should run only on the leader node.- Overrides:
leaderOnlyin classPeriodical- Returns:
false(default) if this periodical may run on every node.trueif it may run only on the leader node
-
startOnThisNode
public boolean startOnThisNode()Description copied from class:PeriodicalStart on this node? Useful to decide if to start the periodical based on local configuration.- Specified by:
startOnThisNodein classPeriodical- Returns:
-
isDaemon
public boolean isDaemon()Description copied from class:PeriodicalShould this periodical be run as a daemon thread?- Specified by:
isDaemonin classPeriodical- Returns:
-
getInitialDelaySeconds
public int getInitialDelaySeconds()- Specified by:
getInitialDelaySecondsin classPeriodical- Returns:
- Seconds to wait before starting the thread. 0 for runsForever() threads.
-
getPeriodSeconds
public int getPeriodSeconds()- Specified by:
getPeriodSecondsin classPeriodical- Returns:
- How long to wait between each execution of the thread. 0 for runsForever() threads.
-
getLogger
protected org.slf4j.Logger getLogger()- Specified by:
getLoggerin classPeriodical
-
doRun
public void doRun()- Specified by:
doRunin classPeriodical
-