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

Application Real-Time Monitoring Service:SkyWalking を使用して .NET アプリケーションデータを報告する

最終更新日:Mar 03, 2025

アプリケーションのトレースデータを表示するには、クライアントを使用してトレースデータを Managed Service for OpenTelemetry コンソールに報告する必要があります。このトピックでは、SkyWalking .NET Core SDK を使用して .NET アプリケーションデータを報告する方法について説明します。

前提条件

SkyWalking のエンドポイントを取得するには、次の手順を実行します。

  1. Managed Service for OpenTelemetry コンソール にログインします。

  2. 左側のナビゲーションペインで、クラスタ設定 をクリックします。表示されるページで、アクセスポイント情報 タブをクリックします。

  3. 上部のナビゲーションバーで、リージョンを選択します。クラスタ情報セクションで、トークンを表示 をオンにします。

  4. クライアントパラメータを SkyWalking に設定します。

    下部の表の 関連情報 列に SkyWalking のエンドポイントが表示されます。

    SkyWalking接入点信息

    説明

    アプリケーションが Alibaba Cloud の本番環境にデプロイされている場合は、VPC エンドポイントを使用します。それ以外の場合は、パブリックエンドポイントを使用します。

背景情報

SkyWalking は、中国で開発された一般的なアプリケーションパフォーマンス監視 (APM) サービスです。SkyWalking は、マイクロサービス、クラウドネイティブアーキテクチャ、および Docker、Kubernetes、Mesos などのコンテナベースのアーキテクチャ向けに設計されています。SkyWalking は分散トレーシングシステムでもあります。

サンプルコード

サンプルコードリポジトリの詳細については、GitHub の skywalking-demo を参照してください。

SkyWalking を使用して .NET アプリケーションをインストルメント化する

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

    .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 を使用して skyapm.json ファイルを生成します。

    • dotnet tool install -g SkyAPM.DotNet.CLI
      
      # 環境変数を設定します。/path/to は .dotnet ディレクトリの実際のパスに置き換えます。
      export PATH="$PATH:/path/to/.dotnet/tools/"             
      dotnet skyapm config <service-name> <endpoint>
    • 方法 2: .NET プロジェクトのルートディレクトリに 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. .NET エージェントのローカルログエントリを表示します。.NET プロジェクトが実行されると、.NET プロジェクトの logs フォルダに skyapm-<date>.log ファイルが生成されます。トレースデータの報告に失敗した場合は、デバッグのために skyapm-<date>.log ファイルを参照できます。

    image.png

付録

ソースコードに基づいて .NET エージェントをビルドするには、次のコマンドを実行できます。

# ソースコードをダウンロードします。
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

FAQ

dotnet-skyapm ツールを使用して skyapm.json ファイルを作成すると、作成に失敗し、次の図に示すエラーメッセージが返されます。どうすればよいですか?image.png

  • 解決策 1 (推奨): dotnet-skyapm ツールは、skyapm-dotnet エージェントの skyapm.json ファイルを生成するためにのみ使用されます。前のセクションを参照して、skyapm.json ファイルを手動で作成し、関連パラメータを設定できます。

  • 解決策 2: dotnet 6.0 を使用します。