Chihuahua
Chihuahua は Datadog monitors を管理するツールです.
Caution
- Datadog monitors を YAML DSL で管理してみる試みです
- Monitor Name や Monitor Tags で絞り込んで任意の Monitor のみ抽出して管理出来る筈です
- 基本的には codenize-tools/barkdog を使いましょう
Installation
Add this line to your application's Gemfile:
gem 'chihuahua'
And then execute:
$ bundle
Or install it yourself as:
$ gem install chihuahua
Usage
export DATADOG_API_KEY=...
export DATADOG_APP_KEY=...
bundle exec chihuahua init
bundle exec chihuahua export --project=your_project_name --tags=project:foo,stage:production --dry-run
bundle exec chihuahua export --project=your_project_name --tags=project:foo,stage:production
vi ./monitors/your_project_name/monitors.yml
bundle exec chihuahua apply --project=your_project_name --dry-run
bundle exec chihuahua apply --project=your_project_name
Help
$ bundle exec chihuahua --help
Commands:
chihuahua apply # Monitor 設定を apply する
chihuahua export # Monitor 設定を export する
chihuahua help [COMMAND] # Describe available commands or one specific command
chihuahua init # Project の Root ディレクトリ(./monitors)を作成する.
chihuahua version # version 情報を出力.
Chihuahua example
書き出し
#
# 初回の書き出し
#
$ bundle exec chihuahua export --project=foo --tags=host:vagrant-ubuntu-trusty-64
Export...
4 monitors output done.
$ tree -a monitors/
monitors/
└── foo
├── .filter.yml
└── monitors.yml
1 directory, 2 files
#
# 2 回目以降、絞込の条件(--name や --tags に変更が無い場合)
#
$ bundle exec chihuahua export --project=foo
新規作成
- YAML 定義を ./monitors/your_project_name/monitors.yml に追記
- query: avg(last_1m):avg:system.load.5{host:vagrant-ubuntu-trusty-64} > 1
message: |-
CPU load is very high on {{host.name}}
@slack-datadog-notification
name: Test 5 [{{#is_alert}}CRITICAL{{/is_alert}}{{#is_warning}}WARNING{{/is_warning}}]
CPU load is very high on {{host.name}}
type: metric alert
options:
thresholds:
critical: 1.0
warning: 0.8
詳細は http://docs.datadoghq.com/ja/api/?lang=ruby#monitor-create を御確認ください.
- dry-run
$ bundle exec chihuahua apply --project=foo --dry-run
Apply...(dry-run)
Check add line.
---
query: avg(last_1m):avg:system.load.5{host:vagrant-ubuntu-trusty-64} > 1
message: |-
CPU load is very high on {{host.name}}
@slack-datadog-notification
name: Test 5 [{{#is_alert}}CRITICAL{{/is_alert}}{{#is_warning}}WARNING{{/is_warning}}]
CPU load is very high on {{host.name}}
type: metric alert
options:
thresholds:
critical: 1.0
warning: 0.8
- apply
$ bundle exec chihuahua apply --project=foo
Apply...
Add line.
...
... Latest Monitors List ...
...
done.
更新
- thresholds を追記
- tags: []
query: avg(last_1m):avg:system.load.5{host:vagrant-ubuntu-trusty-64} > 1
message: |-
CPU load is very high on {{host.name}}
@slack-datadog-notification
id: 12345678
name: Test3 [{{#is_alert}}CRITICAL{{/is_alert}}{{#is_warning}}WARNING{{/is_warning}}]
CPU load is very high on {{host.name}}
type: metric alert
options:
notify_audit: false
locked: false
silenced: {}
new_host_delay: 300
require_full_window: true
notify_no_data: false
thresholds:
critical: 1.0
warning: 0.8
詳細は http://docs.datadoghq.com/ja/api/?lang=ruby#monitor-edit を御確認ください.
- dry-run
$ bundle exec chihuahua apply --project=foo --dry-run
Apply...(dry-run)
Check update line.
---
tags: []
query: avg(last_1m):avg:system.load.5{host:vagrant-ubuntu-trusty-64} > 1
message: |-
CPU load is very high on {{host.name}}
@slack-datadog-notification
id: 12345678
name: Test3 [{{#is_alert}}CRITICAL{{/is_alert}}{{#is_warning}}WARNING{{/is_warning}}]
CPU load is very high on {{host.name}}
type: metric alert
options:
notify_audit: false
locked: false
silenced: {}
new_host_delay: 300
require_full_window: true
notify_no_data: false
+ thresholds:
+ critical: 1.0
+ warning: 0.8
- apply
$ bundle exec chihuahua apply --project=foo
Apply...
Update line.
...
... Latest Monitors List ...
...
done.