public abstract class EventProcessorBuilder extends java.lang.Object implements EventProcessorFactory
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 to LDConfig.Builder.events(EventProcessorFactory)
:
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()
.
Modifier and Type | Field and Description |
---|---|
protected boolean |
allAttributesPrivate |
protected java.net.URI |
baseURI |
protected int |
capacity |
static int |
DEFAULT_CAPACITY
The default value for
capacity(int) . |
static java.time.Duration |
DEFAULT_DIAGNOSTIC_RECORDING_INTERVAL
The default value for
diagnosticRecordingInterval(Duration) : 15 minutes. |
static java.time.Duration |
DEFAULT_FLUSH_INTERVAL
The default value for
flushInterval(Duration) : 5 seconds. |
static int |
DEFAULT_USER_KEYS_CAPACITY
The default value for
userKeysCapacity(int) . |
static java.time.Duration |
DEFAULT_USER_KEYS_FLUSH_INTERVAL
The default value for
userKeysFlushInterval(Duration) : 5 minutes. |
protected java.time.Duration |
diagnosticRecordingInterval |
protected EventSenderFactory |
eventSenderFactory |
protected java.time.Duration |
flushInterval |
protected boolean |
inlineUsersInEvents |
static java.time.Duration |
MIN_DIAGNOSTIC_RECORDING_INTERVAL
The minimum value for
diagnosticRecordingInterval(Duration) : 60 seconds. |
protected java.util.Set<UserAttribute> |
privateAttributes |
protected int |
userKeysCapacity |
protected java.time.Duration |
userKeysFlushInterval |
Constructor and Description |
---|
EventProcessorBuilder() |
Modifier and Type | Method and Description |
---|---|
EventProcessorBuilder |
allAttributesPrivate(boolean allAttributesPrivate)
Sets whether or not all optional user attributes should be hidden from LaunchDarkly.
|
EventProcessorBuilder |
baseURI(java.net.URI baseURI)
Sets a custom base URI for the events service.
|
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(EventSenderFactory eventSenderFactory)
Specifies a custom implementation for event delivery.
|
EventProcessorBuilder |
flushInterval(java.time.Duration flushInterval)
Sets the interval between flushes of the event buffer.
|
EventProcessorBuilder |
inlineUsersInEvents(boolean inlineUsersInEvents)
Sets whether to include full user details in every analytics event.
|
EventProcessorBuilder |
privateAttributeNames(java.lang.String... attributeNames)
Marks a set of attribute names as private.
|
EventProcessorBuilder |
privateAttributes(UserAttribute... attributes)
Marks a set of attribute names 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.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
createEventProcessor
public static final int DEFAULT_CAPACITY
capacity(int)
.public static final java.time.Duration DEFAULT_DIAGNOSTIC_RECORDING_INTERVAL
diagnosticRecordingInterval(Duration)
: 15 minutes.public static final java.time.Duration DEFAULT_FLUSH_INTERVAL
flushInterval(Duration)
: 5 seconds.public static final int DEFAULT_USER_KEYS_CAPACITY
userKeysCapacity(int)
.public static final java.time.Duration DEFAULT_USER_KEYS_FLUSH_INTERVAL
userKeysFlushInterval(Duration)
: 5 minutes.public static final java.time.Duration MIN_DIAGNOSTIC_RECORDING_INTERVAL
diagnosticRecordingInterval(Duration)
: 60 seconds.protected boolean allAttributesPrivate
protected java.net.URI baseURI
protected int capacity
protected java.time.Duration diagnosticRecordingInterval
protected java.time.Duration flushInterval
protected boolean inlineUsersInEvents
protected java.util.Set<UserAttribute> privateAttributes
protected int userKeysCapacity
protected java.time.Duration userKeysFlushInterval
protected EventSenderFactory eventSenderFactory
public EventProcessorBuilder allAttributesPrivate(boolean allAttributesPrivate)
If this is true
, all user attribute values (other than the key) will be private, not just
the attributes specified in privateAttributeNames(String...)
or on a per-user basis with
LDUser.Builder
methods. By default, it is false
.
allAttributesPrivate
- true if all user attributes should be privateprivateAttributeNames(String...)
,
LDUser.Builder
public EventProcessorBuilder baseURI(java.net.URI baseURI)
You will only need to change this value in the following cases:
streamUri
to the base URI of the Relay Proxy instance.
baseURI
- the base URI of the events service; null to use the defaultpublic EventProcessorBuilder capacity(int capacity)
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
.
capacity
- the capacity of the event bufferpublic EventProcessorBuilder diagnosticRecordingInterval(java.time.Duration diagnosticRecordingInterval)
The default value is DEFAULT_DIAGNOSTIC_RECORDING_INTERVAL
; the minimum value is
MIN_DIAGNOSTIC_RECORDING_INTERVAL
. This property is ignored if
LDConfig.Builder.diagnosticOptOut(boolean)
is set to true
.
diagnosticRecordingInterval
- the diagnostics interval; null to use the defaultLDConfig.Builder.diagnosticOptOut(boolean)
public EventProcessorBuilder eventSender(EventSenderFactory eventSenderFactory)
The standard event delivery implementation sends event data via HTTP/HTTPS to the LaunchDarkly events
service endpoint (or any other endpoint specified with baseURI(URI)
. Providing a custom
implementation may be useful in tests, or if the event data needs to be stored and forwarded.
eventSenderFactory
- a factory for an EventSender
implementationpublic EventProcessorBuilder flushInterval(java.time.Duration flushInterval)
Decreasing the flush interval means that the event buffer is less likely to reach capacity.
The default value is DEFAULT_FLUSH_INTERVAL
.
flushInterval
- the flush interval; null to use the defaultpublic EventProcessorBuilder inlineUsersInEvents(boolean inlineUsersInEvents)
The default is false
: events will only include the user key, except for one "index" event
that provides the full details for the user).
inlineUsersInEvents
- true if you want full user details in each eventpublic EventProcessorBuilder privateAttributeNames(java.lang.String... attributeNames)
Any users 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 user with LDUser.Builder
methods.
Using privateAttributes(UserAttribute...)
is preferable to avoid the possibility of
misspelling a built-in attribute.
attributeNames
- a set of names that will be removed from user data set to LaunchDarklyallAttributesPrivate(boolean)
,
LDUser.Builder
public EventProcessorBuilder privateAttributes(UserAttribute... attributes)
Any users 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 user with LDUser.Builder
methods.
attributes
- a set of attributes that will be removed from user data set to LaunchDarklyallAttributesPrivate(boolean)
,
LDUser.Builder
,
privateAttributeNames(java.lang.String...)
public EventProcessorBuilder userKeysCapacity(int userKeysCapacity)
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
.
userKeysCapacity
- the maximum number of user keys to rememberpublic EventProcessorBuilder userKeysFlushInterval(java.time.Duration userKeysFlushInterval)
The default value is DEFAULT_USER_KEYS_FLUSH_INTERVAL
.
userKeysFlushInterval
- the flush interval; null to use the default