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).
- The Stream Targets feature in Wowza Streaming Engine 4.2 is a graphical user interface in Wowza Streaming Engine Manager that lets you easily manage your push publishing workflows. For details, see Use CDNs and services to distribute live streams from Wowza Streaming Engine.
- The HTTP debug functionality for HTTP-based push publishing profiles is only supported in Wowza Streaming Engine 4.1.1 or later.
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.
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_
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.
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:
- In Wowza Streaming Engine Manager, click the Applications tab and then select your live application in the contents panel.
- 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. - In the Custom area, click Edit.
- 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.
- 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.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
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".