skywalking-02-skywalking接入.net core客户端

Skywalking接入.net core客户端

Skywalking服务端的搭建前一篇已经介绍过了,本篇咱们将在.net core客户端接入探针,监控.net core应用。web

一. 引入nuget包

本身新建一个webAPI项目或者拿之前的项目都行。在包管理器里面搜索nuget包:SkyAPM.Agent.AspNetCore,本次使用的是0.8.0版本sql

skyapm .net core nuget包.png

二. 添加环境变量

添加环境变量ASPNETCORE_HOSTINGSTARTUPASSEMBLIES=SkyAPM.Agent.AspNetCore,添加环境变量有如下几种方式json

  • 直接添加系统环境变量,这样所有的项目都生效c#

    系统环境变量.png

  • 在项目中添加,能够在launchSettings.json或者是在启动项配置里面添加,两个效果都是同样的bash

三. 添加配置文件

这里也有几种添加配置的方式,从源码中发现,配置的加载顺序是先加载默认配置( 能够进入 AddSkyWalkingDefaultConfig 查看源码,里面含 skywalking.json 全部默认配置项 ),而后加载 appsettings.json、skywalking.json,全部 skywalking.json 的默认配置彻底能够先去掉,须要的时候再设置,更简洁点其实咱们并须要 skywalking.json ,只须要使用 appsettings.json 就能够。app

builder.AddSkyWalkingDefaultConfig();

builder.AddJsonFile("appsettings.json", true).AddJsonFile($"appsettings.{environmentProvider.EnvironmentName}.json", true);

builder.AddJsonFile("skywalking.json", true).AddJsonFile($"skywalking.{environmentProvider.EnvironmentName}.json", true);

1. 经过SkyWalking的脚本命令自动生成

首先经过如下命令安装 SkyWalking DotNet CLIide

dotnet tool install -g SkyWalking.DotNet.CLI

这一步安装完成后,也能够选择将.net core Agent到当前机器上(可选,后面写怎么用)ui

dotnet skywalking install

这一步的安装须要注意如下几项:spa

  • 使用管理员权限运行 cmd
  • 必须切到 C 盘路径下执行命令
  • 若是出现 “Access to the path ‘06806e6c49431d12b85aaa5db07b8705d5b317’ is denied” 错误,请删除 “C:/Users/用户名/AppData/Local/Temp/skywalking.agent.aspnetcore” 后,从新执行;

安装可能会比较慢,可是必定要等到最终输出SkyWalking .NET Core Agent was successfully installed 才表明成功.net

接下来就可使用命令来生成skywalking.json配置文件

dotnet skywalking config [application_code] [collector_server]
{
  "SkyWalking": {
    "ServiceName": "your_service_name",
    "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
      }
    }
  }
}

2. 直接使用.net core的配置文件appsettings.json

这种方式就比较简单了,直接在项目里的appsettings.json里加入skywalking的配置节点就行

"SkyWalking": {
    //服务名
    "ServiceName": "Aggreg_2",
    "Logging": {
      "Level": "Information",
      "FilePath": "logs\\skyapm-{Date}.log"
    },
    "Transport": {
      "gRPC": {
        //采集的地址
        "Servers": "192.168.1.219:11800"
      }
    }
  }

四. 启动服务

启动服务后,能够在项目文件下的log文件夹里面看到按照格式生成的日志

生成日志.png

看到一下信息就表示接入成功了

日志.png

接下来能够请求几回,去UI界面看效果了,从图中能够看到服务名,请求都有了

效果图.png

五. 扩展

目前安装.net core Agent是经过引入nuget包,若是服务比较多的话,每个服务都须要引入探针,因为如今skywalking的发展很是迅速,若是到时候升级的话须要更换全部服务的nuget包,很是麻烦,因此这个时候就能够用到以前提到过的安装本地探针的方式来接入.net core应用(这个方式目前还没试过,不过参考了相关博客),赞成配置好环境变量和配置文件后,运行如下命令便可

set DOTNET_ADDITIONAL_DEPS=%PROGRAMFILES%\dotnet\x64\additionalDeps\skywalking.agent.aspnetcore

dotnet run

固然,如今skywalking发展很是迅速,不少组件也会慢慢支持,不过目前就查询接口和sql的功能来讲已经完成够用了。

相关文章
相关标签/搜索