ASP.NET Core MVC にて、Glimpseの代わりにPrefixプロファイラを試す

ASP.NETのプロファイラと言えばGlimpseが人気、だけど…

従来のASP.NET開発においては、Glimpseという強力なプロファイラがあり、人気があります。
私もずっと愛用してきて何度も助けられました。

が、このGlimpse、ASP.NET Core MVC対応がほとんど進んでいないようです。
(本記事執筆時点で次期バージョンの最終コミットが8月)

github.com

この辺りのアレコレは @neueさんのブログに詳しいことが書いてありました。

neue cc - LightNode 2 - OWINからASP.NET Coreへの移植実例

しょうがないので、別のプロファイラを探してみることにしましょう。世の中は思い通りにはなっていません。

見つかりました。Prefixです。

で、見つけました。Prefixです。

stackify.com

このPrefixというプロファイラはStackify社のStackifyというAPMから派生したプロファイラらしいです。

基本無料で使えるらしい(要登録)ので、さっそく試してみました。

また、Glimpseとの対比はこちらの記事にまとまっていました。

support.stackify.com

ダウンロード&インストール

ASP.NET Core MVCでの利用方法は下記の記事が詳しいです。 support.stackify.com

下記よりWindows用バイナリをダウンロードしてインストールしました。また、この際にユーザー登録が発生しました。

Prefix Release Notes

インストール後、システムトレイにアイコンが追加され、"Stackify Prefix"というサービスが起動していました。

システムトレイを右クリックして、"Enable .NET Profiler"をクリックしてプロファイルを起動する必要があるようです。
(私はこれを忘れてしばらく時間を無駄にしました。)

f:id:mrgchr:20161101201918p:plain

利用する

NuGetにて、"StackifyMiddleware"を追加します。

その後、ASP.NET Core MVCプロジェクトのStartup.cs内、Configureメソッドに下記を追加します。

app.UseMiddleware<StackifyMiddleware.RequestTracerMiddleware>();

そしてWebアプリを起動し、Prefixシステムトレイから"Open in browser"を選択しプロファイラUIを起動します。

Webアプリにて操作に応じてプロファイラのUIにデータが表示されるようになりました。
ADO.NETによるデータベースアクセスも表示されたので、私が求める最低限の要求は満たしているようです。

f:id:mrgchr:20161101202256p:plain

しばらくは使ってみることにします

PrefixはGlimpseと違いOSSではないので、3rdパーティによる拡張などはありません。
ですので特定の機能が足りないので自分で追加するという事が出来ません。

ASP.NET Core MVCそのものがまだまだ発展途上なのもあるでしょうが、プロファイラもまた発展途上のようです。

Glimpseが今のところ残念なので、しばらくはPrefixを使っていこうと思います。