すべてのプロダクト
Search
ドキュメントセンター

Application Real-Time Monitoring Service:SkyWalking を使用した .NET アプリケーションデータのレポート

最終更新日:Jun 22, 2026

SkyWalking を使用してアプリケーションをインストルメント化し、そのトレースデータを Managed Service for OpenTelemetry にレポートすると、Managed Service for OpenTelemetry はアプリケーションのモニタリングを開始します。アプリケーションのトポロジー、呼び出しトレース、例外トランザクション、低速トランザクション、SQL 分析など、一連のモニタリングデータを表示できます。このトピックでは、SkyWalking .NET Core SDK を使用してアプリケーションをインストルメント化し、そのデータをレポートする方法について説明します。

前提条件

エンドポイントの取得

  1. ARMS コンソールにログインします。左側のナビゲーションウィンドウで、[インテグレーションセンター] をクリックします。

  2. [インテグレーションセンター] ページで、[サーバーサイドアプリケーション] セクションの [SkyWalking] カードをクリックします。

  3. [SkyWalking] パネルで、[インテグレーションの開始] タブをクリックし、データをレポートするリージョンを選択します。

    説明

    初めてリージョンにアクセスすると、リソースは自動的に初期化されます。

  4. [接続タイプ] パラメーターを設定し、エンドポイントをコピーします。

    ご利用のサービスが Alibaba Cloud にデプロイされており、選択したリージョンに存在する場合、このパラメーターを [Alibaba Cloud VPC ネットワーク] に設定することを推奨します。それ以外の場合は、このパラメーターを [パブリックネットワーク] に設定します。

    image.png

背景情報

SkyWalking は、マイクロサービス、クラウドネイティブ、および Docker、Kubernetes、Mesos などのコンテナベースのアーキテクチャ向けのオープンソースのアプリケーションパフォーマンスモニタリング (APM) ツールです。その中核は、分散トレーシングシステムです。

サンプルデモ

完全な動作例については、SkyWalking Demo リポジトリをご参照ください。

SkyWalking を使用した .NET アプリケーションのインストルメント

  1. .NET エージェントをインストールします。

    プロジェクトのルートディレクトリに移動し、次のコマンドを実行します。

    # .NET エージェントのインストール
    dotnet add package SkyAPM.Agent.AspNetCore
    # 環境変数の追加
    export ASPNETCORE_HOSTINGSTARTUPASSEMBLIES=SkyAPM.Agent.AspNetCore
    export SKYWALKING__SERVICENAME=<service-name>
  2. .NET エージェントのプロパティを設定します。

    次のいずれかの方法で skyapm.json ファイルを作成します。

    • 方法 1: SkyAPM.DotNet.CLI ツールを使用してプロパティ設定ファイルを生成します。

    • dotnet tool install -g SkyAPM.DotNet.CLI
      # 環境変数を設定します。/path/to を .dotnet/tools ディレクトリへのパスに置き換えます。
      export PATH="$PATH:/path/to/.dotnet/tools/"             
      dotnet skyapm config <service-name> <endpoint>
    • 方法 2: プロジェクトのルートディレクトリに skyapm.json ファイルを作成し、次の内容をファイルにコピーします。

    • {
        "SkyWalking": {
          "ServiceName": <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": <endpoint>,
              "Authentication": <token>,
              "Timeout": 100000,
              "ConnectTimeout": 100000,
              "ReportTimeout": 600000
            }
          }
        }
      }

    パラメーター

    • 必須パラメーター

      • <service-name>:サービス名。

      • <endpoint>:「前提条件」セクションで取得したエンドポイント。

      • <token>:エンドポイントの認証トークン。このトークンは、「前提条件」セクションの説明に従って取得します。

    • オプションパラメーター

      • SamplePer3Secs:3 秒ごとに収集するサンプル数。

      • Percentage:サンプリング率。たとえば、トレースの 10% をサンプリングするには、この値を 10 に設定します。

      • Logging:ロギングとデバッグを設定します。Level はログレベルを指定し、FilePath はログファイルの場所と名前を指定します。

  3. .NET プロジェクトを再起動します。

    dotnet run
  1. ローカルエージェントのログを確認します。プロジェクトを実行すると、logs フォルダに skyapm-<date>.log ファイルが生成されます。データのレポートに失敗した場合は、このログファイルを使用して問題をデバッグできます。

    2023-07-27 10:04:08.396 +08:00 [skywalking-net-demo] [Information] SkyApm.InstrumentStartup : Initializing ...
    2023-07-27 10:04:08.477 +08:00 [skywalking-net-demo] [Information] SkyApm.Service.RegisterService : Loaded instrument service [Skyxxx]
    2023-07-27 10:04:08.477 +08:00 [skywalking-net-demo] [Information] SkyApm.Service.LogReportService : Loaded instrument service [Skxxx]
    2023-07-27 10:04:08.477 +08:00 [skywalking-net-demo] [Information] SkyApm.Service.PingService : Loaded instrument service [SkyApm.xxx]
    2023-07-27 10:04:08.477 +08:00 [skywalking-net-demo] [Information] SkyApm.Service.SegmentReportService : Loaded instrument servicexxx
    2023-07-27 10:04:08.477 +08:00 [skywalking-net-demo] [Information] SkyApm.Service.CLRStatsService : Loaded instrument service [Skyxxx]
    2023-07-27 10:04:08.477 +08:00 [skywalking-net-demo] [Information] SkyApm.Sampling.SimpleCountSamplingInterceptor : Loaded instruxxx
    2023-07-27 10:04:08.477 +08:00 [skywalking-net-demo] [Information] SkyApm.Transport.Grpc.ConnectService : Loaded instrument servicxxx
    2023-07-27 10:04:08.486 +08:00 [skywalking-net-demo] [Information] SkyApm.Transport.Grpc.ConnectionManager : Connected server[tracixxx]
    2023-07-27 10:04:08.486 +08:00 [skywalking-net-demo] [Information] SkyApm.Diagnostics.TracingDiagnosticProcessorObserver : Loaded dxxx
    2023-07-27 10:04:08.486 +08:00 [skywalking-net-demo] [Information] SkyApm.InstrumentStartup : Started SkyAPM .NET Core Agent.
    2023-07-27 10:04:13.512 +08:00 [skywalking-net-demo] [Information] SkyApm.Diagnostics.TracingDiagnosticProcessorObserver : Loaded dxxx
    2023-07-27 10:04:13.552 +08:00 [skywalking-net-demo] [Information] SkyApm.Diagnostics.TracingDiagnosticProcessorObserver : Loaded dxxx
    2023-07-27 10:04:13.605 +08:00 [skywalking-net-demo] [Information] SkyApm.Service.RegisterService : Reported Service Instance Propexxx
    2023-07-27 10:04:20.525 +08:00 [skywalking-net-demo] [Information] SkyApm.Transport.Grpc.V8.SegmentReporter : Report 14 trace segmexxx
    2023-07-27 10:04:20.534 +08:00 [skywalking-net-demo] [Error] SkyApm.Transport.Grpc.SegmentReporter : Report trace segment fail.
    Grpc.Core.RpcException: Status(StatusCode="Unimplemented", Detail="Method not found: skywalking.v3.LogReportService/collect")
       at SkyApm.Transport.Grpc.LoggerReporter.ReportAsync(IReadOnlyCollection`1 loggerRequests, CancellationToken cancellationToken)

参考資料

ソースコードからエージェントをビルドするには、次のコマンドを実行します。

# ソースコードのダウンロード
git clone https://github.com/SkyAPM/SkyAPM-dotnet.git
# ルートディレクトリに移動
cd SkyAPM-dotnet/
# ターゲットタグに切り替え
git checkout [tagname]
git submodule init
git submodule update
dotnet restore
dotnet build src/SkyApm.Transport.Grpc.Protocol
dotnet build skyapm-dotnet.sln

よくある質問

必須の .NET フレームワークバージョンがインストールされていない場合、dotnet skyapm config コマンドの実行時にエラーが発生することがあります。

dotnet skyapm config net-app 192.168.0.1:11800
You must install or update .NET to run this application.
App: /Users/whlongxi/.dotnet/tools/dotnet-skyapm
Architecture: arm64
Framework: 'Microsoft.NETCore.App', version '6.0.0' (arm64)
.NET location: /usr/local/share/dotnet
The following frameworks were found:
  7.0.9 at [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Learn about framework resolution:
https://aka.ms/dotnet/app-launch-failed
To install missing framework, download:
https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=6.0.0&arch=arm64&rid=osx.13-arm64
  • ソリューション 1 (推奨): dotnet-skyapm ツールは skyapm.json 設定ファイルを生成するだけです。前述のように、このファイルを手動で作成および設定できます。

  • ソリューション 2: .NET 6.0 を使用します。