Dor*_*dus 6 java javaagents gradle open-telemetry
对于需要 javaagent(例如 OpenTelemetry)的系统,文档通常以“从此 URL 下载代理 JAR 并将其添加到命令行”开头。在使用 Maven Central 很好地处理库依赖关系并具有稳定版本控制等的世界中,相比之下,“下载 JAR”方法似乎原始且不安全。
在使用 Gradle 构建的项目中获取 javaagent 库的最佳实践是什么?“下载这个 jar”真的是当前最先进的技术吗?
我现在对 OpenTelemetry 特别感兴趣。如果有一个只适用于 OpenTelemetry 的答案(例如 Gradle 插件),我会洗耳恭听。
根据我所做的研究,有一个gradle 插件专门用于将 Maven 依赖项附加为 javaagent。
引用自插件github存储库:
该 Gradle 插件与 Gradle 应用程序插件紧密集成,使您可以轻松地通过 Gradle 构建应用程序!只需注册
javaagent-application插件,然后在依赖项块中指定您想要附加的 javaagent
otel java 代理的示例用法可以在此处的同一存储库中找到
plugins {
id("com.ryandens.javaagent.example.java-application-conventions")
id("com.ryandens.javaagent-otel-modification")
id("com.ryandens.javaagent-application")
}
dependencies {
otel("io.opentelemetry.javaagent:opentelemetry-javaagent:1.13.1")
otelExtension("io.opentelemetry.contrib:opentelemetry-samplers:1.13.0-alpha")
otelInstrumentation(project(":custom-instrumentation", "shadow"))
}
application {
// Define the main class for the application.
mainClass.set("com.ryandens.javaagent.example.App")
applicationDefaultJvmArgs = listOf("-Dotel.javaagent.debug=true", "-Dotel.metrics.exporter=none")
}
/*
see https://github.com/johnrengelman/shadow/issues/713
Currently, tasks that consume the output of the extendedAgent shadowJar task need to be made aware of
the implicit dependency (https://docs.gradle.org/7.4.2/userguide/validation_problems.html#implicit_dependency)
due to an issue with the shadowJar plugin
*/
setOf(tasks.distTar, tasks.distZip).forEach {
it.configure {
dependsOn(tasks.extendedAgent)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1288 次 |
| 最近记录: |