Application insights で行ってみよう

42
わんくま同盟 大阪勉強会 #60 Application Insightsでいってみよう かめがわ かずし(kkamegawa) 2014/9/27

description

Introduce Application Insights Preview.

Transcript of Application insights で行ってみよう

Page 1: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

Application Insightsでいってみよう

かめがわ かずし(kkamegawa)2014/9/27

Page 2: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

自己紹介

• かめがわ かずし(kamekawa ではなく kamegawa)。Microsoft MVP for Visual Studio ALM(2012/7-)

• だいたいどこでもkkamegawahatena/twitter/Facebook/MSDN Forum/GitHub(ほぼGistのみ)http://kkamegawa.hatenablog.jp/

• @ITさんでちょこちょこ書かせてもらっています。http://www.atmarkit.co.jp/ait/articles/1408/11/news119.html (連載:いまどきのソース・コード管理)

• 2014/4に関西に引っ越してきた新米関西人

• もちろんわんくま大阪ははじめてです(おてやわらかに)

Page 3: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

運用監視、してますか?

Page 4: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

トラブル時あるある

• ユーザから「なんか遅いんだけど」といわれる

• その時になってタスクマネージャ見る

• しかしすでに問題は終わっている…(もしくはタスクマネージャだけじゃわからない)

• ユーザから処理していた時間、処理内容、操作方法を聞く

• 結局わからない…再現待ち

Page 5: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

こんなことにならないようにするために

• ベースライン(運用上問題がない状態)を取得して、みんなの認識を合わせておく

• 問題が一時的か、数分続いているか自動的に採取する

Page 6: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

異常と騒ぐ前に

• 問題が一時的であっても処理によっては仕方ないものもある(大量に更新するバッチとか)

• 操作上、想定していない状態となってしまうものもある

– オンラインで大量にデータを選択してしまった

– 意図していないタイミングでバッチが多く実行された

Page 7: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

ユーザービリティ向上のために

• だれが、いつ、どんな操作をして、どんな状態になったか可視化できるとうれしい→操作した / しないといった水掛け論の防止

• どんな操作が多く行われているか可視化して、今後の改良に役立てる

– ユーザーから「この機能改良したい」といわれたとき「使われていないですよ」といえる(かも)

– 開始から終了までのユーザー操作に時間がかかっている処理を改善してもっと使ってもらう

Page 8: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

いろいろな運用監視ソフトウェア

• Microsoft System Center Operations Manager(Microsoft)http://www.microsoft.com/ja-jp/systemcenter/opsmgr/products/overview.aspx

• JP1(日立)http://www.hitachi.co.jp/Prod/comp/soft1/jp1/

• Systemwalker Service Quality Coordinator(富士通)http://systemwalker.fujitsu.com/jp/sqc/

• WebSAM SystemManager(NEC)http://jpn.nec.com/websam/systemmanager/

• ZABBIX(オープンソース/Zabbix SIA)http://www.zabbix.com/jp/

• Hinemos(オープンソース/NTT Data)http://www.hinemos.info/

ほかにもいっぱいあります(載らないので省略)

Page 9: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

何を監視する?

• Windowsの場合OS標準機能でも結構できる

• というより、OSで持っている性能情報をいかに可視化するかという機能を提供する、という方が正しい(独自に追加することも可能)

• この辺は@ITさんでも書かせていただきましたhttp://www.atmarkit.co.jp/fdotnet/chushin/vsperf_01/vsperf_01_01.htmlアプリケーションのギアを上げよう第一回 OS機能によるアプリのパフォーマンス測定

Page 10: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

運用監視ソフトの仕組み

• モニタしたい端末/サーバにエージェントをインストールする

• 運用監視ソフトウェアをインストールしたサーバにモニタリングしたい情報を定期的に送信

• 通常複数のソフトウェア用のエージェントを同時に入れることもできる

Page 11: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

運用監視ソフトウェアの課題

• サービスを提供するサーバ以外にもサーバが必要

• ソフトウェア初期投資

– 買い切りによる初期投資

– 管理サーバ自身の性能

• 1~2台でも必要

• 100台になっても一台?

– 情報を蓄積するためのデータベースのライセンスは?

– オープンソースのものにする?

– エージェントの対応状況は?

• SaaSでの提供が脚光を浴びてきた

Page 12: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

SaaS版の登場

• New Relichttp://newrelic.com/– 草分け的存在

• Application Insights(プレビュー)http://msdn.microsoft.com/ja-jp/library/dn481095.aspx

• 安価、手軽、APIが特徴

Page 13: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

APPLICATION INSIGHTS

Page 14: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

Application Insightsとは

• Microsoft System Center Operations Manager(通称SCOM)のSaaSサービス版

• 性能監視/死活監視を提供

• Visual Studio 2013 Update 3からVisual Studioに統合(Update2までは拡張機能)

• 現在はプレビュー版ということもあり、無料

Page 15: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

必要なもの

• Visual Studio 2013 Update3Visual Studio 2013 Update2までは拡張機能http://visualstudiogallery.msdn.microsoft.com/82367b81-3f97-4de1-bbf1-eaf52ddc635a

• Azureアカウント(Update3以降の場合)か Visual Studio Onlineアカウント(拡張機能の場合)http://blogs.msdn.com/b/visualstudioalm/archive/2014/09/17/application-insights-tools-in-visual-studio-2013-summer-update.aspx

• 拡張機能を使っていた場合は、アンインストールしてから(私はそのままやった)

Page 16: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

Application Insightsの使用方法

• Webアプリケーションの可用性

– 死活監視

– 応答時間の記録と警告

• アプリケーションのパフォーマンスと例外監視

– オンプレミスサーバ, Azureサービス, Javaアプリケーションのパフォーマンスカウンタ

• 使用方法の分析

– カナリアテスト

– A/Bテスト

– 画面遷移の記録

Page 17: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

Application Inisghtsでサポートされる環境

• Webアプリケーションの可用性

– Webアプリケーション

• アプリケーションのパフォーマンスと例外監視

– Java Webアプリ(Tomcat/JBoss)– Azure クラウドサービス / Azure Web Sites

• 使用方法の分析

– Windowsストアアプリケーション

– Windows Phone 8.1アプリケーション

– Webサービス

– JavaScriptアプリケーション

Page 18: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

WEBアプリケーションの可用性と応答性

Page 19: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

使い方

• ポータルからURLを指定して監視

• 5-15分程度で出力

• 世界各地域からのアクセス状況を確認可能

• 一定期間応答なければメール通知設定も可能

Page 20: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

モニタリング状況

Page 21: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

確認したい地域をチェック

Page 22: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

エラー状況確認

Page 23: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

Visual Studioで開くこともできる

Page 24: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

パフォーマンスと例外監視

Page 25: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

使い方

• Application Insightsをプロジェクトに追加

• エージェントをインストールして、PowerShellコマンドレット操作により記録

• IntelliTrace情報を記録する場

合、高速なディスクに記録して、可能な限り設定を絞る

• Javaアプリケーションも対応(Tomcat/JBoss)

Page 26: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

Visual Studioから

• 新規作成はプロジェクトに追加

• 既存アプリケーションは右クリックから「テレメトリの追加」

Page 27: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

テレメトリ情報の送信先

• 現在はプレビューということもあり、US固定

• 変更できるように見えるが、Azureプレビューポータルでは変更不可

Page 28: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

Azure Portal(現行)

Page 29: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

新ポータルCPU Usage

Page 30: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

新ポータルDisk性能

Page 31: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

新ポータルネットワークモニタ

Page 32: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

コマンドレット一覧

コマンドレット オプション 説明

Set-DefaultMonitoringCredentials -AccoundId-InstrumentationKey

Application Insights用の認証情報を設定する

Start-WebApplicationMonitoring -CollectionPlan-Cloud | -Local-OutputPath-Name-SkipIISReset

指定したアプリケーションモニタリングを開始する。-LocalでローカルにIntelliTrace相当の情報を保存。-CloudでApplication Insightsに保存。-SkipIISResetはIISの再起動を抑止する

Get-WebApplicationMonitoringStatus

現在モニタしているアプリケーションを列挙する

Checkpoint-WebApplicationMonitoring

-All-Name

現時点の情報を強制的に取得する

Stop-WebApplicationMonitoring -All-Cloud | -Local-Name-SkipIISReset

アプリケーションのモニタを停止する。

Page 33: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

負荷をかける

• Visual Studio OnlineのLoad Test(※ただしUltimate)を使ってクラウド負荷テスト

• 全世界のAzureインスタンスから負荷がかけられる

• 組織内からだと回線が負荷の上限になるため、組織外のインスタンスからかけると便利

Page 34: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

VS Online Load Test

Page 35: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

使用方法の分析

Page 36: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

テレメトリによる使用方法の分析

• 現時点(2014/9/27)では0.10のプレリリース版

• ASP.NET Webアプリケーションの使用状況の分析

– Azureもオンプレミスも

• JavaScriptコードを入れてクライアントのトラッキング

• Windows Phone&ストアアプリケーションの使用状況分析

– 現在プレビューのため使用できない(0.8くらいまではOKだった)• ログフレームワークのサポート

– System.Diagnostics.Trace– Nlog– Log4Net– Application Insights Tracing API

Page 37: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

ストアアプリでの使用方法

• NuGetパッケージを追加Install-Package Microsoft.ApplicationInsights.WindowsStore -Pre

• Application Insightsコードを追加

• ログに個人が特定できるような情報を記録しない

Page 38: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

Webページ使用状況追跡

• Visual Studio 2013 Update3 ではAzure新ポータルから追加

• サイトごとに専用のトラッキングコードを含むJavaScriptを追加

• ASP.NET Webformではsite.masterに追加すればOK

• トラッキングしていることはちゃんとプライバシー情報の取り扱いとして告知しておきましょう

Page 39: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

Azure新ポータルの設定

Page 40: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

Application Insightsでのアクセス状況の確認

Page 41: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

まとめ

• New RelicだけじゃなくてApplication Insightsも。

• Webサイトの死活監視はお手軽&Visual Studioのクラウドロードテストと併用すると便利。

• 特にWindows ストアアプリケーションもしくはWindows Phoneアプリケーションの利用状況モニタは…今後に期待

Page 42: Application insights で行ってみよう

わんくま同盟 大阪勉強会 #60

参考リソース

• Application Insights for Visual Studio Onlinehttp://msdn.microsoft.com/ja-jp/library/dn481095.aspx

• Application Insights for Visual Studio による使用法の分析http://msdn.microsoft.com/ja-jp/library/dn518124.aspx(ただし記述が古い)

• Web アプリケーションの可用性と応答性の監視http://msdn.microsoft.com/ja-jp/library/dn481101.aspx

• Application Insights を使用したパフォーマンスと例外の監視http://msdn.microsoft.com/ja-jp/library/dn495324.aspx