Skip to main content

Observability

Robi AI exposes metrics that can be used to monitor the health and performance of the AI Service and AI MCP Server.

Accessing Metrics

Metrics are exposed by the AI Service through the following endpoints:

EndpointURLDescription
Prometheushttp://localhost:8081/ai/actuator/prometheusPrometheus-compatible metrics scrape endpoint
Healthhttp://localhost:8081/ai/actuator/healthService health status
Infohttp://localhost:8081/ai/actuator/infoBuild and version information (also exposed by the MCP Server)
info

Replace localhost:8081/ai with the actual host and context path of your AI Service deployment if different.

Info endpoint example

AI:

{
"app": {
"name": "Stonebranch AI",
"version": "1.0.0-build.15",
"description": "Stonebranch AI service providing LLM-backed chat and analysis capabilities",
"groupId": "com.stonebranch",
"artifactId": "ai",
"release": "1.0.0",
"build": "15",
"buildDate": "2026-03-30 11:47"
}
}

AI MCP:

{
"app": {
"name": "Stonebranch AI MCP Server",
"version": "1.0.0-build.15",
"description": "Stonebranch AI MCP Server - Model Context Protocol Server for Universal Controller",
"groupId": "com.stonebranch",
"artifactId": "ai-mcp",
"release": "1.0.0",
"build": "15",
"buildDate": "2026-03-30T11:47:11Z"
}
}

All three endpoints are unauthenticated and do not require an API key, to support Prometheus scrapers, load balancer health checks, and other operational tooling.

In addition to the custom sb_ai_* metrics listed below, the AI Service and AI MCP Server also expose native metrics provided automatically by the underlying frameworks (Spring Boot, Spring AI, HikariCP, and Tomcat).

Provided Metrics

The tables below list all available metrics, organized by category. Each set of metrics is paired with an example output.

Build Info Metric

MetricTypeDescription
sb_ai_buildGauge

Stonebranch AI build information.

Tags expose build metadata: artifact, build, build_date, name, release. The gauge value is always 1.0.

Example output
# HELP sb_ai_build Stonebranch AI build information.
# TYPE sb_ai_build gauge
sb_ai_build{application="stonebranch-ai",artifact="ai",build="15",build_date="2026-03-30 11:47",name="Stonebranch AI",release="1.0.0"} 1.0

Tool Metrics

MetricTypeDescription
sb_ai_tool_invocations_totalCounterTotal tool invocations (tags: tool, type, status)
sb_ai_tool_errors_totalCounterTotal tool errors (tags: tool, type, error_type)
sb_ai_tool_duration_secondsHistogramTool call duration (tags: tool, type)
sb_ai_tool_duration_seconds_maxGaugeTool call duration (tags: tool, type)
sb_ai_mcp_connection_statusGaugeMCP server connection status (1=connected, 0=disconnected)
Example output
# HELP sb_ai_mcp_connection_status MCP server connection status (1=connected, 0=disconnected)
# TYPE sb_ai_mcp_connection_status gauge
sb_ai_mcp_connection_status{application="stonebranch-ai"} 1.0

# HELP sb_ai_tool_invocations_total Total tool invocations
# TYPE sb_ai_tool_invocations_total counter
sb_ai_tool_invocations_total{application="stonebranch-ai",status="success",tool="get_script",type="mcp"} 1.0
sb_ai_tool_invocations_total{application="stonebranch-ai",status="success",tool="get_task_instance",type="mcp"} 5.0
sb_ai_tool_invocations_total{application="stonebranch-ai",status="success",tool="get_task_instance_audit",type="mcp"} 1.0
sb_ai_tool_invocations_total{application="stonebranch-ai",status="success",tool="get_workflow_instance",type="mcp"} 2.0
sb_ai_tool_invocations_total{application="stonebranch-ai",status="success",tool="list_task_instance_variables",type="mcp"} 2.0
sb_ai_tool_invocations_total{application="stonebranch-ai",status="success",tool="list_task_instances_by_name",type="mcp"} 2.0
sb_ai_tool_invocations_total{application="stonebranch-ai",status="success",tool="list_task_instances_by_workflow_instance_id",type="mcp"} 2.0
sb_ai_tool_invocations_total{application="stonebranch-ai",status="success",tool="rerun_task_instance",type="mcp"} 2.0
sb_ai_tool_invocations_total{application="stonebranch-ai",status="success",tool="update_task_instance_fields",type="mcp"} 1.0
sb_ai_tool_invocations_total{application="stonebranch-ai",status="success",tool="update_task_instance_variable",type="mcp"} 1.0

# HELP sb_ai_tool_duration_seconds Tool call duration
# TYPE sb_ai_tool_duration_seconds histogram
sb_ai_tool_duration_seconds_count{application="stonebranch-ai",tool="get_script",type="mcp"} 1
sb_ai_tool_duration_seconds_sum{application="stonebranch-ai",tool="get_script",type="mcp"} 0.1980616
sb_ai_tool_duration_seconds_count{application="stonebranch-ai",tool="get_task_instance",type="mcp"} 5
sb_ai_tool_duration_seconds_sum{application="stonebranch-ai",tool="get_task_instance",type="mcp"} 0.741137
sb_ai_tool_duration_seconds_count{application="stonebranch-ai",tool="get_task_instance_audit",type="mcp"} 1
sb_ai_tool_duration_seconds_sum{application="stonebranch-ai",tool="get_task_instance_audit",type="mcp"} 0.8646789
sb_ai_tool_duration_seconds_count{application="stonebranch-ai",tool="get_workflow_instance",type="mcp"} 2
sb_ai_tool_duration_seconds_sum{application="stonebranch-ai",tool="get_workflow_instance",type="mcp"} 0.0928934
sb_ai_tool_duration_seconds_count{application="stonebranch-ai",tool="list_task_instance_variables",type="mcp"} 2
sb_ai_tool_duration_seconds_sum{application="stonebranch-ai",tool="list_task_instance_variables",type="mcp"} 0.2317003
sb_ai_tool_duration_seconds_count{application="stonebranch-ai",tool="list_task_instances_by_name",type="mcp"} 2
sb_ai_tool_duration_seconds_sum{application="stonebranch-ai",tool="list_task_instances_by_name",type="mcp"} 12.1190015
sb_ai_tool_duration_seconds_count{application="stonebranch-ai",tool="list_task_instances_by_workflow_instance_id",type="mcp"} 2
sb_ai_tool_duration_seconds_sum{application="stonebranch-ai",tool="list_task_instances_by_workflow_instance_id",type="mcp"} 0.0490662
sb_ai_tool_duration_seconds_count{application="stonebranch-ai",tool="rerun_task_instance",type="mcp"} 2
sb_ai_tool_duration_seconds_sum{application="stonebranch-ai",tool="rerun_task_instance",type="mcp"} 0.1108538
sb_ai_tool_duration_seconds_count{application="stonebranch-ai",tool="update_task_instance_fields",type="mcp"} 1
sb_ai_tool_duration_seconds_sum{application="stonebranch-ai",tool="update_task_instance_fields",type="mcp"} 0.4105858
sb_ai_tool_duration_seconds_count{application="stonebranch-ai",tool="update_task_instance_variable",type="mcp"} 1
sb_ai_tool_duration_seconds_sum{application="stonebranch-ai",tool="update_task_instance_variable",type="mcp"} 0.030197

# HELP sb_ai_tool_duration_seconds_max Tool call duration
# TYPE sb_ai_tool_duration_seconds_max gauge
sb_ai_tool_duration_seconds_max{application="stonebranch-ai",tool="get_script",type="mcp"} 0.0
sb_ai_tool_duration_seconds_max{application="stonebranch-ai",tool="get_task_instance",type="mcp"} 0.0
sb_ai_tool_duration_seconds_max{application="stonebranch-ai",tool="get_task_instance_audit",type="mcp"} 0.0
sb_ai_tool_duration_seconds_max{application="stonebranch-ai",tool="get_workflow_instance",type="mcp"} 0.0
sb_ai_tool_duration_seconds_max{application="stonebranch-ai",tool="list_task_instance_variables",type="mcp"} 0.0
sb_ai_tool_duration_seconds_max{application="stonebranch-ai",tool="list_task_instances_by_name",type="mcp"} 0.0
sb_ai_tool_duration_seconds_max{application="stonebranch-ai",tool="list_task_instances_by_workflow_instance_id",type="mcp"} 0.0
sb_ai_tool_duration_seconds_max{application="stonebranch-ai",tool="rerun_task_instance",type="mcp"} 0.0
sb_ai_tool_duration_seconds_max{application="stonebranch-ai",tool="update_task_instance_fields",type="mcp"} 0.0
sb_ai_tool_duration_seconds_max{application="stonebranch-ai",tool="update_task_instance_variable",type="mcp"} 0.0

Conversation Metrics

MetricTypeDescription
sb_ai_conversations_activeGaugeNumber of active conversations
sb_ai_conversation_messages_totalCounterTotal messages by role (tags: role)
info

The delta between role="user" and role="assistant" counts indicates requests that did not receive a successful LLM response.

Example output
# HELP sb_ai_conversations_active Number of active conversations
# TYPE sb_ai_conversations_active gauge
sb_ai_conversations_active{application="stonebranch-ai"} 3.0

# HELP sb_ai_conversation_messages_total Total conversation messages by role
# TYPE sb_ai_conversation_messages_total counter
sb_ai_conversation_messages_total{application="stonebranch-ai",role="user"} 17.0
sb_ai_conversation_messages_total{application="stonebranch-ai",role="assistant"} 17.0

LLM Metrics

MetricTypeDescription
gen_ai_client_token_usage_totalCounterMeasures number of input and output tokens used (tags: gen_ai_operation_name, gen_ai_request_model, gen_ai_response_model, gen_ai_system, gen_ai_token_type)
gen_ai_client_operation_secondsHistogramLLM call duration (tags: error, gen_ai_operation_name, gen_ai_request_model, gen_ai_response_model, gen_ai_system)
gen_ai_client_operation_seconds_maxGaugeLLM call max duration
gen_ai_client_operation_active_secondsGaugeHistogramIn-flight LLM calls (tags: gen_ai_operation_name, gen_ai_request_model, gen_ai_response_model, gen_ai_system)
gen_ai_client_operation_active_seconds_gcountGaugeIn-flight LLM calls count (non-monotonic)
gen_ai_client_operation_active_seconds_gsumGaugeIn-flight LLM calls duration sum (non-monotonic)
gen_ai_client_operation_active_seconds_maxGaugeIn-flight LLM calls max duration
Example output

Chat (gpt-4.1):

# HELP gen_ai_client_token_usage_total Measures number of input and output tokens used
# TYPE gen_ai_client_token_usage_total counter
gen_ai_client_token_usage_total{application="stonebranch-ai",gen_ai_operation_name="chat",gen_ai_request_model="gpt-4.1",gen_ai_response_model="gpt-4.1-2025-04-14",gen_ai_system="azure-openai",gen_ai_token_type="input"} 809664.0
gen_ai_client_token_usage_total{application="stonebranch-ai",gen_ai_operation_name="chat",gen_ai_request_model="gpt-4.1",gen_ai_response_model="gpt-4.1-2025-04-14",gen_ai_system="azure-openai",gen_ai_token_type="output"} 4365.0
gen_ai_client_token_usage_total{application="stonebranch-ai",gen_ai_operation_name="chat",gen_ai_request_model="gpt-4.1",gen_ai_response_model="gpt-4.1-2025-04-14",gen_ai_system="azure-openai",gen_ai_token_type="total"} 814029.0

# HELP gen_ai_client_operation_seconds
# TYPE gen_ai_client_operation_seconds histogram
gen_ai_client_operation_seconds_count{application="stonebranch-ai",error="none",gen_ai_operation_name="chat",gen_ai_request_model="gpt-4.1",gen_ai_response_model="gpt-4.1-2025-04-14",gen_ai_system="azure-openai"} 45
gen_ai_client_operation_seconds_sum{application="stonebranch-ai",error="none",gen_ai_operation_name="chat",gen_ai_request_model="gpt-4.1",gen_ai_response_model="gpt-4.1-2025-04-14",gen_ai_system="azure-openai"} 360.4285117

# HELP gen_ai_client_operation_seconds_max
# TYPE gen_ai_client_operation_seconds_max gauge
gen_ai_client_operation_seconds_max{application="stonebranch-ai",error="none",gen_ai_operation_name="chat",gen_ai_request_model="gpt-4.1",gen_ai_response_model="gpt-4.1-2025-04-14",gen_ai_system="azure-openai"} 0.0

# HELP gen_ai_client_operation_active_seconds
# TYPE gen_ai_client_operation_active_seconds histogram
gen_ai_client_operation_active_seconds_max{application="stonebranch-ai",gen_ai_operation_name="chat",gen_ai_request_model="gpt-4.1",gen_ai_response_model="none",gen_ai_system="azure-openai"} 0.0

Embeddings (text-embedding-3-small):

# HELP gen_ai_client_token_usage_total Measures number of input and output tokens used
# TYPE gen_ai_client_token_usage_total counter
gen_ai_client_token_usage_total{application="stonebranch-ai",gen_ai_operation_name="chat",gen_ai_request_model="gpt-4.1",gen_ai_response_model="gpt-4.1-2025-04-14",gen_ai_system="azure-openai",gen_ai_token_type="input"} 809664.0
gen_ai_client_token_usage_total{application="stonebranch-ai",gen_ai_operation_name="chat",gen_ai_request_model="gpt-4.1",gen_ai_response_model="gpt-4.1-2025-04-14",gen_ai_system="azure-openai",gen_ai_token_type="output"} 4365.0
gen_ai_client_token_usage_total{application="stonebranch-ai",gen_ai_operation_name="chat",gen_ai_request_model="gpt-4.1",gen_ai_response_model="gpt-4.1-2025-04-14",gen_ai_system="azure-openai",gen_ai_token_type="total"} 814029.0

# HELP gen_ai_client_operation_seconds
# TYPE gen_ai_client_operation_seconds histogram
gen_ai_client_operation_seconds_count{application="stonebranch-ai",error="none",gen_ai_operation_name="chat",gen_ai_request_model="gpt-4.1",gen_ai_response_model="gpt-4.1-2025-04-14",gen_ai_system="azure-openai"} 45
gen_ai_client_operation_seconds_sum{application="stonebranch-ai",error="none",gen_ai_operation_name="chat",gen_ai_request_model="gpt-4.1",gen_ai_response_model="gpt-4.1-2025-04-14",gen_ai_system="azure-openai"} 360.4285117

# HELP gen_ai_client_operation_seconds_max
# TYPE gen_ai_client_operation_seconds_max gauge
gen_ai_client_operation_seconds_max{application="stonebranch-ai",error="none",gen_ai_operation_name="chat",gen_ai_request_model="gpt-4.1",gen_ai_response_model="gpt-4.1-2025-04-14",gen_ai_system="azure-openai"} 0.0

# HELP gen_ai_client_operation_active_seconds
# TYPE gen_ai_client_operation_active_seconds histogram
gen_ai_client_operation_active_seconds_max{application="stonebranch-ai",gen_ai_operation_name="chat",gen_ai_request_model="gpt-4.1",gen_ai_response_model="none",gen_ai_system="azure-openai"} 0.0

Vector Store Metrics

MetricTypeDescription
db_vector_client_operation_secondsHistogramVector store operation duration (tags: db_operation_name, db_system, error, spring_ai_kind)
db_vector_client_operation_seconds_maxGaugeVector store operation max duration
db_vector_client_operation_active_secondsGaugeHistogramIn-flight vector store operations (tags: db_operation_name, db_system, spring_ai_kind)
db_vector_client_operation_active_seconds_gcountGaugeIn-flight vector store operations count (non-monotonic)
db_vector_client_operation_active_seconds_gsumGaugeIn-flight vector store operations duration sum (non-monotonic)
db_vector_client_operation_active_seconds_maxGaugeIn-flight vector store operations max duration
Example output
# HELP db_vector_client_operation_active_seconds
# TYPE db_vector_client_operation_active_seconds histogram
db_vector_client_operation_active_seconds_gcount{application="stonebranch-ai",db_operation_name="add",db_system="pg_vector",spring_ai_kind="vector_store"} 0
db_vector_client_operation_active_seconds_gsum{application="stonebranch-ai",db_operation_name="add",db_system="pg_vector",spring_ai_kind="vector_store"} 0.0
db_vector_client_operation_active_seconds_gcount{application="stonebranch-ai",db_operation_name="query",db_system="pg_vector",spring_ai_kind="vector_store"} 0
db_vector_client_operation_active_seconds_gsum{application="stonebranch-ai",db_operation_name="query",db_system="pg_vector",spring_ai_kind="vector_store"} 0.0

# HELP db_vector_client_operation_active_seconds_max
# TYPE db_vector_client_operation_active_seconds_max gauge
db_vector_client_operation_active_seconds_max{application="stonebranch-ai",db_operation_name="add",db_system="pg_vector",spring_ai_kind="vector_store"} 0.0
db_vector_client_operation_active_seconds_max{application="stonebranch-ai",db_operation_name="query",db_system="pg_vector",spring_ai_kind="vector_store"} 0.0

# HELP db_vector_client_operation_seconds
# TYPE db_vector_client_operation_seconds histogram
db_vector_client_operation_seconds_count{application="stonebranch-ai",db_operation_name="add",db_system="pg_vector",error="none",spring_ai_kind="vector_store"} 721
db_vector_client_operation_seconds_sum{application="stonebranch-ai",db_operation_name="add",db_system="pg_vector",error="none",spring_ai_kind="vector_store"} 3705.4109973
db_vector_client_operation_seconds_count{application="stonebranch-ai",db_operation_name="query",db_system="pg_vector",error="none",spring_ai_kind="vector_store"} 8
db_vector_client_operation_seconds_sum{application="stonebranch-ai",db_operation_name="query",db_system="pg_vector",error="none",spring_ai_kind="vector_store"} 12.1208294

# HELP db_vector_client_operation_seconds_max
# TYPE db_vector_client_operation_seconds_max gauge
db_vector_client_operation_seconds_max{application="stonebranch-ai",db_operation_name="add",db_system="pg_vector",error="none",spring_ai_kind="vector_store"} 0.0
db_vector_client_operation_seconds_max{application="stonebranch-ai",db_operation_name="query",db_system="pg_vector",error="none",spring_ai_kind="vector_store"} 0.0

ChatClient / Advisor Metrics

MetricTypeDescription
spring_ai_chat_client_secondsHistogramChatClient call duration (tags: error, gen_ai_operation_name, gen_ai_system, spring_ai_chat_client_stream, spring_ai_kind)
spring_ai_chat_client_seconds_maxGaugeChatClient call max duration
spring_ai_chat_client_active_secondsGaugeHistogramIn-flight ChatClient calls (tags: gen_ai_operation_name, gen_ai_system, spring_ai_chat_client_stream, spring_ai_kind)
spring_ai_chat_client_active_seconds_gcountGaugeIn-flight ChatClient calls count (non-monotonic)
spring_ai_chat_client_active_seconds_gsumGaugeIn-flight ChatClient calls duration sum (non-monotonic)
spring_ai_chat_client_active_seconds_maxGaugeIn-flight ChatClient calls max duration
spring_ai_advisor_secondsHistogramAdvisor execution duration (tags: error, gen_ai_operation_name, gen_ai_system, spring_ai_advisor_name, spring_ai_kind)
spring_ai_advisor_seconds_maxGaugeAdvisor execution max duration
spring_ai_advisor_active_secondsGaugeHistogramIn-flight advisor calls (tags: gen_ai_operation_name, gen_ai_system, spring_ai_advisor_name, spring_ai_kind)
spring_ai_advisor_active_seconds_gcountGaugeIn-flight advisor calls count (non-monotonic)
spring_ai_advisor_active_seconds_gsumGaugeIn-flight advisor calls duration sum (non-monotonic)
spring_ai_advisor_active_seconds_maxGaugeIn-flight advisor calls max duration
Example output
# HELP spring_ai_chat_client_seconds
# TYPE spring_ai_chat_client_seconds histogram
spring_ai_chat_client_seconds_count{application="stonebranch-ai",error="none",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_chat_client_stream="false",spring_ai_kind="chat_client"} 27
spring_ai_chat_client_seconds_sum{application="stonebranch-ai",error="none",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_chat_client_stream="false",spring_ai_kind="chat_client"} 388.7094596

# HELP spring_ai_chat_client_seconds_max
# TYPE spring_ai_chat_client_seconds_max gauge
spring_ai_chat_client_seconds_max{application="stonebranch-ai",error="none",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_chat_client_stream="false",spring_ai_kind="chat_client"} 0.0

# HELP spring_ai_chat_client_active_seconds
# TYPE spring_ai_chat_client_active_seconds histogram
spring_ai_chat_client_active_seconds_gcount{application="stonebranch-ai",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_chat_client_stream="false",spring_ai_kind="chat_client"} 0
spring_ai_chat_client_active_seconds_gsum{application="stonebranch-ai",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_chat_client_stream="false",spring_ai_kind="chat_client"} 0.0

# HELP spring_ai_chat_client_active_seconds_max
# TYPE spring_ai_chat_client_active_seconds_max gauge
spring_ai_chat_client_active_seconds_max{application="stonebranch-ai",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_chat_client_stream="false",spring_ai_kind="chat_client"} 0.0

# HELP spring_ai_advisor_seconds
# TYPE spring_ai_advisor_seconds histogram
spring_ai_advisor_seconds_count{application="stonebranch-ai",error="none",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="call",spring_ai_kind="advisor"} 27
spring_ai_advisor_seconds_sum{application="stonebranch-ai",error="none",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="call",spring_ai_kind="advisor"} 375.8408485
spring_ai_advisor_seconds_count{application="stonebranch-ai",error="none",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="MessageChatMemoryAdvisor",spring_ai_kind="advisor"} 17
spring_ai_advisor_seconds_sum{application="stonebranch-ai",error="none",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="MessageChatMemoryAdvisor",spring_ai_kind="advisor"} 378.4018341
spring_ai_advisor_seconds_count{application="stonebranch-ai",error="none",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="RetrievalAugmentationAdvisor",spring_ai_kind="advisor"} 8
spring_ai_advisor_seconds_sum{application="stonebranch-ai",error="none",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="RetrievalAugmentationAdvisor",spring_ai_kind="advisor"} 26.3400961
spring_ai_advisor_seconds_count{application="stonebranch-ai",error="none",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="DetailedPromptLoggerAdvisor",spring_ai_kind="advisor"} 17
spring_ai_advisor_seconds_sum{application="stonebranch-ai",error="none",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="DetailedPromptLoggerAdvisor",spring_ai_kind="advisor"} 365.5811003
spring_ai_advisor_seconds_count{application="stonebranch-ai",error="none",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="SimpleLoggerAdvisor",spring_ai_kind="advisor"} 17
spring_ai_advisor_seconds_sum{application="stonebranch-ai",error="none",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="SimpleLoggerAdvisor",spring_ai_kind="advisor"} 378.3915906

# HELP spring_ai_advisor_seconds_max
# TYPE spring_ai_advisor_seconds_max gauge
spring_ai_advisor_seconds_max{application="stonebranch-ai",error="none",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="call",spring_ai_kind="advisor"} 0.0
spring_ai_advisor_seconds_max{application="stonebranch-ai",error="none",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="MessageChatMemoryAdvisor",spring_ai_kind="advisor"} 0.0
spring_ai_advisor_seconds_max{application="stonebranch-ai",error="none",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="RetrievalAugmentationAdvisor",spring_ai_kind="advisor"} 0.0
spring_ai_advisor_seconds_max{application="stonebranch-ai",error="none",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="DetailedPromptLoggerAdvisor",spring_ai_kind="advisor"} 0.0
spring_ai_advisor_seconds_max{application="stonebranch-ai",error="none",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="SimpleLoggerAdvisor",spring_ai_kind="advisor"} 0.0

# HELP spring_ai_advisor_active_seconds
# TYPE spring_ai_advisor_active_seconds histogram
spring_ai_advisor_active_seconds_gcount{application="stonebranch-ai",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="call",spring_ai_kind="advisor"} 0
spring_ai_advisor_active_seconds_gsum{application="stonebranch-ai",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="call",spring_ai_kind="advisor"} 0.0
spring_ai_advisor_active_seconds_gcount{application="stonebranch-ai",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="MessageChatMemoryAdvisor",spring_ai_kind="advisor"} 0
spring_ai_advisor_active_seconds_gsum{application="stonebranch-ai",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="MessageChatMemoryAdvisor",spring_ai_kind="advisor"} 0.0
spring_ai_advisor_active_seconds_gcount{application="stonebranch-ai",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="RetrievalAugmentationAdvisor",spring_ai_kind="advisor"} 0
spring_ai_advisor_active_seconds_gsum{application="stonebranch-ai",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="RetrievalAugmentationAdvisor",spring_ai_kind="advisor"} 0.0
spring_ai_advisor_active_seconds_gcount{application="stonebranch-ai",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="DetailedPromptLoggerAdvisor",spring_ai_kind="advisor"} 0
spring_ai_advisor_active_seconds_gsum{application="stonebranch-ai",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="DetailedPromptLoggerAdvisor",spring_ai_kind="advisor"} 0.0
spring_ai_advisor_active_seconds_gcount{application="stonebranch-ai",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="SimpleLoggerAdvisor",spring_ai_kind="advisor"} 0
spring_ai_advisor_active_seconds_gsum{application="stonebranch-ai",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="SimpleLoggerAdvisor",spring_ai_kind="advisor"} 0.0

# HELP spring_ai_advisor_active_seconds_max
# TYPE spring_ai_advisor_active_seconds_max gauge
spring_ai_advisor_active_seconds_max{application="stonebranch-ai",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="call",spring_ai_kind="advisor"} 0.0
spring_ai_advisor_active_seconds_max{application="stonebranch-ai",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="MessageChatMemoryAdvisor",spring_ai_kind="advisor"} 0.0
spring_ai_advisor_active_seconds_max{application="stonebranch-ai",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="RetrievalAugmentationAdvisor",spring_ai_kind="advisor"} 0.0
spring_ai_advisor_active_seconds_max{application="stonebranch-ai",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="DetailedPromptLoggerAdvisor",spring_ai_kind="advisor"} 0.0
spring_ai_advisor_active_seconds_max{application="stonebranch-ai",gen_ai_operation_name="framework",gen_ai_system="spring_ai",spring_ai_advisor_name="SimpleLoggerAdvisor",spring_ai_kind="advisor"} 0.0

Spring Boot Metrics

MetricTypeDescription
http_server_requests_secondsHistogramHTTP request duration (tags: error, exception, method, outcome, status, uri)
http_server_requests_seconds_maxGaugeHTTP request max duration
http_server_requests_active_secondsGaugeHistogramIn-flight HTTP requests (tags: exception, method, outcome, status, uri)
http_server_requests_active_seconds_gcountGaugeIn-flight HTTP requests count (non-monotonic)
http_server_requests_active_seconds_gsumGaugeIn-flight HTTP requests duration sum (non-monotonic)
http_server_requests_active_seconds_maxGaugeIn-flight HTTP requests max duration
Example output
# HELP http_server_requests_seconds

# TYPE http_server_requests_seconds histogram
http_server_requests_seconds_count{application="stonebranch-ai",error="none",exception="none",method="POST",outcome="SUCCESS",status="200",uri="/api/chat"} 10
http_server_requests_seconds_sum{application="stonebranch-ai",error="none",exception="none",method="POST",outcome="SUCCESS",status="200",uri="/api/chat"} 55.4338725
http_server_requests_seconds_count{application="stonebranch-ai",error="none",exception="none",method="POST",outcome="SUCCESS",status="200",uri="/api/analyze/taskinstance"} 7
http_server_requests_seconds_sum{application="stonebranch-ai",error="none",exception="none",method="POST",outcome="SUCCESS",status="200",uri="/api/analyze/taskinstance"} 334.0895135
http_server_requests_seconds_count{application="stonebranch-ai",error="none",exception="none",method="DELETE",outcome="SUCCESS",status="200",uri="/api/conversation"} 3
http_server_requests_seconds_sum{application="stonebranch-ai",error="none",exception="none",method="DELETE",outcome="SUCCESS",status="200",uri="/api/conversation"} 0.0100497
http_server_requests_seconds_count{application="stonebranch-ai",error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/actuator/prometheus"} 12
http_server_requests_seconds_sum{application="stonebranch-ai",error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/actuator/prometheus"} 9.0552656
http_server_requests_seconds_count{application="stonebranch-ai",error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/actuator/info"} 2
http_server_requests_seconds_sum{application="stonebranch-ai",error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/actuator/info"} 0.1510503
http_server_requests_seconds_count{application="stonebranch-ai",error="none",exception="none",method="GET",outcome="CLIENT_ERROR",status="403",uri="UNKNOWN"} 2
http_server_requests_seconds_sum{application="stonebranch-ai",error="none",exception="none",method="GET",outcome="CLIENT_ERROR",status="403",uri="UNKNOWN"} 0.0087491

# HELP http_server_requests_seconds_max

# TYPE http_server_requests_seconds_max gauge
http_server_requests_seconds_max{application="stonebranch-ai",error="none",exception="none",method="POST",outcome="SUCCESS",status="200",uri="/api/chat"} 0.0
http_server_requests_seconds_max{application="stonebranch-ai",error="none",exception="none",method="POST",outcome="SUCCESS",status="200",uri="/api/analyze/taskinstance"} 0.0
http_server_requests_seconds_max{application="stonebranch-ai",error="none",exception="none",method="DELETE",outcome="SUCCESS",status="200",uri="/api/conversation"} 0.0
http_server_requests_seconds_max{application="stonebranch-ai",error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/actuator/prometheus"} 0.3693929
http_server_requests_seconds_max{application="stonebranch-ai",error="none",exception="none",method="GET",outcome="SUCCESS",status="200",uri="/actuator/info"} 0.0
http_server_requests_seconds_max{application="stonebranch-ai",error="none",exception="none",method="GET",outcome="CLIENT_ERROR",status="403",uri="UNKNOWN"} 0.0010114

# HELP http_server_requests_active_seconds

# TYPE http_server_requests_active_seconds histogram
http_server_requests_active_seconds_gcount{application="stonebranch-ai",exception="none",method="POST",outcome="SUCCESS",status="200",uri="UNKNOWN"} 0
http_server_requests_active_seconds_gsum{application="stonebranch-ai",exception="none",method="POST",outcome="SUCCESS",status="200",uri="UNKNOWN"} 0.0
http_server_requests_active_seconds_gcount{application="stonebranch-ai",exception="none",method="GET",outcome="SUCCESS",status="200",uri="UNKNOWN"} 1
http_server_requests_active_seconds_gsum{application="stonebranch-ai",exception="none",method="GET",outcome="SUCCESS",status="200",uri="UNKNOWN"} 0.3637065
http_server_requests_active_seconds_gcount{application="stonebranch-ai",exception="none",method="DELETE",outcome="SUCCESS",status="200",uri="UNKNOWN"} 0
http_server_requests_active_seconds_gsum{application="stonebranch-ai",exception="none",method="DELETE",outcome="SUCCESS",status="200",uri="UNKNOWN"} 0.0

# HELP http_server_requests_active_seconds_max

# TYPE http_server_requests_active_seconds_max gauge
http_server_requests_active_seconds_max{application="stonebranch-ai",exception="none",method="POST",outcome="SUCCESS",status="200",uri="UNKNOWN"} 0.0
http_server_requests_active_seconds_max{application="stonebranch-ai",exception="none",method="GET",outcome="SUCCESS",status="200",uri="UNKNOWN"} 0.3637104
http_server_requests_active_seconds_max{application="stonebranch-ai",exception="none",method="DELETE",outcome="SUCCESS",status="200",uri="UNKNOWN"} 0.0

Infrastructure Metrics

MetricTypeDescription
application_ready_time_secondsGaugeTime taken for the application to be ready to service requests
application_started_time_secondsGaugeTime taken to start the application
process_uptime_secondsGaugeThe uptime of the Java virtual machine
process_start_time_secondsGaugeStart time of the process since unix epoch
process_cpu_usageGaugeThe "recent cpu usage" for the Java Virtual Machine process
process_cpu_time_ns_totalCounterThe "cpu time" used by the Java Virtual Machine process
system_cpu_countGaugeThe number of processors available to the Java virtual machine
system_cpu_usageGaugeThe "recent cpu usage" of the system the application is running in
jvm_infoGaugeJVM version info
jvm_memory_used_bytesGaugeThe amount of used memory (tags: area, id)
jvm_memory_committed_bytesGaugeThe amount of memory in bytes that is committed for the JVM to use (tags: area, id)
jvm_memory_max_bytesGaugeThe maximum amount of memory in bytes that can be used for memory management (tags: area, id)
jvm_memory_usage_after_gcGaugeThe percentage of long-lived heap pool used after the last GC event
jvm_buffer_count_buffersGaugeAn estimate of the number of buffers in the pool (tags: id)
jvm_buffer_memory_used_bytesGaugeAn estimate of the memory that the JVM is using for this buffer pool (tags: id)
jvm_buffer_total_capacity_bytesGaugeAn estimate of the total capacity of the buffers in this pool (tags: id)
jvm_gc_pause_secondsSummaryTime spent in GC pause (tags: action, cause)
jvm_gc_live_data_size_bytesGaugeSize of long-lived heap memory pool after reclamation
jvm_gc_max_data_size_bytesGaugeMax size of long-lived heap memory pool
jvm_gc_memory_allocated_bytes_totalCounterIncremented for an increase in the size of the (young) heap memory pool after one GC to before the next
jvm_gc_memory_promoted_bytes_totalCounterCount of positive increases in the size of the old generation memory pool before GC to after GC
jvm_gc_overheadGaugeAn approximation of the percent of CPU time used by GC activities
jvm_classes_loaded_classesGaugeThe number of classes that are currently loaded in the JVM
jvm_classes_unloaded_classes_totalCounterThe number of classes unloaded in the JVM
jvm_compilation_time_ms_totalCounterThe approximate accumulated elapsed time spent in compilation
jvm_threads_live_threadsGaugeThe current number of live threads including both daemon and non-daemon threads
jvm_threads_daemon_threadsGaugeThe current number of live daemon threads
jvm_threads_peak_threadsGaugeThe peak live thread count since the JVM started or peak was reset
jvm_threads_started_threads_totalCounterThe total number of application threads started in the JVM
jvm_threads_states_threadsGaugeThe current number of threads (tags: state)
hikaricp_connectionsGaugeTotal connections
hikaricp_connections_activeGaugeActive connections
hikaricp_connections_idleGaugeIdle connections
hikaricp_connections_maxGaugeMax connections
hikaricp_connections_minGaugeMin connections
hikaricp_connections_pendingGaugePending threads
hikaricp_connections_timeout_totalCounterConnection timeout total count
hikaricp_connections_acquire_secondsSummaryConnection acquire time
hikaricp_connections_creation_secondsSummaryConnection creation time
hikaricp_connections_usage_secondsSummaryConnection usage time
jdbc_connections_activeGaugeCurrent number of active connections that have been allocated from the data source
jdbc_connections_idleGaugeNumber of established but idle connections
jdbc_connections_maxGaugeMaximum number of active connections that can be allocated at the same time
jdbc_connections_minGaugeMinimum number of idle connections in the pool
logback_events_totalCounterNumber of log events that were enabled by the effective log level (tags: level)
tomcat_connections_config_max_connectionsGaugeMaximum configured connections
tomcat_connections_current_connectionsGaugeCurrent active connections
tomcat_connections_keepalive_current_connectionsGaugeCurrent keep-alive connections
tomcat_threads_busy_threadsGaugeBusy threads in the Tomcat thread pool
tomcat_threads_config_max_threadsGaugeMaximum configured threads
tomcat_threads_current_threadsGaugeCurrent threads in the Tomcat thread pool
tomcat_global_request_secondsSummaryTotal request processing time
tomcat_global_request_max_secondsGaugeMaximum request processing time
tomcat_global_error_totalCounterTotal error count
tomcat_global_sent_bytes_totalCounterTotal bytes sent
tomcat_global_received_bytes_totalCounterTotal bytes received
tomcat_servlet_request_secondsSummaryServlet request processing time (tags: name)
tomcat_servlet_request_max_secondsGaugeServlet max request processing time (tags: name)
tomcat_servlet_error_totalCounterServlet error count (tags: name)
tomcat_cache_access_totalCounterCache access count
tomcat_cache_hit_totalCounterCache hit count
executor_active_threadsGaugeThe approximate number of threads that are actively executing tasks
executor_completed_tasks_totalCounterThe approximate total number of tasks that have completed execution
executor_pool_core_threadsGaugeThe core number of threads for the pool
executor_pool_max_threadsGaugeThe maximum allowed number of threads in the pool
executor_pool_size_threadsGaugeThe current number of threads in the pool
executor_queue_remaining_tasksGaugeThe number of additional elements that this queue can ideally accept without blocking
executor_queued_tasksGaugeThe approximate number of tasks that are queued for execution