0

我最近开始探索 Skywalking 作为 APM 工具。

我有兴趣查看应用层的方法/函数所花费的时间。基本上是 JAVA 应用程序的一种工具。使用 Skywalking,我只得到 3 个具有一个根函数和两个 DB 执行函数的跨度(方法)。我尝试添加属性

'plugin.jdkthreading.threading_class_prefixes=${THREADING_CLASS_PREFIX=my.package}'

但这很有效。我仍然可以在仪表板中看到被命中的 API 的 3 个跨度。在 Profile 功能下,我可以获得线程堆栈。但我只对热点方法感兴趣。我在配置中缺少什么吗?

我希望在跟踪中检测和捕获以特定模式开头的类。我怎样才能做到这一点?或者我可以开始使用其他任何开源 APM 工具吗?

4

1 回答 1

1

使用时plugin.jdkthreading.threading_class_prefixes=${THREADING_CLASS_PREFIX:my.package},请确保将jdk-threading-plugin下文件夹移动optional-pluginsplugins文件夹中,因为jdk-threading-plugin默认禁用,您需要将其移动到plugins才能启用它。

在热点方法方面,您有两种方法:

@Trace
@Tag(key = "tag1", value = "arg[0]")
@Tag(key = "tag2", value = "arg[1]")
@Tag(key = "username", value = "returnedObj.username")
@Tag(key = "age", value = "returnedObj.age")
public User methodYouWantToTrace(String param1, String param2) {
    // ActiveSpan.setOperationName("Customize your own operation name, if this is an entry span, this would be an endpoint name");
    // ...
}
于 2021-06-21T10:13:39.070 回答