Edit this Page

Using OpenTelemetry

This guide explains how your Quarkus application can utilize OpenTelemetry (OTel) to provide Observability for interactive web applications.

On these page we show the signal independent features of the extension.

  • The old OpenTelemetry guide has been split into this generic guide, the OpenTelemetry Tracing Guide and the new OpenTelemetry Metrics Guide has been created.

  • OpenTelemetry Logging is not yet supported.

  • The use of the OpenTelemetry Agent is not needed nor recommended. Quarkus Extensions and the libraries they provide, are directly instrumented. That agent doesn’t work with native mode.

Introduction

OpenTelemetry is an Observability framework and toolkit designed to create and manage telemetry data such as traces, metrics, and logs. Crucially, OpenTelemetry is vendor- and tool-agnostic.

Quarkus provides manual and automatic instrumentation for tracing and manual instrumentation capabilities for metrics.

This will allow Quarkus based applications to be observable by tools and services supporting OpenTelemetry.

Automatic metrics instrumentation in Quarkus is done by the Quarkus Micrometer extension. We plan to provide, in the future, a bridge for those metrics to be available in OpenTelemetry as well.

Quarkus supports the OpenTelemetry Autoconfiguration. The configurations match what you can see at OpenTelemetry SDK Autoconfigure with the quarkus.* prefix.

This guide provides a crosscutting explanation of the OpenTelemetry extension and how to use it. If you need details about any particular signal (tracing or metrics), please refer to the signal specific guide.

With the introduction of OpenTelemetry Metrics, the original, single page guide had to be split according to signal types, as follows:

OpenTelemetry Tracing Guide

The tracing functionality is supported and on by default.

OpenTelemetry Metrics Guide

Enable Metrics

The metrics functionality is experimental and off by default. You will need to activate it by setting:

quarkus.otel.metrics.enabled=true

At build time on your application.properties file.

Manual instrumentation only

For now only manual instrumentation is supported. You can use the OpenTelemetry API to create and record metrics but Quarkus is not yet providing automatic instrumentation for metrics.

In the future, we plan to bridge current Micrometer metrics to OpenTelemetry and maintain compatibility when possible.

Using the extension

If you already have your Quarkus project, you can add the quarkus-opentelemetry extension to it by running the following command in your project base directory:

CLI
quarkus extension add opentelemetry
Maven
./mvnw quarkus:add-extension -Dextensions='opentelemetry'
Gradle
./gradlew addExtension --extensions='opentelemetry'

This will add the following to your build file:

pom.xml
<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-opentelemetry</artifactId>
</dependency>
build.gradle
implementation("io.quarkus:quarkus-opentelemetry")

Create the configuration

There are no mandatory configurations for the extension to work.

By default, the exporters will send out data in batches, using the gRPC protocol and endpoint https://localhost:4317.

If you need to change any of the default property values, here is an example on how to configure the default OTLP gRPC Exporter within the application, using the src/main/resources/application.properties file:

quarkus.application.name=myservice (1)
quarkus.otel.exporter.otlp.endpoint=https://localhost:4317 (2)
quarkus.otel.exporter.otlp.headers=authorization=Bearer my_secret (3)
quarkus.log.console.format=%d{HH:mm:ss} %-5p traceId=%X{traceId}, parentId=%X{parentId}, spanId=%X{spanId}, sampled=%X{sampled} [%c{2.}] (%t) %s%e%n  (4)

# Alternative to the console log
quarkus.http.access-log.pattern="...traceId=%{X,traceId} spanId=%{X,spanId}" (5)
1 All telemetry created from the application will include an OpenTelemetry Resource attribute indicating the telemetry was created by the myservice application. If not set, it will default to the artifact id.
2 gRPC endpoint to send the telemetry. If not set, it will default to https://localhost:4317.
3 Optional gRPC headers commonly used for authentication
4 Add tracing information into log messages.
5 You can also only put the trace info into the access log. In this case you must omit the info in the console log format.

We provide signal agnostic configurations for the connection related properties, meaning that you can use the same properties for both tracing and metrics when you set:

quarkus.otel.exporter.otlp.endpoint=https://localhost:4317

If you need different configurations for each signal, you can use the specific properties:

quarkus.otel.exporter.otlp.traces.endpoint=https://trace-uri:4317 (1)
quarkus.otel.exporter.otlp.metrics.endpoint=https://metrics-uri:4317 (2)
1 The endpoint for the traces exporter.
2 The endpoint for the metrics exporter.

Disable all or parts of the OpenTelemetry extension

Once you add the dependency, the extension will generate tracing data by default. To enable metrics or disable the OpenTelemetry extension globally or partially these are the properties to use (they are extracted from the config reference bellow):

Affected Signal Property name Default value Description

All

quarkus.otel.enabled

true

If false, disable the OpenTelemetry usage at build time.

All

quarkus.otel.sdk.disabled

false

Comes from the OpenTelemetry autoconfiguration. If true, will disable the OpenTelemetry SDK usage at runtime.

All output

quarkus.otel.exporter.otlp.enabled

true

Deprecated for removal.

If false will disable the default OTLP exporter at build time.

Traces

quarkus.otel.traces.enabled

true

If false, disable the OpenTelemetry tracing usage at build time.

Traces output

quarkus.otel.traces.exporter

cdi

List of exporters to be used for tracing, separated by commas. Has one of the values from ExporterType: otlp, cdi, none. This is a build time property and setting it to none will disable tracing data output.

Metrics

quarkus.otel.metrics.enabled

false

Metrics are disabled by default at build time because they are experimental.

Metrics output

quarkus.otel.metrics.exporter

cdi

List of exporters to be used for metrics, separated by commas. Has one of the values from ExporterType: otlp, cdi, none. This is a build time property and setting it to none will disable metrics data output.

If you need to enable or disable the exporter at runtime, you can use the sampler because it has the ability to filter out all the spans if needed.

Particular instrumentation components can be disabled in tracing, like ignore client requests but keep server ones. For more details, please check the OpenTelemetry Tracing Guide.

Resource

A resource is a representation of the entity that is producing telemetry, it adds attributes to the exported trace or metric to characterize who is producing the telemetry. Quarkus follows the resources auto-configuration specified by the Java OpenTelemetry SDK.

Default

The following attributes are added by default to resources.

Attribute name Content example Origin

service.name

"opentelemetry-quickstart"

Value comes from the artifactId, from the quarkus.application.name property or from quarkus.otel.resource.attributes=service.name=cart property.

host.name

"myHost"

Resolved at startup

service.version

"1.0-SNAPSHOT"

Resolved at build time from the artifact version

telemetry.sdk.language

"java"

Static value

telemetry.sdk.name

"opentelemetry"

Resolved at build time

telemetry.sdk.version

"1.32.0"

Resolved at build time

webengine.name

"Quarkus"

Static value

webengine.version

"999-SNAPSHOT"

Quarkus version resolved at build time

Using configuration

You can add additional attributes by setting the quarkus.otel.resource.attributes config property that is described in the OpenTelemetry Configuration Reference. Since this property can be overridden at runtime, the OpenTelemetry extension will pick up its value following the order of precedence that is described in the Quarkus Configuration Reference.

quarkus.otel.resource.attributes=deployment.environment=dev,service.name=cart,service.namespace=shopping

This will add the attributes for deployment.environment, service.name and service.namespace to the resource and be included in traces and metrics.

Using CDI beans

If by any means you need to use a custom resource or one that is provided by one of the OpenTelemetry SDK Extensions you can create multiple resource producers. The OpenTelemetry extension will detect the Resource CDI beans and will merge them when configuring the OTel SDK.

@ApplicationScoped
public class CustomConfiguration {

    @Produces
    @ApplicationScoped
    public Resource osResource() {
        return OsResource.get();
    }

    @Produces
    @ApplicationScoped
    public Resource ecsResource() {
        return EcsResource.get();
    }
}

Semantic conventions

OpenTelemetry provides a set of semantic conventions to standardize the data collected by the instrumentation.

When creating manual instrumentation, while naming metrics or attributes you should follow those conventions and not create new names to represent existing conventions. This will make data correlation easier to perform across services.

Exporters

Default

The Quarkus OpenTelemetry extension uses its own signal exporters built on top of Vert.x for optimal performance and maintainability.

The exporter is automatically wired with CDI, that’s why the quarkus.otel.traces.exporter and quarkus.otel.metrics.exporter properties default to cdi.

The quarkus.otel.exporter.otlp.protocol defaults to grpc but http/protobuf can also be used.

If you change the protocol, you also need to change the port in the endpoint. The default port for grpc is 4317 and for http/protobuf is 4318.

On Quarkiverse

Additional exporters will be available in the Quarkiverse quarkus-opentelemetry-exporter project.

Currently, are available the following exporters (may be outdated) for:

  • Legacy Jaeger

  • Microsoft Azure

  • Google Cloud

Logging exporter (for debugging)

You can output all metrics to the console, for debugging/development purposes.

Don’t use this in production.

You will need to add the following dependency to your project:

pom.xml
<dependency>
    <groupId>io.opentelemetry</groupId>
    <artifactId>opentelemetry-exporter-logging</artifactId>
</dependency>
build.gradle
implementation("io.opentelemetry:opentelemetry-exporter-logging")

Then, setting the exporter to logging in the application.properties file:

quarkus.otel.metrics.exporter=logging (1)
quarkus.otel.metric.export.interval=10000ms (2)
quarkus.otel.traces.exporter=logging (3)
1 Set the metrics exporter to logging. Normally you don’t need to set this. The default is cdi.
2 Set the interval to export the metrics. The default is 1m, which is too long for debugging.
3 Set the traces exporter to logging. Normally you don’t need to set this. The default is cdi.

Visualizing the data

This provides a Quarkus Dev service using an "all-in-one" Grafana OTel LGTM.

Grafana is used to visualize data, Loki to store logs, Tempo to store traces and Prometheus to store metrics. Also provides and OTel collector to receive the data.

This provides an easy way to visualize all OpenTelemetry data generated by the application.

You can also use the logging exporter to output all traces and metrics to the console.

OpenTelemetry Configuration Reference

Quarkus supports the OpenTelemetry Autoconfiguration for Traces. The configurations match what you can see at OpenTelemetry SDK Autoconfigure adding the usual quarkus.* prefix.

Quarkus OpenTelemetry configuration properties now have the quarkus.otel.* prefix.

Configuration property fixed at build time - All other configuration properties are overridable at runtime

Configuration property

Type

Default

quarkus.otel.enabled

If false, disable the OpenTelemetry usage at build time. All other Otel properties will be ignored at runtime.

Will pick up value from legacy property quarkus.opentelemetry.enabled

Defaults to true.

Environment variable: QUARKUS_OTEL_ENABLED

Show more

boolean

true

quarkus.otel.traces.exporter

List of exporters supported by Quarkus.

List of exporters to be used for tracing, separated by commas. Has one of the values on ExporterType otlp, cdi, none or the full qualified name of a class implementing io.opentelemetry.sdk.trace.export.SpanExporter

Default on Quarkus is ExporterType.Constants#CDI_VALUE.

Environment variable: QUARKUS_OTEL_TRACES_EXPORTER

Show more

list of string

cdi

quarkus.otel.traces.sampler

The sampler to use for tracing.

Has one of the values on SamplerType always_on, always_off, traceidratio, parentbased_always_on, parentbased_always_off, parentbased_traceidratio or the Sampler SPI name. This will use the OTel SPI hooks for the io.opentelemetry.sdk.trace.samplers.Sampler implementation set in the provider: io.opentelemetry.sdk.autoconfigure.spi.traces.ConfigurableSamplerProvider.

Fallbacks to the legacy property quarkus.opentelemetry.tracer.sampler.sampler.name or defaults to SamplerType.Constants#PARENT_BASED_ALWAYS_ON.

Environment variable: QUARKUS_OTEL_TRACES_SAMPLER

Show more

string

parentbased_always_on

quarkus.otel.traces.eusp.enabled

If OpenTelemetry End User attributes should be added as Span attributes on a best-efforts basis.

Environment variable: QUARKUS_OTEL_TRACES_EUSP_ENABLED

Show more

boolean

false

quarkus.otel.metrics.enabled

Enable metrics with OpenTelemetry.

This property is not available in the Open Telemetry SDK. It’s Quarkus specific.

Support for metrics will be enabled if OpenTelemetry support is enabled and either this value is true, or this value is unset.

Environment variable: QUARKUS_OTEL_METRICS_ENABLED

Show more

boolean

false

quarkus.otel.metrics.exporter

The Metrics exporter to use.

Environment variable: QUARKUS_OTEL_METRICS_EXPORTER

Show more

list of string

cdi

quarkus.otel.logs.exporter

No Log exporter for now.

Environment variable: QUARKUS_OTEL_LOGS_EXPORTER

Show more

list of string

none

quarkus.otel.propagators

The propagators to be used. Use a comma-separated list for multiple propagators.

Has values from PropagatorType or the full qualified name of a class implementing io.opentelemetry.context.propagation.TextMapPropagator.

Default is PropagatorType.Constants#TRACE_CONTEXT,PropagatorType.Constants#BAGGAGE (W3C).

Environment variable: QUARKUS_OTEL_PROPAGATORS

Show more

list of string

tracecontext,baggage

quarkus.otel.instrument.grpc

Enables instrumentation for gRPC.

Environment variable: QUARKUS_OTEL_INSTRUMENT_GRPC

Show more

boolean

true

quarkus.otel.instrument.messaging

Enables instrumentation for Messaging.

Environment variable: QUARKUS_OTEL_INSTRUMENT_MESSAGING

Show more

boolean

true

quarkus.otel.instrument.resteasy-client

Enables instrumentation for REST Client backed by RESTEasy Classic.

Environment variable: QUARKUS_OTEL_INSTRUMENT_RESTEASY_CLIENT

Show more

boolean

true

quarkus.otel.instrument.rest

Enables instrumentation for Quarkus REST.

Environment variable: QUARKUS_OTEL_INSTRUMENT_REST

Show more

boolean

true

quarkus.otel.instrument.resteasy

Enables instrumentation for RESTEasy Classic.

Environment variable: QUARKUS_OTEL_INSTRUMENT_RESTEASY

Show more

boolean

true

quarkus.otel.security-events.enabled

Whether exporting of the security events is enabled.

Environment variable: QUARKUS_OTEL_SECURITY_EVENTS_ENABLED

Show more

boolean

false

quarkus.otel.security-events.event-types

Selects security event types.

Environment variable: QUARKUS_OTEL_SECURITY_EVENTS_EVENT_TYPES

Show more

list of all, authentication-success, authentication-failure, authorization-success, authorization-failure, other

all

quarkus.otel.sdk.disabled

If true, disable the OpenTelemetry SDK. Runtime configuration.

Defaults to false.

Environment variable: QUARKUS_OTEL_SDK_DISABLED

Show more

boolean

false

quarkus.otel.traces.suppress-non-application-uris

Suppress non-application uris from trace collection. This will suppress tracing of /q endpoints.

Providing a custom io.opentelemetry.sdk.trace.samplers.Sampler CDI Bean will ignore this setting.

This is a Quarkus specific property. Suppressing non-application uris is enabled by default.

Fallbacks to the legacy property quarkus.opentelemetry.tracer.suppress-non-application-uris or defaults to true.

Environment variable: QUARKUS_OTEL_TRACES_SUPPRESS_NON_APPLICATION_URIS

Show more

boolean

true

quarkus.otel.traces.include-static-resources

Include static resources from trace collection.

This is a Quarkus specific property. Include static resources is disabled by default. Providing a custom io.opentelemetry.sdk.trace.samplers.Sampler CDI Bean will ignore this setting.

Fallbacks to the legacy property quarkus.opentelemetry.tracer.include-static-resources or defaults to false.

Environment variable: QUARKUS_OTEL_TRACES_INCLUDE_STATIC_RESOURCES

Show more

boolean

false

quarkus.otel.traces.sampler.arg

Sampler argument. Depends on the quarkus.otel.traces.sampler property. Fallbacks to the legacy property quarkus.opentelemetry.tracer.sampler.ratio.

When setting the stock sampler to traceidratio or parentbased_traceidratio you need to set a double compatible value between 0.0d and 1.0d, like 0.01d or 0.5d. It is kept as a String to allow the flexible customisation of alternative samplers.

Defaults to 1.0d.

Environment variable: QUARKUS_OTEL_TRACES_SAMPLER_ARG

Show more

string

1.0d

quarkus.otel.metric.export.interval

The interval, between the start of two metric export attempts.

Default is 1min.

Environment variable: QUARKUS_OTEL_METRIC_EXPORT_INTERVAL

Show more

Duration

60S

quarkus.otel.attribute.value.length.limit

The maximum length of attribute values. Applies to spans and logs.

By default, there is no limit.

Environment variable: QUARKUS_OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT

Show more

string

quarkus.otel.attribute.count.limit

The maximum number of attributes. Applies to spans, span events, span links, and logs.

Default is 128.

Environment variable: QUARKUS_OTEL_ATTRIBUTE_COUNT_LIMIT

Show more

int

128

quarkus.otel.span.attribute.value.length.limit

The maximum length of span attribute values. Takes precedence over otel.attribute.value.length.limit.

By default, there is no limit.

Environment variable: QUARKUS_OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT

Show more

int

quarkus.otel.span.attribute.count.limit

The maximum number of attributes per span. Takes precedence over otel.attribute.count.limit.

Default is 128.

Environment variable: QUARKUS_OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT

Show more

int

128

quarkus.otel.span.event.count.limit

The maximum number of events per span.

Default is 128.

Environment variable: QUARKUS_OTEL_SPAN_EVENT_COUNT_LIMIT

Show more

int

128

quarkus.otel.span.link.count.limit

The maximum number of links per span.

Default is 128.

Environment variable: QUARKUS_OTEL_SPAN_LINK_COUNT_LIMIT

Show more

int

128

quarkus.otel.bsp.schedule.delay

The interval, in milliseconds, between two consecutive exports.

Default is 5000.

Environment variable: QUARKUS_OTEL_BSP_SCHEDULE_DELAY

Show more

Duration

5S

quarkus.otel.bsp.max.queue.size

The maximum queue size.

Default is 2048.

Environment variable: QUARKUS_OTEL_BSP_MAX_QUEUE_SIZE

Show more

int

2048

quarkus.otel.bsp.max.export.batch.size

The maximum batch size.

Default is 512.

Environment variable: QUARKUS_OTEL_BSP_MAX_EXPORT_BATCH_SIZE

Show more

int

512

quarkus.otel.bsp.export.timeout

The maximum allowed time, in milliseconds, to export data.

Default is 30s.

Environment variable: QUARKUS_OTEL_BSP_EXPORT_TIMEOUT

Show more

Duration

30S

quarkus.otel.resource.attributes

Specify resource attributes in the following format: key1=val1,key2=val2,key3=val3.

Environment variable: QUARKUS_OTEL_RESOURCE_ATTRIBUTES

Show more

list of string

quarkus.otel.service.name

Specify logical service name. Takes precedence over service.name defined with otel.resource.attributes and from quarkus.application.name.

Defaults to quarkus.application.name.

Environment variable: QUARKUS_OTEL_SERVICE_NAME

Show more

string

${quarkus.application.name:unset}

quarkus.otel.experimental.resource.disabled-keys

Specify resource attribute keys that are filtered.

Environment variable: QUARKUS_OTEL_EXPERIMENTAL_RESOURCE_DISABLED_KEYS

Show more

list of string

quarkus.otel.experimental.shutdown-wait-time

The maximum amount of time Quarkus will wait for the OpenTelemetry SDK to flush unsent spans and shutdown.

Environment variable: QUARKUS_OTEL_EXPERIMENTAL_SHUTDOWN_WAIT_TIME

Show more

Duration

1S

quarkus.otel.instrument.vertx-http

Enables instrumentation for Vert.x HTTP.

Environment variable: QUARKUS_OTEL_INSTRUMENT_VERTX_HTTP

Show more

boolean

true

quarkus.otel.instrument.vertx-event-bus

Enables instrumentation for Vert.x Event Bus.

Environment variable: QUARKUS_OTEL_INSTRUMENT_VERTX_EVENT_BUS

Show more

boolean

true

quarkus.otel.instrument.vertx-sql-client

Enables instrumentation for Vert.x SQL Client.

Environment variable: QUARKUS_OTEL_INSTRUMENT_VERTX_SQL_CLIENT

Show more

boolean

true

quarkus.otel.instrument.vertx-redis-client

Enables instrumentation for Vert.x Redis Client.

Environment variable: QUARKUS_OTEL_INSTRUMENT_VERTX_REDIS_CLIENT

Show more

boolean

true

quarkus.otel.mp.compatibility

Prioritize OpenTelemetry configuration otel. on top of Quarkus OpenTelemetry configuration quarkus.otel.

By default, Quarkus configuration has priority over OpenTelemetry configuration.

Environment variable: QUARKUS_OTEL_MP_COMPATIBILITY

Show more

boolean

false

quarkus.otel.exporter.otlp.endpoint

Sets the OTLP endpoint to send telemetry data. If unset, defaults to OtlpExporterRuntimeConfig#DEFAULT_GRPC_BASE_URI.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..endpoint where is one of the supported signal types, like traces or metrics.

If protocol is http/protobuf the version and signal will be appended to the path (e.g. v1/traces or v1/metrics) and the default port will be OtlpExporterRuntimeConfig#DEFAULT_HTTP_BASE_URI.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_ENDPOINT

Show more

string

https://localhost:4317/

quarkus.otel.exporter.otlp.headers

Key-value pairs to be used as headers associated with exporter requests. The format is similar to the OTEL_EXPORTER_OTLP_HEADERS environment variable, a list of key-value pairs separated by the "=" character. i.e.: key1=value1,key2=value2

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..headers where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_HEADERS

Show more

list of string

quarkus.otel.exporter.otlp.compression

Sets the method used to compress payloads. If unset, compression is disabled. Currently supported compression methods include gzip and none.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..compression where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_COMPRESSION

Show more

gzip, none

quarkus.otel.exporter.otlp.timeout

Sets the maximum time to wait for the collector to process an exported batch of telemetry data. If unset, defaults to `OtlpExporterRuntimeConfig#DEFAULT_TIMEOUT_SECS`s.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..timeout where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_TIMEOUT

Show more

Duration

10s

quarkus.otel.exporter.otlp.protocol

OTLP defines the encoding of telemetry data and the protocol used to exchange data between the client and the server. Depending on the exporter, the available protocols will be different.

Currently, only grpc and http/protobuf are allowed.

Please mind that changing the protocol requires changing the port in the endpoint as well.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..protocol where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_PROTOCOL

Show more

string

grpc

quarkus.otel.exporter.otlp.key-cert.keys

Comma-separated list of the path to the key files (Pem format).

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_KEY_CERT_KEYS

Show more

list of string

quarkus.otel.exporter.otlp.key-cert.certs

Comma-separated list of the path to the certificate files (Pem format).

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_KEY_CERT_CERTS

Show more

list of string

quarkus.otel.exporter.otlp.trust-cert.certs

Comma-separated list of the trust certificate files (Pem format).

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_TRUST_CERT_CERTS

Show more

list of string

quarkus.otel.exporter.otlp.tls-configuration-name

The name of the TLS configuration to use.

If not set and the default TLS configuration is configured (quarkus.tls.*) then that will be used. If a name is configured, it uses the configuration from quarkus.tls.<name>.* If a name is configured, but no TLS configuration is found with that name then an error will be thrown.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..tls-configuration-name where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_TLS_CONFIGURATION_NAME

Show more

string

quarkus.otel.exporter.otlp.proxy-options.enabled

If proxy connection must be used.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..proxy-options.enabled where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_PROXY_OPTIONS_ENABLED

Show more

boolean

false

quarkus.otel.exporter.otlp.proxy-options.username

Set proxy username.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..proxy-options.username where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_PROXY_OPTIONS_USERNAME

Show more

string

quarkus.otel.exporter.otlp.proxy-options.password

Set proxy password.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..proxy-options.password where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_PROXY_OPTIONS_PASSWORD

Show more

string

quarkus.otel.exporter.otlp.proxy-options.port

Set proxy port.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..proxy-options.port where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_PROXY_OPTIONS_PORT

Show more

int

quarkus.otel.exporter.otlp.proxy-options.host

Set proxy host.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..proxy-options.host where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_PROXY_OPTIONS_HOST

Show more

string

quarkus.otel.exporter.otlp.traces.endpoint

Sets the OTLP endpoint to send telemetry data. If unset, defaults to OtlpExporterRuntimeConfig#DEFAULT_GRPC_BASE_URI.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..endpoint where is one of the supported signal types, like traces or metrics.

If protocol is http/protobuf the version and signal will be appended to the path (e.g. v1/traces or v1/metrics) and the default port will be OtlpExporterRuntimeConfig#DEFAULT_HTTP_BASE_URI.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_TRACES_ENDPOINT

Show more

string

https://localhost:4317/

quarkus.otel.exporter.otlp.traces.headers

Key-value pairs to be used as headers associated with exporter requests. The format is similar to the OTEL_EXPORTER_OTLP_HEADERS environment variable, a list of key-value pairs separated by the "=" character. i.e.: key1=value1,key2=value2

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..headers where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_TRACES_HEADERS

Show more

list of string

quarkus.otel.exporter.otlp.traces.compression

Sets the method used to compress payloads. If unset, compression is disabled. Currently supported compression methods include gzip and none.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..compression where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_TRACES_COMPRESSION

Show more

gzip, none

quarkus.otel.exporter.otlp.traces.timeout

Sets the maximum time to wait for the collector to process an exported batch of telemetry data. If unset, defaults to `OtlpExporterRuntimeConfig#DEFAULT_TIMEOUT_SECS`s.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..timeout where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_TRACES_TIMEOUT

Show more

Duration

10s

quarkus.otel.exporter.otlp.traces.protocol

OTLP defines the encoding of telemetry data and the protocol used to exchange data between the client and the server. Depending on the exporter, the available protocols will be different.

Currently, only grpc and http/protobuf are allowed.

Please mind that changing the protocol requires changing the port in the endpoint as well.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..protocol where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_TRACES_PROTOCOL

Show more

string

grpc

quarkus.otel.exporter.otlp.traces.key-cert.keys

Comma-separated list of the path to the key files (Pem format).

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_TRACES_KEY_CERT_KEYS

Show more

list of string

quarkus.otel.exporter.otlp.traces.key-cert.certs

Comma-separated list of the path to the certificate files (Pem format).

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_TRACES_KEY_CERT_CERTS

Show more

list of string

quarkus.otel.exporter.otlp.traces.trust-cert.certs

Comma-separated list of the trust certificate files (Pem format).

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_TRACES_TRUST_CERT_CERTS

Show more

list of string

quarkus.otel.exporter.otlp.traces.tls-configuration-name

The name of the TLS configuration to use.

If not set and the default TLS configuration is configured (quarkus.tls.*) then that will be used. If a name is configured, it uses the configuration from quarkus.tls.<name>.* If a name is configured, but no TLS configuration is found with that name then an error will be thrown.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..tls-configuration-name where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_TRACES_TLS_CONFIGURATION_NAME

Show more

string

quarkus.otel.exporter.otlp.traces.proxy-options.enabled

If proxy connection must be used.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..proxy-options.enabled where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_TRACES_PROXY_OPTIONS_ENABLED

Show more

boolean

false

quarkus.otel.exporter.otlp.traces.proxy-options.username

Set proxy username.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..proxy-options.username where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_TRACES_PROXY_OPTIONS_USERNAME

Show more

string

quarkus.otel.exporter.otlp.traces.proxy-options.password

Set proxy password.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..proxy-options.password where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_TRACES_PROXY_OPTIONS_PASSWORD

Show more

string

quarkus.otel.exporter.otlp.traces.proxy-options.port

Set proxy port.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..proxy-options.port where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_TRACES_PROXY_OPTIONS_PORT

Show more

int

quarkus.otel.exporter.otlp.traces.proxy-options.host

Set proxy host.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..proxy-options.host where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_TRACES_PROXY_OPTIONS_HOST

Show more

string

quarkus.otel.exporter.otlp.metrics.endpoint

Sets the OTLP endpoint to send telemetry data. If unset, defaults to OtlpExporterRuntimeConfig#DEFAULT_GRPC_BASE_URI.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..endpoint where is one of the supported signal types, like traces or metrics.

If protocol is http/protobuf the version and signal will be appended to the path (e.g. v1/traces or v1/metrics) and the default port will be OtlpExporterRuntimeConfig#DEFAULT_HTTP_BASE_URI.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_METRICS_ENDPOINT

Show more

string

https://localhost:4317/

quarkus.otel.exporter.otlp.metrics.headers

Key-value pairs to be used as headers associated with exporter requests. The format is similar to the OTEL_EXPORTER_OTLP_HEADERS environment variable, a list of key-value pairs separated by the "=" character. i.e.: key1=value1,key2=value2

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..headers where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_METRICS_HEADERS

Show more

list of string

quarkus.otel.exporter.otlp.metrics.compression

Sets the method used to compress payloads. If unset, compression is disabled. Currently supported compression methods include gzip and none.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..compression where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_METRICS_COMPRESSION

Show more

gzip, none

quarkus.otel.exporter.otlp.metrics.timeout

Sets the maximum time to wait for the collector to process an exported batch of telemetry data. If unset, defaults to `OtlpExporterRuntimeConfig#DEFAULT_TIMEOUT_SECS`s.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..timeout where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_METRICS_TIMEOUT

Show more

Duration

10s

quarkus.otel.exporter.otlp.metrics.protocol

OTLP defines the encoding of telemetry data and the protocol used to exchange data between the client and the server. Depending on the exporter, the available protocols will be different.

Currently, only grpc and http/protobuf are allowed.

Please mind that changing the protocol requires changing the port in the endpoint as well.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..protocol where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_METRICS_PROTOCOL

Show more

string

grpc

quarkus.otel.exporter.otlp.metrics.key-cert.keys

Comma-separated list of the path to the key files (Pem format).

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_METRICS_KEY_CERT_KEYS

Show more

list of string

quarkus.otel.exporter.otlp.metrics.key-cert.certs

Comma-separated list of the path to the certificate files (Pem format).

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_METRICS_KEY_CERT_CERTS

Show more

list of string

quarkus.otel.exporter.otlp.metrics.trust-cert.certs

Comma-separated list of the trust certificate files (Pem format).

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_METRICS_TRUST_CERT_CERTS

Show more

list of string

quarkus.otel.exporter.otlp.metrics.tls-configuration-name

The name of the TLS configuration to use.

If not set and the default TLS configuration is configured (quarkus.tls.*) then that will be used. If a name is configured, it uses the configuration from quarkus.tls.<name>.* If a name is configured, but no TLS configuration is found with that name then an error will be thrown.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..tls-configuration-name where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_METRICS_TLS_CONFIGURATION_NAME

Show more

string

quarkus.otel.exporter.otlp.metrics.proxy-options.enabled

If proxy connection must be used.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..proxy-options.enabled where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_METRICS_PROXY_OPTIONS_ENABLED

Show more

boolean

false

quarkus.otel.exporter.otlp.metrics.proxy-options.username

Set proxy username.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..proxy-options.username where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_METRICS_PROXY_OPTIONS_USERNAME

Show more

string

quarkus.otel.exporter.otlp.metrics.proxy-options.password

Set proxy password.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..proxy-options.password where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_METRICS_PROXY_OPTIONS_PASSWORD

Show more

string

quarkus.otel.exporter.otlp.metrics.proxy-options.port

Set proxy port.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..proxy-options.port where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_METRICS_PROXY_OPTIONS_PORT

Show more

int

quarkus.otel.exporter.otlp.metrics.proxy-options.host

Set proxy host.

There is a generic property, that will apply to all signals and a signal specific one, following the pattern: quarkus.otel.exporter.otlp..proxy-options.host where is one of the supported signal types, like traces or metrics.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_METRICS_PROXY_OPTIONS_HOST

Show more

string

quarkus.otel.exporter.otlp.metrics.temporality-preference

The preferred output aggregation temporality. Options include DELTA, LOWMEMORY, and CUMULATIVE.

If CUMULATIVE, all instruments will have cumulative temporality. If DELTA, counter (sync and async) and histograms will be delta, up down counters (sync and async) will be cumulative. If LOWMEMORY, sync counter and histograms will be delta, async counter and up down counters (sync and async) will be cumulative.

Default is CUMULATIVE.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE

Show more

string

cumulative

quarkus.otel.exporter.otlp.metrics.default-histogram-aggregation

The preferred default histogram aggregation.

Options include BASE2_EXPONENTIAL_BUCKET_HISTOGRAM and EXPLICIT_BUCKET_HISTOGRAM.

Default is EXPLICIT_BUCKET_HISTOGRAM.

Environment variable: QUARKUS_OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION

Show more

string

explicit_bucket_histogram

About the Duration format

To write duration values, use the standard java.time.Duration format. See the Duration#parse() Java API documentation for more information.

You can also use a simplified format, starting with a number:

  • If the value is only a number, it represents time in seconds.

  • If the value is a number followed by ms, it represents time in milliseconds.

In other cases, the simplified format is translated to the java.time.Duration format for parsing:

  • If the value is a number followed by h, m, or s, it is prefixed with PT.

  • If the value is a number followed by d, it is prefixed with P.

Related content