Application Health Status in Argo CD and Resource-Level Messages
Why Application Health Messages Do Not Show Resource-Level Messages
Argo CD determines the overall health of an application (e.g., Healthy, Degraded) by evaluating the health of its resources. However, it does not aggregate individual resource health messages into the top-level app.status.health.message
.
This behavior is intentional to reduce noise in large applications. For example, in a Crossplane-managed app, if one resource fails, that resource’s message is not bubbled up into the app’s top-level health message.
Starting with Argo CD v3.0, resource-level health information is no longer stored in the Application CR. Instead, it is held in memory via Redis, meaning you need to use APIs or the UI to access it.
How to Retrieve Resource-Level Health Messages
1. Using the Argo CD API
You can query the API to retrieve detailed health data for each resource:
curl -k -H "Authorization: Bearer <ARGOCD_AUTH_TOKEN>" \
https://<ARGOCD_SERVER>/api/v1/applications/<APP_NAME>
The response will include health messages for each resource.
2. Using the Argo CD CLI
Run the following command (replace myapp-deployment
with your app name):
argocd app get myapp-deployment --output json | jq '.status.resources[] | {kind, name, health}'
Example output:
{
"kind": "Deployment",
"name": "nginx-failing",
"health": {
"status": "Degraded",
"message": "Deployment \"nginx-failing\" exceeded its progress deadline"
}
}
3. Using the Argo CD UI
-
Open your application in the Argo CD dashboard
-
Expand the Resource Tree
-
Hover over or click a resource to see its health status and message
This provides a developer-friendly way to inspect resource health without requiring CLI/API access.