這個是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數據庫日志,你一定要吧數據庫的驅動安裝在應用中。