Add Docker health check support

Implements #406 by adding a --health CLI flag and HEALTHCHECK instruction
to the Dockerfile. This allows Docker and container orchestration platforms
to monitor container health automatically.

Changes:
- Added --health flag that validates configuration and plugin connectivity
- Implemented HealthCheck() method in pkg/poller/commands.go
- Updated Dockerfile with HEALTHCHECK instruction (30s interval, 10s timeout)
- Updated MANUAL.md with --health flag documentation
- Added health check documentation to Docker README
- Added comments to docker-compose examples about built-in health check

The health check:
- Validates configuration file is found and parseable
- Ensures at least one input and one enabled output are configured
- Performs basic validation on enabled outputs
- Returns exit code 0 (healthy) or 1 (unhealthy)
- Runs silently for Docker compatibility

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Cody Lee
2025-12-08 13:09:10 -06:00
parent ef677c8f74
commit b960695f3b
8 changed files with 103 additions and 1 deletions

View File

@@ -24,7 +24,7 @@ examples and default configurations.
OPTIONS
---
`unpoller [-c <config-file>,[config-file]] [-j <filter>] [-e <pass>] [-h] [-v]`
`unpoller [-c <config-file>,[config-file]] [-j <filter>] [-e <pass>] [--health] [-d] [-h] [-v]`
-c, --config <config-file>,[config-file]
Provide a configuration file (instead of the default). You may provide
@@ -39,6 +39,17 @@ OPTIONS
-v, --version
Display version and exit.
--health
Run a health check and exit with status 0 (healthy) or 1 (unhealthy).
This validates the configuration file, ensures input and output plugins
are properly configured, and performs basic connectivity checks. Useful
for Docker HEALTHCHECK and container orchestration readiness probes.
-d, --debugio
Debug the inputs and outputs configured and exit. This performs more
verbose validation checks than --health and is useful for troubleshooting
configuration issues.
-j, --dumpjson <filter>
This is a debug option; use this when you are missing data in your graphs,
and/or you want to inspect the raw data coming from the controller. The