• How to debug Stream Targets (push publishing)

    This article describes how to use log messages in Wowza Streaming Engine™ software to verify that push publishing features are configured correctly and to debug streams that the push publishing module in the Streaming Engine delivers to another server or content delivery network (CDN).

    Notes:

    Contents


    Verification logging
    Debug properties and parameters

    Verification logging


    The push publishing module (ModulePushPublish) in Wowza Streaming Engine runs per-application. If you're running multiple applications, each application must have the module definition added to the Modules section of the application's Application.xml file ([install-dir]/conf/[application]/Application.xml). For instructions about how to add the ModulePushPublish to the application configuration, see Send streams to destinations using Wowza Streaming Engine 4.1 and earlier.

    Note: Wowza Streaming Engine 4.2 (and later) doesn't require you configure the ModulePushPublish module.
    After you start the application, you'll see push publishing log messages in the media server's access log file ([install-dir]/logs/wowzastreamingengine_access.log) if the application is running correctly.

    Push publishing log messages vary depending on the profile type that's used. Before we show some logging examples, let's assume you've created the following map entries in your PushPublishMap.txt map file for the live application:
    myStream={"profile":"rtmp", "streamName":"myStreamOut", "host":"10.0.2.25", "application":"live", "userName":"admin", "password":"12345", "debugLog":"false"}
    myStream={"profile":"cupertino-akamai", "streamName":"myStreamOut", "cupertino.playlistCount":"3", "cupertino.renditions":"audiovideo", "akamai.streamId":"123456", "akamai.hostId":"myhostid-i", "debugLog":"false"}
    The push publishing module loads when the associated application starts, which in this case happens when the source stream myStream is connected to live application.

    With the map entries defined, the example push publishing log messages we should see are:
    2015-06-09 12:09:37 MST comment server INFO 200 - ModulePushPublish.startPublishSession[live/_definst_/myStream]: profile:rtmp rtmp://10.0.2.25:1935/live/myStreamOut
    2015-06-09 12:09:37 MST comment server INFO 200 - ModulePushPublish.startPublishSession[live/_definst_/myStream]: profile:cupertino-akamai live/_definst_/myStream->myStreamOut
    The format of the log lines usually includes the date and/or time followed by warn-level information (DEBUG/INFO/WARN/ERROR). The example messages above show that the push publishing module is executing on the live application's _definst_ application instance. If you don't see similar messages in the access log file after your application starts, and you have one (or more) map entries that should initiate a push publishing session, verify that your server and map file configuration are correct.

    To help debug startup issues, you can enable the pushPublishDebug property to trigger additional push publishing module logging related to ingestion of the map file entries and detection of source streams.

    With the example map entries defined, these log messages would look like the following:
    2015-06-09 13:12:07 MST comment server INFO 200 - ModulePushPublish.processChanges[livePush/_definst_]: New stream[myStream]
    2015-06-09 13:12:07 MST comment server INFO 200 - ModulePushPublish.loadMapFile: added stream (myStream cupertino-akamai myStreamOut): app:livePush/_definst_
    2015-06-09 13:12:07 MST comment server INFO 200 - ModulePushPublish.loadMapFile: added stream (myStream rtmp myStreamOut): app:livePush/_definst_
    Note: Push publishing messages may be interspersed with other messages in the access log file or shown multiple times depending on how the system is configured. Many of them won't be recorded if debug properties and parameters aren't set to true.
    After you verify the module started correctly and that no errors are logged, review the access log file for other push publishing-related messages. You should also verify that the stream(s) were pushed to the destination successfully. For example, if pushing to a CDN destination such as Limelight or Akamai, try to play the streams in a client player. You can use one of the test players in Wowza Streaming Engine Manager or one of our online test players.

    Debug properties and parameters


    This section describes the configuration items that you can use to log more detailed information and to help you debug problems.

    Note: Enabling debug properties/parameters can produce a lot of log entries, which can create very large log files.

    Application/Module-level debug

    The pushPublishDebug property triggers additional application-specific push publishing module logging related to ingestion of map file entries and detection of source streams. It also enables stream-level logging for all map file entries. When enabled, the Streaming Engine access log records all streams that are published and their destinations. It also records other warning-level messages so that push publishing module operations can be traced in the log file.

    To enable the pushPublishDebug property:

    1. In Wowza Streaming Engine Manager, click the Applications tab and then click the live application name (such as live) in the contents panel.

    2. In the live application page, click the Properties tab and then click Custom in the Quick Links bar.

      Note: Access to the Properties tab is limited to administrators with advanced permissions. For more information, see Manage credentials.
    3. In the Custom area, click Edit.

    4. Click Add Custom Property and specify the following settings in the Add Custom Property dialog box:

      • Path - Select /Root/Application.
      • Name - Enter pushPublishDebug.
      • Type - Select Boolean.
      • Value - Enter true.

    5. Click Add, then click Save, and then restart the application when prompted.

    Stream-level debug

    The debugLog map file parameter enables the same stream-level logging that the pushPublishDebug property enables, but is instead set per-stream by adding it to the [install-dir]/conf/PushPublishMap.txt file for that stream. The format is "debugLog":"true". This parameter DOES NOT enable additional push publishing module logging that allows other warning-level messages about module operations to be logged. For more information, see Debugging connections.

    Note: In terms of stream-level logging, the debugLog parameter overrides the setting defined by the pushPublishDebug property.

    RTMP packet-level debug

    The debugPackets map file parameter enables verbose packet logging for RTMP streams. This parameter is set per-stream by adding it to the [install-dir]/conf/PushPublishMap.txt file for that stream. The format is "debugPackets":"true". For more information, see Debugging connections.

    HTTP debug

    Note: For use with Wowza Streaming Engine 4.1.1 and later.
    The http.writerDebug map file parameter enables logging associated with HTTP connections for the HTTP-based push publishing profiles (cupertino-akamai, sanjose-akamai, and so on.), including information about failed connections, retries, and socket read/write timing. The parameter is set per-stream by adding it to the [install-dir]/conf/PushPublishMap.txt file for that stream. The format is "http.writerDebug":"true".

    The http.fakePosts map file parameter affects HTTP connections for the HTTP-based push publishing profiles. Setting this parameter to true instructs the Wowza media server to "fake" posting of the associated HTTP streaming files to the destination. It can be used to isolate internal media server errors from Akamai server communication errors. As the name indicates, no actual connection is ever made with the destination(s) and no files are sent, but log messages will indicate successful communications and file transfers. The parameter is set per-stream by adding it to the [install-dir]/conf/PushPublishMap.txt file for that stream. The format is "http.fakePosts":"true".

    Originally Published: 03-01-2013.
    Updated: For Wowza Streaming Engine 4.2 on 06-16-2015.

    If you're having problems or want to discuss this article, post in our forum.