Class EventProcessorBuilder
- java.lang.Object
-
- com.launchdarkly.sdk.server.integrations.EventProcessorBuilder
-
- All Implemented Interfaces:
ComponentConfigurer<EventProcessor>
public abstract class EventProcessorBuilder extends java.lang.Object implements ComponentConfigurer<EventProcessor>
Contains methods for configuring delivery of analytics events.The SDK normally buffers analytics events and sends them to LaunchDarkly at intervals. If you want to customize this behavior, create a builder with
Components.sendEvents()
, change its properties with the methods of this class, and pass it toLDConfig.Builder.events(ComponentConfigurer)
:LDConfig config = new LDConfig.Builder() .events(Components.sendEvents().capacity(5000).flushIntervalSeconds(2)) .build();
Note that this class is abstract; the actual implementation is created by calling
Components.sendEvents()
.- Since:
- 4.12.0
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
allAttributesPrivate
protected int
capacity
static int
DEFAULT_CAPACITY
The default value forcapacity(int)
.static java.time.Duration
DEFAULT_DIAGNOSTIC_RECORDING_INTERVAL
The default value fordiagnosticRecordingInterval(Duration)
: 15 minutes.static java.time.Duration
DEFAULT_FLUSH_INTERVAL
The default value forflushInterval(Duration)
: 5 seconds.static int
DEFAULT_USER_KEYS_CAPACITY
The default value foruserKeysCapacity(int)
.static java.time.Duration
DEFAULT_USER_KEYS_FLUSH_INTERVAL
The default value foruserKeysFlushInterval(Duration)
: 5 minutes.protected java.time.Duration
diagnosticRecordingInterval
protected ComponentConfigurer<EventSender>
eventSenderConfigurer
protected java.time.Duration
flushInterval
static java.time.Duration
MIN_DIAGNOSTIC_RECORDING_INTERVAL
The minimum value fordiagnosticRecordingInterval(Duration)
: 60 seconds.protected java.util.Set<AttributeRef>
privateAttributes
protected int
userKeysCapacity
protected java.time.Duration
userKeysFlushInterval
-
Constructor Summary
Constructors Constructor Description EventProcessorBuilder()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description EventProcessorBuilder
allAttributesPrivate(boolean allAttributesPrivate)
Sets whether or not all optional user attributes should be hidden from LaunchDarkly.EventProcessorBuilder
capacity(int capacity)
Set the capacity of the events buffer.EventProcessorBuilder
diagnosticRecordingInterval(java.time.Duration diagnosticRecordingInterval)
Sets the interval at which periodic diagnostic data is sent.EventProcessorBuilder
eventSender(ComponentConfigurer<EventSender> eventSenderConfigurer)
Specifies a custom implementation for event delivery.EventProcessorBuilder
flushInterval(java.time.Duration flushInterval)
Sets the interval between flushes of the event buffer.EventProcessorBuilder
privateAttributes(java.lang.String... attributeNames)
Marks a set of attribute names or subproperties as private.EventProcessorBuilder
userKeysCapacity(int userKeysCapacity)
Sets the number of user keys that the event processor can remember at any one time.EventProcessorBuilder
userKeysFlushInterval(java.time.Duration userKeysFlushInterval)
Sets the interval at which the event processor will reset its cache of known user keys.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.launchdarkly.sdk.server.subsystems.ComponentConfigurer
build
-
-
-
-
Field Detail
-
DEFAULT_CAPACITY
public static final int DEFAULT_CAPACITY
The default value forcapacity(int)
.- See Also:
- Constant Field Values
-
DEFAULT_DIAGNOSTIC_RECORDING_INTERVAL
public static final java.time.Duration DEFAULT_DIAGNOSTIC_RECORDING_INTERVAL
The default value fordiagnosticRecordingInterval(Duration)
: 15 minutes.
-
DEFAULT_FLUSH_INTERVAL
public static final java.time.Duration DEFAULT_FLUSH_INTERVAL
The default value forflushInterval(Duration)
: 5 seconds.
-
DEFAULT_USER_KEYS_CAPACITY
public static final int DEFAULT_USER_KEYS_CAPACITY
The default value foruserKeysCapacity(int)
.- See Also:
- Constant Field Values
-
DEFAULT_USER_KEYS_FLUSH_INTERVAL
public static final java.time.Duration DEFAULT_USER_KEYS_FLUSH_INTERVAL
The default value foruserKeysFlushInterval(Duration)
: 5 minutes.
-
MIN_DIAGNOSTIC_RECORDING_INTERVAL
public static final java.time.Duration MIN_DIAGNOSTIC_RECORDING_INTERVAL
The minimum value fordiagnosticRecordingInterval(Duration)
: 60 seconds.
-
allAttributesPrivate
protected boolean allAttributesPrivate
-
capacity
protected int capacity
-
diagnosticRecordingInterval
protected java.time.Duration diagnosticRecordingInterval
-
flushInterval
protected java.time.Duration flushInterval
-
privateAttributes
protected java.util.Set<AttributeRef> privateAttributes
-
userKeysCapacity
protected int userKeysCapacity
-
userKeysFlushInterval
protected java.time.Duration userKeysFlushInterval
-
eventSenderConfigurer
protected ComponentConfigurer<EventSender> eventSenderConfigurer
-
-
Method Detail
-
allAttributesPrivate
public EventProcessorBuilder allAttributesPrivate(boolean allAttributesPrivate)
Sets whether or not all optional user attributes should be hidden from LaunchDarkly.If this is
true
, all user attribute values (other than the key) will be private, not just the attributes specified inprivateAttributes(String...)
or on a per-user basis withContextBuilder
methods. By default, it isfalse
.- Parameters:
allAttributesPrivate
- true if all user attributes should be private- Returns:
- the builder
- See Also:
privateAttributes(String...)
,ContextBuilder
-
capacity
public EventProcessorBuilder capacity(int capacity)
Set the capacity of the events buffer.The client buffers up to this many events in memory before flushing. If the capacity is exceeded before the buffer is flushed (see
flushInterval(Duration)
, events will be discarded. Increasing the capacity means that events are less likely to be discarded, at the cost of consuming more memory.The default value is
DEFAULT_CAPACITY
.- Parameters:
capacity
- the capacity of the event buffer- Returns:
- the builder
-
diagnosticRecordingInterval
public EventProcessorBuilder diagnosticRecordingInterval(java.time.Duration diagnosticRecordingInterval)
Sets the interval at which periodic diagnostic data is sent.The default value is
DEFAULT_DIAGNOSTIC_RECORDING_INTERVAL
; the minimum value isMIN_DIAGNOSTIC_RECORDING_INTERVAL
. This property is ignored ifLDConfig.Builder.diagnosticOptOut(boolean)
is set totrue
.- Parameters:
diagnosticRecordingInterval
- the diagnostics interval; null to use the default- Returns:
- the builder
- See Also:
LDConfig.Builder.diagnosticOptOut(boolean)
-
eventSender
public EventProcessorBuilder eventSender(ComponentConfigurer<EventSender> eventSenderConfigurer)
Specifies a custom implementation for event delivery.The standard event delivery implementation sends event data via HTTP/HTTPS to the LaunchDarkly events service endpoint (or any other endpoint specified with
LDConfig.Builder.serviceEndpoints(ServiceEndpointsBuilder)
. Providing a custom implementation may be useful in tests, or if the event data needs to be stored and forwarded.- Parameters:
eventSenderConfigurer
- a factory for anEventSender
implementation- Returns:
- the builder
-
flushInterval
public EventProcessorBuilder flushInterval(java.time.Duration flushInterval)
Sets the interval between flushes of the event buffer.Decreasing the flush interval means that the event buffer is less likely to reach capacity.
The default value is
DEFAULT_FLUSH_INTERVAL
.- Parameters:
flushInterval
- the flush interval; null to use the default- Returns:
- the builder
-
privateAttributes
public EventProcessorBuilder privateAttributes(java.lang.String... attributeNames)
Marks a set of attribute names or subproperties as private.Any contexts sent to LaunchDarkly with this configuration active will have attributes with these names removed. This is in addition to any attributes that were marked as private for an individual context with
ContextBuilder
methods.If and only if a parameter starts with a slash, it is interpreted as a slash-delimited path that can denote a nested property within a JSON object. For instance, "/address/street" means that if there is an attribute called "address" that is a JSON object, and one of the object's properties is "street", the "street" property will be redacted from the analytics data but other properties within "address" will still be sent. This syntax also uses the JSON Pointer convention of escaping a literal slash character as "~1" and a tilde as "~0".
This method replaces any previous private attributes that were set on the same builder, rather than adding to them.
- Parameters:
attributeNames
- a set of names or paths that will be removed from context data set to LaunchDarkly- Returns:
- the builder
- See Also:
allAttributesPrivate(boolean)
,ContextBuilder.privateAttributes(String...)
-
userKeysCapacity
public EventProcessorBuilder userKeysCapacity(int userKeysCapacity)
Sets the number of user keys that the event processor can remember at any one time.To avoid sending duplicate user details in analytics events, the SDK maintains a cache of recently seen user keys, expiring at an interval set by
userKeysFlushInterval(Duration)
.The default value is
DEFAULT_USER_KEYS_CAPACITY
.- Parameters:
userKeysCapacity
- the maximum number of user keys to remember- Returns:
- the builder
-
userKeysFlushInterval
public EventProcessorBuilder userKeysFlushInterval(java.time.Duration userKeysFlushInterval)
Sets the interval at which the event processor will reset its cache of known user keys.The default value is
DEFAULT_USER_KEYS_FLUSH_INTERVAL
.- Parameters:
userKeysFlushInterval
- the flush interval; null to use the default- Returns:
- the builder
-
-