net core downlink tracking skywalking インストールと使いやすいチュートリアル
多くのサービスを利用する場合、各サービス間の呼び出し関係はどうなっているのだろうか?各サービスの順番や時間性能はどうなっているか?サービスのエラーは、どのサービスが原因ですか?これらの問題は、我々はそれを解決するためにどのようなソリューションを使用して、以前の方法は、各システムは、サービスの問題から問題のうち、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については、スクリプトハウスの過去記事を検索するか、引き続き以下の関連記事を閲覧してください。
関連
-
.netcoreプロジェクトでIStartupFilterを使用するためのチュートリアル
-
pythonでpillowをインストールする3つの方法
-
.NET 6:.NETのロギングコンポーネントlog4netを使用する。
-
NETガベージコレクション GC診断ツール dotnet-gcmon 使用方法
-
ASP.NET CoreでURLを設定する5つの方法
-
swagger uiをasp.net coreに統合する原理
-
認証プロセスの記録にjwtを使用したネット
-
再起動を伴わないNET5の設定変更は自動的に反映される
-
asp.net core3.1 cookieとjwtのハイブリッド認証による多様な認証ソリューションの実現
-
非同期タスクキャンセルと監視のネット実装
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
NET 6の新しい設定オブジェクトConfigurationManagerの紹介
-
ASP.NET Core 6で依存関係を解決する3つの方法
-
NET6新機能 - 暗黙の名前空間参照
-
30分でわかるコング経由の.NETゲートウェイ
-
ネットのメモリ管理に関する5つの基本
-
ASP.NET学習でよくあるエラーのまとめ
-
ASP.NETでWeb.configからログインする際の正しいアカウントパスワードを確認する
-
ネットパフォーマンスチューニング - ArrayPool 詳細
-
ASP.NETのオンライン統計とアプリケーションとセッションを使用した訪問履歴
-
ASP.NETでのRadioButton(ラジオボタン)の使用について