Skip to content

GH-1611: Add health indicators for Qdrant and Weaviate#5553

Closed
DDINGJOO wants to merge 1 commit intospring-projects:mainfrom
DDINGJOO:GH-1611-vector-store-health-indicators
Closed

GH-1611: Add health indicators for Qdrant and Weaviate#5553
DDINGJOO wants to merge 1 commit intospring-projects:mainfrom
DDINGJOO:GH-1611-vector-store-health-indicators

Conversation

@DDINGJOO
Copy link
Copy Markdown

@DDINGJOO DDINGJOO commented Mar 6, 2026

Summary

This PR adds Actuator health indicators for two external vector stores:

  • Qdrant
  • Weaviate

The indicators are conditionally auto-configured and can be disabled with:

  • management.health.qdrant.enabled=false
  • management.health.weaviate.enabled=false

Why

Issue #1611 requests health indicators for vector stores that can become unavailable independently from the application.

Changes

  • Added QdrantVectorStoreHealthAutoConfiguration
  • Added WeaviateVectorStoreHealthAutoConfiguration
  • Registered both in each module's AutoConfiguration.imports
  • Added optional dependency org.springframework.boot:spring-boot-health in both autoconfigure modules
  • Added unit tests for both health auto-configurations

Behavior

Qdrant health indicator:

  • Calls QdrantClient.healthCheckAsync(Duration.ofSeconds(5))
  • Reports UP with details (title, version, optional commit, host, port)
  • Reports DOWN on exception

Weaviate health indicator:

  • Calls weaviateClient.misc().liveChecker().run()
  • Reports UP when result is true and no errors
  • Reports DOWN when response has errors, result is false/null, or exception occurs
  • Includes details (live, hasErrors, optional error, host)

Tests

Qdrant:

  • should be UP on healthy response
  • should be DOWN on client failure
  • should not register when management.health.qdrant.enabled=false
  • should back off when custom qdrantHealthIndicator bean is provided

Weaviate:

  • should be UP on healthy response
  • should be DOWN when response has errors
  • should be DOWN when run() throws
  • should not register when management.health.weaviate.enabled=false
  • should back off when custom weaviateHealthIndicator bean is provided

Build Verification

  • ./mvnw -pl auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-qdrant -Dmaven.build.cache.enabled=false -Denforcer.skip=true -Dkotlin.compiler.skip=true test
  • ./mvnw -pl auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-weaviate -Dmaven.build.cache.enabled=false -Denforcer.skip=true -Dkotlin.compiler.skip=true test

Related to #1611

Closes #1611

Signed-off-by: ddingjoo <ddingsha9@teambind.co.kr>
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.

1 participant