Debug Stream Targets (push publishing)

This article describes how to use log messages in Wowza Streaming Engine™ media server software to verify that push publishing features are configured correctly and to debug streams that the push publishing module in Wowza 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:
myStream={"profile":"rtmp", "streamName":"myStreamOut", "host":"10.0.2.25", "application":"myApplication", "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.

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[myApplication/_definst_/myStream]: profile:rtmp rtmp://10.0.2.25:1935/myApplication/myStreamOut
2015-06-09 12:09:37 MST comment server INFO 200 - ModulePushPublish.startPublishSession[myApplication/_definst_/myStream]: profile:cupertino-akamai myApplication/_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 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[myApplication/_definst_]: New stream[myStream]

2015-06-09 13:12:07 MST comment server INFO 200 - ModulePushPublish.loadMapFile: added stream (myStream cupertino-akamai myStreamOut): app:myApplication/_definst_

2015-06-09 13:12:07 MST comment server INFO 200 - ModulePushPublish.loadMapFile: added stream (myStream rtmp myStreamOut): app:myApplication/_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 also use one of the test players on the Video Test Players webpage.

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 select your live application in the contents panel.
     
  2. In the 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, 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 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".