Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Application Insights Preview
Search
Tatsuro Shibamura
June 09, 2017
Programming
0
180
Application Insights Preview
Tatsuro Shibamura
June 09, 2017
Tweet
Share
More Decks by Tatsuro Shibamura
See All by Tatsuro Shibamura
# Azure Cosmos DB パフォーマンス最適化入門 - 設計・開発・運用の実践テクニック
shibayan
0
330
Hack Azure! #5 - Geek of Azure Serverless
shibayan
0
91
.NET Conf 2020 Online - .NET 5 リリース記念パーティートーク
shibayan
0
8.7k
Terraform Provider for Azure に貢献してみた話
shibayan
0
590
Azure Functions と SendGrid の良い関係
shibayan
0
1.1k
Azure Serverless を活用したリアルタイム Web のすべて
shibayan
1
2.8k
祝 東日本リージョン一般提供! Azure Application Insights 基礎と実践
shibayan
1
41k
なかなか楽にならないSSL/TLS証明書の話
shibayan
2
1.7k
.NET Conf 2018 Tokyo
shibayan
1
3.9k
Other Decks in Programming
See All in Programming
Comparing decimals in Swift Testing
417_72ki
0
170
オホーツクでコミュニティを立ち上げた理由―地方出身プログラマの挑戦 / TechRAMEN 2025 Conference
lemonade_37
2
470
대규모 트래픽을 처리하는 프론트 개발자의 전략
maryang
0
120
Google I/O recap web編 大分Web祭り2025
kponda
0
2.8k
11年かかって やっとVibe Codingに 時代が追いつきましたね
yimajo
1
260
Infer入門
riru
4
1.5k
自作OSでDOOMを動かしてみた
zakki0925224
1
1.3k
Nuances on Kubernetes - RubyConf Taiwan 2025
envek
0
160
あのころの iPod を どうにか再生させたい
orumin
2
2.4k
『リコリス・リコイル』に学ぶ!! 〜キャリア戦略における計画的偶発性理論と変わる勇気の重要性〜
wanko_it
1
520
CEDEC 2025 『ゲームにおけるリアルタイム通信への QUIC導入事例の紹介』
segadevtech
3
870
Langfuseと歩む生成AI活用推進
licux
3
130
Featured
See All Featured
Visualization
eitanlees
146
16k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
How to Ace a Technical Interview
jacobian
278
23k
YesSQL, Process and Tooling at Scale
rocio
173
14k
The Language of Interfaces
destraynor
158
25k
Rails Girls Zürich Keynote
gr2m
95
14k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
6k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
[RailsConf 2023] Rails as a piece of cake
palkan
56
5.8k
Transcript
Application Insights Preview @shibayan Microsoft MVP for ASP.NET/IIS http://shibayan.jp/
はじめに • 今日は Azure と Visual Studio の間をフラフラしている Application Insights
について話します • Visual Studio 2015 リリース記念なので、Visual Studio から扱 える範囲に絞ることにします
注意点 • Application Insights はまだ Preview です • 必要なものはデータが遅延しても泣かない気持ち
Application Insights とは • アプリケーションのパフォーマンスの解析、クラッシュの診断、 使用状況の追跡が行えるサービス • 先行する New Relic
に近いサービス • データ量に基づく課金体系、無料で使用可能 • 月間 500 万データポイント、生データ保存 7 日の制限のみ • 有料版だと Blob へのデータエクスポート機能も
Application Insights で出来ること • Web アプリケーション • パフォーマンス、クラッシュ監視、使用状況の追跡、パフォーマンス カウンタの確認 •
Web アプリケーション実行環境 • 外部サービスの呼び出し追跡、パフォーマンスカウンタの確認 • クライアントアプリケーション • クラッシュ監視、使用状況の追跡
対応するプラットフォーム • 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 / デスクトップアプリ
Web アプリケーション
Application Insights SDK • 基本的なイベントのハンドリング • アプリケーションの起動、終了など • キャッチされていない例外のハンドリング •
スタックトレースなどをテレメトリとして送信 • カスタムメトリック、トレースログの送信 • TraceListener / NLog を使っている場合には、対応するパッケージを インストールするだけで対応可能
ASP.NET アプリケーションに組み込む • Visual Studio から簡単に SDK をインストール可能 • ASP.NET
アプリケーションの作成時 • 作成済みアプリケーションへ追加 • Application Insights 自体は Web App の追加時に作られる • ポータルから単体で作成することも可能
ASP.NET アプリケーションの作成時 チェックを入れるだけ
作成済みアプリケーションへ追加 テレメトリの追加を選ぶ 右クリックして
対象の App Insights を選択して完了 送信先を選択して クリックすれば完了
Web Apps で使う場合の注意 • パフォーマンスカウンタは Web Apps では参照できないので、 Application Insights
の設定から外しておく • 放置しておくとテレメトリがおかしくなる • ApplicationInsights.config の TelemetryModules に存在する PerformanceCollectorModule を削除
パフォーマンスカウンタを使わない コメントアウトする
クライアント用 JavaScript を追加 • Azure ポータルからスクリプトをコピー&ペースト </head> の直前に貼り付ける
ローカル環境で動作確認 • Visual Studio でデバッグ実行を行う • 最初にテレメトリが送信されたタイミングでメッセージ表示 • 診断ツールでもテレメトリの確認が可能
デプロイしてポータルから確認 クライアント側の情報 アプリケーション側の情報
エラー画面を表示している場合 • 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); }
アプリケーションのエラーを確認 500 エラーの原因に なった例外 例外が発生した環境 の詳細情報 スタックトレースと メッセージを確認
Web アプリケーション 実行環境
Application Insights Status Monitor • 仮想マシンへのインストール向けモニタリングサービス • Windows の管理者権限があれば利用可能 •
既存のアプリに変更を加えることなく Application Insights を 使ったパフォーマンスの監視が行える • 既に運用中のアプリケーションの監視に最適 • .NET Framework 4.5 と ASP.NET 4.5 が必須
Status Monitor のインストール Web PI でインストール Application Insights を追加 対象のアプリケーションを選ぶ
Application Insights Site Extension • Status Monitor のインストールが出来ない Azure Web
Apps 用 に追加されたモニタリングサービス • Azure ポータルから 30 秒でインストール可能 • App Insights SDK を組み込んだアプリとセットで動作 • 単体での動作は想定していない
Site Extension のインストール Application Insights を選ぶ インストールが完了すると 表示される
外部サービスの呼び出し確認 SQL DB へのアクセス が表示される 実行されたクエリが 確認可能
Application Insights の活用
Web test で可用性の確認 • Azure ポータルから ping テストを作成 テストを行う リージョンを選択
テスト結果が表示される
テストシナリオを作成 • Visual Studio で Web パフォーマンスプロジェクトを作成 プロジェクトを作成して シナリオをレコーディング
作成したシナリオを使ってテスト • 作成した webtest ファイルをアップロード Multi-step を選んで 作成した webtest ファイル
を選択 テスト結果が表示される
Stream Analytics との連携 (1) • Application Insights から継続的に Blob へイベントを書き出す
必要なイベントのみを 選択可能
Stream Analytics との連携 (2) • Stream Analytics でイベントをストリームデータとして処理 • 結果を
SQL Database / Storage / Power BI へ出力 Azure Stream Analytics イベント単位で書き出される
まとめ • Application Insights はプレビューだけど使えるレベルに • データの遅延は頻繁に起こっているので注意 • 当然ながら Azure
との親和性は抜群に良い • Azure ポータルを使えば GUI だけで、ほとんど設定できる • Visual Studio との連携でさらに便利に