这个是skyapm的github : https://github.com/SkyAPM/SkyAPM-dotnet
它依赖于skywalking 。
我是用docker去部署的。因为这样我的系统会干净一点。。。
关于skywalking 的部署,首先去安装 docker for windows 我的系统是windows
然后通过docker-compose去部署,具体的部署文件 可以上这个github
https://github.com/JaredTan95/skywalking-docker
version: '3.3' services: elasticsearch: image: wutang/elasticsearch-shanghai-zone:6.3.2 container_name: elasticsearch restart: always ports: - 9200:9200 - 9300:9300 environment: discovery.type: single-node oap: image: wutang/skywalking-oap:6.1.0 container_name: oap depends_on: - elasticsearch links: - elasticsearch restart: always ports: - 11800:11800 - 12800:12800 environment: SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200 volumes: - ../config:/apache-skywalking-apm-bin/config:ro ui: image: wutang/skywalking-ui:6.1.0 container_name: ui depends_on: - oap links: - oap restart: always ports: - 8080:8080 environment:
# 这里其实有点问题。 可以用上面的这个,也可以用下面的这个 # JAVA_OPTS: "-Dcollector.ribbon.listOfServers: oap:12800" collector.ribbon.listOfServers: oap:12800
docker-copomse up -d 启动后
需要等待一段时间,使用docker ps 查看oap,oap已经启动了30s以上,然后重启ui ,
docker restart ui
因为oap依赖于es es启动有点慢,所以oap一直会restart,ui依赖于oap,oap重启的时间,无法连接oap,报错后再也无法连接oap。所以需要重启ui。
http://localhost:8080 这个是默认的 ui界面
然后再监控端安装 SkyAPM.Agent.AspNetCore 这个nuget,
然后在 launchSettings.json 添加环境变量
"environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development", "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore", "SKYWALKING__SERVICENAME": "auth_api" //你要注册到skywalking的服务名 }
这个写完了之后,需要在应用根目录 打开 命令行工具(ps,cmd)
安装工具
dotnet tool install -g SkyAPM.DotNet.CLI
生成 skyapm.json
dotnet skyapm config sample_app localhost:11800
这里是你的服务名 默认 是11800端口 如果你改了端口那就自行修改。
如果你没有错误的话,会有log文件夹生成在你的应用根目录下。
如果在ui界面 没有生成查看到任何信息可以在log文件夹下,自行查看 日志,进行排错。
还有,如果你想要监控 ef数据库日志,你一定要吧数据库的驱动安装在应用中。