skywalking agent 本地缓存队列参数设置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了skywalking agent 本地缓存队列参数设置相关的知识,希望对你有一定的参考价值。

参考技术A skywalking是一款优秀的apm应用性能监控软件,属于Apache开源平台顶级项目,以java语言开发。它以jvm虚拟机agent方式随应用一块启动,通过无侵入自动代码埋点来实现应用接口的性能监控。

由于agent代理和监控的业务应用在一块启动,为尽可能地减小对原有业务应用的影响(内存占用、线程cpu资源使用等),skywalking agent的埋点数据收集以及上报,是以队列+异步线程的方式实现。当skywalking server端出现故障,内存队列被占满,新的收集数据将直接丢弃,不会继续往队列里添加,以避免占用过多内存资源对原有业务产生影响。通常情况下,保持agent默认参数配置即可,无需额外修改。针对一些需求特别的场景,用户可以通过参数自行定义,以便最大限度降低agent对原有业务的影响。

关于skywalking agent的队列模型-- 无锁环状队列。可以参考文章:https://www.jianshu.com/p/93845a3b4b42,这里不再赘述。

skywalking agent本地缓存队列由两部分组成: 缓存通道*通道队列
其中,
缓存通道大小:buffer.channel_size=$SW_BUFFER_CHANNEL_SIZE:5
缓存队列大小:buffer.buffer_size=$SW_BUFFER_BUFFER_SIZE:300
上面所列参数,等号左侧为k ey值,右侧为value值,其中value值中大写字符为环境变量,冒号:后面数字为默认值。即agent的默认缓存通道为5,默认每个通道对应队列大小为300。

我们可以通过以下两种方式实现默认参数的覆盖。

7、Skywalking的调试-本地调试Agent

参考技术A 通过执行以下指令,会发现项目中出现Skywalking-Agent目录

这个目录中的文件就是Skywalking-agent的运行时文件目录。测试应用的javaAgent参数 指定的jar文件是这里的skywalking-agent.jar;拷贝此文件的绝对路径,之后的配置javaAgent参数的步骤中会使用。

调试skywalking 的Agent的工程有两种方式:

新建一个项目,然后通过【File】【New】【Module from Existing Sources】选择Skywalking项目所在的目录,

如上图所示操作完成后,项目的效果如下图所示

测试工程的VM启动参数中指定skywalking项目中,skywalking-agent目录下的 skywalking-agent.jar目录

在待调试类中加入断点,比如Agent的入口类 SkyWalkingAgent 的 premain 方法中加入断点,idea中调试运行xxxTest工程,会看到执行到断点处。

以上是关于skywalking agent 本地缓存队列参数设置的主要内容,如果未能解决你的问题,请参考以下文章

skywalking agent配置

21、Skywalking的埋点-Agent动态采样控制

8、Skywalking的调试-远程调试Agent

skywalking

SkyWalking系列之skywalking go agent 使用问题

SpringCloudGateway使用Skywalking时日志打印traceId