No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
Filter events when an event already exists for a defined check dependency
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

Runtime

 Project Readme

Sensu::Extensions::CheckDependencies

This filter extension provides the Sensu Core built-in filter check_dependencies.

This filter matches events when an event already exists, enabling the user to reduce notification noise and only be notified for the “root cause” of a given failure. Check dependencies can be defined in the check definition, using dependencies, an array of checks (e.g. check_app), Sensu client/check pairs (e.g. db-01/check_mysql), or a subscription/check pair (e.g. subscription:mysql/check_mysql).

Build Status

Installation

This extension requires Sensu version >= 0.26 and is provided as a built-in filter in Sensu >= 0.29.

To manually install this extension on a Sensu server machine:

$ sudo sensu-install -e check-dependencies:1.1.0

Edit /etc/sensu/conf.d/extensions.json to load it:

{
  "extensions": {
    "check-dependencies": {
      "version": "1.1.0"
    }
  }
}

Example Check/Handler Configuration

Specify a dependency on the mysql check:

{
  "checks": {
    "web_application_api": {
      "command": "check-http.rb -u https://localhost:8080/api/v1/health",
      "subscribers": [
        "web_application"
      ],
      "interval": 20,
      "dependencies": [
        "mysql"
      ]
    }
  }
}

... or specify a dependency on another client's mysql check:

{
  "checks": {
    "web_application_api": {
      "command": "check-http.rb -u https://localhost:8080/api/v1/health",
      "subscribers": [
        "web_application"
      ],
      "interval": 20,
      "dependencies": [
        "db-01/mysql"
      ]
    }
  }
}

... or specify a dependency on any mysql check in the mysql_nodes subscription:

{
  "checks": {
    "web_application_api": {
      "command": "check-http.rb -u https://localhost:8080/api/v1/health",
      "subscribers": [
        "web_application"
      ],
      "interval": 20,
      "dependencies": [
        "subscription:mysql_nodes/mysql"
      ]
    }
  }
}

Apply the check_dependencies filter to one or more handlers:

{
  "handlers": {
    "custom_mailer": {
      "type": "pipe",
      "command": "custom_mailer.rb",
      "filters": ["check_dependencies"]
    }
  }
}