Version 1.3.3: tested environments, agent requirements and optional check prerequisites.
Agent, Python and images
The agent requires Python 3.10 or later on Linux. Automated tests cover Python 3.10 and 3.12. Package metadata is corrected in 0.0.78: the old Python 2.7 claim was not a working compatibility guarantee. Python versions outside that matrix are not individually certified.
The journal uses fcntl locks, no-follow opens and file/directory synchronization. Native Windows is unsupported; macOS is not certified. Release checks also run the suite in the Linux image built from alpine:latest. Alpine/Python versions are not pinned, so retain the image digest for exact reproduction.
Publication uses the runner’s Linux x86-64 architecture. It does not currently publish a multi-platform image or certify ARM. HTTPdis and Sonicprobe remain the agent foundations; DWho provides the optional HTTP notification integration.
Docker and interface
A Docker daemon running Linux containers must be reachable with the required permissions. Integration tests use a real daemon on ubuntu-latest and record client, server, API and cgroup versions. No exact minimum Docker Engine release or complete API matrix is yet certified.
Examples use Docker Compose v2 (docker compose). Compose v1, Docker Desktop, rootless daemons, remote TLS endpoints and alternative engines require validation in the actual deployment.
The UI needs JavaScript, fetch and CSS in a current browser. Automated checks use Chromium at desktop/mobile viewport sizes; they do not certify every Android device or Safari/iOS browser. Use matching agent and UI releases.
Tools inside target containers
| Check | Prerequisite |
|---|---|
| Status, health, CPU, memory, network and I/O | Docker metadata/statistics; a configured Docker healthcheck for its result. These reads do not require Python inside the target. |
| Disk capacity and inodes | Running Linux container, Docker exec and GNU/BusyBox-compatible stat -f -c. |
| Read-only mount state | sh, cat, accessible directories, /proc/self/fdinfo and /proc/self/mountinfo. |
| Read/write/execute access and Linux ACLs | python3, standard library, /proc/self/status, explicit UID/GID/groups matching the actual probe, with no effective or permitted capabilities. |
| OOM and recent starts | Docker event API and sufficiently retained history; no program runs inside the container. |
| PID count and limit | PID statistics and kernel/cgroup accounting; percentages need a finite limit. |
No tools are installed automatically inside targets. Minimal images without the required tools cannot run the corresponding probes; stopped or paused containers cannot run them either. setfacl prepares test ACLs, but is not needed by the production probe.
A missing access-check identity returns configuration error 110; probe failures return collection error 115. Unavailable data must not be interpreted as success. See access and ACL checks and OOM, starts and PID checks.
Storage and limits
Persist state/journal directories on a local filesystem with working locks, atomic replacement and synchronization. Distributed filesystem guarantees are not certified. Linux POSIX ACL coverage does not certify NFSv4/SMB ACLs or equivalence with the application’s SELinux/AppArmor context.
Prometheus, Grafana, Redis and a browser remain optional for the simple agent. Journal migration works without Docker and has the same local-storage requirements.
Identify the environment
python3 --version
python3 -m pip show monit-docker docker HTTPdis sonicprobe
docker version
docker compose version
docker info --format 'OS={{.OSType}} Architecture={{.Architecture}} CgroupVersion={{.CgroupVersion}}'
Issue reports should include versions, architecture, image digests, filesystem type and requested checks, without tokens or complete private configuration. Test logs describe the exercised environment; they do not freeze future latest image versions.

