Skip to main content
All training videos

10. SolidPing dependencies: one outage, one page

Documentation

One database outage should not become four pages in the middle of the night.

In this video you declare dependency edges between checks. A hard edge says that the failure of a parent causes the failure of its children, so the child incidents still appear in the timeline but do not page anyone. A soft edge only records a correlation, and the incident still pages. You will see the effect when a database fails, how the rollup works even when the parent confirms last, and what happens when the parent recovers.

Steps

  1. Five checks, one root cause​

    Five checks, one root cause

    Five checks: a database, three services that need it (api, dashboard, worker) and a blog. Without dependencies, a database outage means four incidents and four alerts.

  2. Add a hard dependency​

    Add a hard dependency

    Edit the api check, open Dependencies, pick the database as parent and keep the kind Hard: a database failure causes the API failure, so the API does not page on its own. Click Add dependency, then Save.

  3. See the edges​

    See the edges

    The api page shows Depends on: database, Hard. The same edge is set on dashboard and worker, and the database page lists all three under Depended on by.

  4. One incident in the list​

    One incident in the list

    The database fails, then the three services. The incident list shows a single incident, the database; the other three are rolled up under it.

  5. Show rolled-up incidents​

    Show rolled-up incidents

    Turn on Show rolled-up incidents to see all four. The api, dashboard and worker incidents carry a rolled up badge.

  6. The blast radius​

    The blast radius

    Open the database incident. The Blast radius card lists the three services, all rolled up, and the Notifications card shows one email.

  7. A rolled-up incident​

    A rolled-up incident

    Open the api incident. The banner says it is rolled up under the database incident, so paging is suppressed while the root cause is open. No notification was sent.

  8. One email in the mailbox​

    One email in the mailbox

    The on-call mailbox holds a single email, for the database. One outage, one alert, not four.

  9. When the parent confirms last​

    When the parent confirms last

    Set the confirmation period of the database check to 10 seconds. The api page now warns: Confirms faster than database can detect.

  10. Children wait in Validating​

    Children wait in Validating

    The database fails again, then the services. They stay in Validating: SolidPing holds their incidents while their hard parent is still validating.

  11. Still one alert​

    Still one alert

    Ten seconds later the database confirms. Its incident opens and the three services roll up under it.

  12. Add a soft dependency​

    Add a soft dependency

    Edit the blog check and add the database as parent with the kind Soft. A soft edge only records the link; paging does not change.

  13. A soft child still pages​

    A soft child still pages

    When the blog fails, its incident is not rolled up and it pages. The mailbox gets a second email, for the blog.

  14. Recovery is re-evaluated​

    Recovery is re-evaluated

    The api, dashboard and blog recover, then the database. SolidPing re-evaluates the services rolled up under it: the worker is still broken, so its incident leaves the rollup and pages on its own.

Next: SolidPing SLOs: error budget and burn rate →