Pinpoint插件开发指南

你可以编写Pinpoint采样插件来扩展采样目标覆盖范围。

在进入插件开发之前,最好先查看由 pinpoint plugins记录的追踪数据。

如果你想看看,有一个来自第三方的fast auto pinpoint agent plugin generate tool可以用来创建一个简单的插件。


一、追踪数据

在Pinpoint中,一个transaction由一组Span组成。每个Span表示transaction经过的单个逻辑节点的一次追踪。

为了形象化,我们假设存在如下系统。

FrontEnd服务器接收来自用户的请求,然后将请求发送至BackEnd服务器,BackEnd服务器会查询一次数据库。

在这些节点中,我们假设只有FrontEnd和BackEnd服务器被Pinpoint Agent采样。


Pinpoint插件开发指南_第1张图片

当一个请求到达FrontEnd Server时,Pinpoint Agent生成一个新的transaction id并用它创建一个Span。

为了处理这个请求,FrontEnd Server接着调用BackEnd Server。

此时,Pinpoint Agent将transaction id(附加其它一些用于传播的值)注入到调用消息中。

当BackEnd Server接收到这个消息,它将从这个消息中提取transaction id(和其他值),并用它们创建一个新的Span。

结果,单个事务中的所有Span共享相同的transaction id。

Span记录重要的方法调用及其相关数据(参数、返回值等),然后将它们封装为类似调用堆栈表示形式的spanEvents。

Span本身及其每个SpanEvents表示一个方法调用。

Span和SpanEvent有许多字段,但是大多数字段由Pinpoint Agent在内部处理,大多数插件开发人员不需要关心它们。

对于这些字段,插件开发人员必须处理的信息如下。

你可能感兴趣的:(Pinpoint插件开发指南)