Application Insights Preview

Application Insights Preview

73c174b34dafaea64f2824eb008a6559?s=128

Tatsuro Shibamura

June 09, 2017
Tweet

Transcript

  1. Application Insights Preview @shibayan Microsoft MVP for ASP.NET/IIS http://shibayan.jp/

  2. はじめに • 今日は Azure と Visual Studio の間をフラフラしている Application Insights

    について話します • Visual Studio 2015 リリース記念なので、Visual Studio から扱 える範囲に絞ることにします
  3. 注意点 • Application Insights はまだ Preview です • 必要なものはデータが遅延しても泣かない気持ち

  4. Application Insights とは • アプリケーションのパフォーマンスの解析、クラッシュの診断、 使用状況の追跡が行えるサービス • 先行する New Relic

    に近いサービス • データ量に基づく課金体系、無料で使用可能 • 月間 500 万データポイント、生データ保存 7 日の制限のみ • 有料版だと Blob へのデータエクスポート機能も
  5. Application Insights で出来ること • Web アプリケーション • パフォーマンス、クラッシュ監視、使用状況の追跡、パフォーマンス カウンタの確認 •

    Web アプリケーション実行環境 • 外部サービスの呼び出し追跡、パフォーマンスカウンタの確認 • クライアントアプリケーション • クラッシュ監視、使用状況の追跡
  6. 対応するプラットフォーム • Web アプリケーション • ASP.NET / ASP.NET 5 /

    Java / JavaScript / Python / Ruby / PHP • Web アプリケーション実行環境 • Windows Server (IIS) / Azure Web Apps • クライアントアプリケーション • Android / iOS / OS X / Windows Store App / デスクトップアプリ
  7. Web アプリケーション

  8. Application Insights SDK • 基本的なイベントのハンドリング • アプリケーションの起動、終了など • キャッチされていない例外のハンドリング •

    スタックトレースなどをテレメトリとして送信 • カスタムメトリック、トレースログの送信 • TraceListener / NLog を使っている場合には、対応するパッケージを インストールするだけで対応可能
  9. ASP.NET アプリケーションに組み込む • Visual Studio から簡単に SDK をインストール可能 • ASP.NET

    アプリケーションの作成時 • 作成済みアプリケーションへ追加 • Application Insights 自体は Web App の追加時に作られる • ポータルから単体で作成することも可能
  10. ASP.NET アプリケーションの作成時 チェックを入れるだけ

  11. 作成済みアプリケーションへ追加 テレメトリの追加を選ぶ 右クリックして

  12. 対象の App Insights を選択して完了 送信先を選択して クリックすれば完了

  13. Web Apps で使う場合の注意 • パフォーマンスカウンタは Web Apps では参照できないので、 Application Insights

    の設定から外しておく • 放置しておくとテレメトリがおかしくなる • ApplicationInsights.config の TelemetryModules に存在する PerformanceCollectorModule を削除
  14. パフォーマンスカウンタを使わない コメントアウトする

  15. クライアント用 JavaScript を追加 • Azure ポータルからスクリプトをコピー&ペースト </head> の直前に貼り付ける

  16. ローカル環境で動作確認 • Visual Studio でデバッグ実行を行う • 最初にテレメトリが送信されたタイミングでメッセージ表示 • 診断ツールでもテレメトリの確認が可能

  17. デプロイしてポータルから確認 クライアント側の情報 アプリケーション側の情報

  18. エラー画面を表示している場合 • ASP.NET MVC の場合は HandleError を変更 • http://blogs.msdn.com/b/visualstudioalm/archive/2014/12/12/appl ication-insights-exception-telemetry.aspx

    • 任意のタイミングで例外を通知することもできる try { // 例外を投げるかもしれない new WebClient().DownloadString("..."); } catch (WebException ex) { // App Insights に例外が投げられたことだけは伝える var ai = new TelemetryClient(); ai.TrackException(ex); }
  19. アプリケーションのエラーを確認 500 エラーの原因に なった例外 例外が発生した環境 の詳細情報 スタックトレースと メッセージを確認

  20. Web アプリケーション 実行環境

  21. Application Insights Status Monitor • 仮想マシンへのインストール向けモニタリングサービス • Windows の管理者権限があれば利用可能 •

    既存のアプリに変更を加えることなく Application Insights を 使ったパフォーマンスの監視が行える • 既に運用中のアプリケーションの監視に最適 • .NET Framework 4.5 と ASP.NET 4.5 が必須
  22. Status Monitor のインストール Web PI でインストール Application Insights を追加 対象のアプリケーションを選ぶ

  23. Application Insights Site Extension • Status Monitor のインストールが出来ない Azure Web

    Apps 用 に追加されたモニタリングサービス • Azure ポータルから 30 秒でインストール可能 • App Insights SDK を組み込んだアプリとセットで動作 • 単体での動作は想定していない
  24. Site Extension のインストール Application Insights を選ぶ インストールが完了すると 表示される

  25. 外部サービスの呼び出し確認 SQL DB へのアクセス が表示される 実行されたクエリが 確認可能

  26. Application Insights の活用

  27. Web test で可用性の確認 • Azure ポータルから ping テストを作成 テストを行う リージョンを選択

    テスト結果が表示される
  28. テストシナリオを作成 • Visual Studio で Web パフォーマンスプロジェクトを作成 プロジェクトを作成して シナリオをレコーディング

  29. 作成したシナリオを使ってテスト • 作成した webtest ファイルをアップロード Multi-step を選んで 作成した webtest ファイル

    を選択 テスト結果が表示される
  30. Stream Analytics との連携 (1) • Application Insights から継続的に Blob へイベントを書き出す

    必要なイベントのみを 選択可能
  31. Stream Analytics との連携 (2) • Stream Analytics でイベントをストリームデータとして処理 • 結果を

    SQL Database / Storage / Power BI へ出力 Azure Stream Analytics イベント単位で書き出される
  32. まとめ • Application Insights はプレビューだけど使えるレベルに • データの遅延は頻繁に起こっているので注意 • 当然ながら Azure

    との親和性は抜群に良い • Azure ポータルを使えば GUI だけで、ほとんど設定できる • Visual Studio との連携でさらに便利に