ci-server-engineer/.claude/skills/system-management/tasks/monitoring-processes.md
cliu 1c3558c37c Complete phase 1 and build the CI-Eng-Sample project
Add verified system-management tasks (item read/write, quick load
records, history load, monitoring processes, consistency check, tuning
checks), the importable CI-Eng-Sample project with load/remove scripts,
the unlicensed 1-hour shutdown note, and the sample-project re-test
rule. Close ISS-002/003/004 and log ISS-005..007.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 14:01:33 +10:00

61 lines
3 KiB
Markdown

---
task: Monitoring processes (intcpumon, intdskmon, inttcpmon, intmon, intspawn)
version: R1.03
source: IM 36K10J10-01EN §4.1.6; practiced with CI-Eng-Sample 2026-09-30
status: verified
---
# Monitoring processes
INTEGRATION Service processes that write system health into items, or run a command when an
item changes. Each is configured in its own setup file in `%TLS_ROOT_PATH%\tls\sup\`.
**Changes the system's setup files.** Back each file up first. Follow the user's chosen way
of working; in *prepare only* mode, write the lines for the user to add.
## Setup file format
Setup files are plain text (CRLF). Lines starting with `!` are comments and editor
definitions (`!KEYWORD : …` shows each allowed keyword and its arguments). Active settings are
plain `keyword = value` lines, usually added at the end. The Setup File Editor edits the same
files.
## Settings
| Process | Setup lines | Item value |
|---|---|---|
| `intcpumon` | `interval = 10`, `logging`, `CPU = "", "<item>", ""` | CPU load %. Empty system name = this machine; empty counter = total CPU |
| `intdskmon` | `interval = 10`, `logging`, `DISK = "C:\\", "<item>"` | **Used** % of the disk (61.9 on a disk 61.9 % used), despite the manual saying free space |
| `inttcpmon` | `logging`, `TCP = "<host>", "<item>"` | 1 while the host answers a ping |
| `intmon` | `process = "<process>", "<item>"` | 1 while the CI Server process runs (e.g. `alm`) |
| `intspawn` | `TRIGGER = "<command>", "<item>", VALUE, NONE, 0` | Runs the command with the new value as argument |
`intspawn` trigger modes: `VALUE`, `STATUS`, `OPTION`, `TIMER` (value = interval in s),
`NODE_DOWN`, `NODE_UP`, `NODE`; filters `NONE`, `EQUAL`, `GREATER`, `LESS` with the value.
**Keep the command path short**: a ~130-character path silently did nothing
(`knowledge/issues.md` ISS-007). `intmon` also supports `node = <n>, "<item>"`,
`channel = <line>, <node>, "<item>"` and `offline` (for multi-node systems, not tested).
Tested lines for the sample project: `examples/CI-Eng-Sample/monitoring/*.sup.txt`
(items `CI-Eng-Sample.SYSTEM.*`).
## Start and stop
These processes do not start by default.
- For a test, start by hand (elevated): `Start-Process "$env:TLS_ROOT_PATH\tls\exe\<process>.exe" -ArgumentList "-n <process>" -WindowStyle Hidden`.
Stop with `Stop-Process -Name <process>`. They also stop when CI Server stops.
- To start them with CI Server, add them to `%TLS_ROOT_PATH%\tls\com\integration_start.cmd`
(for `intmon`, uncomment its `start /b /normal …\intmon.exe -n intmon` line; for the others
add `start /B /NORMAL %TLS_ROOT_PATH%\tls\exe\<process> -n <process>` followed by
`start /B /NORMAL /WAIT %TLS_ROOT_PATH%\tls\exe\durwfp -p <process> -t 10`). Not yet tested.
## Check
Read the target items with `itmval -g -n <item>` (status 9 once updated). With `logging`, the
processes also write to `%TLS_LOG_PATH%\umhlog.log`.
## Verified (CI-Eng-Sample, 2026-09-30)
CPU_LOAD 33.4, DISK_C 61.9, PING_LOCALHOST 1, PROC_ALM 1; `intspawn` wrote 0 and 1 to a file
when `PUMP1.MODE` changed. Setup files restored afterwards.