minato128 blog

minato128の公開メモ帳です。

Awair のログを Mackerel に送ってみた

gyazo.com

  • 目的
    • Life Metrics を一ヶ所に集約して分析することで健康管理に役立てる
      • 例えば、睡眠スコアが高いときと低いときで部屋の空気にどんな相関があるかをすぐに見られるようになる
  • Grafana+InfluxDB or Mackerel
    • 最小構成の月額費用はそこまで変わらない
    • 自分で管理するとバージョンアップとかの手間がかかりそう
    • mackerel metrics retention = 460 days
      • 分析と改善のサイクルを回すのにそこまで昔のログは要らない
        • 数年前とかと比較して眺める楽しさはありそうではある
  • 方法
    • 概要
      • Azure Function (Node.js) の Timer 実行で Awair からデータを取得して結果を Mackerel に送る
    • 流れ
      • Awair GET Devices で device_type と device_id を取得
        • 動的に増える考慮が必要なければこれは最初の1回だけ実行して保存しておけばいい
      • Awair GET Latest AirData で最新の metrics を取得
      • Mackerel Service Metrics API の形式に変換してPOST
  • 注意点
    • Mackerel *1
      • Datadog とは metrics 設計が異なる
      • Datadog metrics は tag で split (grouping) するが、Mackerel は metrics name で split させる
    • Awair
      • Hobbyist Plan だとすぐに Limit を超えてしまう
        • Awair Developer APIs
        • ドキュメントに書いてあるメールに upgrade request を送ったら、ありがたいことにすぐに上げてくれた
      • Too many requests は 429 でなく 200 で返ってくるので、body をみる必要がある

mackerel.io

docs.developer.getawair.com

参考コード

gist.github.com

*1:自分が初めて使ったからで知っている人にとっては注意点ではない

用宗で開発合宿してきた

rei19.hatenablog.com

雑感

  • 場所
    • 東京から新幹線で1時間、JRで数駅なので近い
    • 海が綺麗
    • 町自体が閑静で落ち着く
    • 新鮮な魚介や静岡おでんがある
    • 温泉施設もある
    • ジェラート屋もある
  • 宿
    • 日本色 NIHON IRO | 静岡市用宗 | 古民家一棟貸し ペットも宿泊可
    • 古民家を改装していて趣がある
    • 6人でも十分な広さ
    • 高速インターネット
    • 21時までならいつでもトゥクトゥクで送迎してくれる
    • そんなに安くはない
    • 長時間作業向きのソファーがない
      • これが地味に辛かった
      • 次回は気にした方がいいかも
    • カーテンが簡易的で朝眩しくて目が覚める
      • 早起きできたのでよかったとも言える

主にやったこと

  • Withings と Awair のログを一ヶ所で分析できるようにする
    • Grafana 立てようかと思ったけど結局 Mackerel にした
    • 今回 C# 使わない縛りをしてたので Node.js で書いた
  • owncloud を立てて S3 を連携して使い心地を確かめる
    • バージョンアップが面倒なので docker で SSLの設定して何度でも再構築できるように
  • Go 入門
    • 何かツールを考えて作ろうとしたがタイムオーバーになった
  • 鬼滅の刃のプレゼン