.Net Core 商城微服務項目系列(十):使用SkyWalking構建調用鏈監控(2019-02-13 13:25)
阿新 • • 發佈:2019-02-28
分享圖片 部署 dap get time 發布 head ria 節點
SkyWalking的安裝和簡單使用已經在前面一篇介紹過了,本篇我們將在商城中添加SkyWalking構建調用鏈監控。
順帶一下怎麽把ES設置為Windows服務,cd到ES的bin文件夾,運行elasticsearch-service.bat install。
首先我們需要在每個服務裏通過NuGet引用SkyAPM.Agent.AspNetCore,完成之後我們添加配置文件skyapm.json,可以通過SkyWalking的腳本命令自動生成,也可以手動新建,這裏貼一下:
{ "SkyWalking": { "ServiceName": "MI.Web", "Namespace": "", "HeaderVersions": [ "sw6" ], "Sampling": { "SamplePer3Secs": -1, "Percentage": -1.0 }, "Logging": { "Level": "Information", "FilePath": "logs\\skyapm-{Date}.log" }, "Transport": { "Interval": 3000,"ProtocolVersion": "v6", "QueueSize": 30000, "BatchSize": 3000, "gRPC": { "Servers": "localhost:11800", "Timeout": 10000, "ConnectTimeout": 10000, "ReportTimeout": 600000 } } } }
需要註意的是gRPC的Servers需要指定SkyWalking的服務端地址,默認端口是11800,因為我部署在本地,所以寫的localhost,大家酌情修改。
然後編譯將項目發布到IIS,當然這個時候SkyWalking是不起作用的,我們需要在IIS中設置下環境變量,這裏設置環境變量有兩種方式:
(1)發布的文件裏會有web.config,我們需要在web.config中添加環境變量:
<?xml version="1.0" encoding="utf-8"?> <configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" /> </handlers> <aspNetCore processPath="dotnet" arguments=".\MI.Web.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout"> <environmentVariables> <environmentVariable name="ASPNETCORE_HOSTINGSTARTUPASSEMBLIES" value="SkyAPM.Agent.AspNetCore" /> <environmentVariable name="SKYWALKING__SERVICENAME" value="MI.Web" /> </environmentVariables> </aspNetCore> </system.webServer> </location> </configuration> <!--ProjectGuid: ad411527-fcc6-45bb-98e6-de8310002d81-->
圖中標藍的部分是我們需要配置的環境變量,SKYWALKING_SERVERNAME是應用名稱,會在UI裏顯示。
(2)通過IIS配置
選中相應項目,點擊配置編輯器
節點選擇圖中標記的,然後選中標記的選項,點擊最右邊的編輯項:
然後點擊添加,配置上面的兩個環境變量,通過IIS方式配置完成後web.config也會被自動修改:
OK,如果不出什麽意外到這裏我們就算配置完成了,啟動所有服務查看:
.Net Core 商城微服務項目系列(十):使用SkyWalking構建調用鏈監控(2019-02-13 13:25)