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


Skywalking接入.net core客戶端

Skywalking服務端的搭建前一篇已經介紹過了,本篇我們將在.net core客戶端接入探針,監控.net core應用。

一. 引入nuget包

自己新建一個webAPI項目或者拿以前的項目都行。在包管理器里面搜索nuget包:SkyAPM.Agent.AspNetCore,本次使用的是0.8.0版本

skyapm .net core nuget包.png

二. 添加環境變量

添加環境變量ASPNETCORE_HOSTINGSTARTUPASSEMBLIES=SkyAPM.Agent.AspNetCore,添加環境變量有以下幾種方式

  • 直接添加系統環境變量,這樣全部的項目都生效

    系統環境變量.png

  • 在項目中添加,可以在launchSettings.json或者是在啟動項配置里面添加,兩個效果都是一樣的

三. 添加配置文件

這里也有幾種添加配置的方式,從源碼中發現,配置的加載順序是先加載默認配置( 可以進入 AddSkyWalkingDefaultConfig 查看源碼,里面含 skywalking.json 所有默認配置項 ),然后加載 appsettings.json、skywalking.json,所有 skywalking.json 的默認配置完全可以先去掉,需要的時候再設置,更簡潔點其實我們並需要 skywalking.json ,只需要使用 appsettings.json 就可以。

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 CLI

dotnet tool install -g SkyWalking.DotNet.CLI

這一步安裝完成后,也可以選擇將.net core Agent到當前機器上(可選,后面寫怎么用)

dotnet skywalking install

這一步的安裝需要注意以下幾項:

  • 使用管理員權限運行 cmd
  • 必須切到 C 盤路徑下執行命令
  • 如果出現 “Access to the path ‘06806e6c49431d12b85aaa5db07b8705d5b317’ is denied” 錯誤,請刪除 “C:/Users/用戶名/AppData/Local/Temp/skywalking.agent.aspnetcore” 后,重新執行;

安裝可能會比較慢,但是一定要等到最終輸出SkyWalking .NET Core Agent was successfully installed 才代表成功

接下來就可以使用命令來生成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的功能來說已經完成夠用了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM