Datadog で空気の状態を監視する
これは Datadog Advent Calendar 2019 14日目の記事です。
まとめ
- Custom Metrics で Awair metrics を送って、空気の状態の監視ができるようになった
- Awair とは?
- 温度、湿度、CO2などの空気の計測機器です
- Awair で室内空気モニタリング - minato128 blog
- Awair とは?
- 過去ログを楽しく分析できるようになった
- Awair は最新の状態を見るのは簡単ですが、過去のログを見るのが難しい
- Datadog の View は高機能かつ使い慣れているのでストレスがない
- Agent を入れなくてもいいので維持コストがゼロ
- 他の SaaS だと Custom metrics だけでも1ホスト分課金されることがある
- Datadog は今のところ(2019-12-14)課金が発生しない
- 他の SaaS だと Custom metrics だけでも1ホスト分課金されることがある
Custom Metrics とは
多すぎてすべては説明しきれませんが、このような特徴があります。
- 自由に metric name や type を設計し、tag で簡単に dimension を表現できる
- 標準 metrics と同様に15ヶ月参照可能
- Datadog のリッチな View で同一時系列で何が起きているのかすぐにわかる
- Datadog の Core 機能と言っても過言ではないのでは
- 送信方法
metrics 送信の仕組み
これらをひとつの Azure Function で数分間隔で定期実行しているだけです。
- Awair Web API から metrics を取得
- 詳しくはこちらに書きました
- metrics を sample のように加工
- Datadog Web API で Datadog に送る
- https://docs.datadoghq.com/api/?lang=bash#post-timeseries-points
- endpoint :
https://api.datadoghq.com/api/v1/series?api_key=<YOUR_API_KEY>
payload sample
{ "series" : [ {"metric":"awair.co2", "points":[[1576219800, 100], ...], "tags":["deviceid:test"]}, ... ] }
Note: The timestamp should be in seconds, current. The numeric value format should be a 32bit float gauge-type value. Current is defined as not more than 10 minutes in the future or more than 1 hour in the past.
ちなみに「timestamp として有効なのは、1時間前から10分後まで」と定義されているので、過去ログをまとめて取り込むことはできません。
ダッシュボードの様子
1 Hour
1 Day
1 Week
1 Month