読者です 読者をやめる 読者になる 読者になる

vague memory

うろ覚えを無くしていこうともがき苦しむ人の備忘録

Datadog (dogコマンド) metric編

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

f:id:htnosm:20170317233257p:plain


目次


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
$

f:id:htnosm:20170317233258p:plain

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

f:id:htnosm:20170317233302p:plain

1分以下の間隔で投稿

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

20秒間隔

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

f:id:htnosm:20170317233259p:plain

5秒間隔

丸められます。

f:id:htnosm:20170317233300p:plain

登録データ確認(pointlist)

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

f:id:htnosm:20170317233301p:plain

小数点(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

f:id:htnosm:20170317233303p:plain f:id:htnosm:20170317233304p:plain

hostオプション

dog metric post --host hogehost TestMetrics 5

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

f:id:htnosm:20170317233305p:plain

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

host:N/A となります。

f:id:htnosm:20170317233306p:plain

deviceオプション

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

  • 存在する device タグ

f:id:htnosm:20170317233307p:plain

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

f:id:htnosm:20170317234608p:plain

tagオプション

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

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

f:id:htnosm:20170317233309p:plain

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 に紐付けられます。

f:id:htnosm:20170317233310p:plain

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

f:id:htnosm:20170317233311p:plain

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

f:id:htnosm:20170317233312p:plain

実行時エラー

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 不正以外のエラーを発生させることが出来ませんでしたが、タグやタイプを間違えていても基本的には受け付けてしまうようです。