通過SkyWalking為應用埋點并上報鏈路數據至可觀測鏈路 OpenTelemetry 版后,可觀測鏈路 OpenTelemetry 版即可開始監控應用,您可以查看應用拓撲、調用鏈路、異常事務、慢事務和SQL分析等一系列監控數據。本文介紹如何使用SkyWalking .NET Core SDK埋點并上報應用數據。
前提條件
新版控制臺
登錄可觀測鏈路 OpenTelemetry 版控制臺,在左側導航欄單擊接入中心。
在開源框架區域單擊SkyWalking卡片。
在彈出的SkyWalking面板中選擇數據需要上報的地域。
說明初次接入的地域將會自動進行資源初始化。
選擇連接方式,然后復制接入點信息。
若您的服務部署在阿里云上,且所屬地域與選擇的接入地域一致,推薦使用阿里云內網方式,否則選擇公網方式。
舊版控制臺
在左側導航欄單擊集群配置,然后在右側頁面單擊接入點信息頁簽。
在頁面頂部選擇需要接入的地域,然后在集群信息區域打開顯示Token開關。
在客戶端采集工具區域單擊SkyWalking。
在相關信息列中,獲取接入點信息。
說明如果應用部署于阿里云生產環境,則選擇阿里云VPC網絡接入點,否則選擇公網接入點。
背景信息
SkyWalking是一款廣受歡迎的國產APM(Application Performance Monitoring,應用性能監控)產品,主要針對微服務、Cloud Native和容器化(Docker、Kubernetes、Mesos)架構的應用。SkyWalking的核心是一個分布式追蹤系統。
示例Demo
示例Demo倉庫地址:SkyWalking Demo
用SkyWalking為.NET應用埋點
安裝.NET Agent。
進入項目根目錄,并執行以下命令。
# 安裝.NET Agent dotnet add package SkyAPM.Agent.AspNetCore # 添加環境變量 export ASPNETCORE_HOSTINGSTARTUPASSEMBLIES=SkyAPM.Agent.AspNetCore export SKYWALKING__SERVICENAME=<service-name>
配置.NET Agent屬性。
生成skyapm.json文件。
方法1:使用skyapm命令行工具SkyAPM.DotNet.CLI生成屬性配置文件。
dotnet tool install -g SkyAPM.DotNet.CLI # 環境變量設置,/path/to需要替換成您的.dotnet路徑 export PATH="$PATH:/path/to/.dotnet/tools/" dotnet skyapm config <service-name> <endpoint>
方法2:直接在項目根目錄創建配置文件skyapm.json,并將以下內容復制到文件中。
{ "SkyWalking": { "ServiceName": <service-name>, "Namespace": "", "HeaderVersions": [ "sw8" ], "Sampling": { "SamplePer3Secs": -1, "Percentage": -1.0, "LogSqlParameterValue": false }, "Logging": { "Level": "Information", "FilePath": "logs/skyapm-{Date}.log" }, "Transport": { "Interval": 3000, "ProtocolVersion": "v8", "QueueSize": 30000, "BatchSize": 3000, "gRPC": { "Servers": <endpoint>, "Authentication": <token>, "Timeout": 100000, "ConnectTimeout": 100000, "ReportTimeout": 600000 } } } }
屬性說明:
必填項
<service-name>:服務名稱。
<endpoint>:前提條件中獲取的接入點。
<token>:前提條件中獲取的接入點鑒權令牌。
可選項
SamplePer3Secs:每三秒采樣數。
Percentage:采樣百分比,例如10%采樣則配置為10。
Logging:日志記錄與調試。Level表示日志級別,FilePath表示日志文件保存的位置以及文件名稱。
重啟.NET項目。
dotnet run
查看Agent本地日志記錄。運行項目時,skyapm-<date>.log日志文件會在項目logs文件夾下生成,如果數據上報不成功,可以參考log文件進行調試和修改。
參考信息
您可以參考以下命令從源碼構建。
# 下載源代碼
git clone https://github.com/SkyAPM/SkyAPM-dotnet.git
# 進入根目錄
cd SkyAPM-dotnet/
# 切換到目標tag
git checkout [tagname]
git submodule init
git submodule update
dotnet restore
dotnet build src/SkyApm.Transport.Grpc.Protocol
dotnet build skyapm-dotnet.sln
常見問題
無法使用dotnet-skyapm工具創建skyapm.json配置文件,報錯如下:
解決方法一(推薦):dotnet-skyapm的作用只有一個,即生成skyapm-dotnet agent的屬性配置文件,您可以直接手動創建一個skyapm.json,并按照上文中的方式配置屬性。
解決方法二:使用dotnet 6.0。