当前位置: 首页 > 网络应用技术

天行者自定义线程池监视GRPC线程池

时间:2023-03-07 11:20:16 网络应用技术

  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