SkyWalking在.NET平台的简单使用

APM(Application Performance Management)应用性能管理

在目前这个微服务化的趋势下,需要一个监控web站点的工具,来方便我们进行站点运维工作。

如标题所示,这里主要记录SkyWalking在.NET平台下的简单使用(开发测试),可以收获开发小玩具一枚。

 

安装SkyWalking

docker-compose

既然是开发测试使用,那就怎么简单怎么来,用最简单的方式解决问题(偷懒)。

 

step.1  下载脚本

在这个页面可以找到SkyWalking的docker安装脚本,下载两个文件 .evn 和 docker-compose.yml

https://github.com/apache/skywalking/tree/master/docker

.env 文件是版本号,可以修改对应的版本号。SkyWalking用的ElasticSearch的大版本是7,不建议换成8。

这里的脚本是本是利用gcc构件镜像包,因为只是开发测试使用,我们可以换种方式来提高效率(偷懒),用DockerHub的镜像包。

 

step.2 拉取镜像

去DockerHub查询几个镜像的最新版本号,拉到本地docker里

docker pull apache/skywalking-oap-server:9.0.0
docker pull apache/skywalking-ui:9.0.0

elasticsearch-oss在DockerHub里是查询不到的,在docker-composer.yml文件中能看到,它这里采用的镜像是从这个docker.elastic.co地址拉取的,我们去这里搜索就行。

https://www.docker.elastic.co/r/elasticsearch/elasticsearch-oss

提示:

1.这里可以不拉取镜像 elasticsearch-oss,只需要填上版本号,就可以自动拉取到。

2.oss版本指的是没有X-pack模块,意思就是没有Elastic的一系列商业收费功能。

 

step.3 设置版本

然后修改.env文件,写上对应的镜像和版本号。

ES_VERSION=7.10.2

OAP_IMAGE=apache/skywalking-oap-server:9.0.0

UI_IMAGE=apache/skywalking-ui:9.0.0

 

step.4 一键启动

运行指令

docker-compose up

 当看到以下信息,则代表着SkyWalking-UI启动成功。

ui               | 2022-05-02 17:19:29.745  INFO 1 --- [           main] o.s.b.web.embedded.netty.NettyWebServer  : Netty started on port 8080
ui               | 2022-05-02 17:19:29.799  INFO 1 --- [           main] o.a.s.o.s.webapp.ApplicationStartUp      : Started ApplicationStartUp in 2.599 seconds (JVM running for 2.921)

 

step.5 检测启动

打开服务器的地址,访问9200端口,查看ElasticSearch的启动情况。

打开服务器的地址,访问8080端口,就能看到SkyWalking的面板。

SkyWalking的折腾到此结束,下面开始创建测试用的.NET程序。

 

接下来开始折腾.NET

.NET探针地址: https://github.com/SkyAPM/SkyAPM-dotnet

 

step.1 创建项目

在.NET6平台,创建一个WebApi项目。

 

step.2 安装nuget包

nuget安装SkyAPM.Agent.AspNetCore。

 

step.3 修改启动配置

修改launchSettings.json文件,设置程序的环境变量,可以通过写在json文件里。添加两个变量,ASPNETCORE_HOSTINGSTARTUPASSEMBLIES、SKYWALKING__SERVICENAME

注意点:

SKYWALKING__SERVICENAME,里面设置的是当前应用出现在SkyWalking上的名称。

SkyAPM.DotNet.CLI 是用来辅助生成配置的工具,不是必须安装的。

launchSettings.json
{
  "$schema": "http://json.schemastore.org/launchsettings.json",
  "profiles": {
    "SampleWebApi": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "swagger",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore",
        "SKYWALKING__SERVICENAME": "sample_app"
      },
      "applicationUrl": "https://localhost:42957;http://localhost:42956",
      "dotnetRunMessages": "true"
    }
  }
}

 

step.4 修改程序配置

修改appsettings.json文件,这里设置程序和SkyWalking-OAP的连接。

Servers里面填写服务器的地址,默认的是11800端口。

注意点:

配置里的ServiceName,要和环境变量SKYWALKING__SERVICENAME匹配上。

HeaderVersions指的是SkyWalking的版本,所以写的是sw9,

ProtocolVersion指的是数据格式版本,这里写v8才有用,意思就是还没更新完善,建议自己根据测试结果调整。

FilePath里有探针的日志,可以帮助排错使用。

appsettings.json
  "SkyWalking": {
    "ServiceName": "sample_app",
    "Namespace": "",
    "HeaderVersions": [
      "sw9"
    ],
    "Sampling": {
      "SamplePer3Secs": -1,
      "Percentage": -1.0
    },
    "Logging": {
      "Level": "Information",
      "FilePath": "logs\\skyapm-{Date}.log"
    },
    "Transport": {
      "Interval": 1000,
      "ProtocolVersion": "v8",
      "QueueSize": 1000,
      "BatchSize": 1000,
      "gRPC": {
        "Servers": "192.168.153.129:11800",
        "Timeout": 1000,
        "ConnectTimeout": 1000,
        "ReportTimeout": 1000,
        "Authentication": ""
      }
    }
  }

 

step.5 运行程序

运行程序后,点一下接口,然后到SkyWalking的面板上看,这时候已经可以看到有数据显示了。

好了,基本操作到此结束。

 

 

SkyWalking的拓扑图挺好看的,能够看到系统中各项目之间的调用关系。在微服务趋势的现在是刚需。

posted @ 2022-05-03 01:58  妙蛙草  阅读(1436)  评论(0编辑  收藏  举报