diff --git a/pom.xml b/pom.xml index 50d9861..4ccba1d 100644 --- a/pom.xml +++ b/pom.xml @@ -180,6 +180,9 @@ implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> com.datadog.ServerlessCompatAgent + ${project.artifactId} + ${project.version} + ${project.groupId} diff --git a/src/main/java/com/datadog/ServerlessCompatAgent.java b/src/main/java/com/datadog/ServerlessCompatAgent.java index f3a67e7..cfb5f3c 100644 --- a/src/main/java/com/datadog/ServerlessCompatAgent.java +++ b/src/main/java/com/datadog/ServerlessCompatAgent.java @@ -23,6 +23,20 @@ public static boolean isLinux() { return os.contains("linux"); } + public static String setPackageVersion() { + String packageVersion; + + try { + packageVersion = ServerlessCompatAgent.class.getPackage().getImplementationVersion(); + } + catch (Exception e) { + log.error("Unable to identify package version", e); + packageVersion = "unknown"; + } + + return packageVersion == null ? "unknown" : packageVersion; + } + public static void premain(String agentArgs, Instrumentation instrumentation) { final String fileName; final String tempDirPath; @@ -66,7 +80,11 @@ public static void premain(String agentArgs, Instrumentation instrumentation) { executableFile = userExecutableFile; } + String packageVersion = setPackageVersion(); + log.debug("Found package version {}", packageVersion); + ProcessBuilder processBuilder = new ProcessBuilder(executableFile.getAbsolutePath()); + processBuilder.environment().put("DD_SERVERLESS_COMPAT_VERSION", packageVersion); processBuilder.inheritIO(); processBuilder.start(); } catch (Exception e) {