net core下鏈路追蹤skywalking安裝和簡單使用教程
當我們用很多服務時,各個服務間的調用關系是怎麼樣的?各個服務單調用的順序\時間性能怎麼樣?服務出錯瞭,到底是哪個服務引起的?這些問題我們用什麼方案解決呢,以前的方式是各個系統自己單獨做日志,出瞭問題從暴出問題的服務開始一個一個服務的排查,耗時耗力,有些日志不全的,還不一定查得出來。好在現在有Skywalking鏈路追蹤系統,可以不用寫任何代碼,就追蹤到各個服務間的調用關系和性能狀態等。
本文將從0開始搭建兩個webapi項目,使用Skywalking來追蹤他們之間的調用關系及響應時間。開發環境為VisualStudio2019
1.1.安裝skywalking
安裝skywalking會遇到好多坑,首先安裝不一定成功,訪問8080端口監控頁面會出現很多問題。即使監控頁面正常瞭,netcore程序也有可能監控不到,因為鏈接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
安裝完後查看一下服務是否正常,三個程序分別是elastic、skwwalking、skwwalkingui:
1.2 查看elastic和監控頁面是否正常
,連接分別為 安裝skwwalking服務器ip:9200、安裝skwwalking服務器ip:8080,如果遇到端口占用,提前更換:
2.上netcore程序,這裡先跑兩個程序
2.1.新增第一個netcore程序,我這裡是net5。
2.2 安裝依賴
SkyAPM.Agent.AspNetCore,版本我選最好0.9.0。(有需要先保證安裝服務正常,程序監控正常後再著手升級其他的各個版本。)
2.3 增加skyapm.json文件
,記得屬性 復制到輸出目錄裡面設置 始終復制,防止配置文件修改不生效踩坑。這裡需要註意的兩個地方是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配置下面。如下:
2.5 運行起來後監控畫面是這樣的:
3 再新增一個程序
3.1 新建程序步驟和2.1是一樣的
後面設置不再贅述,啟動的地址我改瞭,比較懶第一個啟動後第二個的地址不能用一樣的。程序如下:
3.2 這裡新增瞭一個controller控制器做測試
比較隨便代碼如下,做什麼很清楚瞭:
3.3 監控結果是這樣的:
說完瞭,這裡隻是一個簡單的安裝和演示,有實際需要需要自己再做進一步的研究,因為實際項目需要的可多瞭。
https://github.com/liuzhixin405
到此這篇關於net core下鏈路追蹤skywalking安裝和簡單使用的文章就介紹到這瞭,更多相關net core 鏈路追蹤skywalking內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- php鏈路追蹤框架skywalking介紹
- 基於docker部署skywalking實現全鏈路監控功能
- skywalking分佈式服務調用鏈路追蹤APM應用監控
- 使用Docker Compose搭建部署ElasticSearch的配置過程
- 解析Arthas協助排查線上skywalking不可用問題