One IT Thing

IT業界を楽しむ為の学習系雑記

GitLab mattermost

Mattermostのチャンネル発言数をMetabaseでビジュアル化する

投稿日:2019年9月3日 更新日:

オンプレGitLabでMattermostを使えるようにした後の活用法として、「ナレッジチャンネル」を運営してチームの知識を共有する営みをしている開発現場も多いと思います。

ミーティングではなくチャットで共有することで知識が文章として残り、メンバーが流動的になってもノウハウの継承が自然と出来るのもメリットですよね。

ただ、漫然と知識を共有していくだけでは貢献度の高い開発者が報われず、いつか「知ってることを共有しよう」という発想が無くなってしまったら営みの意義が失われて勿体ないです。

貢献度を目に見える形で数値化して、知識共有することにメリットがあるように配慮することでモチベーション維持、更なるアップに繋がるかも知れません。

Mattermostの活用に迷ったら、ナレッジチャンネル運営と見える化はその後の活用に繋がる良い入門になってくれます。

構築環境

Mattermost、PostgreSQLへのリモート接続、Metabaseのインストールを以下の記事で行ってある状態です。

プライベートや社内LAN内で使えるMattermostを構築。

GitLabをOmnibusインストールするとPostgreSQLがリモートから接続出来ないので外部からJDBC接続出来るようにする。

Metabaseを使ってPostgreSQLをBI。

BIする対象テーブル

mattermost_production内のテーブルをjailerで見てみると、

  • postsテーブル(全投稿メッセージを保存)
  • channelsテーブル(運営中のチャットチャンネルを保存)
  • usersテーブル(Mattermostユーザを保存)

に入っているデータで目的が達成できそうです。

Metabaseに発言数の集計を出すSQLを設定

環境は出来ていて対象のテーブルも分かったで、後はmattermost_productionデータベースに接続されたMetabaseでSQLを設定するだけです。

jailerのSQL ConsoleでSQLを動確しながら書いていきます。本来は特定チャンネルを対象に集計した方がいいですが、今回はデフォルトチャンネルである「タウンスクエア」に対して発言数が多いユーザを出します。

SELECT
    u.username,
    COUNT(*)
FROM
    posts AS p,
    users AS u,
    channels AS c
WHERE
    p.userid = u.id AND
    c.id = p.channelid AND
    c.name = 'town-square' AND
    TO_TIMESTAMP(p.createat / 1000) BETWEEN DATE_TRUNC('month', NOW()) AND DATE_TRUNC('month', NOW()) + '1 month' + '-1 Day'
GROUP BY
    u.username
ORDER BY
    COUNT DESC;

Metabaseでの実行結果。
(記事用に作ったMattermostなので、2ユーザしか居なくて発言はテストです、孤独感満載 orz )

開発メンバーが多くて交流が多いMattermostなら、こんな太い棒じゃなくて有用なデータが取れます。

同じ手法で活用できるデータを見つけ、開発プロジェクト活動を見える化していくとGitLab、Mattermost自体が提供してくれる機能以上に活用出来てくるようになります。

チャンネル運用も一工夫が必要

一行のメッセージを大量に送信しているユーザが居たらそのユーザが優位になってしまいます。普通のチャットをしている開発者が上位に来るのは趣旨と異なります。

「ナレッジ共有チャンネルはブログ記事のように1メッセージで書く」というコンセンサスをチーム内で取ればSQL結果との整合性が取れるようになります。

貢献した人には何かしらのご褒美が有れば、単調な開発仕事にもゲーミング要素が出てきて楽しくなりますし、Metabaseの運用は若手チームメンバーのSQL力アップにも繋がります。

留意点を挙げるなら、数値が低いメンバーはどうのこうの、というネガティブな雰囲気が生まれてしまうと取り組みがマイナスになってしまうので気を付けたい、といったところでしょうか。

他にもGitLabの残issueを視覚化する等、可視化すると効果があるデータがGitLabには沢山あるので、一つの事象がピックアップされ過ぎないように運営したいですね。

オンプレでGitLabを入れたら次はMetabaseで可視化。やってみると何気にマネジメント力アップにも繋がるかも知れません。

-GitLab, mattermost
-, ,

執筆者:

関連記事

Nodeアプリが依存するnpmモジュールライセンスをlicense-checker & Jenkinsで自動チェック(1)

目次1 目的2 使用するnpmモジュール3 ライセンスを表示してみる3.1 サマリで出す3.2 CSVファイルで出す4 まとめ 目的 ionicやNode.jsアプリが依存するライブラリにライセンス違 …

GitLab12.2.1をCentOS7.6にインストール

会社のコンプライアンス的にgithubが使えない個人開発しているプログラムを完全にプライベートで管理したい GitLabを家庭や社内でオンプレで使えばこれらのニーズを満たすことが出来ます。 留意点とし …

GitLabのIPを変更したらMattermostにログイン出来なくなった話「the redirect uri included is not valid. 」

目次1 発端2 環境3 GitLabのIP変更設定を開始4 そしてハマる5 解決6 結局どこに設定が保存されていたか7 まとめ 発端 先日オフィスの引っ越しが有りネットワークセグメントが変わる為、Gi …

GitLab12.1からMySQLを捨ててPostgreSQLに一本化するらしい

オンプレSCMの旗手、GitLabから掲題のニュースが有りました。 2017年から公式発表があったことですが、GitLab 12.1からMySQLのサポートを止めるとのことです。  GitL …

GitLab Omunibus版のPostgreSQLに普通のpsqlコマンドで接続

GitLab Omunibus版でインストールされるビルトインPostgreSQLは、 TCP:5432ではなくホスト内でしか接続出来ないUnix Domain Socketで待機ローカルホストからO …


shingo nakanishi。東京で消耗中の職歴20年越え中年ITエンジニアです。「生涯現役プログラマを楽しむ」ことができる働き方探しをライフワークにしています。

19歳(1996年)から書き始めた個人日記が5,000日を超え、残りの人生は発信をして行きたいと思い、令和元日からこのサイトを開始しました。勉強と試行錯誤をしながら、自分が経験したIT関連情報を投稿しています。