使用skywalking 监控 netcore 服务

  • 首先搭建skywalking环境(docker环境)参考https://www.cnblogs.com/xiao987334176/p/13530575.html
    • 安装es 
      #首先修改系统参数
      vim /etc/sysctl.conf
      
      #调整参数后保存
      vm.max_map_count=262144
      
      #刷新参数
      sysctl -p
      #首先启动 es 
      docker run -d --name=es7 
      -p 9200:9200 -p 9300:9300 
      -e "discovery.type=single-node" elasticsearch:7.5.1
      
      #等待30秒左右,查看docker日志,如果有出现
      "publish_address {172.17.0.2:9300}, bound_addresses {0.0.0.0:9300}"说明启动成功了。
      #创建持久化目录,并重启启动elasticsearch
      mkdir -p /data/elasticsearch
      docker cp es7:/usr/share/elasticsearch/data /data/elasticsearch/
      docker cp es7:/usr/share/elasticsearch/logs /data/elasticsearch/
      docker rm -f es7
      docker run -d --name=es7 
        --restart=always 
        -p 9200:9200 -p 9300:9300 
        -e "discovery.type=single-node" 
        -v /data/elasticsearch/data:/usr/share/elasticsearch/data 
        -v /data/elasticsearch/logs:/usr/share/elasticsearch/logs 
      elasticsearch:7.5.1
    • 安装oap
      #必须等es 启动之后再执行以下脚本
      
      docker run --name oap --restart always -d 
      --restart=always 
      -e TZ=Asia/Shanghai 
      -p 12800:12800 
      -p 11800:11800 
      --link es7:es7 
      -e SW_STORAGE=elasticsearch 
      -e SW_STORAGE_ES_CLUSTER_NODES=es7:9200 
      apache/skywalking-oap-server:6.6.0-es7
    • 安装skywalking-ui
      docker run -d --name skywalking-ui 
      --restart=always 
      -e TZ=Asia/Shanghai 
      -p 8088:8080 
      --link oap:oap 
      -e SW_OAP_ADDRESS=oap:12800 
      apache/skywalking-ui:6.6.0
  • 编写测试demo 基于netcore3.1 
    • 首先新建一个api
    • 添加nuget包 SkyAPM.Agent.AspNetCore  (这里选择的不是最新版  是8.0版本)
    • 添加环境变量
      "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore",
         "SKYWALKING__SERVICENAME": "Frontend"

    • 添加配置文件skyapm.json
      {
        "SkyWalking": {
          "ApplicationCode": "Frontend",
          "SpanLimitPerSegment": 300,
          "Sampling": {
            "SamplePer3Secs": -1
          },
          "Logging": {
            "Level": "Information",
            "FilePath": "logs\SkyWalking-{Date}.log"
          },
          "Transport": {
            "Interval": 3000,
            "PendingSegmentLimit": 30000,
            "PendingSegmentTimeout": 1000,
            "gRPC": {
              "Servers": "192.168.3.10:11800",
              "Timeout": 2000,
              "ConnectTimeout": 10000
            }
          }
        }
      }

    • 运行项目之后在skywalking部署环境查看如下  (我这里部署的是局域网3.10 环境)http://192.168.3.10:8088/trace
  • 一些注意的点
    • skywalking环境不要安装最新版本。最新版本的探针貌似nuget包还不支持
    • api的nuget包版本也不要使用最新的1.0.0 我这边使用的是0.8.0
原文地址:https://www.cnblogs.com/chongyao/p/14000593.html