1. 程式人生 > 程式設計 >net core下鏈路追蹤skywalking安裝和簡單使用教程

net core下鏈路追蹤skywalking安裝和簡單使用教程

當我們用很多服務時,各個服務間的呼叫關係是怎麼樣的?各個服務單呼叫的順序\時間效能怎麼樣?服務出錯了,到底是哪個服務引起的?這些問題我們用什麼方案解決呢,以前的方式是各個系統自己單獨做日誌,出了問題從暴出問題的服務開始一個一個服務的排查,耗時耗力,有些日誌不全的,還不一定查得出來。好在現在有Skywalking鏈路追蹤系統,可以不用寫任何程式碼,就追蹤到各個服務間的呼叫關係和效能狀態等。

本文將從0開始搭建兩個webapi專案,使用Skywalking來追蹤他們之間的呼叫關係及響應時間。開發環境為VisualSHvqeqhsGPtudio2019

1.1.安裝skywalking

安裝skywalking會遇到好多坑,首先安裝不一定成功,訪問8080埠監控頁面會出現很多問題。即使監控頁面正常了,ne

tcore程式也有可能監控不到,因為連結11800會失敗,多數因為skwwalking和elasticsearch版本的問題引起的。因為儲存多數選擇是elasticsearch,所以這裡是以這個為主。像下面通過-compose來安裝。

檔案如下:

version: '3.3'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsehttp://www.cppcns.comarch/elasticsearch:7.5.0
    container_name: elasticsearch
    restart: always
    ports:
      - 9200:9200
    environment:
     http://www.cppcns.com
- discovery.type=single-node - bootstrap.memory_lock=true - "ES__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

安裝完後檢視一下服務是否正常,三個程式分別是elastic、skwwalking、skwwalkingui:

net core下鏈路追蹤skywalking安裝和簡單使用教程

1.2 檢視elastic和監控頁面是否正常

,連線分別為 安裝skwwalking伺服器ip:9200、安裝skwwalking伺服器ip:8080,如果遇到端口占用,提前更換:

net core下鏈路追蹤skywalking安裝和簡單使用教程

net core下鏈路追蹤skywalking安裝和簡單使用教程

2.上netcore程式,這裡先跑兩個程式

2.1.新增第一個netcore程式,我這裡是net5。

net core下鏈路追蹤skywalking安裝和簡單使用教程

2.2 安裝依賴

SkyAPM.Agent.AspNetCore,版本我選最好0.9.0。(有需要先保證安裝服務正常,程式監控正常後再著手升級其他的各個版本。)

net core下鏈路追蹤skywalking安裝和簡單使用教程

2.3 增加skyapm.on檔案

,記得屬性 複製到輸出目錄裡面設定 始終複製,防止配置檔案修改不生效踩坑。這裡需要注意的兩個地方是1.ServiceName應該是當前程式的名字,Services是skwwalking伺服器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伺服器ip:11800","Timeout": 10000,"ConnectTimeout": 10000,"ReportTimeout": 600000
      }
    }
  }
}

2.4 程式launchSettings.json

裡面加上一行 "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore",如果用的iis express啟動一樣需要加到iis express配置下面。如下:

net core下鏈路追蹤skywalking安裝和簡單使用教程

2.5 執行起來後監控畫面是這樣的:

net core下鏈路追蹤skywalking安裝和簡單使用教程

3 再新增一個程式

3.1 新建程式步驟和2.1是一樣的

後面設定不再贅述,啟動的地址我改了,比較懶第一個啟動後第二個的地址不能用一樣的。程式如下:

net core下鏈路追蹤skywalking安裝和簡單使用教程

3.2 這裡新增了一個controller控制器做測試

比較隨便程式碼如下,做什麼很清楚了:

net core下鏈路追蹤skywalking安裝和簡單使用教程

3.3 監控結果是這樣的:

net core下鏈路追蹤skywalking安裝和簡單使用教程

net core下鏈路追蹤skywalking安裝和簡單使用教程net core下鏈路追蹤skywalking安裝和簡單使用教程

說完了,這裡只是一個簡單的安裝和演示,有實際需要需要自己再做進一步的研究,因為實際專案需要的可多了。

https://.com/liuzhixin405

到此這篇關於net core下鏈路追蹤skywalking安裝和簡單使用的文章就介紹到這了,更多相關net core 鏈路追蹤skywalking內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!