# HELP python_gc_objects_collected_total Objects collected during gc # TYPE python_gc_objects_collected_total counter python_gc_objects_collected_total{generation="0"} 96043.0 python_gc_objects_collected_total{generation="1"} 21817.0 python_gc_objects_collected_total{generation="2"} 756.0 # HELP python_gc_objects_uncollectable_total Uncollectable objects found during GC # TYPE python_gc_objects_uncollectable_total counter python_gc_objects_uncollectable_total{generation="0"} 0.0 python_gc_objects_uncollectable_total{generation="1"} 0.0 python_gc_objects_uncollectable_total{generation="2"} 0.0 # HELP python_gc_collections_total Number of times this generation was collected # TYPE python_gc_collections_total counter python_gc_collections_total{generation="0"} 407.0 python_gc_collections_total{generation="1"} 36.0 python_gc_collections_total{generation="2"} 2.0 # HELP python_info Python platform information # TYPE python_info gauge python_info{implementation="CPython",major="3",minor="12",patchlevel="14",version="3.12.14"} 1.0 # HELP process_virtual_memory_bytes Virtual memory size in bytes. # TYPE process_virtual_memory_bytes gauge process_virtual_memory_bytes 6.5058816e+08 # HELP process_resident_memory_bytes Resident memory size in bytes. # TYPE process_resident_memory_bytes gauge process_resident_memory_bytes 1.05234432e+08 # HELP process_start_time_seconds Start time of the process since unix epoch in seconds. # TYPE process_start_time_seconds gauge process_start_time_seconds 1.79057849397e+09 # HELP process_cpu_seconds_total Total user and system CPU time spent in seconds. # TYPE process_cpu_seconds_total counter process_cpu_seconds_total 49.230000000000004 # HELP process_open_fds Number of open file descriptors. # TYPE process_open_fds gauge process_open_fds 23.0 # HELP process_max_fds Maximum number of open file descriptors. # TYPE process_max_fds gauge process_max_fds 1024.0 # HELP bankoffer_offers_generated_total Total offers generated # TYPE bankoffer_offers_generated_total counter # HELP bankoffer_offer_scoring_seconds Time spent scoring offers for a customer # TYPE bankoffer_offer_scoring_seconds histogram bankoffer_offer_scoring_seconds_bucket{le="0.01"} 0.0 bankoffer_offer_scoring_seconds_bucket{le="0.025"} 0.0 bankoffer_offer_scoring_seconds_bucket{le="0.05"} 0.0 bankoffer_offer_scoring_seconds_bucket{le="0.1"} 0.0 bankoffer_offer_scoring_seconds_bucket{le="0.25"} 0.0 bankoffer_offer_scoring_seconds_bucket{le="0.5"} 0.0 bankoffer_offer_scoring_seconds_bucket{le="1.0"} 0.0 bankoffer_offer_scoring_seconds_bucket{le="2.5"} 0.0 bankoffer_offer_scoring_seconds_bucket{le="+Inf"} 0.0 bankoffer_offer_scoring_seconds_count 0.0 bankoffer_offer_scoring_seconds_sum 0.0 # HELP bankoffer_offer_scoring_seconds_created Time spent scoring offers for a customer # TYPE bankoffer_offer_scoring_seconds_created gauge bankoffer_offer_scoring_seconds_created 1.79057849585474e+09 # HELP bankoffer_offers_per_request Number of offers returned per request # TYPE bankoffer_offers_per_request histogram bankoffer_offers_per_request_bucket{le="0.0"} 0.0 bankoffer_offers_per_request_bucket{le="1.0"} 0.0 bankoffer_offers_per_request_bucket{le="2.0"} 0.0 bankoffer_offers_per_request_bucket{le="3.0"} 0.0 bankoffer_offers_per_request_bucket{le="5.0"} 0.0 bankoffer_offers_per_request_bucket{le="8.0"} 0.0 bankoffer_offers_per_request_bucket{le="10.0"} 0.0 bankoffer_offers_per_request_bucket{le="15.0"} 0.0 bankoffer_offers_per_request_bucket{le="20.0"} 0.0 bankoffer_offers_per_request_bucket{le="+Inf"} 0.0 bankoffer_offers_per_request_count 0.0 bankoffer_offers_per_request_sum 0.0 # HELP bankoffer_offers_per_request_created Number of offers returned per request # TYPE bankoffer_offers_per_request_created gauge bankoffer_offers_per_request_created 1.790578495854789e+09 # HELP bankoffer_suitability_checks_total Suitability check outcomes # TYPE bankoffer_suitability_checks_total counter # HELP bankoffer_consent_blocks_total Requests blocked due to missing consent # TYPE bankoffer_consent_blocks_total counter # HELP bankoffer_kill_switch_active Whether the model kill-switch is engaged (1=active, 0=inactive) # TYPE bankoffer_kill_switch_active gauge bankoffer_kill_switch_active 0.0 # HELP bankoffer_customers_total Total customers in the database # TYPE bankoffer_customers_total gauge bankoffer_customers_total 50.0 # HELP bankoffer_products_active_total Number of active products # TYPE bankoffer_products_active_total gauge bankoffer_products_active_total 0.0 # HELP bankoffer_profile_build_seconds Time to build a customer profile # TYPE bankoffer_profile_build_seconds histogram bankoffer_profile_build_seconds_bucket{le="0.001"} 0.0 bankoffer_profile_build_seconds_bucket{le="0.005"} 0.0 bankoffer_profile_build_seconds_bucket{le="0.01"} 0.0 bankoffer_profile_build_seconds_bucket{le="0.025"} 0.0 bankoffer_profile_build_seconds_bucket{le="0.05"} 0.0 bankoffer_profile_build_seconds_bucket{le="0.1"} 0.0 bankoffer_profile_build_seconds_bucket{le="0.25"} 0.0 bankoffer_profile_build_seconds_bucket{le="+Inf"} 0.0 bankoffer_profile_build_seconds_count 0.0 bankoffer_profile_build_seconds_sum 0.0 # HELP bankoffer_profile_build_seconds_created Time to build a customer profile # TYPE bankoffer_profile_build_seconds_created gauge bankoffer_profile_build_seconds_created 1.7905784958548687e+09 # HELP bankoffer_demo_logins_total Demo login attempts # TYPE bankoffer_demo_logins_total counter # HELP bankoffer_ai_api_calls_total External AI provider API calls # TYPE bankoffer_ai_api_calls_total counter # HELP bankoffer_ai_api_latency_seconds Latency of external AI API calls # TYPE bankoffer_ai_api_latency_seconds histogram # HELP bankoffer_ai_suggestions_filtered_total AI suggestions filtered out by guardrails # TYPE bankoffer_ai_suggestions_filtered_total counter # HELP bankoffer_ai_analysis_rate_limited_total Analysis requests blocked by rate limiter # TYPE bankoffer_ai_analysis_rate_limited_total counter bankoffer_ai_analysis_rate_limited_total 0.0 # HELP bankoffer_ai_analysis_rate_limited_created Analysis requests blocked by rate limiter # TYPE bankoffer_ai_analysis_rate_limited_created gauge bankoffer_ai_analysis_rate_limited_created 1.7905784958549309e+09 # HELP bankoffer_offer_score_by_age_bracket Offer relevance scores grouped by age bracket # TYPE bankoffer_offer_score_by_age_bracket histogram # HELP bankoffer_offer_score_by_income_tier Offer relevance scores grouped by income tier # TYPE bankoffer_offer_score_by_income_tier histogram # HELP http_requests_total Total number of requests by method, status and handler. # TYPE http_requests_total counter http_requests_total{handler="/portal",method="GET",status="2xx"} 6.0 http_requests_total{handler="/",method="GET",status="2xx"} 31.0 http_requests_total{handler="/static",method="GET",status="2xx"} 21.0 http_requests_total{handler="/docs",method="GET",status="2xx"} 2.0 http_requests_total{handler="/admin",method="GET",status="2xx"} 1.0 http_requests_total{handler="/static",method="GET",status="3xx"} 1.0 http_requests_total{handler="/admin/",method="GET",status="3xx"} 1.0 http_requests_total{handler="/openapi.json",method="GET",status="2xx"} 1.0 http_requests_total{handler="/static",method="GET",status="4xx"} 1.0 # HELP http_requests_created Total number of requests by method, status and handler. # TYPE http_requests_created gauge http_requests_created{handler="/portal",method="GET",status="2xx"} 1.790581685626988e+09 http_requests_created{handler="/",method="GET",status="2xx"} 1.790581702803597e+09 http_requests_created{handler="/static",method="GET",status="2xx"} 1.790581703082953e+09 http_requests_created{handler="/docs",method="GET",status="2xx"} 1.7906012748142464e+09 http_requests_created{handler="/admin",method="GET",status="2xx"} 1.7906012751864934e+09 http_requests_created{handler="/static",method="GET",status="3xx"} 1.7906025878017604e+09 http_requests_created{handler="/admin/",method="GET",status="3xx"} 1.7906069126647398e+09 http_requests_created{handler="/openapi.json",method="GET",status="2xx"} 1.790606912664925e+09 http_requests_created{handler="/static",method="GET",status="4xx"} 1.7906069188974683e+09 # HELP http_request_size_bytes Content length of incoming requests by handler. Only value of header is respected. Otherwise ignored. No percentile calculated. # TYPE http_request_size_bytes summary http_request_size_bytes_count{handler="/portal"} 6.0 http_request_size_bytes_sum{handler="/portal"} 0.0 http_request_size_bytes_count{handler="/"} 31.0 http_request_size_bytes_sum{handler="/"} 0.0 http_request_size_bytes_count{handler="/static"} 23.0 http_request_size_bytes_sum{handler="/static"} 0.0 http_request_size_bytes_count{handler="/docs"} 2.0 http_request_size_bytes_sum{handler="/docs"} 0.0 http_request_size_bytes_count{handler="/admin"} 1.0 http_request_size_bytes_sum{handler="/admin"} 0.0 http_request_size_bytes_count{handler="/admin/"} 1.0 http_request_size_bytes_sum{handler="/admin/"} 0.0 http_request_size_bytes_count{handler="/openapi.json"} 1.0 http_request_size_bytes_sum{handler="/openapi.json"} 0.0 # HELP http_request_size_bytes_created Content length of incoming requests by handler. Only value of header is respected. Otherwise ignored. No percentile calculated. # TYPE http_request_size_bytes_created gauge http_request_size_bytes_created{handler="/portal"} 1.7905816856270156e+09 http_request_size_bytes_created{handler="/"} 1.7905817028036318e+09 http_request_size_bytes_created{handler="/static"} 1.7905817030829833e+09 http_request_size_bytes_created{handler="/docs"} 1.7906012748143497e+09 http_request_size_bytes_created{handler="/admin"} 1.7906012751865368e+09 http_request_size_bytes_created{handler="/admin/"} 1.7906069126647596e+09 http_request_size_bytes_created{handler="/openapi.json"} 1.7906069126649354e+09 # HELP http_response_size_bytes Content length of outgoing responses by handler. Only value of header is respected. Otherwise ignored. No percentile calculated. # TYPE http_response_size_bytes summary http_response_size_bytes_count{handler="/portal"} 6.0 http_response_size_bytes_sum{handler="/portal"} 789474.0 http_response_size_bytes_count{handler="/"} 31.0 http_response_size_bytes_sum{handler="/"} 4.043144e+06 http_response_size_bytes_count{handler="/static"} 23.0 http_response_size_bytes_sum{handler="/static"} 812624.0 http_response_size_bytes_count{handler="/docs"} 2.0 http_response_size_bytes_sum{handler="/docs"} 2030.0 http_response_size_bytes_count{handler="/admin"} 1.0 http_response_size_bytes_sum{handler="/admin"} 231403.0 http_response_size_bytes_count{handler="/admin/"} 1.0 http_response_size_bytes_sum{handler="/admin/"} 0.0 http_response_size_bytes_count{handler="/openapi.json"} 1.0 http_response_size_bytes_sum{handler="/openapi.json"} 73612.0 # HELP http_response_size_bytes_created Content length of outgoing responses by handler. Only value of header is respected. Otherwise ignored. No percentile calculated. # TYPE http_response_size_bytes_created gauge http_response_size_bytes_created{handler="/portal"} 1.7905816856270397e+09 http_response_size_bytes_created{handler="/"} 1.790581702803672e+09 http_response_size_bytes_created{handler="/static"} 1.7905817030830195e+09 http_response_size_bytes_created{handler="/docs"} 1.7906012748144095e+09 http_response_size_bytes_created{handler="/admin"} 1.7906012751865854e+09 http_response_size_bytes_created{handler="/admin/"} 1.7906069126647818e+09 http_response_size_bytes_created{handler="/openapi.json"} 1.7906069126649497e+09 # HELP http_request_duration_highr_seconds Latency with many buckets but no API specific labels. Made for more accurate percentile calculations. # TYPE http_request_duration_highr_seconds histogram http_request_duration_highr_seconds_bucket{le="0.01"} 61.0 http_request_duration_highr_seconds_bucket{le="0.025"} 62.0 http_request_duration_highr_seconds_bucket{le="0.05"} 62.0 http_request_duration_highr_seconds_bucket{le="0.075"} 63.0 http_request_duration_highr_seconds_bucket{le="0.1"} 63.0 http_request_duration_highr_seconds_bucket{le="0.25"} 65.0 http_request_duration_highr_seconds_bucket{le="0.5"} 65.0 http_request_duration_highr_seconds_bucket{le="0.75"} 65.0 http_request_duration_highr_seconds_bucket{le="1.0"} 65.0 http_request_duration_highr_seconds_bucket{le="1.5"} 65.0 http_request_duration_highr_seconds_bucket{le="2.0"} 65.0 http_request_duration_highr_seconds_bucket{le="2.5"} 65.0 http_request_duration_highr_seconds_bucket{le="3.0"} 65.0 http_request_duration_highr_seconds_bucket{le="3.5"} 65.0 http_request_duration_highr_seconds_bucket{le="4.0"} 65.0 http_request_duration_highr_seconds_bucket{le="4.5"} 65.0 http_request_duration_highr_seconds_bucket{le="5.0"} 65.0 http_request_duration_highr_seconds_bucket{le="7.5"} 65.0 http_request_duration_highr_seconds_bucket{le="10.0"} 65.0 http_request_duration_highr_seconds_bucket{le="30.0"} 65.0 http_request_duration_highr_seconds_bucket{le="60.0"} 65.0 http_request_duration_highr_seconds_bucket{le="+Inf"} 65.0 http_request_duration_highr_seconds_count 65.0 http_request_duration_highr_seconds_sum 0.7362651709954662 # HELP http_request_duration_highr_seconds_created Latency with many buckets but no API specific labels. Made for more accurate percentile calculations. # TYPE http_request_duration_highr_seconds_created gauge http_request_duration_highr_seconds_created 1.7905784966900342e+09 # HELP http_request_duration_seconds Latency with only few buckets by handler. Made to be only used if aggregation by handler is important. # TYPE http_request_duration_seconds histogram http_request_duration_seconds_bucket{handler="/portal",le="0.1",method="GET"} 6.0 http_request_duration_seconds_bucket{handler="/portal",le="0.5",method="GET"} 6.0 http_request_duration_seconds_bucket{handler="/portal",le="1.0",method="GET"} 6.0 http_request_duration_seconds_bucket{handler="/portal",le="+Inf",method="GET"} 6.0 http_request_duration_seconds_count{handler="/portal",method="GET"} 6.0 http_request_duration_seconds_sum{handler="/portal",method="GET"} 0.10710644299888372 http_request_duration_seconds_bucket{handler="/",le="0.1",method="GET"} 31.0 http_request_duration_seconds_bucket{handler="/",le="0.5",method="GET"} 31.0 http_request_duration_seconds_bucket{handler="/",le="1.0",method="GET"} 31.0 http_request_duration_seconds_bucket{handler="/",le="+Inf",method="GET"} 31.0 http_request_duration_seconds_count{handler="/",method="GET"} 31.0 http_request_duration_seconds_sum{handler="/",method="GET"} 0.14273882800853244 http_request_duration_seconds_bucket{handler="/static",le="0.1",method="GET"} 23.0 http_request_duration_seconds_bucket{handler="/static",le="0.5",method="GET"} 23.0 http_request_duration_seconds_bucket{handler="/static",le="1.0",method="GET"} 23.0 http_request_duration_seconds_bucket{handler="/static",le="+Inf",method="GET"} 23.0 http_request_duration_seconds_count{handler="/static",method="GET"} 23.0 http_request_duration_seconds_sum{handler="/static",method="GET"} 0.08580613499225365 http_request_duration_seconds_bucket{handler="/docs",le="0.1",method="GET"} 2.0 http_request_duration_seconds_bucket{handler="/docs",le="0.5",method="GET"} 2.0 http_request_duration_seconds_bucket{handler="/docs",le="1.0",method="GET"} 2.0 http_request_duration_seconds_bucket{handler="/docs",le="+Inf",method="GET"} 2.0 http_request_duration_seconds_count{handler="/docs",method="GET"} 2.0 http_request_duration_seconds_sum{handler="/docs",method="GET"} 0.002449426996463444 http_request_duration_seconds_bucket{handler="/admin",le="0.1",method="GET"} 1.0 http_request_duration_seconds_bucket{handler="/admin",le="0.5",method="GET"} 1.0 http_request_duration_seconds_bucket{handler="/admin",le="1.0",method="GET"} 1.0 http_request_duration_seconds_bucket{handler="/admin",le="+Inf",method="GET"} 1.0 http_request_duration_seconds_count{handler="/admin",method="GET"} 1.0 http_request_duration_seconds_sum{handler="/admin",method="GET"} 0.005946884000877617 http_request_duration_seconds_bucket{handler="/admin/",le="0.1",method="GET"} 0.0 http_request_duration_seconds_bucket{handler="/admin/",le="0.5",method="GET"} 1.0 http_request_duration_seconds_bucket{handler="/admin/",le="1.0",method="GET"} 1.0 http_request_duration_seconds_bucket{handler="/admin/",le="+Inf",method="GET"} 1.0 http_request_duration_seconds_count{handler="/admin/",method="GET"} 1.0 http_request_duration_seconds_sum{handler="/admin/",method="GET"} 0.1980595839995658 http_request_duration_seconds_bucket{handler="/openapi.json",le="0.1",method="GET"} 0.0 http_request_duration_seconds_bucket{handler="/openapi.json",le="0.5",method="GET"} 1.0 http_request_duration_seconds_bucket{handler="/openapi.json",le="1.0",method="GET"} 1.0 http_request_duration_seconds_bucket{handler="/openapi.json",le="+Inf",method="GET"} 1.0 http_request_duration_seconds_count{handler="/openapi.json",method="GET"} 1.0 http_request_duration_seconds_sum{handler="/openapi.json",method="GET"} 0.1941578699988895 # HELP http_request_duration_seconds_created Latency with only few buckets by handler. Made to be only used if aggregation by handler is important. # TYPE http_request_duration_seconds_created gauge http_request_duration_seconds_created{handler="/portal",method="GET"} 1.790581685627077e+09 http_request_duration_seconds_created{handler="/",method="GET"} 1.7905817028037276e+09 http_request_duration_seconds_created{handler="/static",method="GET"} 1.7905817030830631e+09 http_request_duration_seconds_created{handler="/docs",method="GET"} 1.7906012748144822e+09 http_request_duration_seconds_created{handler="/admin",method="GET"} 1.7906012751866424e+09 http_request_duration_seconds_created{handler="/admin/",method="GET"} 1.790606912664812e+09 http_request_duration_seconds_created{handler="/openapi.json",method="GET"} 1.7906069126649687e+09