SkyWalking .NET Core エージェント (SkyAPM) は、サポートされている .NET フレームワークのイベントトラッキングを自動的に行います。エージェントをインストールして設定すると、分散トレースが OpenTelemetry 向けマネージドサービスコンソールにレポートされます。
このガイドでは、次の 3 つのステップについて説明します。
SkyWalking エンドポイントの取得:ARMS コンソールから取得します。
インストールと設定:.NET プロジェクトに SkyAPM エージェントをインストールして設定します。
検証:コンソールにトレースデータが表示されることを確認します。
背景情報
SkyWalking は、中国で開発された人気のアプリケーションパフォーマンスモニタリング (APM) サービスです。SkyWalking は、マイクロサービス、クラウドネイティブアーキテクチャ、および Docker、Kubernetes、Mesos などのコンテナベースのアーキテクチャ向けに設計されています。SkyWalking は分散トレーシングシステムでもあります。
前提条件
ARMS コンソールから SkyWalking のエンドポイントと認証トークンを取得します。
OpenTelemetry 向けマネージドサービスコンソールにログインします。
左側のナビゲーションウィンドウで、[クラスター設定] をクリックし、[アクセスポイント情報] タブをクリックします。
上部のナビゲーションバーで、リージョンを選択します。[クラスター情報] セクションで、[トークンの表示] を有効にします。
[クライアント] セクションで、[SkyWalking] をクリックします。
[関連情報] 列からエンドポイントとトークンをコピーします。

アプリケーションが Alibaba Cloud の本番環境にデプロイされている場合は、VPC エンドポイントを使用してください。それ以外の場合は、パブリックエンドポイントを使用してください。
エージェントのインストール
.NET プロジェクトのルートディレクトリから、SkyAPM NuGet パッケージをインストールし、必要な環境変数を設定します。
# SkyAPM エージェントパッケージのインストール
dotnet add package SkyAPM.Agent.AspNetCore
# 必要な環境変数の設定
export ASPNETCORE_HOSTINGSTARTUPASSEMBLIES=SkyAPM.Agent.AspNetCore
export SKYWALKING__SERVICENAME=<your-service-name><your-service-name> を、ARMS コンソールでアプリケーションを識別するための名前 (例:my-dotnet-app) に置き換えてください。
エージェントの設定
skyapm.json 設定ファイルを作成し、レポート用のエンドポイントを指定します。次のいずれかの方法を選択してください。
方法1:CLI ツールによる生成
SkyAPM CLI ツールをインストールし、設定ファイルを生成します。
# CLI ツールのインストール
dotnet tool install -g SkyAPM.DotNet.CLI
# ツールを PATH に追加 ( /path/to を実際の .dotnet ディレクトリのパスに置き換えてください)
export PATH="$PATH:/path/to/.dotnet/tools/"
# skyapm.json の生成
dotnet skyapm config <your-service-name> <your-endpoint>方法2:手動での作成
.NET プロジェクトのルートディレクトリに、次の内容で skyapm.json ファイルを作成します。
{
"SkyWalking": {
"ServiceName": "<your-service-name>",
"Namespace": "",
"HeaderVersions": [
"sw8"
],
"Sampling": {
"SamplePer3Secs": -1,
"Percentage": -1.0,
"LogSqlParameterValue": false
},
"Logging": {
"Level": "Information",
"FilePath": "logs/skyapm-{Date}.log"
},
"Transport": {
"Interval": 3000,
"ProtocolVersion": "v8",
"QueueSize": 30000,
"BatchSize": 3000,
"gRPC": {
"Servers": "<your-endpoint>",
"Authentication": "<your-token>",
"Timeout": 100000,
"ConnectTimeout": 100000,
"ReportTimeout": 600000
}
}
}
}次のプレースホルダーを実際の値に置き換えてください。
| プレースホルダー | 説明 |
|---|---|
<your-service-name> | ARMS コンソールに表示されるアプリケーション名。 |
<your-endpoint> | 「前提条件」セクションでコピーした SkyWalking エンドポイント。 |
<your-token> | 「前提条件」セクションでコピーした認証トークン。 |
設定パラメーター
必須パラメーター
| パラメーター | 説明 |
|---|---|
ServiceName | ARMS コンソールに表示されるアプリケーション名。 |
gRPC.Servers | ARMS コンソールから取得した SkyWalking エンドポイント。 |
gRPC.Authentication | ARMS コンソールから取得した認証トークン。 |
オプションのパラメーター
| パラメーター | 説明 |
|---|---|
SamplePer3Secs | 3 秒ごとに収集されるトレースサンプルの数。 |
Percentage | サンプリングのパーセンテージ。例えば、10 は 10% を意味します。 |
Logging.Level | エージェント自身のログのログレベル。デバッグに使用されます。 |
Logging.FilePath | エージェントのログファイルのパスとファイル名のパターン。 |
アプリケーションの起動と検証
.NET アプリケーションを起動 (または再起動) します。
dotnet runアプリケーションにいくつかのリクエストを送信して、トレースデータを生成します。
OpenTelemetry 向けマネージドサービスコンソールにログインし、トレースデータが表示されるかどうかを確認します。
エージェントログによるトラブルシューティング
コンソールにトレースデータが表示されない場合は、プロジェクトディレクトリ内の logs/skyapm-<date>.log にあるエージェントのログファイルを確認してください。このファイルには、接続試行、エラー、データレポートのアクティビティが記録されます。

ソースからのエージェントのビルド (オプション)
ソースコードから SkyAPM .NET エージェントをビルドするには、次の手順を実行します。
# ソースリポジトリのクローン
git clone https://github.com/SkyAPM/SkyAPM-dotnet.git
# プロジェクトのルートに移動
cd SkyAPM-dotnet/
# 目的のバージョンタグをチェックアウト
git checkout <tag-name>
# サブモジュールの初期化と更新
git submodule init
git submodule update
# 依存関係の復元とビルド
dotnet restore
dotnet build src/SkyApm.Transport.Grpc.Protocol
dotnet build skyapm-dotnet.slnサンプルコード
完全な動作例については、GitHub の skywalking-demo リポジトリをご参照ください。
よくある質問
dotnet skyapm config コマンドで skyapm.json の生成に失敗します。どうすれば修正できますか?

次のいずれかのソリューションをお試しください。
skyapm.jsonを手動で作成する (推奨):CLI ツールは設定ファイルを生成するだけです。「方法2:手動での作成」の手順に従ってファイルを作成し、必要なパラメーターを直接設定してください。.NET 6.0 に切り替える:CLI ツールが現在の .NET バージョンと互換性がない可能性があります。.NET 6.0 をインストールして使用し、CLI ツールを実行してください。