SigNoz Cloud - This page is relevant for SigNoz Cloud editions.
Self-Host - This page is relevant for self-hosted SigNoz editions.

JBoss / WildFly OpenTelemetry Instrumentation

This guide walks you through instrumenting your JBoss EAP or WildFly application server with OpenTelemetry and sending traces to SigNoz. JBoss and WildFly use standalone.conf (Linux/Mac) or standalone.conf.bat (Windows) to configure JVM options, making it straightforward to attach the OpenTelemetry Java agent.

Prerequisites

  • Java 8 or higher
  • JBoss EAP or WildFly installed and configured
  • A SigNoz Cloud account or self-hosted SigNoz instance

Send traces to SigNoz

Step 1. Download the OpenTelemetry Java agent

wget -P /opt/jboss/lib/ https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/latest/download/opentelemetry-javaagent.jar

Step 2. Edit standalone.conf

Open your JBoss/WildFly configuration file:

  • JBoss EAP: /opt/jboss-eap-7.x/bin/standalone.conf
  • WildFly: /opt/wildfly/bin/standalone.conf

Add the following lines:

JAVA_OPTS="$JAVA_OPTS -javaagent:/opt/jboss/lib/opentelemetry-javaagent.jar"
JAVA_OPTS="$JAVA_OPTS -Dotel.service.name=<service-name>"
JAVA_OPTS="$JAVA_OPTS -Dotel.exporter.otlp.endpoint=https://ingest.<region>.signoz.cloud:443"
JAVA_OPTS="$JAVA_OPTS -Dotel.exporter.otlp.headers=signoz-ingestion-key=<your-ingestion-key>"

Replace the following:

  • <region>: Your SigNoz Cloud region (us, eu, or in). See endpoints.
  • <your-ingestion-key>: Your SigNoz ingestion key.
  • <service-name>: A descriptive name for your service (e.g., jboss-app).

Step 3. Restart JBoss/WildFly

# For JBoss EAP
/opt/jboss-eap-7.x/bin/standalone.sh

# For WildFly
/opt/wildfly/bin/standalone.sh

Validate

With JBoss/WildFly running, verify traces are being sent to SigNoz:

  1. Deploy an application to JBoss/WildFly and make a few requests to its endpoints.
  2. In SigNoz, open the Services tab and click Refresh. Your application should appear.
  3. Go to the Traces tab to see your application's traces.

Troubleshooting

Traces not showing up in SigNoz?

Verify standalone.conf changes:

Check that your JAVA_OPTS modifications are being loaded:

ps aux | grep java | grep javaagent

You should see the -javaagent flag in the process arguments.

Enable debug logging:

Add the following to standalone.conf:

JAVA_OPTS="$JAVA_OPTS -Dotel.javaagent.debug=true"

Then restart JBoss and check the logs for OpenTelemetry output.

Test connectivity:

curl -v https://ingest.<region>.signoz.cloud:443/v1/traces

Agent not loading?

Make sure the agent JAR path is correct and the file exists:

ls -la /opt/jboss/lib/opentelemetry-javaagent.jar

Verify the path in standalone.conf matches the actual location.

JBoss fails to start?

Check for syntax errors in standalone.conf. Each JAVA_OPTS line should be on its own line without trailing spaces or special characters.

Review the JBoss server log:

tail -f /opt/jboss-eap-7.x/standalone/log/server.log

Domain mode configuration

If running JBoss in domain mode, configure JAVA_OPTS in domain.conf instead of standalone.conf, or set JVM options in the domain controller's host configuration.

Configuring the agent (Optional)

What can you configure?

The Java agent auto-instruments most libraries out of the box. Configuration lets you fine-tune what gets captured and how traces are exported.

Why configure?

  • Reduce noise — Disable instrumentation for internal health checks or chatty libraries
  • Control costs — Sample a percentage of traces instead of capturing everything
  • Add context — Tag traces with environment, version, or team info for easier filtering

Common options

Add these to standalone.conf:

Disable specific instrumentations:

JAVA_OPTS="$JAVA_OPTS -Dotel.instrumentation.jdbc.enabled=false"

Sample traces:

JAVA_OPTS="$JAVA_OPTS -Dotel.traces.sampler=parentbased_traceidratio"
JAVA_OPTS="$JAVA_OPTS -Dotel.traces.sampler.arg=0.1"  # Sample 10%

Add resource attributes:

JAVA_OPTS="$JAVA_OPTS -Dotel.resource.attributes=service.name=my-app,deployment.environment=production"

See the full configuration reference for all available options.

Next steps

Related resources:

Last updated: January 3, 2026

Edit on GitHub

Was this page helpful?