Skip to main content
By the end of this guide, you’ll have monitors and services grouped together for unified health views and coordinated alert management.
  • DevHelm CLI installed or an API token
  • At least two monitors or service dependencies

What resource groups do

Resource groups let you:
  • Aggregate health — see the overall status of a logical service composed of multiple monitors and dependencies
  • Suppress noise — when a group-level incident is active, suppress individual member alerts
  • Simplify routing — use resource_group_id_in in notification policies to route group alerts

Create a resource group

1

Create the group

devhelm resource-groups create \
  --name "Payment Stack" \
  --description "All payment-related monitors and services"
2

Add members

curl -X POST https://api.devhelm.io/api/v1/resource-groups/<group-id>/members \
  -H "Authorization: Bearer $DEVHELM_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"memberType": "monitor", "memberId": "<stripe-webhook-monitor-id>"}'

curl -X POST https://api.devhelm.io/api/v1/resource-groups/<group-id>/members \
  -H "Authorization: Bearer $DEVHELM_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"memberType": "monitor", "memberId": "<checkout-api-monitor-id>"}'

curl -X POST https://api.devhelm.io/api/v1/resource-groups/<group-id>/members \
  -H "Authorization: Bearer $DEVHELM_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"memberType": "service", "memberId": "<stripe-service-id>"}'
3

View group health

devhelm resource-groups get <group-id>
The response shows the aggregate status across all members.

Alert suppression

When a group has suppressMemberAlerts enabled and a group-level incident is active, individual member alerts are suppressed. This prevents alert storms when multiple monitors in a group fail due to a shared root cause. For example, if your database cluster goes down and all 5 services that depend on it fail, you get one group incident instead of 5 individual alerts. See Alert suppression for details.

Route group alerts

Create notification policies targeting specific resource groups:
{
  "name": "Payment stack to payments channel",
  "matchRules": [
    { "type": "resource_group_id_in", "values": ["<payment-stack-group-id>"] }
  ],
  "escalation": {
    "steps": [{
      "delayMinutes": 0,
      "channelIds": ["<payments-slack-id>"]
    }]
  },
  "priority": 10
}

Example group structures

Group database monitors, cache monitors, and message queue monitors. When the infrastructure layer is unhealthy, suppress alerts from dependent application monitors.
Group the API monitor, CDN monitor, and third-party payment dependency. Single health indicator for stakeholder dashboards.
Group all monitors for a specific region (US-East, EU-West). Route regional group alerts to the corresponding on-call team.

Next steps

Alert suppression

How group suppression prevents alert storms.

Status Data guide

Add third-party services as group members.

Alert routing by tag

Combine groups with tag-based routing.