Class SpringAIObservabilityHandler
java.lang.Object
com.google.adk.models.springai.observability.SpringAIObservabilityHandler
Handles observability features for Spring AI integration using Micrometer.
This class provides:
- Metrics collection for request latency, token counts, and error rates via Micrometer
- Request/response logging with configurable content inclusion
- Performance monitoring for streaming and non-streaming requests
- Integration with any Micrometer-compatible metrics backend (Prometheus, Datadog, etc.)
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classContext for tracking a single request with Micrometer timer. -
Constructor Summary
ConstructorsConstructorDescriptionCreates an observability handler with a default SimpleMeterRegistry.SpringAIObservabilityHandler(SpringAIProperties.Observability config, io.micrometer.core.instrument.MeterRegistry meterRegistry) Creates an observability handler with a custom MeterRegistry. -
Method Summary
Modifier and TypeMethodDescriptionio.micrometer.core.instrument.MeterRegistryGets the Micrometer MeterRegistry for direct access to metrics.voidlogRequest(String content, String modelName) Logs request content if enabled.voidlogResponse(String content, String modelName) Logs response content if enabled.voidrecordError(SpringAIObservabilityHandler.RequestContext context, Throwable error) Records a failed request.voidrecordSuccess(SpringAIObservabilityHandler.RequestContext context, int tokenCount, int inputTokens, int outputTokens) Records the completion of a successful request.startRequest(String modelName, String requestType) Records the start of a request.
-
Constructor Details
-
SpringAIObservabilityHandler
Creates an observability handler with a default SimpleMeterRegistry.- Parameters:
config- the observability configuration
-
SpringAIObservabilityHandler
public SpringAIObservabilityHandler(SpringAIProperties.Observability config, io.micrometer.core.instrument.MeterRegistry meterRegistry) Creates an observability handler with a custom MeterRegistry.- Parameters:
config- the observability configurationmeterRegistry- the Micrometer meter registry to use for metrics
-
-
Method Details
-
startRequest
public SpringAIObservabilityHandler.RequestContext startRequest(String modelName, String requestType) Records the start of a request.- Parameters:
modelName- the name of the model being usedrequestType- the type of request (e.g., "chat", "streaming")- Returns:
- a request context for tracking the request
-
recordSuccess
public void recordSuccess(SpringAIObservabilityHandler.RequestContext context, int tokenCount, int inputTokens, int outputTokens) Records the completion of a successful request.- Parameters:
context- the request contexttokenCount- the number of tokens processed (input + output)inputTokens- the number of input tokensoutputTokens- the number of output tokens
-
recordError
Records a failed request.- Parameters:
context- the request contexterror- the error that occurred
-
logRequest
-
logResponse
-
getMeterRegistry
public io.micrometer.core.instrument.MeterRegistry getMeterRegistry()Gets the Micrometer MeterRegistry for direct access to metrics.This allows users to export metrics to any Micrometer-compatible backend (Prometheus, Datadog, CloudWatch, etc.) or query metrics programmatically.
- Returns:
- the MeterRegistry instance
-