一、docker部署elasticsearch
docker run -d -p 9200:9200 -p 9300:9300 --name es -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms128m -Xmx256m" elasticsearch:7.12.0
二、docker部署skywalking
1、部署skywalking-oap-server(注意:ip请改成自己的ip).
docker run --name skywalking-oap \
--restart always \
-p 11800:11800 -p 12800:12800 -d \
-e TZ=Asia/Shanghai \
-e SW_ES_USER= \
-e SW_ES_PASSWORD= \
-e SW_STORAGE=elasticsearch \
-e SW_STORAGE_ES_CLUSTER_NODES=192.168.1.22:9200 \
-v /etc/localtime:/etc/localtime:ro \
apache/skywalking-oap-server:9.3.0
2、部署skywalking-ui
docker run -d \
--name skywalking-ui \
--restart always \
-p 8080:8080 \
--link skywalking-oap:skywalking-oap \
-e TZ=Asia/Shanghai \
-e SW_OAP_ADDRESS=http://skywalking-oap:12800 \
-v /etc/localtime:/etc/localtime:ro \
apache/skywalking-ui:9.3.0
部署后可以看到容器正常运行

浏览打开ip:8080端口可以看到

三、创建net6 webapi项目并做skywalking相关配置
1、项目根目录添加skyapm.json文件,内容:
{
"SkyWalking": {
"ServiceName": "myservice",
"Namespace": "",
"HeaderVersions": [
"sw8"
],
"Sampling": {
"SamplePer3Secs": -1,
"Percentage": -1.0
},
"Logging": {
"Level": "Information",
"FilePath": "logs\\skyapm-{Date}.log"
},
"Transport": {
"Interval": 3000,
"ProtocolVersion": "v8",
"QueueSize": 30000,
"BatchSize": 3000,
"gRPC": {
"Servers": "192.168.1.22:11800",
"Timeout": 10000,
"ConnectTimeout": 10000,
"ReportTimeout": 600000,
"Authentication": ""
}
}
}
}
2、Program.cs中添加
Environment.SetEnvironmentVariable("ASPNETCORE_HOSTINGSTARTUPASSEMBLIES", "SkyAPM.Agent.AspNetCore");
Environment.SetEnvironmentVariable("SKYWALKING__SERVICENAME", "myservice");
3、launchSettings.json中添加(其中myservice是自己定义的名称,用于在skywalking中显示)
"ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore;Common",
"SKYWALKING__SERVICENAME": "myservice"
四、部署示例服务
1、发布项目,windows上用dockerdesktop生成镜像,保存镜像到本地文件

2、镜像文件传到centos服务器,加载镜像

3、启动swdemo容器
docker run -d --name swdemo -p 8860:80 --restart always swdemo:1.0
4、再次打开浏览器查看(由于数据采集有延迟可以稍等一下看)

5、访问下项目接口,就可以在skywalking中看到数据


五、示例代码
https://gitee.com/dayang1415/skywalking-demo