1

我花一些时间在 DynaTrace 上。它与跨 jvm 检测相关的功能给我留下了深刻的印象。简而言之,DynaTrace 能够使用一些统计信息来检测创建跟踪的 Java 代码。这不是什么新鲜事。有一个非常有趣的特性:当执行对外部 JVM 的调用时,DynaTrace 能够将这个新跟踪链接到调用者(即远程会话 bean、Web 服务、远程 RMI 等)。怎么可能?我无法想象如何实现此功能?有任何想法吗?

谢谢

4

2 回答 2

2

Dynatrace 实际上并不依赖来自 bean 的信息。正如您在问题中正确所说的那样 - 我们也在使用字节码检测,例如市场上的其他工具。我们检测某些框架的关键方法,例如:Servlet、Axis、JMS、JDBC ......请求以及其他 JVM 上的接收方。在发送端,我们附加了一个带有当前 PurePath ID 的附加 HTTP 标头。PurePath 是我们的专利技术。所以 - 每个 PurePath(=每笔交易)都有一个唯一的 ID。此 ID 随请求“旅行”,例如:我们将其作为 HTTP HEader 放在 HTTP 请求中。在接收端——你的第二个 JVM——我们检查 HTTP HEader,因此知道我们收集的所有数据都属于那个 PurePath。这使我们能够进行真正的端到端跟踪,而无需依赖诸如 Bean 之类的东西,也无需基于例如时间戳来关联这些数据:

说得通?如果您有更多问题,请告诉我。我还录制了一些视频并放到 YouTube 上来解释技术和产品本身:http ://bit.ly/dttutorials

于 2015-02-11T14:03:10.153 回答
0

此信息通常使用 MXBeans 提取。此类 bean 提供用于访问标准运行时信息的标准 API。类似地,此类应用程序经常扫描类加载器以查找特定类并通过硬编码访问提取相关信息。这就是为什么监控工具通常不支持不太流行的解决方案。

于 2014-12-23T08:09:42.647 回答