Akka中没有Play的新Relic异步跟踪

时间:2014-01-24 07:48:11

标签: scala akka newrelic

我有使用Akka库编写的应用程序,我想使用New Relic来监视它。我注意到,在Play应用程序的情况下,请求处理期间的所有异步操作都是properly handled,并且所有涉及的参与者都显示在Web事务跟踪中。

但是当我尝试使用custom java transaction traces来测试纯Akka应用程序时,我无法获得相同的结果,所有跟踪只包含一行doJob方法名称。代码如下:

case class NewRelicRequest(...) extends Request { ... }
case class NewRelicResponse(...) extends Response { ... }


class MyApiActor extends Actor {

  def receive = {
    case MyRequest(_) => doJob(...)
    case MyOtherRequest(_) => doOtherJob(...)
  }

  @Trace(dispatcher=true)
  private def doJob(...) {
    NewRelic.setRequestAndResponse(NewRelicRequest("/doJob"), NewRelicResponse(...))
    fooActor ! msg
  }

  @Trace(dispatcher=true)
  private def doOtherJob(...) {  
    NewRelic.setRequestAndResponse(NewRelicRequest("/doOtherJob"), NewRelicResponse(...))
    (barActor ? msg).pipeTo(sender)
  }

}

有人可以解释支持哪些情况,以及如何实现类似于我在Play应用中看到的异步跟踪?

0 个答案:

没有答案