kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

例外発生時自動的に作業項目をTFSに登録するPreEmptive

評価環境および、本番環境でアプリケーションエラーがおきたら、.NETの場合イベントビューアのアプリケーションログに例外が記録されることが多いと思います。多くの場合、運用監視ソフトや、タスクスケジューラのタスク発生させるイベントに指定して通報するといったことをやっていると思います。
通知されたアプリケーション例外はどうやって管理しているでしょうか?通報があったら人間が調べてイベントビューアの情報をTFSに登録していると思いますが、人間がやると忘れそうですね。
ちょっと腕に覚えがあればPowerShellなどでTFSのWebサービスを呼び出すツールを作っているかもしれませんね。例外が発生したら自動的に作業項目に登録してくれればいいと思いませんか?それをやってくれるのがPreEmptiveというソフトウェアです。もちろんほかにもいっぱいあるようですが、継続的フィードバックを支援するソフトウェアということでしょう。
Application Analytics
で、TFS 2012ではPreEmptive for TFSのサブセット版がついてきます。サブセット版(community Edition)と正式版の違いはいくつかあります。

  • TFSのインスタンス数が1つ。チームプロジェクト2つまで
  • プロジェクトごと例外検出ルール3つまで
  • 例外ルールの定義ができない
  • 例外キャッチ&スローの例外情報のキャプチャができない
  • TFS 2012に付属(フルセット版はTFS 2010もサポート)
  • カスタムデータがサポートされない
  • PreEmptive for TFSのAPIが.NETのものしか用意されていない
  • SSLサポートなし
  • テクニカルサポートなし

TFS 2012と組み合わせて小規模な環境で使ってみるには十分な制限です。インストールですが、構成センターにリンクがあります。

この画面中にある「PreEmptive Analytics Community Editionをインストールします」をクリックします。最初にソフトウェアのインストールが行われますが、ここはちょっと省略。途中にTFSの作業項目を作成および編集するためのアカウントの問い合わせがあります。

ここで作業項目に登録するユーザーアカウントを指定してください。可能であれば、PreEmptive専用ユーザーがいいでしょうが、ダメならTFSサービスを実行しているアカウントでもいいのではないでしょうか(CALの都合もありますしね)。

インストールが完了して「閉じる」を押すと、設定画面に続きます。この画面で表示されているエンドポイントはPreEmptiveのAPIを呼び出して作業項目を登録するために使うみたいです。

+記号をクリックしてTFSを追加します。このウィザードで登録する場合、PreEmptiveとTFSを同居する前提にするのがお勧めだそうです。

チームプロジェクトを探します。無償版の場合、上に書いたようにチームプロジェクトに制限があります。気を付けてください。

使用するTeam Projectを選択します。

プロジェクトを選択しました。言語コードがen-usのままなので、ja-jpに変えましょう。チームプロジェクト名(MyProject)の隣にある「適用」ボタンを押せばPreEmptiveの設定が開始されます。

処理はこんな感じで進みます。

適用が完了しました。プロジェクト単位で設定するため、商用バンではそれぞれのTeam Projectに対して行う必要があるでしょう。

最後に例外セットを設定します。これは処理されない例外、たとえばASP.NETであればグローバルハンドラで処理していないなどでしょうか?のどの例外をどのように処理するかというカスタマイズになります。無償版ではここは限定的なカスタマイズになるのでしょう。とりあえず設定のみ行っています。
これで一通り設定が完了しました。実際にプログラムからどう使っていくのかとかは別途調査です(^^;が、継続的フィードバックのためには使えるツールなのかなという予感がします。