inokappa / mchihuahua

Datadog monitors を YAML DSL で管理してみる試みです

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

mchihuahua

mchihuahua

mchihuahua は Datadog monitors を管理するツールです.

Caution

  • Datadog monitors を YAML DSL で管理してみる試みです
  • Monitor Name や Monitor Tags で絞り込んで任意の Monitor のみ抽出して管理出来る筈です
  • 基本的には codenize-tools/barkdogTerraform Datadog Provider を使いましょう

Installation

For MacOS X

  1. こちらからダウンロードする
  2. ダウンロードしたファイルを解凍する
  3. 解凍したファイルをパスが通ったディレクトリに置く

For Linux

  1. こちらからダウンロードする
  2. ダウンロードしたファイルを解凍する
  3. 解凍したファイルをパスが通ったディレクトリに置く

Usage

export DATADOG_API_KEY=...
export DATADOG_APP_KEY=...

mchihuahua init
mchihuahua export --project=your_project_name --tags=project:foo,stage:production --dry_run
mchihuahua export --project=your_project_name --tags=project:foo,stage:production
vi ./monitors/your_project_name/monitors.yml
mchihuahua apply --project=your_project_name --dry_run
mchihuahua apply --project=your_project_name
mchihuahua mute --project=your_project_name --monitor_ids=1234567,1234568 --dry_run
mchihuahua mute --project=your_project_name --monitor_ids=1234567,1234568
mchihuahua unmute --project=your_project_name --monitor_ids=1234567,1234568 --dry_run
mchihuahua unmute --project=your_project_name --monitor_ids=1234567,1234568

Help

bash-3.2$ mchihuahua --help
Mchihuahua - Datadog monitors management tool
commands:
    apply   - Monitor 設定を apply する.
    export  - Monitor 設定を export する.
    init    - Project の Root ディレクトリ(./monitors)を作成する.
    mute    - Project の監視対象の通知を mute する.
    unmute  - Project の監視対象の通知を unmute する.
    version - show version
Invoke `Mchihuahua COMMAND -h' for details.

mchihuahua example

export 書き出し

#
# 初回の書き出し
#
$ mchihuahua export --project=foo --tags=host:vagrant-ubuntu-trusty-64

apply 新規作成

  • 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
$ mchihuahua apply --project=foo --dry_run
  • apply
$ mchihuahua apply --project=foo --dry_run

apply 更新

  • 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
$ mchihuahua apply --project=foo --dry_run
  • apply
$ mchihuahua apply --project=foo

mute 通知停止

  • dry_run
$ mchihuahua mute --project=your_project_name --monitor_ids=1234567,1234568 --dry_run
  • apply
$ mchihuahua mute --project=your_project_name --monitor_ids=1234567,1234568

unmute 通知停止の解除

  • dry_run
$ mchihuahua unmute --project=your_project_name --monitor_ids=1234567,1234568 --dry_run
  • apply
$ mchihuahua unmute --project=your_project_name --monitor_ids=1234567,1234568

About

Datadog monitors を YAML DSL で管理してみる試みです


Languages

Language:Ruby 100.0%