タイトルだけ見ると何のこっちゃという感じですが、前提としてはこんな感じです。
- Mackerelチームではサービスに関するtweetを定期的に観測している
mackerel
というクエリは鯖
に関するものとmackerel.io
に関するものが混じるので、そのまま流していると困るmackerel.io
に関するものだけを機械学習でフィルタリングするsaba_disambiguator
というツールを作っていた
今回はこのツールのアップデートに関する話です。
apexからAWS SAMへ
リリースした当初はAWS公式のcli経由でのdeployツールは(確か)存在しておらず、apexを使っていました。
便利に使わせてもらっていたのですが、今年の夏にNo longer maintained
となってしまっており、AWS SAMに移行しました。
AWS公式である安心感やCloudFormationっぽい形で必要なIAMやCloudWatch Eventも一緒に管理できてよいですね。
TweetをBigQueryに転送できるように
Slackでサービスに関する言及が流れてくるのはよいのですが、使っているうちに例えばこんな欲が出てきます。
- サービスへの言及数が最近多い気がする。先月と比べるとどうなんだろう
- この機能要望多い気がするけど、定量的に見るとどうなんだろう
- 今月よく言及されていたBlogのリストをピックアップしたいけど、Slackの履歴を一月分遡るのダルいな...
定期的に手動で集計するのは手間なので、よしなに分析できるようにBigQueryに転送する機能を追加しました。
BigQueryに送っておくと、例えばこういったことがData Studioで分析 / 可視化できます。
Tweetの一覧が簡単に遡れます。meetup開催直後の期間に絞ったり、ユーザーを絞ったりすることも簡単です。Data Studioは画像のURLを書いておくと画像も表示できるので、アイコンも表示されて便利ですね。
時系列で言及数の推移を見ることができます。11/6が特に多いですが、ダッシュボードで調べたところ、プレスリリースが出た日でした。
どういうブログに関しての言及数が多いんだろうというのもすぐ分かります。
dependabotの導入
利用しているライブラリのアップデートは定期的にやっていきたいですね。dependabotが便利なので、導入しました。それをやるためにGo Modulesもちゃんと使うようにしました。
PR: このツールのアップデートは業務時間を使って行なわれました
saba_disambiguatorのようなちょっとしたNLPツール、サーバー監視を支えるための機械学習を使ったロール内異常検知などを開発しています。ご応募お待ちしております。