@Traced does not work under Wildfly

Kibana version:
Elasticsearch version:
APM Server version:
APM Agent language and version:
Browser version:

Original install method (e.g. download page, yum, deb, from source, etc.) and version:

Fresh install or upgraded from other version?

Is there anything special in your setup?

Description of the problem including expected versus actual behavior. Please include screenshots (if relevant):

I'm not able to use @Traced in my Wildfly 19 app. Ok, not exactly mine - it's a sample app from Wildfly - https://github.com/wildfly/quickstart/tree/master/ejb-in-war just added @Traced here and there (https://github.com/wildfly/quickstart/blob/master/ejb-in-war/src/main/java/org/jboss/as/quickstarts/ejbinwar/ejb/GreeterEJB.java sayHello method, to be exact).
I can see JSF traces in Kibana (splitted into JSF execute and JSF Render phase) which is fine but I don't see sayHello span, that I expected to see.

I'm able to create a span manually in the very same place which works absolutely fine but I would love to use @Traced instead.

Steps to reproduce:

  1. clone https://github.com/wildfly/quickstart/tree/master/ejb-in-war
  2. add @Traced annotation to GreeterEJB.sayHello
  3. mvn package and deploy to WF 19


export JAVA_OPTS="$JAVA_OPTS -javaagent:elastic-apm-agent-1.19.0.jar"
export JAVA_OPTS="$JAVA_OPTS -Delastic.apm.service_name=my-cool-service"
export JAVA_OPTS="$JAVA_OPTS -Delastic.apm.application_packages=org.jboss.as.quickstarts.ejbinwar"
export JAVA_OPTS="$JAVA_OPTS -Delastic.apm.server_urls=http://localhost:8200"

Hm, that's strange. Config looks ok at a first glance. Could you share your full debug logs from the startup until after the first invocation?

WF startup logs and Elastic debug:

I just tried it out in a standalone application to be sure and it works for me in version 1.19.0.

Can you make sure that you're indeed using the co.elastic.apm.api.Traced annotation and that the apm-agent-api module is available on the classpath? Does the @CaptureSpan annotation work for you?

@Traced in standalone app works for me too.

As for Wildfly - I do confirm that I use co.elastic.apm.api.Traced. Also tried @CaptureSpan and @CaptureTransaction unfortunately with no luck. Apm-agent-api is part of ear (manual span creation works fine).
Also tried to add a Wildfly's global module (http://docs.wildfly.org/19/Developer_Guide.html#global-modules) that would include apm-agent-api, to be sure that Traced is accessible, still no luck.

Hi there,
good news, or just a news - I made it work by changing package from org.jboss.as.quickstarts to org.jboss.asas.quickstarts. Is there something wrong with 'org.jboss.as' being part of a package name? Is it anyhow protected by WF?


Ah, right.. We're not instrumenting org.jboss.as by default to shave off a few seconds of overhead on startup.

See also