SlideShare a Scribd company logo
2016年5月14日
松谷 秀久(@mattani)
 分析していない?
◦ せっかくのデータなのにもったいない・・・
 標準機能のサマリは見ている
◦ 充分な分析はできないですね
 CSVでエキスポートしてExcelで分析?
◦ 分析には毎回稼働がかかりますよね
もうちょっと楽できる
方法を紹介します
 リアルタイム分析
◦ 現時点のデータを使って分析
◦ 基本機能の「サマリー」も一種のリアルタイム分析
◦ プラグインを使えば、より柔軟な分析が可能
 ヒストリカル分析
◦ 過去からのデータを使って分析
◦ 外部ツールによって実現
本日のメイントピック
後で詳しく説明します
Redmineでメトリクスを見える化する方法
トラッカー、優先度、担当者、
作成者、バージョン、カテゴ
リ毎のステータスのサマリー
を確認できる
リアルタイムにピボット分析
できます。
あらかじめ分析対象をクエリ
で絞っておくこともできます。
棒グラフで表示も可能。
デモ
Redmineでメトリクスを見える化する方法
 REST APIでデータを取得
◦ REST APIの特徴
◦ スクリプトの紹介
 外部ツールでデータを加工
◦ Gnuplotでグラフを描画
 ユーザへの見せ方
◦ Wikiを活用
 定期的な分析の実行
◦ Jenkinsを活用
管理ー設定ーAPIで
「RESTによるWebサービスを
有効にする」にチェックを
いれておく
URLの後ろに
.json
をつけると、チケット情報を
JSON形式で取得できる
認証用にAPIアクセスキーが必要
 URLとAPIアクセスキーを指定して、チケットの
データに外部プログラムからHTTPでアクセス
 デフォルトでは1回のアクセスで、25件分の
データを取得
(全データ取得にはページネーション制御要)
ちょっとハードル高いかな
 REST APIを意識せずにJSONを取り出すツール
 動作イメージ
API_KEY,URL
インスタンス作成
コールバック登録
全チケット処理実行
REST APIでチケット情報取得
コールバック実行
(1チケット毎)
集計ファイル
(TXT)
出力処理
月別完了日数クラスや
放置日数クラスなどの
処理を登録(複数可)
MetricsTools_for_Redmine
RestIssues
クラス(perl)
ユーザ
カスタマイズ部(perl)
実行sh
REST APIの複雑な制御
を隠ぺい
 ユーザがやること
◦ URLとAPIキーを指定してオブジェクトを作る
◦ 1チケットのJSONを処理する集計関数をコールバックメ
ソッドとしてオブジェクトに登録
 ツールがやってくれること
◦ REST APIで取得したJSONをチケット毎に分解して
コールバックメソッドに渡す
◦ 完了日数、放置日数などの集計メソッドを提供
 拡張性
◦ ユーザカスタマイズ部を作れば拡張可能
 GitHubで公開しました
https://github.com/Mattani/MetricsTools_for_Redmine
 チケット起票から完了までの日数
 チケットがうまく捌けていることの目安になる
◦ チケットが多いと短期間で捌けない
◦ チケットが放置されると平均完了日数も長くなる
◦ 平均完了日数が短い=品質がよい
 REST API(Perlスクリプト)イメージ
 出力される集計ファイルイメージ
# 年月 未完了件数 完了件数 完了日数の和
2016-04 0 34 251
2016-05 0 78 2115
2016-06 0 41 2248
2016-07 0 12 1005
平均完了日数=完了日数の和/完了件数
# ライブラリを読み込む
use RestIssues;
# URLとAPIキーを指定してオブジェクトをインスタンス化
my $issues = RestIssues->new(Url =>$url, Apikey => $apikey);
# チケットを集計するコールバックメソッドを登録
$issues->addAggregateProc(&ClosedInEachMonth::aggregate);
# 全チケットを処理するメソッドを呼び出す
$issues->processAllIssues();
# 集計結果を出力する
&ClosedInEachMonth::putResult($opath,$queryname);
月別完了日数クラス
ClosedInEachMonth
を使用
 放置された日数毎にチケット件数を集計
 どのくらい放置チケットがあるかを知る
◦ 長期間放置されているチケットを見つけて
対応することで、チケットの捌きが早くなる
◦ 平均完了日数も短くなる→品質の向上につながる
 REST API(Perlスクリプト)イメージ
 出力される集計ファイルイメージ
# 集計対象のトラッカーを設定
&UntouchedDays::setTargetTracker(['バグ']);
# 集計除外するステータスを設定
&UntouchedDays::setExcludeStatus(['破棄','終了']);
# チケットを集計するコールバックメソッドを登録
$issues->addAggregateProc(&UntouchedDays::aggregate);
# 全チケットを処理するメソッドを呼び出す
$issues->processAllIssues();
# 集計結果を出力する
&UntouchedDays::putResult($opath,$queryname);
# 放置日数 バグ 問合せ
0 30 0
1 25 0
~中略~
12 50 0
13 32 0
放置日数クラス
UntouchedDays
を使用
放置日数毎の件数が取得できる
 週毎に累積バグ数を集計
 累積バグ数から信頼度成長曲線を求め、
バグ収束率を計算する
 REST API(Perlスクリプト)イメージ
 出力される集計ファイルイメージ
# カウント開始日を設定
&CountEachWeek::setStartDate('2016-4-2');
# チケットを集計するコールバックメソッドを登録
$issues->addAggregateProc(&CountEachWeek::aggregate);
# 全チケットを処理するメソッドを呼び出す
$issues->processAllIssues();
# 集計結果を出力する
&CountEachWeek::putResult($opath,$queryname);
件数(週毎)クラス
CountEachWeek
を使用
# week 未完了 件数 累積件数
2016-04-02 0 3 3
2016-04-09 0 5 8
2016-04-16 0 4 12
2016-04-23 0 21 33
 集計結果をグラフとして見える化する方法の1つ
 FSFのGNUプロジェクトとは無関係
 学術分野でよく使われる
 30年前からあるグラフ描画ソフト
平均完了日数を描画する
gnuplotスクリプト
「ClosedInEachMonth.gp」
で描画
この例では以下のようなことがわかる
・4月はチケット少ないが平均完了日
数が長い
・5月がチケット多いが、4月より平
均完了日数短くなっている
放置日数を描画する
gnuplotスクリプト
「UntouchedDays.gp」
で描画
この例では以下のようなことがわかる。
・問合せは6日以内に回答できている
・20日間放置されたバグが2件ある
信頼度成長曲線を描画する
gnuplotスクリプト
「Gompertz.gp」
で描画
gnuplotにより、
信頼度成長曲線(ゴンペルツ
曲線)にfitさせる
𝒇(𝒙)=𝑲𝒃 𝒆−𝒄𝒙
バグ収束率=
バグ数(実績)
𝑲
× 100(%)
Redmineでメトリクスを見える化する方法
 gnuplotを使用すれば関数fitができる
◦ fitする関数を修正すればロジスティクス曲線
f x =
𝐾
1+𝑏𝑒−𝑐𝑥
にすることも可能
 定期的に描画すれば徐々に収束率が高くなってい
くのがわかる
 Gnuplotでグラフ画像をhttpサーバ配下に出力
 画像へのURLを、RedmineのWikiから外部参照
 Wikiでグラフ表示した下に、
注目すべきチケットにすぐアクセス可能にする
(Redmine_Wiki_Listsの活用)
 縮小表示機能をつかってダッシュボードを作成
 Redmine_Wiki_Extensionプラグインで
ダッシュボードにショートカットアクセス
デモ
 Jenkinsで毎日集計スクリプトを実行
◦ RedmineのRest APIにより取り出される
 gnuplotでグラフ化
 RedmineのWikiが更新される!
 実行するツールをリポジトリから取り出せる
 柔軟なスケジュールを定義できる
 エラー時にメール通知できる
 様々なプラグインにより動作を拡張できる
Perlスクリプト
(Rest API)
集計ファイル
(TXT)
gnuplotWikiから
http参照
画像ファイル
毎日実行
(Jenkins)
Excelで集計
PPTに貼付け
高機能BIツール
 ハンドルネーム
@mattani
 所属
NTTコムウェア(株)
 Redmine歴
◦ Redmine管理者歴 約4年
◦ 第6回勉強会(2014/2)からredmine.tokyo運営スタッフ
◦ ユーザ数120名。プロジェクト数 15~20
◦ タスク管理、課題管理、インシデント管理、検証設備利用申
請管理、工事管理、ヘルプデスク問合せ管理、
脆弱性管理 他
 業務経歴
◦ 開発経験17年、運用経験5年
◦ 現在は、某システムの運用担当(SE)でRedmine管理者
◦ Redmine経験を活用して社内で導入コンサル対応やってます

More Related Content

PPTX
講演1 Redmine導入のアンチパターン
PDF
工数把握のすすめ 〜WorkTimeプラグインの使い方〜
PDF
Redmine にいろいろ埋め込んでみた
PPTX
Redmine + Lychee導入のアンチパターン
PDF
とあるメーカーのRedmine活用事例
PDF
「プロジェクト管理」を超えた Redmine 活用の道のりとこれから
PDF
Redmineの情報を自分好みに見える化した話
PDF
ドメイン駆動設計をゲーム開発に活かす
講演1 Redmine導入のアンチパターン
工数把握のすすめ 〜WorkTimeプラグインの使い方〜
Redmine にいろいろ埋め込んでみた
Redmine + Lychee導入のアンチパターン
とあるメーカーのRedmine活用事例
「プロジェクト管理」を超えた Redmine 活用の道のりとこれから
Redmineの情報を自分好みに見える化した話
ドメイン駆動設計をゲーム開発に活かす

What's hot (20)

PDF
SharePointリストのフォームのカスタマイズを利用したときにハマること
PDF
Redmineチューニングの実際と限界(旧資料) - Redmine performance tuning(old), See Below.
PDF
Redmineをちょっと便利に! プログラミング無しで使ってみるREST API
PDF
IT系エンジニアのためのプレゼンテーション入門
PDF
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PDF
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
PPTX
Kafkaを活用するためのストリーム処理の基本
PDF
SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査
PDF
ユーザーストーリーの分割
PPTX
Docker Tokyo
PPTX
関数型・オブジェクト指向 宗教戦争に疲れたなたに送るGo言語入門
PDF
オンラインゲームの仕組みと工夫
PDF
ある工場のRedmine画面カスタム【View customize plugin 活用例】
PPTX
DAUを評価指標から捨てた会社の話 #tokyowebmining
PDF
世界でいちばんわかりやすいドメイン駆動設計
PDF
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
PPTX
なぜコンピュータを学ばなければならないのか 21世紀の君主論
PPTX
先駆者に学ぶ MLOpsの実際
PDF
RedmineのFAQとアンチパターン集
PDF
挫折しないRedmine
SharePointリストのフォームのカスタマイズを利用したときにハマること
Redmineチューニングの実際と限界(旧資料) - Redmine performance tuning(old), See Below.
Redmineをちょっと便利に! プログラミング無しで使ってみるREST API
IT系エンジニアのためのプレゼンテーション入門
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
Kafkaを活用するためのストリーム処理の基本
SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査
ユーザーストーリーの分割
Docker Tokyo
関数型・オブジェクト指向 宗教戦争に疲れたなたに送るGo言語入門
オンラインゲームの仕組みと工夫
ある工場のRedmine画面カスタム【View customize plugin 活用例】
DAUを評価指標から捨てた会社の話 #tokyowebmining
世界でいちばんわかりやすいドメイン駆動設計
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
なぜコンピュータを学ばなければならないのか 21世紀の君主論
先駆者に学ぶ MLOpsの実際
RedmineのFAQとアンチパターン集
挫折しないRedmine
Ad

Viewers also liked (20)

PPTX
Redmineでメトリクスを見える化する方法
PDF
サバフェス! 2015 Spring LT資料
PPTX
DNS RFCの歩き方(短縮版)
PPTX
Redmineカスタムフィールド表示改善
PPTX
Unofficial Redmine Cookingの紹介
PPTX
閏秒挿入のお知らせ
PDF
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
PDF
30歳過ぎてもエンジニアでいるためにやったこと
PDF
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016
PDF
Redmineのバージョンアップに追従していくための一工夫
PDF
オープンソースCMS「Drupal」の豊富な機能
PDF
Drupal EC用モジュール「Drupal Commerce」でECサイトを構築
PPTX
Redmineサーバ統合事例
PPTX
Zabbix 3.0 の予測機能のための数学的理解
PDF
Drupalによる大規模サイトの設計・実装 において何に気をつけるべきか
PDF
View customize pluginを使いこなす
PDF
Redmine.tokyo 第7回勉強会 ディスカッション
PDF
Redmineと自分のそのころ
PPTX
BIND of Summer (2017-04-13)
PDF
FC SAN Fabric環境におけるパフォーマンストラブルの対処法
Redmineでメトリクスを見える化する方法
サバフェス! 2015 Spring LT資料
DNS RFCの歩き方(短縮版)
Redmineカスタムフィールド表示改善
Unofficial Redmine Cookingの紹介
閏秒挿入のお知らせ
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
30歳過ぎてもエンジニアでいるためにやったこと
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016
Redmineのバージョンアップに追従していくための一工夫
オープンソースCMS「Drupal」の豊富な機能
Drupal EC用モジュール「Drupal Commerce」でECサイトを構築
Redmineサーバ統合事例
Zabbix 3.0 の予測機能のための数学的理解
Drupalによる大規模サイトの設計・実装 において何に気をつけるべきか
View customize pluginを使いこなす
Redmine.tokyo 第7回勉強会 ディスカッション
Redmineと自分のそのころ
BIND of Summer (2017-04-13)
FC SAN Fabric環境におけるパフォーマンストラブルの対処法
Ad

Similar to Redmineでメトリクスを見える化する方法 (15)

PDF
Backlog APIを使ってチケットの進捗を可視化する取組みをやってみる.pdf
PDF
Let's stady Machine Learning with OCSJ
PDF
とある会社での、その後の~Tracによる可視化事例と、その方法について(Shibuya.trac#11)
PDF
ログ解析入門withR InnovationEggNo3
PDF
WebAPIのこれまでとこれから
PDF
【18-B-2】データ分析で始めるサービス改善最初の一歩
PDF
Re:dash Use Cases at iPROS
PDF
【A-4】kintone API、JavaScript APIの実力
PDF
REST API マスターへの道 - Office 365 パワーユーザー向け
PPTX
エンジニアのための勉強会 #3 『RESTful API』
PDF
20211209 lt runtime_field
PDF
Remineを活かしたプロセス支援 - 失敗しないプロセス支援 -
PDF
GAの最重要機能!アドバンスセグメントの使い方
PPTX
Kibana3
PPTX
講演2 実例に基づくRedmine管理者入門 r2
Backlog APIを使ってチケットの進捗を可視化する取組みをやってみる.pdf
Let's stady Machine Learning with OCSJ
とある会社での、その後の~Tracによる可視化事例と、その方法について(Shibuya.trac#11)
ログ解析入門withR InnovationEggNo3
WebAPIのこれまでとこれから
【18-B-2】データ分析で始めるサービス改善最初の一歩
Re:dash Use Cases at iPROS
【A-4】kintone API、JavaScript APIの実力
REST API マスターへの道 - Office 365 パワーユーザー向け
エンジニアのための勉強会 #3 『RESTful API』
20211209 lt runtime_field
Remineを活かしたプロセス支援 - 失敗しないプロセス支援 -
GAの最重要機能!アドバンスセグメントの使い方
Kibana3
講演2 実例に基づくRedmine管理者入門 r2

Redmineでメトリクスを見える化する方法