Class BacktraceMetrics

java.lang.Object
backtraceio.library.services.BacktraceMetrics
All Implemented Interfaces:
Metrics

public final class BacktraceMetrics extends Object implements Metrics
  • Field Details

    • defaultTimeIntervalInMin

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

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

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

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

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

      public static final String defaultBaseUrl
      Default submission url
      See Also:
    • defaultUniqueEventName

      public final String defaultUniqueEventName
      Default unique event name that will be generated on app startup
      See Also:
    • uniqueEventsHandler

      public UniqueEventsHandler uniqueEventsHandler
      Unique Events handler
    • summedEventsHandler

      public SummedEventsHandler summedEventsHandler
      Summed Events handler
  • Constructor Details

    • BacktraceMetrics

      public BacktraceMetrics(android.content.Context context, @NotNull Map<String,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 Details

    • getContext

      public android.content.Context getContext()
    • enable

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

      public void enable(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)
      Enable metrics
      Specified by:
      enable in interface Metrics
      Parameters:
      settings - for Backtrace metrics
    • enable

      public void enable(BacktraceMetricsSettings settings, 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
    • setStartupUniqueEventName

      public void setStartupUniqueEventName(String startupUniqueEventName)
    • getBaseUrl

      public 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(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(String attributeName, Map<String,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(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:
    • addSummedEvent

      public boolean addSummedEvent(String metricGroupName, Map<String,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:
    • getUniqueEvents

      public 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 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 Map<String,Object> createLocalAttributes(Map<String,Object> attributes)
    • setUniqueEventsOnServerResponse

      public void setUniqueEventsOnServerResponse(EventsOnServerResponseEventListener callback)
      Custom callback to be executed on server response to a unique events submission request
      Specified by:
      setUniqueEventsOnServerResponse in interface Metrics
      Parameters:
      callback - object with method which will be executed
    • setSummedEventsOnServerResponse

      public void setSummedEventsOnServerResponse(EventsOnServerResponseEventListener callback)
      Custom callback to be executed on server response to a summed events submission request
      Specified by:
      setSummedEventsOnServerResponse in interface Metrics
      Parameters:
      callback - object with method which will be executed