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的功能來講已經完成夠用了。

相關文章
相關標籤/搜索