Class BacktraceMetrics

  • All Implemented Interfaces:
    Metrics

    public final class BacktraceMetrics
    extends java.lang.Object
    implements Metrics
    • Field Detail

      • defaultTimeIntervalInMin

        public static final int defaultTimeIntervalInMin
        Default time interval in min
        See Also:
        Constant Field Values
      • defaultTimeIntervalMs

        public static final long defaultTimeIntervalMs
        Default time interval in milliseconds
        See Also:
        Constant Field Values
      • maxNumberOfAttempts

        public static final int maxNumberOfAttempts
        Maximum number of attempts
        See Also:
        Constant Field Values
      • defaultTimeBetweenRetriesMs

        public static final int defaultTimeBetweenRetriesMs
        Default time between retries in milliseconds
        See Also:
        Constant Field Values
      • maxTimeBetweenRetriesMs

        public static final int maxTimeBetweenRetriesMs
        Maximum time between requests in milliseconds
        See Also:
        Constant Field Values
      • defaultBaseUrl

        public static final java.lang.String defaultBaseUrl
        Default submission url
        See Also:
        Constant Field Values
      • defaultUniqueEventName

        public final java.lang.String defaultUniqueEventName
        Default unique event name that will be generated on app startup
        See Also:
        Constant Field Values
      • customReportAttributes

        protected java.util.Map<java.lang.String,​java.lang.Object> customReportAttributes
        Custom attributes provided by the user to BacktraceBase
      • context

        protected android.content.Context context
        The application context
    • Constructor Detail

      • BacktraceMetrics

        public BacktraceMetrics​(android.content.Context context,
                                @NonNull
                                java.util.Map<java.lang.String,​java.lang.Object> customReportAttributes,
                                Api backtraceApi,
                                BacktraceCredentials credentials)
        Create new Backtrace metrics instance
        Parameters:
        context - Application context
        customReportAttributes - Backtrace client custom report attributes (must be nonnull)
        backtraceApi - Backtrace API for metrics sending
    • Method Detail

      • enable

        public void enable()
        Enables metrics with BacktraceClient's credentials.
        Specified by:
        enable in interface Metrics
      • enable

        public void enable​(java.lang.String defaultUniqueEventName)
        Enables metrics with BacktraceClient's credentials and overrides default unique event name.
        Specified by:
        enable in interface Metrics
        Parameters:
        defaultUniqueEventName - custom session user identifier
      • enable

        public void enable​(BacktraceMetricsSettings settings,
                           java.lang.String uniqueEventName)
        Description copied from interface: Metrics
        Enable metrics
        Specified by:
        enable in interface Metrics
        Parameters:
        settings - for Backtrace metrics
        uniqueEventName - custom session user identifier
      • getStartupUniqueEventName

        protected java.lang.String getStartupUniqueEventName()
      • setStartupUniqueEventName

        public void setStartupUniqueEventName​(java.lang.String startupUniqueEventName)
      • getBaseUrl

        public java.lang.String getBaseUrl()
      • sendStartupEvent

        public void sendStartupEvent()
        Send startup event to Backtrace
        Specified by:
        sendStartupEvent in interface Metrics
      • send

        public void send()
        Send all outgoing messages (unique and summed) currently queued
        Specified by:
        send in interface Metrics
      • addUniqueEvent

        public boolean addUniqueEvent​(java.lang.String attributeName)
        Add a unique event to the next Backtrace Metrics request
        Specified by:
        addUniqueEvent in interface Metrics
        Parameters:
        attributeName - Attribute name
        Returns:
        true if success
      • addUniqueEvent

        public boolean addUniqueEvent​(java.lang.String attributeName,
                                      java.util.Map<java.lang.String,​java.lang.Object> attributes)
        Add a unique event to the next Backtrace Metrics request
        Specified by:
        addUniqueEvent in interface Metrics
        Parameters:
        attributeName - Attribute name
        attributes - Event attributes
        Returns:
        true if success
      • setMaximumNumberOfEvents

        public void setMaximumNumberOfEvents​(int maximumNumberOfEvents)
        Set the maximum number of events to store. Once the maximum is hit we will send events to the API
        Specified by:
        setMaximumNumberOfEvents in interface Metrics
        Parameters:
        maximumNumberOfEvents - Maximum number of events to store before sending events to the API
      • count

        public int count()
        Get number of stored events
        Specified by:
        count in interface Metrics
        Returns:
        number of stored events
      • addSummedEvent

        public boolean addSummedEvent​(java.lang.String metricGroupName)
        Add a summed event to the next Backtrace Metrics request
        Specified by:
        addSummedEvent in interface Metrics
        Parameters:
        metricGroupName -
        Returns:
        true if success
        See Also:
        send()
      • addSummedEvent

        public boolean addSummedEvent​(java.lang.String metricGroupName,
                                      java.util.Map<java.lang.String,​java.lang.Object> attributes)
        Add a summed event to the next Backtrace Metrics request
        Specified by:
        addSummedEvent in interface Metrics
        Parameters:
        metricGroupName -
        attributes -
        Returns:
        true if success
        See Also:
        send()
      • getUniqueEvents

        public java.util.concurrent.ConcurrentLinkedDeque<UniqueEvent> getUniqueEvents()
        Description copied from interface: Metrics
        Get the pending list of unique events
        Specified by:
        getUniqueEvents in interface Metrics
        Returns:
        list of pending unique events to send
      • getSummedEvents

        public java.util.concurrent.ConcurrentLinkedDeque<SummedEvent> getSummedEvents()
        Description copied from interface: Metrics
        Get the pending list of summed events
        Specified by:
        getSummedEvents in interface Metrics
        Returns:
        list of pending summed events to send
      • setUniqueEventsRequestHandler

        public void setUniqueEventsRequestHandler​(EventsRequestHandler eventsRequestHandler)
        Custom request handler for sending Backtrace unique events to server
        Specified by:
        setUniqueEventsRequestHandler in interface Metrics
        Parameters:
        eventsRequestHandler - object with method which will be executed
      • setSummedEventsRequestHandler

        public void setSummedEventsRequestHandler​(EventsRequestHandler eventsRequestHandler)
        Custom request handler for sending Backtrace summed events to server
        Specified by:
        setSummedEventsRequestHandler in interface Metrics
        Parameters:
        eventsRequestHandler - object with method which will be executed
      • createLocalAttributes

        protected java.util.Map<java.lang.String,​java.lang.Object> createLocalAttributes​(java.util.Map<java.lang.String,​java.lang.Object> attributes)