System and watch status in JSON format
The Launcher heartbeat file summarizes the status of Launcher systems and watches in a JSON-formatted log file that an external program can read to automatically monitor Launcher status.
The Launcher logs the following information in
the heartbeat file:
- Current time in ISO8601 format
- System statistics:
- Output equivalent to the launcher -summary command
- Launcher warning, error, and fatal error counts. Informational messages about log file enablement are not counted.
- System deltas:
- Number of successful maps, map errors, and total number of maps since the last heartbeat interval
- Number of system warnings, errors, and fatal errors since the last heartbeat interval
- Watch statistics:
- Watch name
- Summary:
- Number of instances triggered
- Total time of all instances in milliseconds
- Minimum time for one instance in milliseconds
- Maximum time for one instance in milliseconds
- Average time for one instance in milliseconds
- Delta: The change to each of the Summary values since the last heartbeat interval
Configuring the Launcher heartbeat file
Options in the /runtime/Launcher section of the config.yaml file
enable and configure the Launcher
heartbeat file:
- HeartbeatFileInterval
- The interval in seconds between heartbeat files. Specifying 0 disables heartbeat monitoring.
- HeartbeatFileKeepNum
- The number of heartbeat files to keep before the oldest file is deleted.
The most recent heartbeat file has the Launcher
log file name and the .json file extension. For
example:
CompoundSystem04-11-17-05-45-42-AM_myhost.json
Older heartbeat files
have a numeric index appended to the file extension. For
example:CompoundSystem04-11-17-05-45-42-AM_myhost.json.1
Heartbeat file example
The log file format is similar to the
following:
"Time": "2017-04-11T16:05:23-0400",
"System Statistics":
"System Status": "Running",
"Active Component Maps": "0",
"Active Listeners Up": "20",
"Active Listeners Down": "0",
"Active Connections": "1",
"Start Time": "2017-04-11T16:05:00-0400",
"Success Time (dhms)": "0:15",
"Failure Time (dhms)": "0:00",
"Up Time (dhms)": "0:23",
"Pending Initialization": "0",
"Pending Initialization Maximum": "12",
"Pending Resource": "0",
"Pending Connection": "0",
"Pending Total Maps": "0",
"History Successes": "369",
"History Failures": "0",
"History Total Maps": "369",
"History Connection Failures": "0",
"History Deadlocks Detected": "0",
"History Function Failures": "0",
"System Warnings": "1",
"System Errors": "11",
"System Fatals": "0"
"System Deltas":
"History Successes": "206",
"History Failures": "0",
"History Total Maps": "206",
"System Warnings": "0",
"System Errors": "0",
"System Fatals": "0"
"Watch Statistics":
"Name": "PreProcessEnvelope",
"Summary":
"Triggered": "3",
"Tot Time (ms)": "384",
"Min Time (ms)": "80",
"Max Time (ms)": "208",
"Ave Time (ms)": "128" "Deltas":
"Triggered": "2",
"Tot Time (ms)": "176",
"Min Time (ms)": "80",
"Max Time (ms)": "96",
"Ave Time (ms)": "88"
"Name": "ProcessInvoice",
"Summary":
"Triggered": "3",
"Tot Time (ms)": "135",
"Min Time (ms)": "31",
"Max Time (ms)": "67",
"Ave Time (ms)": "45"
"Deltas":
"Triggered": "2",
"Tot Time (ms)": "68",
"Min Time (ms)": "31"
"Max Time (ms)": "37",
"Ave Time (ms)": "34"