Debugging the integration process

This document is for PolyNetSDK version 3 for Android.

This section describes the steps required to verify that the PolyNet SDK was correctly integrated with the application.

Debugging the application requires the device under test to be connected to Android Studio, and have access to the Android console log. Access to the logging utility can be accomplished from Android Studio or externally from the adb logcat command.

Enabling debug messages

In order to print debug messages to the Android console log you need to instruct the PolyNet SDK instance to enable logging. To do so, set the property ConsoleLogLevel to LogLevel.INFO.

PolyNetConfiguration.Builder configurationBuilder = PolyNetConfiguration.builder()
    .setManifestUrl(manifestUrl)
    .setChannelId(name)
    .setApiKey(apiKey)
    .setContext(this)
    .setConsoleLogLevel(PolyNetConfiguration.LogLevel.INFO);

Debugging the PolyNet configuration

As explained in the PolyNet SDK Configuration section, the build() method will return a PolyNetConfiguration instance, or throw an PolyNetException if any parameter is invalid or missing.

Debugging the connection to PolyNet

If everything is correct, you should see one the following messages in the log:

You can look for the node ID, parent ID in the System73 Dashboard, to verify that the nodes are connected.

If the connection with Tracker cannot be opened due to a malformed apiKey search the console log for: Check your API Key. If problem persists, contact support at support@system73.com., you can handle this PolyNetException with the codes: -600, -601.

If the content manifest is not reachable by the PolyNet Instance or is not supported, search the log for: Error while getting the local Manifest URL. The original is returned instead. The PolyNet is deactivated., you can handle this PolyNetException with the code: -700.

If an issue with the Tracker Handshake occurs, search the console log for: The PolyNet SDK is not compatible with the Tracker. Tracker code: *{handshake_rejected_code}*. This may happen in transitions to newer versions. If problem persists, contact support at support@system73.com., you can handle this PolyNetException with the code: -701.

If connection to Tracker Metrics Endpoint fails search the console log for: Error communicating with PolyNet metrics server endpoint. Detail: HTTP code: *{http_status_code}*, URL: *{tracker_metrics_url}*. If problem persists, contact support at support@system73.com, you can handle this PolyNetException with the code: -703.

The trace will contain an embedded exception detailing the network problem that caused it. You should verify that networking is available, and that the ApiKey that you provided is correct.

If the connection to the Tracker was open, but it was rejected, search the console log for an exception containing the message: Connection to the Tracker was not accepted for channel ID = (...). Please, check that the channel ID is correct.

You should verify that the channel ID that you provided is correct.

Debugging PolyNet content requests

It is vital to verify that the video player is requesting content from the PolyNet, and not directly from the Internet.

The following messages must be in the console's log to ensure the proper operation of the PolyNet:

Content request URL = ...

If none is present in the log, it means that the player is not using the PolyNet to download content.

Please verify that you initialised the video player with the correct manifest URL, passing the URL from the method polyNet.getLocalManifestUrl().

Debugging P2P

To verify that peers are able to connect to each other, look for the following messages in the console's log, that show connections and disconnections from peers:

Connected to P2P parent with ID = ...
Disconnected from P2P parent with ID = ...
Connected to P2P child with ID = ...
Disconnected from P2P child with ID = ...

You can see peers come and go by inspecting the parent ID and child ID in the System73 Dashboard.

Debugging reconnection

If the SDK needs to reconnect to the Tracker, search the console log for an exception containing the message: Connection to the Tracker was unexpectedly closed.

Tracker Connection Related errors will yield: Error communicating with Tracker. Description: *{custom_description}*. If problem persists, contact support at support@system73.com., you can handle this PolyNetException with the code: -702.

If the SDK is commanded to connect to a different parent by the Tracker, search the console log for one of the following messages:

You can look for the node ID, parent ID in the System73 Dashboard, to verify that the nodes are connected.

Example of the debugging process

The following is an example of a debugging session where 2 devices are connected, and the operation is completed successfully:

  1. You will need an exclusive channel for debugging, which is not used by anyone else. Ensure no other device is connected to the channel. You can verify that in the System73 Dashboard.

  2. Connect the first device to the channel. The device should be playing video. Check that its node ID shows up in the System73 Dashboard, connected to the CDN. Look for the following messages in the console's log:

    Connected successfully to the Tracker, with ID = (...). Will fetch from CDN.
    
    Content request URL = ...
    
  3. Connect a second device. The device should be playing video within a few seconds. It should become a child node of the first device. Check that its node ID shows up in the System73 Dashboard, and that it is connected to the first device. Look for the following messages in the console's log:

    In the parent's log:

    Connected to P2P child with ID = ...
    

    In the child's log:

    Connected successfully to the Tracker, with ID = (...). Will fetch from P2P (parent ID = ...).
    
    Connected to P2P parent with ID = ...
    
    Content request URL = ...