.net core 接入 skywalking
1 创建 webapi 项目 (.net 5.0)
2 在项目中添加Skywalking配置文件 skyapm.json 文件,内容参考如下:
{ "SkyWalking": { "ServiceName": "WebApi_Skywalking", "Namespace": "", "HeaderVersions": [ "sw8" ], "Sampling": { "SamplePer3Secs": -1, "Percentage": -1.0 }, "Logging": { "Level": "Information", "FilePath": "logs\\skyapm-{Date}.log" }, "Transport": { "Interval": 3000, "ProtocolVersion": "v8", "QueueSize": 30000, "BatchSize": 3000, "gRPC": { "Servers": "175.178.218.96:11800", "Timeout": 10000, "ConnectTimeout": 10000, "ReportTimeout": 600000, "Authentication": "" } } } }
其中的 ServiceName 是服务名
其中的 Servers 是部署skywalking时 skywalking-oap-server 配置的地址加端口
设置 skyapm.json 的文件属性
3 在项目的 launchSettings.json 添加2个环境变量
"ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore", // 必须配置 "SKYWALKING__SERVICENAME": "WebApi_Skywalking" // 需要与 skyapm.json 配置的服务名一致
删除 launchSettings.json 的多余启动项,改成添加了skywalking的环境变量启动,配置完环境变量后 launchSettings.json 如下
{ "profiles": { "WebApi_Skywalking": { "commandName": "Project", "dotnetRunMessages": "true", "launchBrowser": true, "launchUrl": "swagger", "applicationUrl": "http://localhost:5000", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development", "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore", // 必须配置 "SKYWALKING__SERVICENAME": "WebApi_Skywalking" // 需要与 skyapm.json 配置的服务名一致 } } } }
launchSettings.json 复制到输出目录选择为 “如果较新则复制”
4 添加 SkyAPM.Agent.AspNetCore 包 然后在 Startup.cs 中的 ConfigureServices 添加注册代码
services.AddSkyApmExtensions(); // 在 Startup.cs 中的 ConfigureServices 添加注册代码 添加Skywalking相关配置
注意 SkyAPM.Agent.AspNetCore 包的版本和 skywalking的版本,目前使用的 版本是 SkyAPM.Agent.AspNetCore 1.3.0,
skywalking 服务器部署的脚本有对应的skywalking组件的版本号
https://www.cnblogs.com/tomorrow0/p/16351368.html
5 测试
使用 launchSettins.json 配置了 skywalking 环境变量来启动方式来启动项目
运行项目,调用一个接口,这时查看 skywalking ui 界面
备注如果发现没有效果:可以查看项目的 Logs 文件夹产生的日志