Skywalking部署+NetCore客户端
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Skywalking部署+NetCore客户端,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3983字,纯文字阅读大概需要6分钟。
内容图文
一、介绍
应用官方的说法:Apache SkyWalking是观察性分析平台和应用性能管理系统。提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案
GitHub地址:https://github.com/apache/skywalking
二、准备工作
Skywalking的架构分成三大块:
- agent:探针,主要与我们的api或者app之类的集成在一起,用于收集上传客户端信息,然后发送到collector。
- oap: 主要用于收集agent发送过来的信息,并持久化到相应存储中
- ui:展示收集在存储中的信息
这次主要会使用docker去部署oap
和ui
这2个模块(查看skywalking的github库会发现官方已经为我们准备好了相关的docker部署文件)。
我们需要准备2样东西即可:
- skywalking为我们准备的Docker相关文件:打开skywalking的github,下载master分之下的Docker文件夹。
- skywalking对应系统的压缩包:【点击这里下载】,下载完成后将压缩包名称改成
apache-skywalking-apm-bin
,因为在skywaking为我们准备的Docker配置文件中使用的是这个名称ENV DIST_NAME=apache-skywalking-apm-bin \
,COPY "$DIST_NAME.tar.gz" /
,后面没有带版本号。 - 将
apache-skywalking-apm-bin.tar.gz
分别拷贝到docker
文件夹的oap
、ui
中。
三、部署
这里我们使用docker文件夹中的docker-compose.yml
文件进行部署。查看其中内容,会看到需要我们先准备好2个docker镜像,一个是skywalking/oap
,一个是skywalking/ui
。
...
oap:
image: skywalking/oap
...
ui:
image: skywalking/ui
...
上一步中我们已经准备好了所有的东西,那这里其实只需要使用docker的builder命令来创建这2个镜像即可
- 这里需要注意下,需要修改一下
Dockerfile.oap
和Dockerfile.ui
文件里的内容
...
RUN set -ex; ...
mv "$DIST_NAME" skywalking; # 修改时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone
WORKDIR skywalking
...
生成oap
和ui
镜像
# oap
cd oap文件夹
docker build -t skywalking/oap -f Dockerfile.oap .
# ui
cd ui文件夹
docker build -t skywalking/ui -f Dockerfile.ui .
- 官方推荐使用
elasticsearch
作为存储,而且细心的同学可能在查看docker-compose.yml
的时候也发现了构建的时候确实使用的是elasticsearch
。但是在Dockerfile.oap
文件中定义的确实h2
作为存储,生成的镜像会不会有问题?其实不会的,在docker-compose.yml
中已经将镜像的环境变量申明为使用elasticsearch
了。
...
environment:
SW_STORAGE: elasticsearch
SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
...
执行完上面的命令之后,使用docker images
会看到已经生成了对应的镜像。
REPOSITORY TAG IMAGE ID CREATED SIZE
skywalking/ui latest d2a316c65e4b 18 seconds ago 787MB
skywalking/oap latest 4a5995eacbe8 49 seconds ago 839MB
接下来就很简单了,直接使用docker-compose
将所有容器启动起来就可以了
cd `docker-compose.yml所在文件夹`
docker-compose up -d
# 看到下面内容
Creating elasticsearch ... done
Creating oap ... done
Creating ui ... done
# 查看容器运行情况
docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------------------------
elasticsearch /usr/local/bin/docker-entr ... Up 0.0.0.0:9200->9200/tcp,
0.0.0.0:9300->9300/tcp
oap bash docker-entrypoint.sh Up 0.0.0.0:11800->11800/tcp, 1234/tcp,
0.0.0.0:12800->12800/tcp
ui bash docker-entrypoint.sh Up 0.0.0.0:8080->8080/tcp
使用浏览器打开127.0.0.1:8080
,默认账号密码都是admin
。
到这里,服务端相关的已经部署完毕。接下来就是客户端引入skywalking探针了。
四、客户端引入探针
这里我用NetCore
的webapi项目作为测试。
- 新建webapi项目
bash dotnet new webapi -n skywalkingdemo --no-https
- 添加探针程序包:
bash dotnet add package SkyAPM.Agent.AspNetCore
- 添加环境变量(直接修改
Properties/launchSettings.json
):json { ... "skywalkingdemo": { "commandName": "Project", "launchBrowser": true, "launchUrl": "api/values", "applicationUrl": "http://localhost:10009", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development", // 添加下面2个环境变量 "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore", "SKYWALKING__SERVICENAME": "hello" } } }
- 添加
skywalking
的配置文件(skyapm.json
),内容如下:json { "SkyWalking": { "ServiceName": "hello", "Namespace": "", "HeaderVersions": [ "sw6" ], "Sampling": { "SamplePer3Secs": -1, "Percentage": -1.0 }, "Logging": { "Level": "Information", "FilePath": "logs/skyapm-{Date}.log" }, "Transport": { "Interval": 3000, "ProtocolVersion": "v6", "QueueSize": 30000, "BatchSize": 3000, "gRPC": { "Servers": "localhost:11800", "Timeout": 10000, "ConnectTimeout": 10000, "ReportTimeout": 600000 } } } }
- 这里需要将文件设置成如果较新则复制(修改项目的
.csproj
文件),添加如下配置
<ItemGroup> <None Include="skyapm.json" CopyToOutputDirectory="PreserveNewest" /> </ItemGroup>
- 配置文件也可以通过安装skywalking的客户端工具生成配置文件
# 全局安装工具 dotnet tool install -g SkyAPM.DotNet.CLI # 生成skyapm配置文件 dotnet skyapm config hello 172.16.102.111:11800 # 这里的地址填的是skywalking的oap所在服务器的地址 # 执行命令之后会自动生成与上面配置文件内容一样的文件
- 这里需要将文件设置成如果较新则复制(修改项目的
- F5或者
dotnet run
运行项目即可看到在skywalking的管理页面里看到多了一个service
- 访问
localhost:10009/api/values
和localhost:10009/api/values/1
就会看到相关访问的记录以及统计信息。
原文:https://www.cnblogs.com/hzgod/p/10895248.html
内容总结
以上是互联网集市为您收集整理的Skywalking部署+NetCore客户端全部内容,希望文章能够帮你解决Skywalking部署+NetCore客户端所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。