月末ですね。
Mackerelアドベントカレンダーが明日から始まりますが、この試行は月末に価値があるので自称0日目の記事として書きます。
さて、みなさん、勤怠の記録は毎日つけていますか? 自分はまぁ、言わぬが華です。
Google MapのLogで毎日何時頃にオフィスにIn/Outしているのかを月末にチェックしているような人もいるようです。面倒くさいですね。
さて、Mackerelユーザーの作業用端末には当然 mackarel-agent
が入っています。であるならば、閉じたアラートも取れるようになったMackerelのAPIでその電源On/Off時間(デフォルトで構成される connectivity
アラート!)を得ることができます。これは相当に正確な出退勤時間ではないでしょうか?
前置きが長いですね。試しました。
mkr
コマンドと jq
コマンドの合わせ技です。
$ HOSTID=YOURHOSTID $ mkr alerts -w | jq -r ".[] | select((.type == \"connectivity\") and (.hostId == \"$HOSTID\")) | [(.openedAt|tonumber|.+32400|todate), (.closedAt|tonumber|.+32400|todate)] | @csv" "2018-11-30T09:52:03Z","2018-11-30T09:55:26Z" "2018-11-30T06:31:03Z","2018-11-30T09:45:50Z" "2018-11-30T04:54:03Z","2018-11-30T06:25:14Z" "2018-11-30T01:18:03Z","2018-11-30T04:48:36Z" "2018-11-29T23:30:04Z","2018-11-30T01:12:17Z" "2018-11-29T21:42:03Z","2018-11-29T23:24:23Z" "2018-11-29T20:37:04Z","2018-11-29T21:36:23Z" "2018-11-29T19:59:04Z","2018-11-29T20:31:22Z" "2018-11-29T19:43:04Z","2018-11-29T19:43:23Z" "2018-11-29T19:24:03Z","2018-11-29T19:26:35Z" "2018-11-29T13:21:03Z","2018-11-29T13:28:52Z" "2018-11-29T11:11:03Z","2018-11-29T11:13:08Z" "2018-11-29T10:04:03Z","2018-11-29T10:09:36Z" "2018-11-28T21:02:03Z","2018-11-29T09:46:59Z" "2018-11-28T18:20:03Z","2018-11-28T19:01:07Z"
結果を見てみましょう。
"2018-11-30T09:52:03Z","2018-11-30T09:55:26Z" <- 身に覚えがない "2018-11-30T06:31:03Z","2018-11-30T09:45:50Z" <- Close=出勤時間 "2018-11-30T04:54:03Z","2018-11-30T06:25:14Z" <- なにこれ "2018-11-30T01:18:03Z","2018-11-30T04:48:36Z" <- なにこれ "2018-11-29T23:30:04Z","2018-11-30T01:12:17Z" <- なにこれ "2018-11-29T21:42:03Z","2018-11-29T23:24:23Z" <- なにこれ "2018-11-29T20:37:04Z","2018-11-29T21:36:23Z" <- Open=退勤時間(社内で懇親会していたので少し遅い "2018-11-29T19:59:04Z","2018-11-29T20:31:22Z" <- 階移動時のWi-Fi切れ "2018-11-29T19:43:04Z","2018-11-29T19:43:23Z" <- 接続切れすぎ "2018-11-29T19:24:03Z","2018-11-29T19:26:35Z" <- 接続切れすぎ "2018-11-29T13:21:03Z","2018-11-29T13:28:52Z" <- 覚えてない "2018-11-29T11:11:03Z","2018-11-29T11:13:08Z" <- 覚えてない "2018-11-29T10:04:03Z","2018-11-29T10:09:36Z" <- 覚えてない "2018-11-28T21:02:03Z","2018-11-29T09:46:59Z" <- 綺麗に勉強会終了〜出勤時刻が出てる! "2018-11-28T18:20:03Z","2018-11-28T19:01:07Z" <- Open=退勤、Close=勉強会場でWi-Fi接続、この日にエージェント入れた
うーむ。微妙。思った以上にノイズが多かったです。
とはいえ、自分にとってはとても参考になる確実なデータを得られました。
今後活用する機会がありそうです。
それでは皆さん、Mackerelと一緒によい社会生活を!