このレポジトリにはインターフェロン gem が含まれています。この gem を使用すると、アラート構成をコードに格納できます。独自のレポジトリを作成し、interferon gem をインポートする Gemfile
を作成する必要があります。そのようなレポジトリの例、構成の例、およびアラート ファイルについては、https://www.github.com/airbnb/alerts_example を参照してください。
この gem は interferon
という名前の単一の実行可能ファイルを提供します。
次のように呼び出す必要があります
$ bundle exec interferon --config /path/to/config_file
追加オプション
-h
、--help
-- 使用方法情報を表示します-n
、--dry-run
-- アラート宛先に何の変更も行わずにインターフェロンを実行します構成ファイルは YAML で記述されています。
次のパラメータを受け入れます
verbose_logging
-- さらに多くの出力を表示するかどうかalerts_repo_path
-- インターフェロン DSL ファイルを含むアラート レポジトリの場所group_sources
-- アラートを送信する人のグループを返せるソースのリストhost_sources
-- インベントリ システムを読み取り、監視するホストのリストを返すソースのリストdestinations
-- アラート プロバイダのリスト。メトリクスを監視し、アラート dsl ファイルで指定されたとおりにアラートを送信できます詳細については、このレポジトリの config.example.yaml ファイルを参照してください。
このレポジトリは 4 種類のオブジェクトについて認識しています
ホスト ソース
Datadog
現時点では Datadog が唯一のアラート宛先です。Datadog のアラート構文ルールは次のとおりです。 http://docs.datadoghq.com/api/#alerts Datadog メトリクス構文を説明するチャートを以下に示します (asciiflow で生成)
+---------+ alert condition +-------------------------------------------------+
| |
| +-----+ metric to alert on |
| | |
| | tags to slice the metric by +------+ |
| | | |
v v v v
|----------| |-------------------------||--------------------------| |---|
max(last_5m):avg:haproxy_count_by_status{role:<%= role %>,status:up} by {host} > 0
^ ^ ^ ^
| | | |
| | +----|------------------------------+ |
| | | math on the metric over all tags | |
| | |-----------------------------------| +------------------------------------+
| | | * max, min, avg, sum | |trigger a separate alert for each |
| + +-----------------------------------+ |different value of these tags the |
| +----|----------------------------------------------+ |entire `by {}` clause can be ommited|
| | the interval to look at; always starts with last_ | +------------------------------------+
| |---------------------------------------------------|
| | * 5m, 10m, 15m, 30m |
| | * 1h, 2h, 4h |
+ +---------------------------------------------------+
+-------------------------------------------------------------------------------------------------+
| metric condition, can be one of: |
|-------------------------------------------------------------------------------------------------|
| * max: the metric gets this high at least once during the interval |
| * avg: the metric is this on average during the interval |
| * min: the metric is this small at least once during the interval |
| * change: the metric changes this much between a value N minutes ago and now (raw difference). |
| * pct_change: the metric changes this much between a value N minutes ago and now (percentage). |
+-------------------------------------------------------------------------------------------------+
グループ
グループは実際には group_sources によって提供されます。現在、ファイルシステムから YAML ファイルのグループを読み込むグループ ソースが 1 つだけです。ただし、LDAP ベースのものなど、追加のグループ ソースを追加する予定です。