- なんで作ったのか
- Gem
- 詳細は
- 更新情報
— 概要
— Monitors を Export する際の条件を再利用するようにした
— 定義の更新、追加後に最新の定義を Export するようにした
— バグの修正 - 今後の目標
なんで作ったのか
Datadog API Monitors の勉強と将来的には同様の機能を Barkdog に Merge してもらいたくて、自分でも実装を試してみたかった為。
Gem
https://rubygems.org/gems/chihuahua
詳細は
github.com
inokara.hateblo.jp
更新情報
概要
- Monitors を Export する際の条件を再利用するようにした
- 定義の更新、追加後に最新の定義を Export するようにした
- バグの修正
Monitors を Export する際の条件を再利用するようにした
例えば、初回は以下のように Export したとする。
$ bundle exec chihuahua export --project demo --tags=host:vagrant-ubuntu-trusty-64 Export... [{{#is_alert}}CRITICAL{{/is_alert}}{{#is_warning}}WARNING{{/is_warning}}] CPU load is very high on {{host.name}} を export しました. Test4 [{{#is_alert}}CRITICAL{{/is_alert}}{{#is_warning}}WARNING{{/is_warning}}] CPU load is very high on {{host.name}} を export しました. Test3 [{{#is_alert}}CRITICAL{{/is_alert}}{{#is_warning}}WARNING{{/is_warning}}] CPU load is very high on {{host.name}} を export しました. Test 5 [{{#is_alert}}CRITICAL{{/is_alert}}{{#is_warning}}WARNING{{/is_warning}}] CPU load is very high on {{host.name}} を export しました. Test 8 [{{#is_alert}}CRITICAL{{/is_alert}}{{#is_warning}}WARNING{{/is_warning}}] CPU load is very high on {{host.name}} を export しました. Test 9 [{{#is_alert}}CRITICAL{{/is_alert}}{{#is_warning}}WARNING{{/is_warning}}] CPU load is very high on {{host.name}} を export しました. Test 10 [{{#is_alert}}CRITICAL{{/is_alert}}{{#is_warning}}WARNING{{/is_warning}}] CPU load is very high on {{host.name}} を export しました. 7 件の Monitors 定義を出力しました.
二回目以降、同じ条件(--tags=host:vagrant-ubuntu-trusty-64
)で Export したい場合には、以下のように実行出来る。
$ bundle exec chihuahua export --project demo
仕組みとしては、条件も Monitors 定義と同様に YAML ファイルに吐いているだけ。
$ tree -a monitors/demo/ monitors/demo/ ├── .filter.yml └── monitors.yml 0 directories, 2 files
定義の更新、追加後に最新の定義を Export するようにした
会社の Slack チャンネルで宣伝したら、S さんが早速使ってくれて、S さんより貰ったフィードバックを元に実装。
$ bundle exec chihuahua apply --project demo Apply... Update line. Test 10 [{{#is_alert}}CRITICAL{{/is_alert}}{{#is_warning}}WARNING{{/is_warning}}] CPU load is very high on {{host.name}} を apply しました. [{{#is_alert}}CRITICAL{{/is_alert}}{{#is_warning}}WARNING{{/is_warning}}] CPU load is very high on {{host.name}} を export しました. Test4 [{{#is_alert}}CRITICAL{{/is_alert}}{{#is_warning}}WARNING{{/is_warning}}] CPU load is very high on {{host.name}} を export しました. Test3 [{{#is_alert}}CRITICAL{{/is_alert}}{{#is_warning}}WARNING{{/is_warning}}] CPU load is very high on {{host.name}} を export しました. Test 5 [{{#is_alert}}CRITICAL{{/is_alert}}{{#is_warning}}WARNING{{/is_warning}}] CPU load is very high on {{host.name}} を export しました. Test 8 [{{#is_alert}}CRITICAL{{/is_alert}}{{#is_warning}}WARNING{{/is_warning}}] CPU load is very high on {{host.name}} を export しました. Test 9 [{{#is_alert}}CRITICAL{{/is_alert}}{{#is_warning}}WARNING{{/is_warning}}] CPU load is very high on {{host.name}} を export しました. Test 10 [{{#is_alert}}CRITICAL{{/is_alert}}{{#is_warning}}WARNING{{/is_warning}}] CPU load is very high on {{host.name}} を export しました. 7 件の Monitors 定義を出力しました. done.
これで、更新した後、あらためて Export する手間が省けた。
バグの修正
こちらも社内からのフィードバック。
やっぱり、他の人に使って貰うというのはとても参考になるし、本当に有難かった。
今後の目標
- テストを書く
- コードを綺麗にする
- Barkdog にマージして貰えるようにする