Skip to main content
Version: 8.1

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-5.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-5.1",gen_ai_response_model="gpt-5.1-2025-11-13",gen_ai_system="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-5.1",gen_ai_response_model="gpt-5.1-2025-11-13",gen_ai_system="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-5.1",gen_ai_response_model="gpt-5.1-2025-11-13",gen_ai_system="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-5.1",gen_ai_response_model="gpt-5.1-2025-11-13",gen_ai_system="openai"} 45
gen_ai_client_operation_seconds_sum{application="stonebranch-ai",error="none",gen_ai_operation_name="chat",gen_ai_request_model="gpt-5.1",gen_ai_response_model="gpt-5.1-2025-11-13",gen_ai_system="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-5.1",gen_ai_response_model="gpt-5.1-2025-11-13",gen_ai_system="openai"} 0.0

# HELP gen_ai_client_operation_active_seconds_max
# TYPE gen_ai_client_operation_active_seconds_max gauge
gen_ai_client_operation_active_seconds_max{application="stonebranch-ai",gen_ai_operation_name="chat",gen_ai_request_model="gpt-5.1",gen_ai_response_model="none",gen_ai_system="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="embedding",gen_ai_request_model="text-embedding-3-small",gen_ai_response_model="none",gen_ai_system="openai",gen_ai_token_type="input"} 8079898.0
gen_ai_client_token_usage_total{application="stonebranch-ai",gen_ai_operation_name="embedding",gen_ai_request_model="text-embedding-3-small",gen_ai_response_model="none",gen_ai_system="openai",gen_ai_token_type="output"} 0.0
gen_ai_client_token_usage_total{application="stonebranch-ai",gen_ai_operation_name="embedding",gen_ai_request_model="text-embedding-3-small",gen_ai_response_model="none",gen_ai_system="openai",gen_ai_token_type="total"} 8079898.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="embedding",gen_ai_request_model="text-embedding-3-small",gen_ai_response_model="none",gen_ai_system="openai"} 1401
gen_ai_client_operation_seconds_sum{application="stonebranch-ai",error="none",gen_ai_operation_name="embedding",gen_ai_request_model="text-embedding-3-small",gen_ai_response_model="none",gen_ai_system="openai"} 3469.5984563

# 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="embedding",gen_ai_request_model="text-embedding-3-small",gen_ai_response_model="none",gen_ai_system="openai"} 0.0

# HELP gen_ai_client_operation_active_seconds_max
# TYPE gen_ai_client_operation_active_seconds_max gauge
gen_ai_client_operation_active_seconds_max{application="stonebranch-ai",gen_ai_operation_name="embedding",gen_ai_request_model="text-embedding-3-small",gen_ai_response_model="none",gen_ai_system="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