A Go application for monitoring HTTP endpoint health.
- Concurrent health checks for HTTP endpoints
- Multiple output formats: CLI table, JSON, HTML report
- Configurable via one or more TOML files
- HTTP header support for authentication
- Custom status code validation (single codes or ranges)
- Concurrency limiting
- Response body inspection in verbose mode
- Color-coded CLI output
- Go 1.16+
- Dependencies are managed via go modules
vitals [options] [config_file...]
-c, --config
: Path to configuration file(s)-t, --timeout
: Override global timeout in seconds-v, --verbose
: Enable verbose logging and response body output--concurrency
: Limit concurrent requests (0 = unlimited)-j, --json
: Output results in JSON format-h, --html
: Output results in HTML format
If no config file is specified, vitals looks for vitals.toml
in the current directory.
Create TOML configuration files with your API endpoints and settings.
# Global settings
[global]
timeout = 5 # Request timeout in seconds
# Target configuration
[targets.example]
name = "EXAMPLE API"
base_urls = ["https://api.example.com"]
endpoints = ["health", "status"]
headers = { "Authorization" = "Bearer TOKEN" }
status_codes = [200, 204]
status_ranges = ["200-299"]
global.timeout
: Default request timeout in secondstargets
: Map of target configurationsname
: Display namebase_urls
: Base URLs to checkendpoints
: Endpoints to append to base URLsheaders
: HTTP headers for requestsstatus_codes
: Acceptable status codesstatus_ranges
: Acceptable status code ranges
If no status codes/ranges specified, only 200 is accepted.