Skywalking Java Avent 8.10.0添加插件:https://skywalking.apache.org/release-skywalking-skywalking-java-8-10-0/
如果我们想为我们的业务添加一些线程池的监视,那么Skywalking还提供了扩展点。
该官方文档描述了客户端(即应用程序)如何将数据上传到Skywalking服务器。
https://skywalking.apache.org/docs/skywalking-java/v8.10.0/en/setup/service-agent/ agent/java-application-tool-toolkit-toolkit-meter/
通过查看Tomcat线程池的正式实现,我们可以看到主要API主要使用。我们可以在自己的组件中使用类似的写作进行模拟。
从tomcat线程池的拦截源代码来看,实际上,核心原理是在正确的位置拦截Java线程池对象,然后通过调用线程池对象的getxxxssize获得相应的状态,然后报告它。
因为我在这里的需求是在GRPC运行时监视业务线程池,所以首先,我需要首先编写客户插头,以获取GRPC业务线程池并执行状态监视和调用。我的源代码如下:
定义拦截类。我是serverimpl.start(即grpc服务启动并获得线程池:
在我的拦截类中,ServerImpl类中的执行属性是通过反射获得的。此属性是业务线程池,然后将其注册到MeterFactory.gauge API,
请注意这两个变量,前者表示天行中的名称,后者代表标签标签的名称。这里
定义此之后,请注意将插件的包装插件到代理的插件目录中,然后启动项目。
请注意,插件编写了报告过程后,仍需要配置服务器,否则无法加载报告的数据。
https://skywalking.apache.org/docs/main/eett/setup/backend/backend-meter/
这意味着,如果您需要收集更多信息,则需要将其配置为米。启动时,天行者将加载内容:
Skywalking已在下面的4个集合中构建。根据线程池添加GRPC。
线程池内容如下:
我定义的GRPC线程池的内容如下。实际上,我复制一个副本,然后在MetricsRules中修改名称:
最后,您需要将我们自定义的grpcthreadpool.yaml添加到屏幕截图中的application.yaml的meteranalyzractivefiles。
(实际上,此步骤不需要添加到新文件中。我们可以在threadpool.yaml中定义自己的线程信息):
最后,重新启动您的天空行走后端和应用程序,以在Skywalking提供的界面中进行配置:
单击普通服务,然后单击您的服务名称以输入下一页:
输入实例页面后,单击相应的实例:
然后输入JVM的选项卡,打开编辑模式,即右上角的蓝色按钮,默认值为灰色,单击为蓝色,然后单击左侧的左键,然后单击添加小部件
然后单击图标右上方的三个点,然后单击“ pop -up”按钮。在POP -UP页面中,指示器是要点,输入GRPC关键字,您可以看到我们之前定义的名称:
选择指示灯,然后单击以选择图形样式,然后输入面板的自定义名称,最后单击以确认:
最后,在客户端报告数据后,面板将实时显示数据:
参考本文:https://developpaper.com/skywalking-customized/
原始:https://juejin.cn/post/7100817655623319589