しばやん雑記

Azure とメイドさんが大好きなフリーランスのプログラマーのブログ

Application Insights

Application Insights SDK でのパフォーマンスカウンターの収集をオフにする

最近は Log Analytics のコストが高いと言う相談をよく頂くので、本番環境のようにログが多くなるような環境向けにはログレベルの調整やサンプリング、そもそも送信するテレメトリをアプリケーションレベルで減らすと言う対応を提案するのですが、内部で使っ…

Application Insights の Code Optimizations 機能を ASP.NET Core アプリケーションで試してみた

少し前から Application Insights の Performance を開くと、上部に Code Optimizations というボタンが表示されるようになっています。隣にある Profiler は以前からある機能ですが、Code Optimizations はひっそりと追加された新しい機能となります。あま…

Cosmos DB の直接モード利用時に Application Insights で詳細なテレメトリを収集できるようにする

最近は色々なところで Application Insights をインストールして、アプリケーションのテレメトリを継続的にちゃんと取得しましょう的なことを言い続けているのですが、Cosmos DB に関してはデフォルトでは依存関係テレメトリが送信されません。ドキュメント…

Application Insights の Azure AD 認証 / Managed Identity 対応を試した

久し振りに Application Insights SDK for .NET のリリースノートを眺めていたら Azure AD 認証に対応したと記載があり、興味を持ったので設定と動作を試しておきました。これまで InstrumentationKey があればテレメトリを送信出来ていましたが、Azure AD …

App Service から Azure Monitor Private Link Scope 経由で Application Insights を利用する

先日 Workspace ベースの Application Insights を弄っていた時に Network Isolation という設定が目に入り、そういえば Private Link Scope ってよく分かっていないと思ったのでデプロイして試しました。単純に Azure Monitor へのアクセスを Private Endpo…

既存の Application Insights を Workspace ベースに移行した

これまでのリソースが Classic 扱いになって今後が気になる Application Insights ですが、実際に Log Analytics Workspace ベースに移行してみないとよく分からないと思ったので、手持ちの Azure Functions と組み合わせて使っていたリソースをいくつか移行…

アプリを Azure Government と Azure China に対応させつつ ARM Template でデプロイする

日本在住であれば関わる機会がほぼないと思われる Azure Government と Azure China ですが、OSS で Azure 向けアプリを出していると稀に対応せざるを得ないときがあります。今回は App Service と Key Vault の Acmebot で対応する機会がやってきました。普…

App Service と ASP.NET Core で Application Insights を有効化する方法を整理する

Azure App Service に ASP.NET Core アプリケーションをデプロイする時には、必ず Application Insights を同時に有効化するようにしていますが、有効化の方法として 2 種類が存在しているので軽くまとめておきます。自分でもこのあたりは割と混乱していたの…

Azure Functions から送信される Application Insights テレメトリにバージョンを付ける

勝手に付いてるだろうと思っていましたが、Azure Functions の場合は Application Insights の各テレメトリにバージョンが付いていなかったので、ITelemetryInitializer を使ってカスタマイズすることにしました。ASP.NET Core の場合はデフォルトで付いてい…

Application Insights と KQL を使って複雑な解析を行いたい

最近は地味に KQL (Kusto Query Language) を書く機会が多くなってきたので、忘れないようにはまったポイントと書いたクエリを残しておくことにします。Application Insights を使っていますが、KQL 自体は Azure Data Explorer と同じなのでリファレンスは…

Application Insights に送信される HTTP テレメトリに詳細な情報を付けたい

Application Insights をインストールしておけば、HTTP や SQL などの外部リソースへのアクセスを追跡してくれますが、HTTP の場合は URL とステータスコードぐらいしか情報がないので微妙な時があります。HTTP レスポンスヘッダーに情報が入ってることが多…

.NET Core における Activity と Application Insights による分散トレーシング

.NET Core 2.0 から追加された Activity というクラスがありますが、トレース用の ID を管理する重要な機能を持っています。特に Application Insights と組み合わせることで分散トレーシングが容易になります。.NET Framework 4.5 以降なら System.Diagnost…

Azure Web Apps でデフォルト以外のパフォーマンスカウンターを Application Insights に送信する

Azure App Service では実行ユーザーの権限に制限がいろいろとかかっているために、Application Insights などを使ったパフォーマンスカウンターの送信はそのままでは出来ません。しかし、App Service は環境変数を使ってパフォーマンスカウンターの値を渡し…

Azure App Service で障害が発生した場合にやること

Azure App Service は非常に便利なのですが、アプリケーションに何らかの問題があった場合には VM などと比べると調査方法が若干特殊です。今は公式の診断機能がかなり強化されていますが、逆に多すぎて困ることもあるのでまとめました。 用意されているツー…

Windows Containers でも Application Insights でパフォーマンスカウンターを読めるようにする

デフォルトのままで Windows Containers で動かすアプリに Application Insights をインストールすると、パフォーマンスカウンターの値が正しく取れない問題があります。実際に実行すると CPU やメモリ周りの値が Quick Pulse で取れてません。アプリケーシ…

Azure Functions と Application Insights を同時に ARM Template でデプロイする

今の Azure Functions は Application Insights が無いとモニタリング周りが成り立たないですが、ARM Template を使うと単独でデプロイされるので同時に Application Insights を作るようにします。Azure Functions の Consumption Plan で作る場合のサンプ…

Azure Cloud Services でも Application Insights のフル機能が使えるのか試した

最近の Application Insights は App Service で使われることしか考えられてないのでは、という感じがしていたので Cloud Services でもいろんな機能が使えるようになっているか調べました。一応 Cloud Services 向けのドキュメントが用意されています。され…

Application Insights で IP が取れない件と ASP.NET Core で Telemetry Initializer を追加する方法

ASP.NET Core アプリケーションに Application Insights を追加して使ってましたが、いつからかクライアントの IP アドレスが 0.0.0.0 になってしまってました。元々最後のオクテットは 0 になってたのは知ってましたが、なんか不具合化と思ってました。軽く…

Application Insights の Snapshot Debugger を使って本番環境のデバッグを効率的に行う

仕事でも Application Insights を弄っていたのに全く知らなかった機能である Snapshot Debugger ですが、チャックさんの記事で存在を知ったのと何となく試して見たかったので検証してみることにしました。Tech Summit 2017 のチャックさんのセッションで話…

Azure Functions のコールドスタートを Application Insights で確認してみる

何かと(一部?で)話題になる Azure Functions のコールドスタートが非常に遅いという話ですが、App Service Team Blog にてどのような動きとなっているか解説記事が公開されていました。ぶちぞう RD のアンテナは高いので、フォローしておくと有益な情報が…

Application Insights を利用した Durable Functions の診断を試してみた

仕事でも Durable Functions を使っていますが、一般的な HttpTrigger などと異なり Durable Functions は実行される仕組みが特殊なので、Azure Functions のログだけでは分かりにくいことが多いです。なので、とりあえず Application Insights は有効にして…

Application Insights に Cosmos DB で消費された RUs を送信すると非常に捗った話

仕事で Cosmos DB を使ってアプリケーションを書きましたが、最近はあらかじめ割り当てておいた RU を突き抜けることがあって原因の調査を行っていました。その時に Cosmos DB のメトリックだけではコレクション別でしか RU を確認出来ず、Application Insig…

Application Insights を Elastic Beanstalk にデプロイした ASP.NET アプリケーションから利用してみる

わざわざ Application Insights を Azure 以外から使う理由があるのかと言われそうですが、Application Insights Basic の課金はよくある APM のホスト数での課金ではなく、容量課金となっているので頻繁にインスタンスを使い捨てる場合などで、使いやすいこ…

Azure Web Apps と Application Insights でパフォーマンスカウンターのような値を利用する

これまで Application Insights を Azure Web Apps で使った場合には Servers の値が表示されないので非常に残念でしたが、SDK Labs 扱いの AggregateMetrics を使うと一部取れるようになりました。公式ブログを見るとパフォーマンスカウンターを扱えるよう…

開発環境では Application Insights にテレメトリを送信しないようにする

Visual Studio から Application Insights を追加すると、開発環境でデバッグを行っている時に発生したエラーやイベントを送信してしまい、本番の Application Insights に残ってしまうので困ります。開発中はエラーが出るのなんて当たり前なので、完全にノ…

Application Insights の Proactive Detection を使ってみた

少し前に Application Insights に追加された Proactive Detection がとても気になっていたのですが、今日初めて通知が届いたので簡単にどのような機能なのか紹介しておきます。最初にどのような機能なのか、公式のドキュメントを読んでおいた方が良いですね…

Application Insights for Mac を使って iOS アプリケーションに SDK を組み込む

Application Insights を ASP.NET と Xamarin.iOS で使ってきましたが、今回はネイティブな iOS アプリケーションに Application Insights を組み込んでみます。SDK は GitHub で公開されていますが、わざわざダウンロードしなくても Application Insights f…

Xamarin.iOS でも Application Insights を使ってみる

最近は @normalian が Application Insights SDK for Java を弄っていたので、何となく iOS で Application Insights SDK を使ってみようと思いました。ちゃんと Microsoft から iOS 向けの SDK が公開されています。GitHub - microsoft/ApplicationInsights…