Keeper HTTP API and Dashboard
ClickHouse Keeper provides an HTTP API and embedded web dashboard for monitoring, health checks, and storage management. This interface allows operators to inspect cluster status, execute commands, and manage Keeper storage through a web browser or HTTP clients.
Configuration
To enable the HTTP API, add the http_control section to your keeper_server configuration:
Configuration Options
| Setting | Default | Description |
|---|---|---|
http_control.port | - | HTTP port for dashboard and API |
http_control.secure_port | - | HTTPS port (requires SSL configuration) |
http_control.readiness.endpoint | /ready | Custom path for the readiness probe |
http_control.storage.session_timeout_ms | 30000 | Session timeout for storage API operations |
Endpoints
Dashboard
- Path:
/dashboard - Method: GET
- Description: Serves an embedded web dashboard for monitoring and managing Keeper
The dashboard provides:
- Real-time cluster status visualization
- Node monitoring (role, latency, connections)
- Storage browser
- Command execution interface
Readiness Probe
- Path:
/ready(configurable) - Method: GET
- Description: Health check endpoint
Success response (HTTP 200):
Commands API
- Path:
/api/v1/commands/{command} - Methods: GET, POST
- Description: Executes Four-Letter Word commands or ClickHouse Keeper Client CLI commands
Query parameters:
command- The command to executecwd- Current working directory for path-based commands (default:/)
Examples:
Storage API
- Base Path:
/api/v1/storage - Description: REST API for Keeper storage operations
The Storage API follows REST conventions where HTTP methods indicate the operation type:
| Operation | Path | Method | Status Code | Description |
|---|---|---|---|---|
| Get | /api/v1/storage/{path} | GET | 200 | Get node data |
| List | /api/v1/storage/{path}?children=true | GET | 200 | List child nodes |
| Exists | /api/v1/storage/{path} | HEAD | 200 | Check if node exists |
| Create | /api/v1/storage/{path} | POST | 201 | Create new node |
| Update | /api/v1/storage/{path}?version={v} | PUT | 200 | Update node data |
| Delete | /api/v1/storage/{path}?version={v} | DELETE | 204 | Delete node |