Datadog公式のツール dog 使用方法まとめ service_check 編です。
service_check Modes
カスタムステータスチェックの送信を行います。 APIは check_run が該当します。
check
usage: dog service_check check [-h] [--timestamp TIMESTAMP] [--message MESSAGE] [--tags TAGS] check host_name status
positional arguments:
引数 | 説明 |
---|---|
check | 送信メッセージ |
host_name | 関連ホスト名 |
status | ステータス値。整数。(‘0’:OK, ‘1’:WARNING, ‘2’:CRITICAL, ‘3’:UNKNOWN) |
optional arguments:
ロングオプション | 説明 |
---|---|
–timestamp | イベント発生日時。POSIX。(デフォルト現在日時) |
–message | ステータス値の説明 |
–tags | タグを付与 |
実行例
timestamp、message オプションは必須のようです。
message 未指定だとエラーとなり、 timestamp 未指定だと Datadog(WebUI)側で表示されませんでした。
# message 未指定 $ dog service_check check "customService" "$(uname -n)" 0 ERROR: "message" parameter should be a string # message 指定 $ dog service_check check --timestamp $(date +'%s') --message "CustomServiceMessage" "customService" "$(uname -n)" 0 {"status": "ok"}
正常に登録できた場合、[Check Summary]に表示されます。
host_nameに指定した値の host: タグが付与されます。
Monitor(Custom Check) 作成時の指定も可能になります。
tag オプション
任意のタグを付与します。
複数タグはできないようです。 (タブ区切り、スペース区切りを試しましたが、 _ に置換され結合されてしまいました。)
$ dog service_check check --timestamp $(date +'%s') --message "CustomServiceMessage" "customService" --tags "stage:dev" "$(uname -n)" 0 {"status": "ok"}
status 値
status に不正な値を入れるとエラーが返ります。
Traceback (most recent call last): File "/usr/bin/dog", line 9, inload_entry_point('datadog==0.15.0', 'console_scripts', 'dog')() File "/usr/lib/python2.7/site-packages/datadog/dogshell/__init__.py", line 69, in main args.func(args) File "/usr/lib/python2.7/site-packages/datadog/dogshell/service_check.py", line 34, in _check timestamp=args.timestamp, message=args.message, tags=args.tags) File "/usr/lib/python2.7/site-packages/datadog/api/service_checks.py", line 37, in check % ', '.join(str(v) for v in CheckStatus.ALL)) datadog.api.exceptions.ApiError: Invalid status, expected one of: 0, 1, 2, 3
message 値
Monitor に {{check_message}}
を設定することで、 –message で指定した内容を通知に含むことができます。
- Slackへの通知例
0からカスタムチェックを作成するよりは、手軽に実装できると思います。