Class ThrottleFilterBuilder
java.lang.Object
io.jstach.rainbowgum.filter.ThrottleFilterBuilder
- All Implemented Interfaces:
LogBuilder<ThrottleFilterBuilder, LogRouter.Router.Filter>
public final class ThrottleFilterBuilder
extends Object
implements LogBuilder<ThrottleFilterBuilder, LogRouter.Router.Filter>
Builder to create
LogRouter.Router.Filter.
Limits how many events a route keeps per second, like a token bucket. A burst of up
to maxBurst events is kept, after which events are kept at
rate per second until the burst is earned back. Events more severe
than level are always kept. Time is measured with event timestamps.
| Property Pattern | Type | Required | Default | Description |
|---|---|---|---|---|
logging.route.{name}.filter.{filter}.rate |
Integer |
true |
10 | Events kept per second once a burst is used up. |
logging.route.{name}.filter.{filter}.maxBurst |
Integer |
true |
100 | Events kept at once before the rate applies. |
logging.route.{name}.filter.{filter}.level |
String (converted) |
true |
warning, so errors are always kept |
The most severe level that is throttled. |
-
Constructor Summary
ConstructorsConstructorDescriptionThrottleFilterBuilder(String name, String filter) Create a builder forio.jstach.rainbowgum.LogRouter.Router.Filter. -
Method Summary
Modifier and TypeMethodDescriptionbuild()Createsio.jstach.rainbowgum.LogRouter.Router.Filterfrom this builder.fromProperties(LogProperties properties) Will try to convert string key values to parameters needed by the builder.level(System.Logger.Level level) Sets required level.Sets required maxBurst.metrics(@Nullable LogMetrics metrics) Sets metrics.The interpolated property prefix: "logging.route.{name}.filter.{filter}.".Sets required rate.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface LogBuilder
fromPropertiesModifier and TypeMethodDescriptiondefault ThrottleFilterBuilderfromProperties(LogProperties properties, LogProviderRef ref) Will try to convert string key values to parameters needed by the builder.
-
Constructor Details
-
ThrottleFilterBuilder
Create a builder forio.jstach.rainbowgum.LogRouter.Router.Filter.- Parameters:
name- will fill{name}inlogging.route.{name}.filter.{filter}.. Route name.filter- will fill{filter}inlogging.route.{name}.filter.{filter}.. Name the filter is selected with.
-
-
Method Details
-
metrics
Sets metrics. Where to count dropped events asLogMetrics.EVENTS_THROTTLED_METRIC. Default isnull.- Parameters:
metrics- not configurable through properties Where to count dropped events asLogMetrics.EVENTS_THROTTLED_METRIC.- Returns:
- this builder.
-
rate
Sets required rate. Events kept per second once a burst is used up. Default is 10.- Parameters:
rate-"logging.route.{name}.filter.{filter}.rate" = java.lang.IntegerEvents kept per second once a burst is used up.- Returns:
- this builder.
-
maxBurst
Sets required maxBurst. Events kept at once before the rate applies. Default is 100.- Parameters:
maxBurst-"logging.route.{name}.filter.{filter}.maxBurst" = java.lang.IntegerEvents kept at once before the rate applies.- Returns:
- this builder.
-
level
Sets required level. The most severe level that is throttled. Default iswarning, so errors are always kept.- Parameters:
level-"logging.route.{name}.filter.{filter}.level" = java.lang.System.Logger.LevelThe most severe level that is throttled.- Returns:
- this builder.
-
build
Createsio.jstach.rainbowgum.LogRouter.Router.Filterfrom this builder.- Returns:
io.jstach.rainbowgum.LogRouter.Router.Filter.
-
fromProperties
Description copied from interface:LogBuilderWill try to convert string key values to parameters needed by the builder.- Specified by:
fromPropertiesin interfaceLogBuilder<ThrottleFilterBuilder, LogRouter.Router.Filter>- Parameters:
properties- log properties- Returns:
- this.
-
propertyPrefix
The interpolated property prefix: "logging.route.{name}.filter.{filter}.".- Specified by:
propertyPrefixin interfaceLogBuilder<ThrottleFilterBuilder, LogRouter.Router.Filter>- Returns:
- resolved prefix which should end with a "
.". - See Also:
-