net core下鏈路追蹤skywalking安裝和簡(jiǎn)單使用教程
當(dāng)我們用很多服務(wù)時(shí),各個(gè)服務(wù)間的調(diào)用關(guān)系是怎么樣的?各個(gè)服務(wù)單調(diào)用的順序\時(shí)間性能怎么樣?服務(wù)出錯(cuò)了,到底是哪個(gè)服務(wù)引起的?這些問題我們用什么方案解決呢,以前的方式是各個(gè)系統(tǒng)自己?jiǎn)为?dú)做日志,出了問題從暴出問題的服務(wù)開始一個(gè)一個(gè)服務(wù)的排查,耗時(shí)耗力,有些日志不全的,還不一定查得出來。好在現(xiàn)在有Skywalking鏈路追蹤系統(tǒng),可以不用寫任何代碼,就追蹤到各個(gè)服務(wù)間的調(diào)用關(guān)系和性能狀態(tài)等。
本文將從0開始搭建兩個(gè)webapi項(xiàng)目,使用Skywalking來追蹤他們之間的調(diào)用關(guān)系及響應(yīng)時(shí)間。開發(fā)環(huán)境為VisualStudio2019
1.1.安裝skywalking
安裝skywalking會(huì)遇到好多坑,首先安裝不一定成功,訪問8080端口監(jiān)控頁面會(huì)出現(xiàn)很多問題。即使監(jiān)控頁面正常了,netcore程序也有可能監(jiān)控不到,因?yàn)殒溄?1800會(huì)失敗,多數(shù)因?yàn)閟kwwalking和elasticsearch版本的問題引起的。因?yàn)榇鎯?chǔ)多數(shù)選擇是elasticsearch,所以這里是以這個(gè)為主。像下面通過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
安裝完后查看一下服務(wù)是否正常,三個(gè)程序分別是elastic、skwwalking、skwwalkingui:

1.2 查看elastic和監(jiān)控頁面是否正常
,連接分別為 安裝skwwalking服務(wù)器ip:9200、安裝skwwalking服務(wù)器ip:8080,如果遇到端口占用,提前更換:


2.上netcore程序,這里先跑兩個(gè)程序
2.1.新增第一個(gè)netcore程序,我這里是net5。

2.2 安裝依賴
SkyAPM.Agent.AspNetCore,版本我選最好0.9.0。(有需要先保證安裝服務(wù)正常,程序監(jiān)控正常后再著手升級(jí)其他的各個(gè)版本。)

2.3 增加skyapm.json文件
,記得屬性 復(fù)制到輸出目錄里面設(shè)置 始終復(fù)制,防止配置文件修改不生效踩坑。這里需要注意的兩個(gè)地方是1.ServiceName應(yīng)該是當(dāng)前程序的名字,Services是skwwalking服務(wù)器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服務(wù)器ip:11800",
"Timeout": 10000,
"ConnectTimeout": 10000,
"ReportTimeout": 600000
}
}
}
}
2.4 程序launchSettings.json
里面加上一行 "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore",如果用的iis express啟動(dòng)一樣需要加到iis express配置下面。如下:

2.5 運(yùn)行起來后監(jiān)控畫面是這樣的:

3 再新增一個(gè)程序
3.1 新建程序步驟和2.1是一樣的
后面設(shè)置不再贅述,啟動(dòng)的地址我改了,比較懶第一個(gè)啟動(dòng)后第二個(gè)的地址不能用一樣的。程序如下:

3.2 這里新增了一個(gè)controller控制器做測(cè)試
比較隨便代碼如下,做什么很清楚了:

3.3 監(jiān)控結(jié)果是這樣的:



說完了,這里只是一個(gè)簡(jiǎn)單的安裝和演示,有實(shí)際需要需要自己再做進(jìn)一步的研究,因?yàn)閷?shí)際項(xiàng)目需要的可多了。
https://github.com/liuzhixin405
到此這篇關(guān)于net core下鏈路追蹤skywalking安裝和簡(jiǎn)單使用的文章就介紹到這了,更多相關(guān)net core 鏈路追蹤skywalking內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vs.Net2003無法打開或創(chuàng)建Web應(yīng)用程序若干解決辦法.
這篇文章主要介紹了vs.Net2003無法打開或創(chuàng)建Web應(yīng)用程序若干解決辦法.2006-10-10
.NET?Core實(shí)現(xiàn)企業(yè)微信消息推送
這篇文章介紹了.NET?Core實(shí)現(xiàn)企業(yè)微信消息推送的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
ASP.NET中使用AspnetAccessProvider
ASP.NET中使用AspnetAccessProvider...2007-09-09
ASP.NET 5中使用AzureAD實(shí)現(xiàn)單點(diǎn)登錄
本文給大家介紹的是在ASP.NET 5中使用AzureAD實(shí)現(xiàn)單點(diǎn)登錄的方法和示例,有需要的小伙伴可以參考下。2015-07-07

