Add daemon health check endpoint (bd-146)
- Add OpHealth RPC operation to protocol - Implement handleHealth() with DB ping and 1s timeout - Returns status (healthy/degraded/unhealthy), uptime, cache metrics - Update TryConnect() to use health check instead of ping - Add 'bd daemon --health' CLI command with JSON output - Track cache hits/misses for metrics - Unhealthy daemon triggers automatic fallback to direct mode - Health check completes in <2 seconds Amp-Thread-ID: https://ampcode.com/threads/T-1a4889f3-77cf-433a-a704-e1c383929f48 Co-authored-by: Amp <amp@ampcode.com>
This commit is contained in:
@@ -9,6 +9,7 @@ import (
|
||||
// Operation constants for all bd commands
|
||||
const (
|
||||
OpPing = "ping"
|
||||
OpHealth = "health"
|
||||
OpCreate = "create"
|
||||
OpUpdate = "update"
|
||||
OpClose = "close"
|
||||
@@ -137,6 +138,18 @@ type PingResponse struct {
|
||||
Version string `json:"version"`
|
||||
}
|
||||
|
||||
// HealthResponse is the response for a health check operation
|
||||
type HealthResponse struct {
|
||||
Status string `json:"status"` // "healthy", "degraded", "unhealthy"
|
||||
Version string `json:"version"`
|
||||
Uptime float64 `json:"uptime_seconds"`
|
||||
CacheSize int `json:"cache_size"`
|
||||
CacheHits int64 `json:"cache_hits"`
|
||||
CacheMisses int64 `json:"cache_misses"`
|
||||
DBResponseTime float64 `json:"db_response_ms"`
|
||||
Error string `json:"error,omitempty"`
|
||||
}
|
||||
|
||||
// BatchArgs represents arguments for batch operations
|
||||
type BatchArgs struct {
|
||||
Operations []BatchOperation `json:"operations"`
|
||||
|
||||
Reference in New Issue
Block a user