Appendix F: ESAM Agent Log Reference
This guide is broken into sections where the log messages are found within the Agent. Not all logs are defined here as they’re triggered by the network or external systems. For messages in the log file that are not referenced here, consult ZEN Master engineering team. The log levels used are WARN, ERROR, INFO, DEBUG.
General log navigation
Every event will have an acquisitionSignalID generated with the signal processing event for solicited events and signal processing notification for unsolicited. This acquistionSignalID will appear on every subsequent log event until that event is complete.
If you find any log line related to an action in question and ‘grep’ the log using the acquisitionSignalID, you will return the entire flow from SCTE Acquisition to source switch/POIS insertion and broadcaster response.
Signal-handler (solicited)
Variables
- {{text}} = variable (listed below)
- <text> = info from another return in the Agent
- Identifiers = acquisitionSignalID, streamId, output.id, zoneIdentity
- Decision = acquisitionSignalID, zoneIdentity, acquisitionPointIdentity, altContent, altContentIdentity, utcPoint
Level | Message | Description |
|---|---|---|
DEBUG | signalHandler - called with streamId: <input stream id> | Notification that a new SCTE-35 message came in on the provided streamID |
DEBUG | signalHandler - input is not ESAM relevant <input stream id> | The input where the SCTE-35 was captured does not have an ESAM ID |
DEBUG | signalHandler - no outputs found for streamId <input stream id> | There are no outputs connected to the input were the SCTE-35 was captured |
INFO | signalHandler - called with streamId: <input stream id> outputs: {output.id, output.name, output.zoneIdentity} | All outputs attached to the input where the SCTE-35 was captured |
DEBUG | signalHandler - processing output (signalProcessingEvent) {{identifiers}} | Informative message about output that is being processed |
DEBUG | signalHandler - parsedDecision {decision}, {{identifiers}} | SDS response for processed output |
ERROR | signalHandler - error requesting decision, <error msg>, {{identifiers}} | Error getting decision from SDS |
INFO | signalHandler - no altContent element in decision; no switch required {{identifiers}} | Error getting decision from SDS |
WARN | signalHandler - no matching input for altContentIdentity <alt Content from {decision}> {{identifiers}} | The alternate identity provided in the SDS response does not exist on the Broadcaster |
ERROR | Invalid inputId | AltContentIdentity field in config set incorrectly |
DEBUG | signalHandler - skipping output on matching input <output stream_id> {{identifiers}} | The output being processed is already connected to the alternate content input |
INFO | signalHandler - processing output (switching) {{identifiers}} { currentInputId: <output.stream_id>, newInputId: <newInput.id>, <adjustedPtsTime>} | A switch command is being sent to the Broadcaster to switch the input connected to the output |
ERROR | signalHandler - Error processing event: <error msg> {{identifiers}} | General error while processing the response from the SDS |
Unsolicited-handler
- {{text}} = variable (listed below)
- <text> = info from another return in the Agent
- Identifiers = acquisitionSignalID, streamId, output.id, zoneIdentity
- OutputIdentifiers = {{identifiers}}, outputId: output.id, outputName: output.name
Level | Message | Description |
|---|---|---|
INFO | unsolicitedHandler - called with {{identifier}} | Informative message that unsolicited message was received |
WARN | unsolicitedHandler - no switch required {{identifiers}} | Alternate content element of SDS message is missing or set to False |
WARN | unsolicitedHandler - no input found by altContentIdentity {{identifiers}} | No input was found on the Broadcaster with the ID provided in the altContentIdentity of the SDS message |
DEBUG | unsolicitedHandler - skipping output on matching input <output.stream_id> {{identifiers}} | The output and input in the SDS message are already connected |
WARN | unsolicitedHandler - no outputs found by zoneIdentity {{identifiers}} | The output provided in the SDS message is not available on the Broadcaster |
INFO | unsolicitedHandler - processing output (switching) {{outputIdentifiers}} | A switch command is being sent to the Broadcaster to switch the input connected to the output |
ERROR | unsolicitedHandler - error processing event: {{outputIdentifiers}}<error msg> | General error while switching input and updating ZEN Master |
Broadcaster-API/Client
- <text> = info from another return in the Agent
Level | Message | Description |
|---|---|---|
ERROR | Timeout | Timeout interacting with the Broadcaster API |
ERROR | BroadcasterApi.get, error: <error msg> | Error interacting with the Broadcaster API |
ERROR | Broadcaster API error2 <error msg> | Error interacting with the Broadcaster API (JSON format) |
ERROR | BX error: <error msg> | Error switching inputs on Broadcaster |
INFO | Broadcaster redirect response: <response.message> | Response message from Broadcaster after input switch |
INFO | BroadcasterClient.enableScteReporting, SCTE reporting applied successfully | SCTE-35 Reporting URL is set to send messages to the ESAM Agent |
ERROR | BroadcasterClient.enableScteReporting, Error enabling SCTE reporting: <error msg> | Problem updating the SCTE-35 Reporting URL on the Broadcaster |
ERROR | BroadcasterClient.getSettings, Error getting settings <error msg> | Problem getting Broadcaster config file through the API |
ERROR | BroadcasterClient.getOutputs, No outputs found | No outputs on the Broadcaster |
ERROR | BroadcasterClient.getOutputs, No ESAM relevant outputs found | No outputs with ESAM IDs on the Broadcaster |
ERROR | No inputs found | No inputs on the Broadcaster |
ERROR | No ESAM supported inputs found | No inputs with ESAM IDs on the Broadcaster |
SDS (Signal Decision Service)
- <text> = info from another return in the Agent
Level | Message | Description |
|---|---|---|
ERROR | Error sending acknowledgement: <error msg> | Problem sending the response message to the SDS |
DEBUG | === signalProcessingEvent === | Header for next log |
DEBUG | <SPE message> | Unformatted message to SDS |
DEBUG | = signalProcessingNotification = | Header for next log |
DEBUG | <SPN message> | Formatted response from SDS |
ERROR | Error parsing decision: <error msg> | Problem parsing message from SDS |
ERROR | Invalid SDS decision: <error msg> | Problem parsing message from SDS |
DEBUG | SDSClient.acknowledgement <PSN message> | Unformatted message to SDS |
ERROR | Error sending acknowledgement: <error msg> | Problem sending the status message to the SDS |
Config Manager
- <text> = info from another return in the Agent
Level | Message | Description |
|---|---|---|
ERROR | Config file ./config.json not found, see ./config-templage.json for an example. | The ESAM Agent is unable to find the config.json file |
ERROR | Error reading ./config.json <error msg> | The ESAM Agent is unable to read the config file |
ERROR | Error parsing ./config.json <error msg> | Validation error for XML |
Helper functions
- {{text}} = variable (listed below)
- <text> = info from another return in the Agent
- PtsTime = pts time of the splice point in the SCTE-35 message
- PreRoll = pre roll (if provided) in the SCTE-35 segmentation descriptors
- AdjusterPtsTime = ptstime + preRoll
Level | Message | Description |
|---|---|---|
ERROR | Invalid xml. Data type is not string | Validation error for XML |
ERROR | Failed to parse xml | Problem parsing the XML provided |
DEBUG | Parsed PTS { {{ptsTime}}, {{preRoll}}, {{adjustedPtsTime}} } | PtsTime, preRoll, and adjustedPtsTime from SCTE-35 |
ERROR | Error parsing PTS <error msg> | Problem parsing PTS and PreRoll from SCTE-35 message |
ERROR | Invalid request: <error msg> | Validation error for XML |
HTTP-Client
- <text> = info from another return in the Agent
Level | Message | Description |
|---|---|---|
ERROR | requestHandler ERROR <request method> , <url>, <request body> | Problem requesting data from external system |
ERROR | Error fetching data <error msg> | Problem requesting data from external system |
WARN | retryHandler, Attempt <attempt number> failed: <last error> | Problem, attempting another retry |
Monitor
- <text> = info from another return in the Agent
Level | Message | Description |
|---|---|---|
WARN | monitor, No broadcaster detected | No response from Broadcaster getSettings API call |
ERROR | monitor, SCTE messages not enabled | Broadcaster SCTE-35 Report URL not configured for ESAM Agent |
ERROR | Error in monito <error msg> | Problem checking or configuring Broadcaster SCTE-35 Report URL |
ZEN Master Client
- <text> = info from another return in the Agent
Level | Message | Description |
|---|---|---|
INFO | ZenMasterClient.updateZenMaster, Switching targets | ZEN Master will be notified of a input output switch |
INFO | ZenMasterClient.updateZenMaster, ZEN master has been updated successfully | ZEN Master successfully reassigned the Channel to the Target |
ERROR | Error updating ZEN master <error msg> | ZEN Master was unsuccessful in reassigning the Channel to the Target |
INFO | reportScte35, SCTE35 posted to ZEN Master <response status> | Response message from ZEN Master after posting SCTE-35 message |
ERROR | reportScte35, Failed to post SCTE35 to ZEN Master: <error msg> | Problem posting SCTE-35 message to ZEN Master |
App (Main)
- <text> = info from another return in the Agent
Level | Message | Description |
|---|---|---|
ERROR | Error processing unsolicited request <error msg> | General error processing unsolicited message |
ERROR | Error processing signal <error msg> | General error processing solicited message |
INFO | Server is running on localhost: <tcp port> | Startup message noting the TCP port the Agent is listening on |
ERROR | Failed to start server <error msg> | General error starting ESAM Agent |