Enable Symbol Database for Java
Join the Private Beta
Interested in an improved user experience when creating Dynamic Instrumentation probes? Join the Symbol Database private beta here.
Request AccessSymbol Database is a feature of Dynamic Instrumentation in private beta.
Requirements
Installation
To run your service with Dynamic Instrumentation enabled, and additionally enable Symbol Database uploads:
- Set the
-Ddd.symbol.database.upload.enabled
flag or the DD_SYMBOL_DATABASE_UPLOAD_ENABLED
environment variable to true
. - Set the
-Ddd.symbol.database.includes
flag or the DD_SYMBOL_DATABASE_INCLUDES
environment variable to your package prefix (for example, com.datadoghq
). The setting expects a comma-separated list, so you can add multiple prefixes. - Specify the
dd.service
and dd.version
Unified Service Tags.
Example service startup command:
java \
-javaagent:dd-java-agent.jar \
-Ddd.service=<YOUR_SERVICE> \
-Ddd.env=<YOUR_ENVIRONMENT> \
-Ddd.version=<YOUR_VERSION> \
-Ddd.dynamic.instrumentation.enabled=true \
-Ddd.symbol.database.upload.enabled=true \
-Ddd.symbol.database.includes=<YOUR_PACKAGE_PREFIX> \
-jar <YOUR_SERVICE>.jar <YOUR_SERVICE_FLAGS>
export DD_SERVICE=<YOUR_SERVICE>
export DD_ENV=<YOUR_ENV>
export DD_VERSION=<YOUR_VERSION>
export DD_DYNAMIC_INSTRUMENTATION_ENABLED=true
export DD_SYMBOL_DATABASE_UPLOAD_ENABLED=true
export DD_SYMBOL_DATABASE_INCLUDES=<YOUR_PACKAGE_PREFIX>
java \
-javaagent:dd-java-agent.jar \
-jar <YOUR_SERVICE>.jar <YOUR_SERVICE_FLAGS>
Note: The -javaagent
argument needs to be before -jar
, adding it as a JVM option rather than an application argument. For more information, see the Oracle documentation:
# Correct:
$ java -javaagent:dd-java-agent.jar ... -jar my-service.jar -more-flags
# Incorrect:
$ java -jar my-service.jar -javaagent:dd-java-agent.jar ...
- After starting your service with Symbol Database enabled, you can use Symbol Database’s IDE-like features on the APM > Dynamic Instrumentation page.