Skip to content

CAUSEWAY-3975: Open Telemetry Integration#3464

Draft
andi-huber wants to merge 27 commits intomainfrom
3975-telemetry
Draft

CAUSEWAY-3975: Open Telemetry Integration#3464
andi-huber wants to merge 27 commits intomainfrom
3975-telemetry

Conversation

@andi-huber
Copy link
Copy Markdown
Contributor

@andi-huber andi-huber commented Mar 20, 2026

  • Proof of Concept (using micrometer API internally)
  • Figure out how to configure (OTLP)
  • Govern via ENV var whether to enable Observation
  • Usage Guide (ADOC)

Task-Url: https://issues.apache.org/jira/browse/CAUSEWAY-3975

Proposal: make observation an opt-in choice based on profile observation being active, which allows to opt-in only for deployment scenarios where observation is desired

Minimal Setup (for Applications)

Maven

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-opentelemetry</artifactId>
</dependency>
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-otlp</artifactId>
</dependency>

Config

spring:
  application:
    name: <name of  service>
  
management:
  tracing:
    sampling:
      probability: 1  
  opentelemetry:
    tracing:
      export:
        otlp:
          endpoint: http://<my-endpoint>:4318/v1/traces

Spring
disable metric export

@Bean
OtlpConfig otlpConfig() {
    return new OtlpConfig() {
        @Override public @Nullable String get(final String key) { return null;}
        @Override public boolean enabled() { return false; }
    };
}

Docker

docker run -d --name jaeger \
-p 16686:16686 \
-p 4317:4317 \
-p 4318:4318 \
-p 5778:5778 \
-p 9411:9411 \
cr.jaegertracing.io/jaegertracing/jaeger

@andi-huber andi-huber self-assigned this Mar 20, 2026
@andi-huber andi-huber force-pushed the 3975-telemetry branch 3 times, most recently from 8bbbea2 to fad6996 Compare March 26, 2026 14:28
TODO don't record observations quicker than 2 ms say

With Micrometer Observation API, it seems there is no way to discard
already started Observations.

Perhaps we can prevent those from being sent over the wire later.
*/
InteractionContext interactionContext
) {
Runnable onCloseCallback) implements AutoCloseable {
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't like that as the final answer, because we don't really know how to handle potential exceptions of the runnable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant