GitLab mattermost

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

投稿日:2019年9月3日

オンプレGitLabで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ユーザしか居なくて発言はテストです、孤独感満載)

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

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

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

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

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

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

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

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

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

-GitLab, mattermost
-, ,

執筆者:

関連記事

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

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

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

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

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

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

社内プライベートMattermostを立ち上げてChatOpsする

社内開発チーム内のコミュニケーション、上手く行っていますか?メンバーが世界各地に散らばってないなくても、近くの席に座っていても、心は意外と離れているかも知れません。 以下でプライベートなGitLab1 …

Omnibus版のGitLab、Mattermostデータベースに外部ホストからJDBCで接続

Omnibusで入れたPostgreSQLは、 Unix Domainソケットで接続待機Peer認証で認証 していて外部からの接続は出来ないことが前回分かりました。One IT Thing  …

 

shingo.nakanishi
 

東京在勤、1977年生まれ、IT職歴2n年、生涯技術者として楽しく生きることを目指しています。デスマに負けず健康第一。