share facebook facebook twitter menu hatena pocket slack

2017.04.04 TUE

Datadog (dogコマンド) metric編

WRITTEN BY 大住 孝之

Datadog公式のツール dog 使用方法まとめ metric 編です。

目次
* metric Modes
post
  —– positional arguments:
  —– optional arguments:
  —– 実行例
   —– 単純実行
   —– 1分以下の間隔で投稿
    —– 20秒間隔
    —– 5秒間隔
    —– 登録データ確認(pointlist)
    —– 小数点(decimal)
   —– hostオプション
    —– no_hostオプション
   —– deviceオプション
   —– typeオプション
   —– 実行時エラー
* metric編まとめ

metric Modes

ヘルプに Post metrics. とある通り、現在時刻でのメトリクス投稿が行えます。 現時点では参照系は未対応です。

サブコマンド 説明
post メトリクス投稿

post

usage: dog metric post [-h] [--host HOST] [--no_host] [--device DEVICE]
                       [--tags TAGS] [--localhostname] [--type TYPE]
                       name value

positional arguments:

引数 説明
name メトリクス名
value メトリクス値

optional arguments:

ロングオプション 説明
–host 関連ホスト名(デフォルトはローカルホスト名)
–no_host 関連ホスト無し(–hostオプションは無視される)
–device 関連デバイス名
–tags タグのリスト(カンマ区切り)
–localhostname 非推奨オプション(–hostオプションがない場合のデフォルトの挙動)
–type メトリクスのタイプ指定。gauge(32bit float) or counter(64bit integer)

実行例

単純実行

name,value のみで投稿します。 成功時のレスポンスは特にありません。

$ dog metric post TestMetrics 1
$

hostオプションを使用していないため、実行 hostname に紐付けられます。

1分以下の間隔で投稿

グラフ上最短の丸め間隔である 20秒 を基準に挙動を確認してみます。

20秒間隔

投稿毎の値が表示できます。

5秒間隔

丸められます。

登録データ確認(pointlist)

登録されているデータ自体も20秒間隔となるようです。

小数点(decimal)

まず必要になることはなさそうですが、precision(有効桁) = 9 でしょうか。
以下のような値を連続で投稿してみます。

0.1
0.12
0.123
0.1234
0.12345
0.123456
0.1234567
0.12345678
0.123456789
0.12345678910
0.1234567891011
0.123456789101112
0.12345678910111213
0.1234567891011121314
0.123456789101112131415
0.12345678910111213141516
0.1234567891011121314151617
0.123456789101112131415161718
0.12345678910111213141516171819
0.1234567891011121314151617181920

hostオプション
dog metric post --host hogehost TestMetrics 5

指定した hostname で投稿できます。

no_hostオプション
# host有
dog metric post --host hogehost --no_host TestMetrics 10
# host無
dog metric post --no_host TestMetrics 3

host:N/A となります。

deviceオプション

DatadogAgent を導入するとディスク関連のメトリクスが device タグとして登録されます。 その device タグに関連させるオプションと思われます。
存在しない device タグでも投稿はできるので、 device タグを付与するオプション と言い換えて良さそうです。

  • 存在する device タグ

# 存在しないdeviceタグ
$ dog metric post --device sda1 TestMetrics 5
# 存在するdeviceタグ
$ dog metric post --device tmpfs TestMetrics 4

tagオプション

任意のタグ名とタグに関連付けが行えます。

$ dog metric post --tags tag1,tag2:2,hoge:fuga TestMetrics 15
$ dog metric post --tags tag1,tag2:3,hoge:hoge TestMetrics 7

localhostnameオプション

helpから削除してもらいたいオプションです。 非推奨なので、 WARNING が出力されます。

$ dog metric post --localhostname TestMetrics 1
WARNING: `--localhostname` command line flag is deprecated, made default when no `--host` is specified. See the `--host` option for more information.

動作としては、 –host オプションを使用しない(デフォルト)で実行した結果と同様、実行 hostname に紐付けられます。

typeオプション

違いがわかりませんでした。
type が任意の値でも登録されること、APIでサポートしているのは guage のみという記載があることから、実際は guage で登録されているのかもしれません。

HTTP API Submission
For the API all metrics are submitted the same way, with the type specified as a parameter.
Gauge Stored in Web App as GAUGE type

# gauge 整数
$ dog metric post --type gauge TestMetrics 1
# gauge 少数
$ dog metric post --type gauge TestMetrics 2.123
# counter 整数
$ dog metric post --type counter TestMetrics 3
# counter 少数
$ dog metric post --type counter TestMetrics 4.456
# type オプション無し
$ dog metric post TestMetrics 5
$ dog metric post TestMetrics 6.789
# type に適当な値指定
$ dog metric post --type xxxxx TestMetrics 7

  • gauge と counter を同時に投稿した結果

実行時エラー

value に数値以外を指定するとエラーが返ります。

$ dog metric post TestMetrics XXXXX
usage: dog metric post [-h] [--host HOST] [--no_host] [--device DEVICE]
                       [--tags TAGS] [--localhostname] [--type TYPE]
                       name value
dog metric post: error: argument value: invalid float value: 'XXXXX'

metric編まとめ

カスタムメトリクスを投稿する際、APIを使用するより簡単に扱えると思います。
今回 value 不正以外のエラーを発生させることが出来ませんでしたが、タグやタイプを間違えていても基本的には受け付けてしまうようです。

元記事はこちら

Datadog (dogコマンド) metric編

大住 孝之

構築運用担当。 個性的な面々の中で無個性という個性を打ち出していこうと画策中。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。