Application insights で行ってみよう
-
Upload
kazushi-kamegawa -
Category
Technology
-
view
1.386 -
download
4
description
Transcript of Application insights で行ってみよう
わんくま同盟 大阪勉強会 #60
Application Insightsでいってみよう
かめがわ かずし(kkamegawa)2014/9/27
わんくま同盟 大阪勉強会 #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に関西に引っ越してきた新米関西人
• もちろんわんくま大阪ははじめてです(おてやわらかに)
わんくま同盟 大阪勉強会 #60
運用監視、してますか?
わんくま同盟 大阪勉強会 #60
トラブル時あるある
• ユーザから「なんか遅いんだけど」といわれる
• その時になってタスクマネージャ見る
• しかしすでに問題は終わっている…(もしくはタスクマネージャだけじゃわからない)
• ユーザから処理していた時間、処理内容、操作方法を聞く
• 結局わからない…再現待ち
わんくま同盟 大阪勉強会 #60
こんなことにならないようにするために
• ベースライン(運用上問題がない状態)を取得して、みんなの認識を合わせておく
• 問題が一時的か、数分続いているか自動的に採取する
わんくま同盟 大阪勉強会 #60
異常と騒ぐ前に
• 問題が一時的であっても処理によっては仕方ないものもある(大量に更新するバッチとか)
• 操作上、想定していない状態となってしまうものもある
– オンラインで大量にデータを選択してしまった
– 意図していないタイミングでバッチが多く実行された
わんくま同盟 大阪勉強会 #60
ユーザービリティ向上のために
• だれが、いつ、どんな操作をして、どんな状態になったか可視化できるとうれしい→操作した / しないといった水掛け論の防止
• どんな操作が多く行われているか可視化して、今後の改良に役立てる
– ユーザーから「この機能改良したい」といわれたとき「使われていないですよ」といえる(かも)
– 開始から終了までのユーザー操作に時間がかかっている処理を改善してもっと使ってもらう
わんくま同盟 大阪勉強会 #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/
ほかにもいっぱいあります(載らないので省略)
わんくま同盟 大阪勉強会 #60
何を監視する?
• Windowsの場合OS標準機能でも結構できる
• というより、OSで持っている性能情報をいかに可視化するかという機能を提供する、という方が正しい(独自に追加することも可能)
• この辺は@ITさんでも書かせていただきましたhttp://www.atmarkit.co.jp/fdotnet/chushin/vsperf_01/vsperf_01_01.htmlアプリケーションのギアを上げよう第一回 OS機能によるアプリのパフォーマンス測定
わんくま同盟 大阪勉強会 #60
運用監視ソフトの仕組み
• モニタしたい端末/サーバにエージェントをインストールする
• 運用監視ソフトウェアをインストールしたサーバにモニタリングしたい情報を定期的に送信
• 通常複数のソフトウェア用のエージェントを同時に入れることもできる
わんくま同盟 大阪勉強会 #60
運用監視ソフトウェアの課題
• サービスを提供するサーバ以外にもサーバが必要
• ソフトウェア初期投資
– 買い切りによる初期投資
– 管理サーバ自身の性能
• 1~2台でも必要
• 100台になっても一台?
– 情報を蓄積するためのデータベースのライセンスは?
– オープンソースのものにする?
– エージェントの対応状況は?
• SaaSでの提供が脚光を浴びてきた
わんくま同盟 大阪勉強会 #60
SaaS版の登場
• New Relichttp://newrelic.com/– 草分け的存在
• Application Insights(プレビュー)http://msdn.microsoft.com/ja-jp/library/dn481095.aspx
• 安価、手軽、APIが特徴
わんくま同盟 大阪勉強会 #60
APPLICATION INSIGHTS
わんくま同盟 大阪勉強会 #60
Application Insightsとは
• Microsoft System Center Operations Manager(通称SCOM)のSaaSサービス版
• 性能監視/死活監視を提供
• Visual Studio 2013 Update 3からVisual Studioに統合(Update2までは拡張機能)
• 現在はプレビュー版ということもあり、無料
わんくま同盟 大阪勉強会 #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
• 拡張機能を使っていた場合は、アンインストールしてから(私はそのままやった)
わんくま同盟 大阪勉強会 #60
Application Insightsの使用方法
• Webアプリケーションの可用性
– 死活監視
– 応答時間の記録と警告
• アプリケーションのパフォーマンスと例外監視
– オンプレミスサーバ, Azureサービス, Javaアプリケーションのパフォーマンスカウンタ
• 使用方法の分析
– カナリアテスト
– A/Bテスト
– 画面遷移の記録
わんくま同盟 大阪勉強会 #60
Application Inisghtsでサポートされる環境
• Webアプリケーションの可用性
– Webアプリケーション
• アプリケーションのパフォーマンスと例外監視
– Java Webアプリ(Tomcat/JBoss)– Azure クラウドサービス / Azure Web Sites
• 使用方法の分析
– Windowsストアアプリケーション
– Windows Phone 8.1アプリケーション
– Webサービス
– JavaScriptアプリケーション
わんくま同盟 大阪勉強会 #60
WEBアプリケーションの可用性と応答性
わんくま同盟 大阪勉強会 #60
使い方
• ポータルからURLを指定して監視
• 5-15分程度で出力
• 世界各地域からのアクセス状況を確認可能
• 一定期間応答なければメール通知設定も可能
わんくま同盟 大阪勉強会 #60
モニタリング状況
わんくま同盟 大阪勉強会 #60
確認したい地域をチェック
わんくま同盟 大阪勉強会 #60
エラー状況確認
わんくま同盟 大阪勉強会 #60
Visual Studioで開くこともできる
わんくま同盟 大阪勉強会 #60
パフォーマンスと例外監視
わんくま同盟 大阪勉強会 #60
使い方
• Application Insightsをプロジェクトに追加
• エージェントをインストールして、PowerShellコマンドレット操作により記録
• IntelliTrace情報を記録する場
合、高速なディスクに記録して、可能な限り設定を絞る
• Javaアプリケーションも対応(Tomcat/JBoss)
わんくま同盟 大阪勉強会 #60
Visual Studioから
• 新規作成はプロジェクトに追加
• 既存アプリケーションは右クリックから「テレメトリの追加」
わんくま同盟 大阪勉強会 #60
テレメトリ情報の送信先
• 現在はプレビューということもあり、US固定
• 変更できるように見えるが、Azureプレビューポータルでは変更不可
わんくま同盟 大阪勉強会 #60
Azure Portal(現行)
わんくま同盟 大阪勉強会 #60
新ポータルCPU Usage
わんくま同盟 大阪勉強会 #60
新ポータルDisk性能
わんくま同盟 大阪勉強会 #60
新ポータルネットワークモニタ
わんくま同盟 大阪勉強会 #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
アプリケーションのモニタを停止する。
わんくま同盟 大阪勉強会 #60
負荷をかける
• Visual Studio OnlineのLoad Test(※ただしUltimate)を使ってクラウド負荷テスト
• 全世界のAzureインスタンスから負荷がかけられる
• 組織内からだと回線が負荷の上限になるため、組織外のインスタンスからかけると便利
わんくま同盟 大阪勉強会 #60
VS Online Load Test
わんくま同盟 大阪勉強会 #60
使用方法の分析
わんくま同盟 大阪勉強会 #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
わんくま同盟 大阪勉強会 #60
ストアアプリでの使用方法
• NuGetパッケージを追加Install-Package Microsoft.ApplicationInsights.WindowsStore -Pre
• Application Insightsコードを追加
• ログに個人が特定できるような情報を記録しない
わんくま同盟 大阪勉強会 #60
Webページ使用状況追跡
• Visual Studio 2013 Update3 ではAzure新ポータルから追加
• サイトごとに専用のトラッキングコードを含むJavaScriptを追加
• ASP.NET Webformではsite.masterに追加すればOK
• トラッキングしていることはちゃんとプライバシー情報の取り扱いとして告知しておきましょう
わんくま同盟 大阪勉強会 #60
Azure新ポータルの設定
わんくま同盟 大阪勉強会 #60
Application Insightsでのアクセス状況の確認
わんくま同盟 大阪勉強会 #60
まとめ
• New RelicだけじゃなくてApplication Insightsも。
• Webサイトの死活監視はお手軽&Visual Studioのクラウドロードテストと併用すると便利。
• 特にWindows ストアアプリケーションもしくはWindows Phoneアプリケーションの利用状況モニタは…今後に期待
わんくま同盟 大阪勉強会 #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