RedmineのOpen/Closeチケット数の推移をMetabaseでグラフ表示する方法

はじめに
---
この記事では、RedmineのOpen/Closeチケット数の推移をMetabaseの機能を使ってグラフ表示する方法を紹介します。（Redmineのpluginで、同様なことが実現できるものもあるようです。）

実行環境
---
この記事は以下の環境で動作確認しています。

|名称|バージョン|
|---|---|
|Metabase|v0.33.2|
|Redmine|3.4.6.stable|

また、Metabaseから、Redmineのデータベース(私の環境の場合はMySQL)を既に参照できている状態であることを前提とします。

結果のイメージ
---
先に結果のイメージを示しますと、下記のようなグラフになります。
上側の緑色の面グラフがopenチケット数、下側の青色の面グラフがcloseチケット数です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265181/0b166fec-cfdb-77ce-3646-90f2b69d9f49.png)

またグラフ上部にある黒い破線は目標値となります。この例では目標値は100です。

手順
---
### 1.対象プロジェクトのOpenチケット数（総チケット数）のグラフ作成 

**1-1.分析したいプロジェクトIDでフィルタをする**
通常、Redmineには複数のプロジェクトが登録されていると思いますので、分析したい対象プロジェクトのプロジェクト番号でフィルタを行います。

下記は、Metabaseのトップページの下部にあるデータから、対象のデータベースを選んだあと、「Issues」を選択した後の画面です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265181/d0533a8a-2ec1-1d82-9e74-73e101e801da.png)

まずは、これにフィルタを設定します。
上記の画面の右上に表示されている「▼フィルタ」と記載のあるアイコンをクリックして、「Project ID」を選択し、フィルタしたいプロジェクトの番号を選択してください。私の今回の例では「２」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265181/80912c79-fc26-7442-b2bb-d30e17158214.png)

これで「Project ID」が「２」だけのチケットの情報が抽出されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265181/dd7c8bcd-d55b-d65f-ddda-c30ae464c63d.png)

**1-2.さらに、親チケット番号でフィルタする。**
次に、私の場合は、ある親チケットに属する子チケットのOpen/Close数の推移を分析したいので、さらに、親チケット番号でフィルタをします。
手順は先ほどと同様です。「▼フィルタ」から「Parent ID」を選択して、フィルタをかけたい親チケットの番号を選択します。私の今回の例の場合は「27」です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265181/f752b795-cc56-8f51-f35e-0ee719d5dc28.png)

これで集計したい対象のチケットだけになりました。

**1-3.「要約」から、チケットの作成日（Created On）で累計チケット数を集計し、グラフにする。**
次に、画面右上の「要約」をクリックすると、「集約方法」というのが表示されますので、集約方法として「行の累積カウント」を選択し、集約キーに「Created On」を選び、「by 日」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265181/c9f71054-4a24-374f-3dc3-9dde138fd5e1.png)

この後、おそらく自動的に折れ線グラフが生成されます。
また、画面の下の方にある表のような形のアイコンをクリックすると、表形式のデータが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265181/d43d46de-1e87-506e-bba1-717c91040a6d.png)

チケットの作成日(Created on)を日ごとに集計し、かつ累計した結果が表になっています。
これで、Openチケット数のグラフは完成です。（厳密に言うと作成日で集計しているので総チケット数のグラフ）

ページの右上の「保存」をクリックして、自由な名前をつけて保存してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265181/abec13e6-5880-4090-481b-3243f3372ad1.png)

「ダッシュボードに追加しますか」と聞かれますが、「今はしない」を選んでおきます。

### 2.対象プロジェクトのCloseチケット数（総チケット数）のグラフ作成
**2-1.先程1の手順でOpenチケット数のグラフを元にCloseチケット数のグラフを作成するため、1で作成したグラフを開く**
1で作ったグラフを変更すれば簡単に作成できますので、まず１で作ったグラフを開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265181/7114937a-bf22-2cac-c389-732b597bb028.png)

**2-2.「要約」の対象を「Created On」から「Closed On」に変更します。**
先程の手順と同様に「要約」を選んで「集約キー」を「Closed On」、「by 日」に変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265181/0a395738-5ec5-7b0c-375a-e60c38da9d18.png)

これで見た感じ「Closed On:Day」で集計されたように見えますが、実は余計なのが入っています。

**2-3.「Closed On」が空欄になっているチケットの数をフィルタで除外する。**
この時点では「Closed On」が空欄になっているチケット、つまり、まだOpenになっているチケットの数まで集計しています。
よって、もう一つフィルタを追加して、このチケットを除外します。

これまでの手順と同様に画面右上の「▼フィルタ」から「Closed On」を選択し、フィルタの条件として「空ではない」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265181/e2866aaa-9694-71ac-3da4-767ff9be9fb5.png)

これで、「Closed On」が空欄になっているチケットが除外され、Closeのチケット数が集計されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265181/7078d0a6-d3c5-5387-8d62-6607672b22bb.png)

グラフ表示もこの通りです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265181/a394ec18-1c2f-fb7f-9a8a-1d42512d5840.png)

**2-4.元のOpenチケット数のグラフを上書きしないように別の名前で保存**
グラフが作成できましたので保存を行います。このとき、元のOpenチケット数のグラフを上書きしないように別の名前で保存します。
画面右上の「保存」をクリックすると、下記のような画面が出てきますので、「新しい質問として保存する」を選択して、好きな名前をつけて保存してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265181/db8d6831-51e0-a42e-51ed-b7375c527e51.png)

### 3.ダッシュボードでOpen,Closeの２つのグラフを重ねて表示する
**3.1 Closeチケットの推移のグラフをダッシュボードへ登録**
2-4の手順の続きとなりますが、名前をつけて保存を押すと、下記のような画面が出てきますので、「お願いします！」を選択してダッシュボードへ追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265181/b7aa364c-0c34-ad10-a5ba-5470b04d087b.png)

この後、どのダッシュボードに入れるかなど聞かれますが、自由に設定してください。

下記の通り、ダッシュボードにCloseのグラフが追加されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265181/d8aaebdd-42f2-72fd-28b2-7786a82bbb85.png)

**3.2 Openチケットの推移のグラフを重ねる**
表示されているグラフにマウスを当てると、右上の方に「グラフのような絵に＋と編集と書かれたアイコン」が表示されますので、これをクリックしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265181/74a3feed-c0bf-781f-f07f-743d514be62f.png)

これをクリックすると、これまで作った「質問（グラフ）」が表紙されますので、その中から先程１の手順で作成した「Openチケット数の推移」のグラフを選択してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265181/e47654a0-1270-739d-39de-da556030a209.png)
これで２つのグラフが重ね合わせて表示されます。

**3.3 グラフ名称などを調整する**
表示されているグラフにマウスを当てると、右上の方に「歯車」のアイコンが表示されますので、それをクリックしてください。
下記のような画面が表示され、グラフのタイトルやグラフの種類を変更できます。ここで、グラフを面グラフに変更できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265181/09b840d8-9a71-05b7-cc0a-a42aba388262.png)

「目標値を表示する」をONにすると、目標値を設定できます。

「ラベル」を選択することで、X軸、Y軸のラベル名も編集できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265181/560760e5-e3bc-9d2d-0c18-f00e176851a9.png)

**3.4 ダッシュボード上のサイズを調整する。**
あとは、ダッシュボード上でサイズを調整して完成です。Excel等のグラフと同様に表の右下の方をクリックしながらマウスを動かせばサイズを変更することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265181/0b166fec-cfdb-77ce-3646-90f2b69d9f49.png)

まとめ
---
これでRedmineのOpen/Closeチケットの推移をグラフで表示することができました。
また、担当者（Assigned To ID)でフィルタすれば、担当者別のグラフも作成できると思います。