1. ホーム
  2. Web プログラミング
  3. ASP.NET
  4. 実用的なヒント

net core downlink tracking skywalking インストールと使いやすいチュートリアル

2022-01-14 09:02:13

多くのサービスを利用する場合、各サービス間の呼び出し関係はどうなっているのだろうか?各サービスの順番や時間性能はどうなっているか?サービスのエラーは、どのサービスが原因ですか?これらの問題は、我々はそれを解決するためにどのようなソリューションを使用して、以前の方法は、各システムは、サービスの問題から問題のうち、1つのサービスを調査するために、時間のかかる、労働集約的な開始する独自のログを行うには、いくつかのログが完了していない、また、見つけることができない場合があります。良いことは、我々は今、Skywalkingのリンクの追跡システムを持っているので、我々は、任意のコードを記述せずに各サービスの呼び出し関係やパフォーマンスの状態を追跡することができます。

今回は、2つのWebapiプロジェクトをゼロから構築し、Skywalkingを使って両者の呼び出し関係や応答時間を追跡していきます。開発環境はVisualStudio 2019

1.1. skywalkingのインストール

skywalkingのインストールには多くの落とし穴があり、まずインストールが必ずしも成功するとは限らず、ポート8080の監視ページへのアクセスに多くの問題があります。監視ページが動作しても、リンク11800が失敗するため、ネットコアプログラムが監視できないことがあり、その原因の多くは、skwwalkingとelasticsearchのバージョンの問題である。ストレージのオプションはほとんどelasticsearchなので、ここではこちらをメインとします。以下のようにdocker-composeでインストールします。

ファイルはこのような感じです。

version: '3.3'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.5.0
    container_name: elasticsearch
    restart: always
    ports:
      - 9200:9200
    environment:
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms256m -Xmx256m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
  oap:
    image: apache/skywalking-oap-server:7.0.0-es7
    container_name: oap
    depends_on:
      - elasticsearch
    links:
      - elasticsearch
    restart: always
    ports:
      - 11800:11800
      - 12800:12800
    environment:
      SW_STORAGE: elasticsearch7
      SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
  ui:
    image: apache/skywalking-ui:7.0.0
    container_name: ui
    depends_on:
      - oap
    links:
      - oap
    restart: always
    ports:
      - 8080:8080
    environment:
      SW_OAP_ADDRESS: oap:12800

インストール後、サービスが動作しているかどうかを確認します。3つのプログラムは、elastic、skwwalking、skwwalkinguiです。

1.2 エラスティックとモニタリングのページが動作しているか確認する

接続先は、install skwwalking server ip:9200, install skwwalking server ip:8080, ポート占有が発生した場合は、事前に変更してください。

2. netcoreのプログラムでは、ここではまず2つのプログラムを実行します。

2.1. 最初のネットコアプログラムを追加します。ここではnet5を実行しています。

2.2 依存関係のインストール

SkyAPM.Agent.AspNetCoreは、ベストバージョンの0.9.0を選びました。(他の各バージョンのアップグレードを進める前に、インストールサービスが動作し、プログラムが正しく監視されていることを確認する必要性があります)。

2.3 skyapm.json ファイルを追加する

プロパティは出力ディレクトリにコピーされ、設定ファイルの変更が反映されずに穴が開くのを防ぐために、常にコピーされるように設定されていることを忘れないでください。ServiceNameは現在のアプリケーションの名前、Servicesはskwwalking server ip:11800を指定します。

{
  "SkyWalking": {
    "ServiceName": "SkyWalkingDemo",
    "Namespace": "",
    "HeaderVersions": [
      "sw6"
    ],
    "Sampling": {
      "SamplePer3Secs": -1,
      "Percentage": -1.0
    },
    "Logging": {
      "Level": "Debug",
      "FilePath": "logs/skyapm-{Date}.log"
    },
    "Transport": {
      "Interval": 3000,
      "ProtocolVersion": "v6",
      "QueueSize": 30000,
      "BatchSize": 3000,
      "gRPC": {
        "Servers": "skywalking server ip:11800",
        "Timeout": 10000,
        "ConnectTimeout": 10000,
        "ReportTimeout": 600000
      }
    }
  }
}

2.4 プログラム launchSettings.json

ASPNETCORE_HOSTINGSTARTUPASSEMBLIES" の中に、"SkyAPM.Agent.AspNetCore" の行を追加し、iis expressの起動時に使用する場合は、以下のiis express設定に追加する必要があると同じです。以下の通りです。

2.5 起動時のモニター画面はこんな感じです。

3 別のプログラムを追加する

3.1 新しいプログラムを作成する手順は、2.1 と同じです。

起動時のアドレスを変更したのですが、手抜きで、1つ目を起動した後の2つ目のアドレスが同じにならないことがありました。手順は以下の通りです。

3.2 テスト用に新しいコントローラをここに追加する

よりカジュアルなコードは以下のとおりで、何をするのかが明確になっています。

3.3 モニタリング結果はこのようになります。

とはいえ、これは簡単なインストールとデモンストレーションに過ぎないので、実際のニーズがあれば、もっと自分で調べる必要があります。

https://github.com/liuzhixin405

ネットコア下でのリンクトレース skywalking のインストールと簡単な使い方についての記事です。net core下のlink tracing skywalkingについては、スクリプトハウスの過去記事を検索するか、引き続き以下の関連記事を閲覧してください。