1

我正在尝试在我的 Spark 应用程序中使用 Kamon JDBC Kanela 代理来检测 JDBC 调用。

-javaagent:kanela-agent-1.0.1.jar当我从 JAR 运行应用程序时,我能够通过在命令行上传递成功地在非火花测试应用程序中检测 JDBC 调用。当我这样做时,我会在控制台中看到 Kanela 横幅显示,并且可以看到当出现 SQL 错误时,我的失败语句处理器被调用。

根据我的研究,我应该能够将 javaagent 注入到 Spark 应用程序的执行程序中,方法是将以下内容传递给 spark-submit: --conf "spark.executor.extraJavaOptions=-javaagent:kanela-agent-1.0.1.jar"。然而,当我这样做时,虽然 Kamon 横幅在我调用 Kamon.init() 时显示在控制台上,但当出现 SQL 错误时,我的失败语句处理器不会被调用。

我想知道的事情:

  1. spark-jdbc 进行这些 JDBC 调用的方式是否会阻止 javaagent“看到”它们?
  2. 我对 Kamon.init() 的调用是否仅适用于 Spark 驱动程序中的代码,而不适用于执行程序?
  3. 您能想到的任何其他原因会阻止它起作用吗?
4

0 回答 0