# Configuring Quarkus to export OpenTelemetry signals to Dynatrace

**URL:** <https://community.dynatrace.com/t/configuring-quarkus-to-export-opentelemetry-signals-to-dynatrace/50661>\
**Category:** Troubleshooting\
**Tags:** opentelemetry, quarkus\
**Created:** [March 14, 2025, 4:10pm UTC](https://community.dynatrace.com/t/configuring-quarkus-to-export-opentelemetry-signals-to-dynatrace/50661 "2025-03-14T16:10:28Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![anton\_konikov](https://avatars.discourse-cdn.com/v4/letter/a/c68b51/32.png) [@anton\_konikov](https://community.dynatrace.com/u/anton_konikov)\
**Post date:** [March 14, 2025, 4:10pm UTC](https://community.dynatrace.com/t/configuring-quarkus-to-export-opentelemetry-signals-to-dynatrace/50661/1 "2025-03-14T16:10:28Z")

</div>

OpenTelemetry configuration of the Quarkus native application can be done by setting values in the&nbsp;`src/main/resources/application.properties` or via the environment variables.

#### Quarkus application is run on the host with OneAgent:

In case of deploying OA in the **classicFullstack** mode, you can export **traces** directly to the [OneAgent API endpoint](https://docs.dynatrace.com/docs/ingest-from/opentelemetry/getting-started/otlp-export#export-to-oneagent-traces-only). The configuration might look like in the following way:

- set the supported protocol:  
**app property:** `quarkus.otel.exporter.otlp.traces.protocol=http/protobuf`  
**env variable:** `QUARKUS_OTEL_EXPORTER_OTLP_TRACES_PROTOCOL=http/protobuf`
- then use one of the following URLs. However, please note that OA on the host accepts only **traces** , and when specified, generic endpoint metrics and logs will be rejected:
  - set endpoint for traces only:  
**app property:** `quarkus.otel.exporter.otlp.traces.endpoint=http://localhost:14499/otlp/v1/traces`  
**env variable:** &nbsp;`QUARKUS_OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:14499/otlp/v1/traces`
  - generic endpoint&nbsp;for OTel signals as Quarkus, then substitute the exact URL for traces or metrics:  
**app property:** `quarkus.otel.exporter.otlp.endpoint=http://localhost:14499/otlp`  
**env variable:** &nbsp;`QUARKUS_OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:14499/otlp`

**NOTE:** &nbsp;The EEC ingestion endpoint is only available with&nbsp;[Full-Stack and Infrastructure Monitoring](https://docs.dynatrace.com/docs/observe/infrastructure-monitoring/hosts/monitoring-modes)&nbsp;deployments. It is&nbsp; **not** &nbsp;available with&nbsp;[containerized setups](https://docs.dynatrace.com/docs/ingest-from/setup-on-k8s/deployment). Please use&nbsp;[ActiveGate](https://docs.dynatrace.com/docs/ingest-from/opentelemetry/getting-started/otlp-export#export-to-saas-and-activegate)&nbsp;as the export endpoint for container applications.

#### Exporting traces to Dynatrace API:

This is a general case when traces and metrics are being exported to Dynatrace API, and the configuration might look the following way:

- set the supported protocol:  
**app property:** `quarkus.otel.exporter.otlp.traces.protocol=http/protobuf`  
**env variable:** `QUARKUS_OTEL_EXPORTER_OTLP_TRACES_PROTOCOL=http/protobuf`
- generic endpoint&nbsp;for OTel signals as Quarkus, then substitute the exact URL for traces or metrics (all available endpoints are available [here](https://docs.dynatrace.com/docs/ingest-from/opentelemetry/getting-started/otlp-export#export-to-saas-and-activegate):  
**app property:** `quarkus.otel.exporter.otlp.endpoint=https://{your-activegate-domain}:9999/e/{your-environment-id}/api/v2/otlp`  
**env variable:** &nbsp;`QUARKUS_OTEL_EXPORTER_OTLP_ENDPOINT=https://{your-activegate-domain}:9999/e/{your-environment-id}/api/v2/otlp`
- also, is required to set the authorization header:  
**app property:** &nbsp;`quarkus.otel.exporter.otlp.headers="Authorization: Api-Token dt....."`  
**env variable:** &nbsp;`QUARKUS_OTEL_EXPORTER_OTLP_HEADERS="Authorization: Api-Token dt....."`

#### Troubleshooting

For troubleshooting purposes to understand which data is being exported by OTel in your application, you could add a **logging** exporter.

**NOTE** : it is not recommended to be used in production.

In this case, would be required to add to your project the dependency&nbsp;[opentelemetry-exporter-logging](https://mvnrepository.com/artifact/io.opentelemetry/opentelemetry-exporter-logging) and then configure it accordingly:

- set the&nbsp;`logging`&nbsp;exporter in the&nbsp;`application.properties`&nbsp;file:

- set the&nbsp;`logging`&nbsp;exporter via environment variables:

For reference, please have a look at the official [Quarkus&nbsp;OpenTelemetry Configuration](https://quarkus.io/guides/opentelemetry) page.
