LoginSignup
13
8

More than 5 years have passed since last update.

はじめてのdatadog

Posted at

https://www.datadoghq.com/ は、非常に柔軟なモニタリングサービスです。全体傾向を見ることも、タグを使って詳細な分析を行うこともできるのが大きなメリットだと思います。

本記事では、 datadogのアカウントはあるけれど自分でデータを登録したことはない人 を対象に、基本的な用語の解説と curl を使ったメトリクス送信方法を説明します。

基本用語

Metrics

サーバなどから送られてくる情報。 Key, Value, Tag の3種類のデータがペアになっています。

field 型の制限
Key ドット区切り / 大文字小文字を区別しない / 記号は _ のみ可
Value type によって 32bit float / 64bit integer になる
Tag 文字列の配列

Event

GitHub等の外部サービスとDataDogを連携させると、Eventでコミット履歴などが記録されていく。自分でAPI経由でイベント登録することも可能。

(デプロイした時刻をイベントで記録しておくと、後から分析に使いやすいのでおすすめ)

本記事では省略します。

Monitor

監視設定。Metricsの値を監視し、しきい値を超えた/下回った場合にメールやSlackに通知を飛ばす。一定時間後に復旧していない場合にリマインダ的に通知を繰り返す設定もある(便利)。

shellからメトリクスを送ってみる

シンプルな例

#!/bin/sh

currenttime=$(date +%s)
curl  -X POST -H "Content-type: application/json" \
-d "{ \"series\" :
         [{\"metric\":\"test.metric\",
          \"points\":[[$currenttime, 20]],
          \"type\":\"gauge\",
          \"tags\":[\"environment:test\"]}
        ]
    }" \
'https://app.datadoghq.com/api/v1/series?api_key=<your datadog key>'
  • メトリクス名: test.metric
  • 現在時刻のメトリクス値は 20
  • メトリクスの種別は gauge (→値は 32bit float になる)
  • environment というタグ名の値が test

複数のメトリクスを同時に送る

#!/bin/sh

currenttime=$(date +%s)
curl  -X POST -H "Content-type: application/json" \
-d "{ \"series\" :
         [{\"metric\":\"test.metric\",
          \"points\":[[$currenttime, 20]],
          \"type\":\"gauge\",
          \"tags\":[\"environment:test\"]},
         {\"metric\":\"test.metric2\",
          \"points\":[[$currenttime, 20]],
          \"type\":\"gauge\",
          \"tags\":[\"environment:test\", \"hostname:example.com\"]}
        ]
    }" \
'https://app.datadoghq.com/api/v1/series?api_key=<your datadog key>'
  • series には配列を渡すことができます
  • tags にも配列を渡すことができ、 "tag_name:tag_value" の形式で、複数のタグを同時に指定可能です

gauge と counter の違い

counter は、「レート(一定時間あたりの件数)を扱うためのデータ型」と API Reference に記載があります。つまり、「アクセス件数」「処理件数」を counter 型で記録しておき、「1分あたりの処理件数」を確認することができます。 (なので、記録されるデータ型も整数 64bit integer で問題無い、ということになります)

対して gauge は、整数では表現できない「処理時間」などの記録に適しています。多くの場合は gauge を利用していれば問題無いと思います。 (なので、typeのデフォルト値はgaugeなんだと思う)

参考

  • http://docs.datadoghq.com/ja/api/
    • 上部メニューの2段目に言語を選ぶ欄があります。APIのデータ構造を見やすい Shell を選んで一読しておくのがおすすめです。
13
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
8