Skip to content

feat(health): report per-service health and add degraded status - #424

Open
alex289 wants to merge 1 commit into
mainfrom
feat/health-service-status
Open

alex289 wants to merge 1 commit into
mainfrom
feat/health-service-status

Conversation

@alex289

@alex289 alex289 commented Oct 28, 2026 •

Copy link
Copy Markdown
Member

Type of change

  • 🐛 Bug fix
  • 🚀 New feature
  • ❓ Other (please specify)

Description

Part 1/4 of #268 (health status stats). Agents now report the health of each compose service, and the hub derives a new degraded application status when some services are healthy while others are unhealthy or stopped.

Agent

  • ApplicationStatus gains a repeated ServiceStatus services field. The agent groups containers by com.docker.compose.service and applies the existing aggregation per service.
  • The health watcher deduplicates on the full report (aggregate + services), so a change in which service fails is reported even when the aggregate stays unhealthy.

Hub

  • The agent keeps sending the old aggregate status (a partial failure is still unhealthy). The hub turns unhealthy into degraded when at least one service is healthy. Mixed versions keep working: an old agent sends no services and stays unhealthy, and an old hub ignores the new field.
  • degraded counts as unhealthy for notifications: healthy→degraded sends the unhealthy notification, degraded→healthy the recovery one, and degraded↔unhealthy is silent.

Frontend

  • Yellow Degraded badge. Degraded apps fall into the fleet's "unhealthy" category, with their own attention reason.

@codecov

codecov Bot commented Oct 28, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 91.48936% with 4 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
backend/internal/agent/docker/status.go 86.95% 3 Missing ⚠️
backend/internal/hub/websocket/handler.go 90.00% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@alex289
alex289 force-pushed the feat/health-service-status branch from 9fd4fbc to 10f946d Compare October 28, 2026 13:16
Agents now include the health of each compose service in their status
reports. The hub derives a new degraded status when some services are
healthy while others are unhealthy or stopped. Older agents keep working
because the aggregate status is unchanged.
@alex289
alex289 force-pushed the feat/health-service-status branch from 10f946d to 43ef27a Compare October 28, 2026 19:45

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants