SkyWalking+.NET5初体验

SkyWalking+.NET5初体验

准备

安装SkyWalkingAPM

.NET5中WebApi使用

创建Demo1
  • 首先我们可以安装一下SkyAPM.Dotnet.CLI,主要是后面创建skyapm.json可以通过命令方便的创建它

    dotnet tool install -g SkyAPM.DotNet.CLI
    
  • 打开vs2019,先创建一个WebApi项目

  • 安装Nuget包,SkyAPM.Agent.AspNetCore,您也可以通过.NET CLI、PackageReference、程序包管理器控制台、图形界面搜索安装

    这里以程序包管理器控制台安装为例

    Install-Package SkyAPM.Agent.AspNetCore -Version 2.0.1
    

  • 项目创建skyapm.json文件,此时刚刚安装的SkyAPM.Dotnet.CLI就派上用场了,打开终端后,执行下面的命令,执行成功可以在项目根目录有skyapm.json文件

    # WebApmDemo1是ServiceName,后面的ip地址是skyapm服务的地址,端口号可以在skyapm安装目录中config/application.yml找到
    dotnet skyapm config WebApmDemo1 192.168.1.213:11800
    

  • 配置一下launchSettings.json

    "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore",
    "SKYWALKING__SERVICENAME": "WebApmDemo1"
    

  • 然后运行项目,请求一下您的api接口

  • 我们再去http://localhost:8080刷新查看一下,此时可以看到有数据了

参照Demo1创建过程Demo2的webapi项目
  • Demo2创建完成如下

  • 创建完成Demo2后,我们在Demo1创建一个HttpClient请求Demo2的api

  • 首先我们在Demo1中的Startup类中ConfigureServices方法中添加服务注册

    public void ConfigureServices(IServiceCollection services)
            {
                services.AddControllers();
                services.AddHttpClient();//添加这行代码
            }
    
  • 然后创建一个控制器,注入一下IHttpClientFactory,创建一个http请求Demo2的api,代码如下

    namespace WebApmDemo1.Controllers
    {
        [Route("api/[controller]")]
        [ApiController]
        public class HomeController : ControllerBase
        {
            private readonly IHttpClientFactory _httpClient;
    
            public HomeController(IHttpClientFactory httpClient)
            {
                this._httpClient = httpClient;
            }
    
            [HttpGet]
            public async Task<IActionResult> Get()
            {
                //demo2的请求地址
                var url = "http://localhost:5001/api/Values/Detail?id=1";
    
                var client = _httpClient.CreateClient();
                var result = await client.GetStringAsync(url);
    
                return Content(result);
            }
        }
    }
    
  • 把两个项目运行起来,然后请求Demo1的api

  • 我们在http://localhost:8080查看一下请求是否有记录到

最后

​ 以上就是初体验的全部过程了,还有很多东西还在学习探索中。

posted @ 2022-08-07 11:57  深海空气  阅读(352)  评论(0编辑  收藏  举报