-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or requestfeatureNew CRD features and API coverageNew CRD features and API coveragepriority: lowP4/P5/P6 - Nice to haveP4/P5/P6 - Nice to have
Description
Summary
The Monitor CRD status only contains `ready`, `id`, and `heartbeatURL`. The UptimeRobot API returns many useful read-only fields that could be exposed in status for observability.
Current Behaviour
Monitor status fields:
- `ready` (bool)
- `id` (string)
- `heartbeatURL` (string, heartbeat only)
- `type` (string)
- `status` (uint8)
Proposed Additional Status Fields
type MonitorStatus struct {
// Existing fields...
// SSL certificate brand (e.g. "Let's Encrypt")
SSLBrand string `json:"sslBrand,omitempty"`
// SSL certificate expiry date
SSLExpiryDate *metav1.Time `json:"sslExpiryDate,omitempty"`
// Domain expiry date
DomainExpiryDate *metav1.Time `json:"domainExpiryDate,omitempty"`
// Average response time (ms) over last 24h
AverageResponseTime *int `json:"averageResponseTime,omitempty"`
// Uptime percentage (last 24h)
Uptime24h string `json:"uptime24h,omitempty"`
// Uptime percentage (last 7 days)
Uptime7d string `json:"uptime7d,omitempty"`
// Uptime percentage (last 30 days)
Uptime30d string `json:"uptime30d,omitempty"`
// Time in current state
CurrentStateDuration *metav1.Duration `json:"currentStateDuration,omitempty"`
// Creation timestamp in UptimeRobot
CreatedAt *metav1.Time `json:"createdAt,omitempty"`
}Benefits
- SSL/domain expiry visible via `kubectl get monitors` (printer columns)
- Uptime stats available for GitOps dashboards
- No need to query UptimeRobot UI for basic health info
- Can be used for alerting via Kubernetes watch
Acceptance Criteria
- Rich status fields populated during periodic sync
- Printer columns show key fields in `kubectl get` output
- Fields are read-only (not settable via spec)
- Performance impact acceptable (no extra API calls needed — data comes from existing GetMonitor response)
- Unit tests for status field mapping
Phase
P4 — Feature Gaps (Phase 3: Expand)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestfeatureNew CRD features and API coverageNew CRD features and API coveragepriority: lowP4/P5/P6 - Nice to haveP4/P5/P6 - Nice to have
Projects
Status
Todo