peaksnail / pinpoint-node-agent

pinpoint agent for nodejs
Apache License 2.0
75 stars 26 forks source link

关于express的插件 #26

Open flashtintin opened 7 years ago

flashtintin commented 7 years ago

大大你好,项目里自带有几个插件,包括express的,请问要如何启用?还是说默认就已经生效了,需要怎么配置吗?

peaksnail commented 7 years ago

启动默认加载插件,目前pinpoint node agent 没有做插件的启动关闭配置,只要在plugins/core 或者plugins/user 下的插件,启动都会被默认加载

flashtintin commented 7 years ago

好的,谢谢,那如何设置transactionId、parentSpanId等一系列信息呢?现在我的express项目连接的后端希望我传这些参数过去,我看到日志打印出来是null

peaksnail commented 7 years ago

transactionId、parentSpanId 这些是agent自动生成,不需要设置,你只需要设置好 agent.id = node-app-id agent.application.name = node-app-name 即可,设置相关的可以参考README.md

flashtintin commented 7 years ago

我下一个节点是一个http服务器,我要怎么才能把metadata传递给他呢?headers?body?

peaksnail commented 7 years ago

最好是通过headers,将元数据传递给下一个节点, 可以参考下pinpoint node agent 插件开发,调用相关方法获取当前的transactionid和nextspanid以及相关数据的设置

同时可以了解下官网的相关插件开发说明naver pinpoing

jiaqifeng commented 7 years ago

nodejs应用通过http调用一个java应用(用了java的agent),现在能把span信息传给java吗?我试了一下,pinpoint的web上只能看到nodejs应用,看不到nodejs调用java应用.请问这是怎么回事?怎么才能显示这个调用链呢?是应该用http模块,还是其他的模块吗?

peaksnail commented 7 years ago

如果nodejs使用http和java应用通信的话,可以参考 sample4

具体需要做的就是,在nodejs端,需要在http headers添加以下字段 nextSpanId parentSpanId transactionId ENDPOINT ACCEPTORHOST REMOTEADDRESS 以便传给java应用,nodejs端也需要在span中存储以上字段

同时在java端,读取http headers以上字段,并记录下来

jiaqifeng commented 6 years ago

我看现在的插件里没有对http发request的wrap啊.

peaksnail commented 6 years ago

这里主要是在express或者koa上对相应的方法进行wrap,可以参考express插件中 wrap.js 文件

g0ne150 commented 6 years ago

@peaksnail 现在 koa 有对应的插件吗?

wunengbiao commented 5 years ago

你好,express插件可以监控Router吗??