LoginSignup
2
0

More than 1 year has passed since last update.

気になるあの上司は何時まで仕事をしているの?調査しよう。 Part III: データ分析編 (AWS CloudWatch/スプレッドシート)

Posted at

注意

この記事は Slack の在籍状況を DB 等に保存し、そこから勤務時間帯を分析するという企画です。
Slack では 1 つのアカウントで複数のワークスペースを管理することができるため、オンライン状態でも趣味のコミュニティにいた、なんてこともあります。
決して 「Slack がオンライン = 仕事している」ということではない ので、あくまで参考程度にお願いします。

目次

概要

今回は API を定期実行により蓄積されたログから、ユーザの勤務時間帯を分析するセクションとなります。

前回に引き続き AWS CloudWatch を使用し、分析にはスプレッドシートを使用します。

※この作業をするにあたり、前回作成した CloudWatch の定期実行イベントを数日動作させてログを蓄積させておくことをおすすめします。

前提条件

  • AWS アカウントを持っている
  • Google アカウントを持っている

手順

CloudWatch のログを集計・出力する

CloudWatch の Log insights でログを整形して CSV に出力します。

AWS コンソールから CloudWatch へ進み、 Logs -> Logs insights と進みます。

Select log group(s) のプルダウンから /aws/lambda/slack-users-getPresence を選択します。

クエリは以下のように入力します。

fields time, presence
| filter @message like /^\{/
| filter presence = 'active'
| sort @timestamp desc

期間は直近 3 日間(2021/07/28 - 2021/07/30)とします。

Select log group(s) の横に期間を選ぶ入力欄があるのでクリックし、 Absolute を選択して該当するカレンダーの日付を集計開始日・終了日の順にクリックします。

Run query をクリックするとクエリが実行され、下に結果が表示されます。

Export result(s) -> Download table (CSV) の順にクリックして CSV を出力します。

出力された CSV を見てみると、先頭 10 行は以下のようになっていました。

logs-insights-results.csv
time,presence
2021-07-30 20:15,active
2021-07-30 20:14,active
2021-07-30 20:13,active
2021-07-30 20:12,active
2021-07-30 20:11,active
2021-07-30 20:10,active
2021-07-30 20:09,active
2021-07-30 20:08,active
2021-07-30 20:07,active
...

スプレッドシートにデータを取り込み、ヒートマップのようなものを作成する

先ほど出力した CSV をスプレッドシートに取り込みます。シート名は logs-insights-results としています。

logs_spreadsheet.png

いい感じにデータを整えます。日付と時分を分離し、 10 分ごとに区切りました。

logs_spreadsheet_cal.png

集計用のシートを用意し、縦軸に日付、横軸に時間(10 分ごと)を取り、時間帯ごとに色分けをした上で、 active な時間帯が 10 分のうち何分あるかをカウントし、多いほど色が濃くなるように表示してみました。

syukei.png

なお、色分けは以下の通りです。

  • 5:00 - 9:59: 定時前(想定)
  • 10:00 - 18:59: 所定の勤務時間帯
  • 19:00 - 21:59: 残業時間
  • (22:00 - 翌 4:59: 深夜残業的な)

この表を見る限りでは、 1 日の勤務時間は少な目で、朝型の人のようですね。

はい、私です。

まとめ

今回を含め 3 回にわたり Slack オンライン時間帯を分析してきましたがいかがでしたでしょうか。 Slack API や AWS を通して気軽にデータ収集してみようと思っていただけたら幸いです。

2
0
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
2
0