Skip to content

Fix tracing observation handlers not registered due to auto-configuration ordering#5756

Open
JadenKim-dev wants to merge 1 commit intospring-projects:mainfrom
JadenKim-dev:fix/5641-tracing-autoconfiguration-ordering
Open

Fix tracing observation handlers not registered due to auto-configuration ordering#5756
JadenKim-dev wants to merge 1 commit intospring-projects:mainfrom
JadenKim-dev:fix/5641-tracing-autoconfiguration-ordering

Conversation

@JadenKim-dev
Copy link
Copy Markdown

Summary

Fixes #5641

Spring AI observation auto-configurations use @ConditionalOnBean(Tracer.class) to determine whether to register tracing-aware observation handlers. However, without explicit ordering constraints, these configurations can be processed before BraveAutoConfiguration or OpenTelemetryAutoConfiguration creates the Tracer bean.

When this happens, both TracerPresentObservationConfiguration and TracerNotPresentObservationConfiguration are skipped — no observation handlers are registered at all.

Changes

Added afterName = "...MicrometerTracingAutoConfiguration" to the following auto-configurations:

  • ChatClientAutoConfiguration
  • ChatObservationAutoConfiguration
  • ImageObservationAutoConfiguration
  • VectorStoreObservationAutoConfiguration

MicrometerTracingAutoConfiguration is used rather than individual implementations (e.g. BraveAutoConfiguration) to cover both Brave and OpenTelemetry.

…tion ordering

Add afterName ordering constraint to ensure Spring AI observation
auto-configurations run after MicrometerTracingAutoConfiguration.

Without this ordering, @ConditionalOnBean(Tracer.class) is evaluated
before BraveAutoConfiguration/OpenTelemetryAutoConfiguration creates
the Tracer bean, causing both TracerPresent and TracerNotPresent
configurations to be skipped.

Closes spring-projects#5641

Signed-off-by: JadenKim-dev <jaden.kim5179@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

TracerPresentObservationConfiguration Injection failed

1 participant