Troubleshooting Analytics

improve this page | report issue

Overview

Find information to help resolve issues that you might encounter when you use the MobileFirst Analytics.

There is no data in the analytics console

Check the following possibilities.

  • Verify that your apps are set to point to the MobileFirst Server, which forwards the logs to the MobileFirst Analytics Server. Ensure that the following values are set in the mfpclient.plist (iOS), mfpclient.properties (Android), or config.xml (Cordova) files.
    protocol = http or https
    host = the IP address of your MobileFirst Server
    port = the HTTP port that is set in the server.xml file for reporting analytics
    wlServerContext = by default "/mfp/"
  • Ensure that your MobileFirst Server is pointing to your MobileFirst Analytics Server.
    /analytics-service
    /analytics
  • Check that you are calling the send method.
    • iOS:
      • Objective-C: [[WLAnalytics sharedInstance] send];
      • Swift: WLAnalytics.sharedInstance().send()
      • Android: WLAnalytics.send();
      • Cordova: WL.Analytics.send();
      • Web: ibmmfpfanalytics.send();

Why is there crash data in the Crash Overview table, but nothing in the Crash Summary table?

The crash logs must be sent to the server once the app is again running. Verify that your apps are sending logs after a crash. To be safe, send logs on app start-up to ensure that any previously unsent information is reported.

Why is there no data in the Server Usage Flow graph or the Network Request graph?

Configure your apps to collect analytics on the Network device event.

ibmmfpfanalytics.logger.config({analyticsCapture: true});
  • For cross-platform apps that use Cordova, follow the iOS or Android guides, as the configurations are the same as for native apps.
  • To enable the capture of network analytic data in iOS, add the following code in your Application Delegate application:didFinishLaunchingWithOptions method.
    Objective-C
    WLAnalytics *analytics = [WLAnalytics sharedInstance];
    [analytics addDeviceEventListener:NETWORK];
    Swift
    WLAnalytics.sharedInstance()
    WLAnalytics.sharedInstance().addDeviceEventListener(NETWORK)
  • To enable the capture of network analytic data in Android, add the following code in your Application subclass onCreate method.
    Java
    WLAnalytics.init(this);
    WLAnalytics.addDeviceEventListener(DeviceEvent.NETWORK);

Why is there no data for app sessions?

Configure your apps to collect analytics using the Lifecycle device event listener.

  • For cross-platform apps that use Cordova, follow the iOS or Android guides, as the configurations are the same as for native apps.
  • To enable the capture of network analytic data in iOS, add the following code in your Application Delegate application:didFinishLaunchingWithOptions method.

    Objective-C
    WLAnalytics *analytics = [WLAnalytics sharedInstance];
    [analytics addDeviceEventListener:LIFECYCLE];
    Swift
    WLAnalytics.sharedInstance()
    WLAnalytics.sharedInstance().addDeviceEventListener(LIFECYCLE)
  • To enable the capture of network analytic data in Android, add the following code in your Application subclass onCreate method.
    Java
    WLAnalytics.init(this);
    WLAnalytics.addDeviceEventListener(DeviceEvent.LIFECYCLE);

Analytics console becomes non-responsive when multiple users are accessing the console.


If Mobile Foundation Analytics is deployed on WebSphere Liberty versions prior to 8.5.5.6 and if multiple users are accessing the console, the console freezes or stops responding to any further user requests.

  • This situation occurs because WebSphere Liberty runs out of Executor threads to service the requests. This leads to a dead lock situation.
  • The default number of Liberty core threads is the number of hardware threads.
  • To resolve this issue, configure the number of threads in the Liberty executor threads parameter to a value greater than the default.
    Add the following configuration to Liberty's server.xml:
    <executor name="LargeThreadPool" id="default" coreThreads="80" maxThreads="80" keepAlive="60s" stealPolicy="STRICT" rejectedWorkPolicy="CALLER_RUNS" />
  • These tuning settings are generally not required in case of Websphere Liberty 8.5.5.6.

Additional references

Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.
Last modified on April 13, 2018