Class EventProcessorBuilder

    • Field Detail

      • DEFAULT_DIAGNOSTIC_RECORDING_INTERVAL

        public static final java.time.Duration DEFAULT_DIAGNOSTIC_RECORDING_INTERVAL
        The default value for diagnosticRecordingInterval(Duration): 15 minutes.
      • DEFAULT_FLUSH_INTERVAL

        public static final java.time.Duration DEFAULT_FLUSH_INTERVAL
        The default value for flushInterval(Duration): 5 seconds.
      • DEFAULT_USER_KEYS_FLUSH_INTERVAL

        public static final java.time.Duration DEFAULT_USER_KEYS_FLUSH_INTERVAL
        The default value for userKeysFlushInterval(Duration): 5 minutes.
      • 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
    • Constructor Detail

      • EventProcessorBuilder

        public EventProcessorBuilder()
    • 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 in privateAttributes(String...) or on a per-user basis with ContextBuilder methods. By default, it is false.

        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
      • 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 an EventSender 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