# 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.

This document is part of the Observability in Quarkus reference guide which features this and other observability related components.

| The old OpenTelemetry guide has been split into this generic guide, the OpenTelemetry Tracing Guide, the new OpenTelemetry Metrics Guide and the OpenTelemetry Logging Guide. 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.

### OpenTelemetry Logging Guide

#### Enable Logs

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

    quarkus.otel.logs.enabled=true

At build time on your `application.properties` file.

## 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

By default, the exporters will send out data in batches, using the gRPC protocol and endpoint `http://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=http://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 `http://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=http://localhost:4317

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

    quarkus.otel.exporter.otlp.traces.endpoint=http://trace-uri:4317 (1)
    quarkus.otel.exporter.otlp.metrics.endpoint=http://metrics-uri:4317 (2)
    quarkus.otel.exporter.otlp.logs.endpoint=http://logs-uri:4317 (3)

1 | The endpoint for the traces exporter.
2 | The endpoint for the metrics exporter.
3 | The endpoint for the logs exporter.

If you need that your spans and logs to be exported directly as they finish (e.g. in a serverless environment / application), you can set this property to `true`. This replaces the default batching of data.

    quarkus.otel.simple=true

### 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 below):

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.
Logs | `quarkus.otel.logs.enabled` | false | Logs are disabled by default at build time because they are experimental.
Logs output | `quarkus.otel.logs.exporter` | cdi | List of exporters to be used for logs, 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 logs data output.
Logs output | `quarkus.otel.logs.handler.enabled` | true | If false, disable the OpenTelemetry logs handler at runtime. This removes the bridge between the Quarkus logging system (JBoss LogManager) and OpenTelemetry logs.

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

### The Default

The Quarkus OpenTelemetry extension uses its own signal exporters built on top of Vert.x for optimal performance and maintainability. All Quarkus built in exporters use the OTLP protocol through a couple of data senders, using `grpc` (the default) and `http/protobuf`.

The active exporter is automatically wired by CDI, that’s why the `quarkus.otel.traces.exporter`, `quarkus.otel.metrics.exporter` and `quarkus.otel.logs.exporter` properties default value is `cdi`. This is not because of the protocol being used in the data transfer but because of how the exporters are wired.

CDI (Context Dependency Injection) will manage the exporters to use, according to the selected protocol or when applications implement their own CDI exporter, like in tests.

The `quarkus.otel.exporter.otlp.protocol` property instructs Quarkus to switch the senders and 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`.

### Using CDI to produce a test exporter

Leaving the default as CDI is particularly useful for tests. In the following example a Span exporter class is wired with CDI and then the telemetry can be used in test code.

Creating a custom `SpanExporter` bean:

        @ApplicationScoped
        static class InMemorySpanExporterProducer {
            @Produces
            @Singleton
            InMemorySpanExporter inMemorySpanExporter() {
                return InMemorySpanExporter.create();
            }
        }

Where `InMemorySpanExporter` is a class from the OpenTelemetry test utilities dependency:

pom.xml

        <dependency>
            <groupId>io.opentelemetry</groupId>
            <artifactId>opentelemetry-sdk-testing</artifactId>
            <scope>test</scope>
        </dependency>

build.gradle

    implementation("io.opentelemetry:opentelemetry-sdk-testing")

The bean of that class can be injected to access the telemetry data. This is an example to obtain the spans:

        @Inject
        InMemorySpanExporter inMemorySpanExporter;

        //...

        List<SpanData> finishedSpanItems = inMemorySpanExporter.getFinishedSpanItems();

If this is used in an integration test, you should access the class from inside the running process and not from the test class. A viable option could be to expose that data through a REST endpoint method:

        @GET
        @Path("/export")
        public List<SpanData> exportTraces() {
            return inMemorySpanExporter.getFinishedSpanItems()
                    .stream()
                    .filter(sd -> !sd.getName().contains("export")) (1)
                    .collect(Collectors.toList());
        }

1 | This excludes calls to the export endpoint itself.

For more details please take a look at the ExporterResource in the Quarkus integration tests.

### The OpenTelemetry OTLP exporter

This is currently not supported in Quarkus. Configuration example for traces: `quarkus.otel.tracing.exporter=otlp`.

However, it’s also not needed because Quarkus own default exporters will send data using the OTLP protocol.

### 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

Also on Quarkiverse, the Quarkus AWS SDK has integration with OpenTelemetry.

### 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

We recommend the Getting Started with Grafana-OTel-LGTM.

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` | boolean | `true`
`quarkus.otel.simple` Should we use simple processor for spans and log records. This will disable batch processing and the exporter will send telemetry data right away. This is recommended for serverless applications. Defaults to `false`. Environment variable: `QUARKUS_OTEL_SIMPLE` | boolean | `false`
`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` | 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` | 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` | 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 OpenTelemetry Metrics will be enabled if this value is true. The OpenTelemetry SDK ( `io.quarkus.opentelemetry.runtime.config.build.OTelBuildConfig#enabled()` ) is enabled by default and if disabled, OpenTelemetry Metrics will also be disabled. Environment variable: `QUARKUS_OTEL_METRICS_ENABLED` | boolean | `false`
`quarkus.otel.metrics.exporter` The Metrics exporter to use. Environment variable: `QUARKUS_OTEL_METRICS_EXPORTER` | list of string | `cdi`
`quarkus.otel.logs.enabled` Enable logs with OpenTelemetry. This property is not available in the Open Telemetry SDK. It’s Quarkus specific. Support for OpenTelemetry Logs will be enabled if this value is true. The OpenTelemetry SDK ( `io.quarkus.opentelemetry.runtime.config.build.OTelBuildConfig#enabled()` ) is enabled by default and if disabled, OpenTelemetry Logs will also be disabled. Environment variable: `QUARKUS_OTEL_LOGS_ENABLED` | boolean | `false`
`quarkus.otel.logs.exporter` The Logs exporter to use. Environment variable: `QUARKUS_OTEL_LOGS_EXPORTER` | list of string | `cdi`
`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` | list of string | `tracecontext`, `baggage`
`quarkus.otel.instrument.grpc` Enables instrumentation for gRPC. Environment variable: `QUARKUS_OTEL_INSTRUMENT_GRPC` | boolean | `true`
`quarkus.otel.instrument.messaging` Enables instrumentation for Messaging. Environment variable: `QUARKUS_OTEL_INSTRUMENT_MESSAGING` | boolean | `true`
`quarkus.otel.instrument.resteasy-client` Enables instrumentation for REST Client backed by RESTEasy Classic. Environment variable: `QUARKUS_OTEL_INSTRUMENT_RESTEASY_CLIENT` | boolean | `true`
`quarkus.otel.instrument.rest` Enables instrumentation for Quarkus REST. Environment variable: `QUARKUS_OTEL_INSTRUMENT_REST` | boolean | `true`
`quarkus.otel.instrument.resteasy` Enables instrumentation for RESTEasy Classic. Environment variable: `QUARKUS_OTEL_INSTRUMENT_RESTEASY` | boolean | `true`
`quarkus.otel.security-events.enabled` Whether exporting of the security events is enabled. Environment variable: `QUARKUS_OTEL_SECURITY_EVENTS_ENABLED` | boolean | `false`
`quarkus.otel.security-events.event-types` Selects security event types. Environment variable: `QUARKUS_OTEL_SECURITY_EVENTS_EVENT_TYPES` | 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` | 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` | boolean | `true`
`quarkus.otel.traces.suppress-application-uris` Comma-separated, suppress application uris from trace collection. This will suppress all uris set by this property. If you are using `quarkus.http.root-path`, you need to consider it when setting your uris, in other words, you need to configure it using the root-path if necessary. Environment variable: `QUARKUS_OTEL_TRACES_SUPPRESS_APPLICATION_URIS` | list of string |
`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` | 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` | 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` | Duration | `60S`
`quarkus.otel.logs.handler.enabled` Determine whether to enable the OpenTelemetry logging handler. This is a Quarkus specific property. The OpenTelemetry logging handler is enabled by default. Environment variable: `QUARKUS_OTEL_LOGS_HANDLER_ENABLED` | boolean | `true`
`quarkus.otel.logs.level` The log level to use for the OpenTelemetry logging handler. This is a Quarkus specific property. The default log level is ALL. Environment variable: `QUARKUS_OTEL_LOGS_LEVEL` | Level | `ALL`
`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` | 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` | 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` | 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` | 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` | 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` | int | `128`
`quarkus.otel.bsp.schedule.delay` The Batch Span Processor interval `Duration` between two consecutive exports. Default is `5s`. Environment variable: `QUARKUS_OTEL_BSP_SCHEDULE_DELAY` | Duration | `5S`
`quarkus.otel.bsp.max.queue.size` The Batch Span Processor maximum queue size. Default is `2048`. Environment variable: `QUARKUS_OTEL_BSP_MAX_QUEUE_SIZE` | int | `2048`
`quarkus.otel.bsp.max.export.batch.size` The Batch Span Processor maximum batch size. Default is `512`. Environment variable: `QUARKUS_OTEL_BSP_MAX_EXPORT_BATCH_SIZE` | int | `512`
`quarkus.otel.bsp.export.timeout` The Batch Span Processor maximum allowed time `Duration` to export data. Default is `30s`. Environment variable: `QUARKUS_OTEL_BSP_EXPORT_TIMEOUT` | Duration | `30S`
`quarkus.otel.blrp.schedule.delay` The Batch Log Record Processor interval `Duration` between two consecutive exports. Default is `1S`. Environment variable: `QUARKUS_OTEL_BLRP_SCHEDULE_DELAY` | Duration | `1S`
`quarkus.otel.blrp.max.queue.size` The Batch Log Record Processor maximum queue size. Default is `2048`. Environment variable: `QUARKUS_OTEL_BLRP_MAX_QUEUE_SIZE` | int | `2048`
`quarkus.otel.blrp.max.export.batch.size` The Batch Log Record Processor maximum batch size. Default is `512`. Environment variable: `QUARKUS_OTEL_BLRP_MAX_EXPORT_BATCH_SIZE` | int | `512`
`quarkus.otel.blrp.export.timeout` The Batch Log Record Processor maximum allowed time `Duration` to export data. Default is `30s`. Environment variable: `QUARKUS_OTEL_BLRP_EXPORT_TIMEOUT` | 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` | 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` | 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` | 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` | Duration | `2S`
`quarkus.otel.instrument.vertx-http` Enables instrumentation for Vert.x HTTP. Environment variable: `QUARKUS_OTEL_INSTRUMENT_VERTX_HTTP` | boolean | `true`
`quarkus.otel.instrument.vertx-event-bus` Enables instrumentation for Vert.x Event Bus. Environment variable: `QUARKUS_OTEL_INSTRUMENT_VERTX_EVENT_BUS` | boolean | `true`
`quarkus.otel.instrument.vertx-sql-client` Enables instrumentation for Vert.x SQL Client. Environment variable: `QUARKUS_OTEL_INSTRUMENT_VERTX_SQL_CLIENT` | boolean | `true`
`quarkus.otel.instrument.vertx-redis-client` Enables instrumentation for Vert.x Redis Client. Environment variable: `QUARKUS_OTEL_INSTRUMENT_VERTX_REDIS_CLIENT` | boolean | `true`
`quarkus.otel.instrument.jvm-metrics` Enables instrumentation for JVM Metrics. Environment variable: `QUARKUS_OTEL_INSTRUMENT_JVM_METRICS` | boolean | `true`
`quarkus.otel.instrument.http-server-metrics` Enables instrumentation for HTTP Server Metrics. Environment variable: `QUARKUS_OTEL_INSTRUMENT_HTTP_SERVER_METRICS` | 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` | 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` | string | `http://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` | 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` | `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` | 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` | 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` | 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` | 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` | 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` | 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` | 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` | 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` | 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` | 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` | 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` | string | `http://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` | 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` | `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` | 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` | 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` | 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` | 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` | 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` | 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` | 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` | 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` | 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` | 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` | 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` | string | `http://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` | 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` | `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` | 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` | 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` | 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` | 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` | 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` | 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` | 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` | 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` | 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` | 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` | 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` | 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` | string | `explicit_bucket_histogram`
`quarkus.otel.exporter.otlp.logs.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_LOGS_ENDPOINT` | string | `http://localhost:4317/`
`quarkus.otel.exporter.otlp.logs.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_LOGS_HEADERS` | list of string |
`quarkus.otel.exporter.otlp.logs.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_LOGS_COMPRESSION` | `gzip`, `none` |
`quarkus.otel.exporter.otlp.logs.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_LOGS_TIMEOUT` | Duration | `10s`
`quarkus.otel.exporter.otlp.logs.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_LOGS_PROTOCOL` | string | `grpc`
`quarkus.otel.exporter.otlp.logs.key-cert.keys` Comma-separated list of the path to the key files (Pem format). Environment variable: `QUARKUS_OTEL_EXPORTER_OTLP_LOGS_KEY_CERT_KEYS` | list of string |
`quarkus.otel.exporter.otlp.logs.key-cert.certs` Comma-separated list of the path to the certificate files (Pem format). Environment variable: `QUARKUS_OTEL_EXPORTER_OTLP_LOGS_KEY_CERT_CERTS` | list of string |
`quarkus.otel.exporter.otlp.logs.trust-cert.certs` Comma-separated list of the trust certificate files (Pem format). Environment variable: `QUARKUS_OTEL_EXPORTER_OTLP_LOGS_TRUST_CERT_CERTS` | list of string |
`quarkus.otel.exporter.otlp.logs.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_LOGS_TLS_CONFIGURATION_NAME` | string |
`quarkus.otel.exporter.otlp.logs.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_LOGS_PROXY_OPTIONS_ENABLED` | boolean | `false`
`quarkus.otel.exporter.otlp.logs.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_LOGS_PROXY_OPTIONS_USERNAME` | string |
`quarkus.otel.exporter.otlp.logs.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_LOGS_PROXY_OPTIONS_PASSWORD` | string |
`quarkus.otel.exporter.otlp.logs.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_LOGS_PROXY_OPTIONS_PORT` | int |
`quarkus.otel.exporter.otlp.logs.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_LOGS_PROXY_OPTIONS_HOST` | string |

| 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`.