4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Instana ObservabilityAdvent Calendar 2024

Day 19

ASP.NETなアプリをInstanaで可視化してみる

Last updated at Posted at 2024-12-18

あっと言う間に12月も半分が過ぎてしまいました。早いですよね〜
でもまだAdvent Calendarエントリ続けますよ!カワノです!よろしくお願いします。

そんなわけで、この記事はInstana Observability Advent Calendar 2024 19日目のエントリになります。

はじめに

皆さん、.NETなアプリケーションの可視化ってしてますか?
じつは私のお客様はJavaがほとんどで、たまにNode.jsやPythonがいる程度です。
私自信、2020年頃に前職で.NETを触っていたころを最後に情報アップデートをしておらず、ちょうどAdvent Calendarのネタ何にしよう?と考えていたところなので 久しぶりにちょっと触ってみようと思います。

環境

気軽に触りたかったので、Azureに最小限の環境を作りました。

  • インスタンスタイプ:Standard_F2s_v2
  • CPU:2Core
  • メモリ:4GB
  • Disk:130GB
  • OS:Windows Server 2019 Datacenter

IISセットアップ

役割と機能は以下の通り
スクリーンショット 2024-12-17 10.17.03.png

テストアプリケーション作成、デプロイ

今回は .NET Framework と .NET Core それぞれのアプリケーションを作成してみます。
作成手順はdotnetな記事たくさんあるので、省きます。
※) ちなみに、アプリケーションは業務外に個人スキルアップを目的として作成しています。

.NET Framework / ASP.NET MVC

伝統的なASP.NET MVCテンプレートアプリケーションを作成しました。
.NET Framework のバージョンは 4.7.2 です。
image.png
image.png

.NET Core / ASP.NET Core

最新の.NETって 9 までバージョンアップしてるんですね!
.NET 9は リリースされたばかりということなので、今回は.NET 8でアプリを構築しました。
image.png
image.png

ポーリングスクリプト

Instanaで可視化するために、テストアプリケーションに定期的にアクセスするPowershellスクリプトを実行します。
あまり考えていません。ひたすらアクセスしているだけです。

while ($true) {curl.exe -m 1 -s -o NUL -w "%{http_code}" http://localhost/webapp1;start-sleep 1}
while ($true) {curl.exe -m 1 -s -o NUL -w "%{http_code}" http://localhost/webapp2;start-sleep 1}

Instana Agentセットアップ

Windows インストーラを使いました。Linuxワンライナーも簡単ですが、こちらも簡単ですね。Configuration入力がちょっと手間ですけど。
image.png
image.png
image.png

導入後は instana-agent.exe と InstanaPCP.exe が稼動していることを確認できました。
image.png

Instana 導入直後の状況

Instana Agentは導入されていますが、設定ファイル(Configuration.yaml)は設定変更していません。
その状態でどこまで参照できるでしょうか?

インフラストラクチャ

以下の情報を見ることができます。

  • ホスト(OS)
  • IIS
  • Instana Agent
  • .Net Frameworkアプリ (DefaultAppPool)
  • powershell (curlを定期実行しているコマンドプロンプト)

image.png

スクリーンショット 2024-12-17 11.13.36.png

アプリケーション

ASP.NET .Net Framework Webアプリケーションは可視化されていますが、
ASP.NET Core Webアプリケーションは可視化されていません。

ちなみに、デフォルトのサービス名は {region}-{hostname}ですね。
今回の環境は region: japaneast, hostname: win-app1 なので japaneast-win-app1 と表示されています。

image.png
image.png

サービス名規則と変更方法については、Instanaの下記ドキュメントを参照ください。

IIS上の ASP.NET Core Webアプリケーションの可視化

IIS上の.NET Framework ASP.NET Webアプリは追加設定なしにすぐに可視化されますが、.NET Core ASP.NET Coreアプリは設定が必要なため、可視化されていません。

.NET Coreアプリも可視化しましょう。

準備

  1. Instana Agentと Instana PCPプロセスが起動していることを確認します
    これは一番最初に確認しているので、省略します。
  2. nugetコマンドが事項できること
    以下よりnugetをダウンロードします。インストーラとかじゃなくて、exe単体っていう潔さ...
    https://dist.nuget.org/win-x86-commandline/latest/nuget.exe

Instana パッケージのダウンロード と配置

アプリのリビルド、コンパイルができる方向け

アプリのリビルドができる方は、nugetで以下の2つのライブラリをアプリに導入しビルドしてください。

  • Instana.Tracing.Core
  • Instana.Tracing.Core.Rewriter.Windows
    できない方は、以下の作業を実施ください。

Instana パッケージのダウンロード

以下のコマンドを実行して、Instanaパッケージをダウンロードします

nuget install Instana.Tracing.Core
nuget install Instana.Tracing.Core.Rewriter.Windows

image.png
(Core が COre になっちゃってますがご愛嬌ということで...)

Instanaパッケージを配置

※) この作業は必須ではありません。次のパス通しをちゃんと実施すればOKですがごちゃごちゃするので合わせます。
nuget installを実行したフォルダにて、以下を実行します(パスは変わるので適宜置き換えてご参照ください)

nuget installを実行したフォルダ

image.png

dllをアプリにコピー実行
copy Instana.Tracing.Core.1.286.3\lib\netstandard2.0\* C:\inetpub\wwroot\webapp2

image.png

mkdir C:\inetpub\wwroot\webapp2\instana_tracing
copy Instana.Tracing.Core.Rewriter.Windows.1.286.3\contentFiles\any\any\instana_tracing C:\inetpub\wwroot\webapp2\instana_tracing

image.png

アプリの設定にInstanaパッケージを追記

アプリのWeb.config に、環境変数として以下の設定を追記し、アプリケーションを再起動します。
image.png
image.png

注1) 相対パスではなく絶対パスで記載してください
注2) Web.configの編集が不可な場合、環境変数に同様の設定を行うことができます。

可視化確認

ASP.NET .NET Framework Webアプリだけではなく、ASP.NET Core Webアプリも可視化されました!
(パスの規則が.NET Frameworkとあっておらず微妙ですが)

image.png

また、インフラストラクチャでも.NET Frameworkアプリだけではなく、.NET Coreアプリも認識されていますね!
image.png

最後に

.NET Frameworkアプリは追加設定なしでInstanaで可視化可能ですが、.NET Coreアプリは追加設定が必要です。
最近のアプリケーションは.NET Coreが主流ですので、.NETアプリをInstanaで可視化する際は、nugetでInstanaライブラリを導入することを念頭に置いていただければ幸いです!

それでは!

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?