Priority routing desk
把 fast 流量推上优先通道
这里控制 fast.ycai.cloud 的请求是否在转发前写入 service_tier=priority。当前不注入 priority,更改后只影响后续请求。
Injection已关闭
Version0.1.175
Image2fc3e1cf3c1d
注入配置
保留核心控制:一个开关、两个响应头超时。页面不再暴露 service_tier 编辑,固定为 priority。
最近日志
只显示最近三天的 warn / error / exception 日志,并自动脱敏 API Key / Authorization。
UI 最近日志
最近三天暂无 warn/error 日志
Fast Proxy 最近日志
2026-10-08 08:39:59,464 ERROR proxy error path=/responses: [Errno 104] Connection reset by peer Traceback (most recent call last): 2026-10-09 10:06:16,149 ERROR proxy error path=/responses: [Errno 104] Connection reset by peer Traceback (most recent call last): 2026-10-09 16:58:59,925 ERROR proxy error path=/responses: [Errno 104] Connection reset by peer Traceback (most recent call last):
sub2api 最近日志
2026-10-07T15:51:37.898+0800 WARN slog logger/slog_handler.go:55 openai_token_cache_get_failed {"service": "sub2api", "env": "production", "account_id": 236, "error": "redis: nil"}
2026-10-08T01:32:30.806+0800 WARN slog logger/slog_handler.go:55 account_upstream_error {"service": "sub2api", "env": "production", "account_id": 236, "status_code": 503}
2026-10-08T01:32:30.808+0800 WARN handler/openai_gateway_handler.go:942 openai.upstream_failover_switching {"service": "sub2api", "env": "production", "component": "http", "request_id": "23dd3681-1089-4e2f-b2e4-049f6d731272", "client_request_id": "", "path": "/v1/responses", "method": "POST", "client_request_id": "5576e060-79b9-436c-815f-564610ccf204", "component": "handler.openai_gateway.responses", "user_id": 2, "api_key_id": 17, "group_id": 2, "model": "gpt-6.1-sol", "stream": true, "account_id": 236, "upstream_status": 503, "switch_count": 1, "max_switches": 10}
2026-10-08T01:32:30.818+0800 WARN handler/openai_gateway_handler.go:673 openai.account_select_failed {"service": "sub2api", "env": "production", "component": "http", "request_id": "23dd3681-1089-4e2f-b2e4-049f6d731272", "client_request_id": "", "path": "/v1/responses", "method": "POST", "client_request_id": "5576e060-79b9-436c-815f-564610ccf204", "component": "handler.openai_gateway.responses", "user_id": 2, "api_key_id": 17, "group_id": 2, "model": "gpt-6.1-sol", "stream": true, "error": "no available OpenAI accounts supporting model: gpt-6.1-sol (pool=1, filtered: excluded=1)", "excluded_account_count": 1}
2026-10-08T03:39:23.232+0800 WARN service/pricing_service.go:890 [Pricing] Warning: 6 model(s) carry cache above-tier prices without a base cache price; that cache item bills at $0 until the catalog/override supplies the base: gemini-2.5-pro(cache_creation_input_token_cost_above_200k_tokens), gemini-3-pro-preview(cache_creation_input_token_cost_above_200k_tokens), gemini-3.1-pro-high(cache_creation_input_token_cost_above_200k_tokens), gemini-3.1-pro-low(cache_creation_input_token_cost_above_200k_tokens), gemini-3.1-pro-preview(cache_creation_input_token_cost_above_200k_tokens), gemini-3.1-pro-preview-customtools(cache_creation_input_token_cost_above_200k_tokens) {"service": "sub2api", "env": "production", "component": "service.pricing", "legacy_printf": true}
2026-10-08T07:49:23.221+0800 WARN service/pricing_service.go:589 [Pricing] Hash mismatch warning: remote=cbecf56c data=445848c4 (hash file may be out of sync) {"service": "sub2api", "env": "production", "component": "service.pricing", "legacy_printf": true}
2026-10-08T07:49:23.243+0800 WARN service/pricing_service.go:890 [Pricing] Warning: 6 model(s) carry cache above-tier prices without a base cache price; that cache item bills at $0 until the catalog/override supplies the base: gemini-2.5-pro(cache_creation_input_token_cost_above_200k_tokens), gemini-3-pro-preview(cache_creation_input_token_cost_above_200k_tokens), gemini-3.1-pro-high(cache_creation_input_token_cost_above_200k_tokens), gemini-3.1-pro-low(cache_creation_input_token_cost_above_200k_tokens), gemini-3.1-pro-preview(cache_creation_input_token_cost_above_200k_tokens), gemini-3.1-pro-preview-customtools(cache_creation_input_token_cost_above_200k_tokens) {"service": "sub2api", "env": "production", "component": "service.pricing", "legacy_printf": true}
2026-10-08T13:48:57.230+0800 WARN slog logger/slog_handler.go:55 account_upstream_error {"service": "sub2api", "env": "production", "account_id": 236, "status_code": 503}
2026-10-08T13:48:57.234+0800 WARN handler/openai_gateway_handler.go:942 openai.upstream_failover_switching {"service": "sub2api", "env": "production", "component": "http", "request_id": "c391f51b-fa85-4c44-8fdc-95ec14a98035", "client_request_id": "", "path": "/v1/responses", "method": "POST", "client_request_id": "b6e0fa01-8f4c-4441-9259-3cfb190b2e7d", "component": "handler.openai_gateway.responses", "user_id": 2, "api_key_id": 20, "group_id": 2, "model": "gpt-5.6-terra", "stream": false, "account_id": 236, "upstream_status": 503, "switch_count": 1, "max_switches": 10}
2026-10-08T13:48:57.238+0800 WARN handler/openai_gateway_handler.go:673 openai.account_select_failed {"service": "sub2api", "env": "production", "component": "http", "request_id": "c391f51b-fa85-4c44-8fdc-95ec14a98035", "client_request_id": "", "path": "/v1/responses", "method": "POST", "client_request_id": "b6e0fa01-8f4c-4441-9259-3cfb190b2e7d", "component": "handler.openai_gateway.responses", "user_id": 2, "api_key_id": 20, "group_id": 2, "model": "gpt-5.6-terra", "stream": false, "error": "no available OpenAI accounts supporting model: gpt-5.6-terra (pool=1, filtered: excluded=1)", "excluded_account_count": 1}
2026-10-08T13:54:31.303+0800 WARN slog logger/slog_handler.go:55 sync_upstream_models_failed {"service": "sub2api", "env": "production", "account_id": 3, "kind": "upstream"}
2026-10-08T13:54:38.919+0800 WARN slog logger/slog_handler.go:55 openai_quota_query_failed {"service": "sub2api", "env": "production", "account_id": 3, "status": 401, "body": "{\n \"error\": {\n \"message\": \"Provided authentication token is expired.\",\n \"type\": null,\n \"code\": \"token_expired\",\n \"param\": null\n },\n \"status\": 401,\n \"detail\": {\n \"code\": \"token_expired\",\n \"message\": \"Provided authentica...(29 more)"}
2026-10-08T13:54:39.639+0800 WARN slog logger/slog_handler.go:55 openai_quota_query_failed {"service": "sub2api", "env": "production", "account_id": 3, "status": 401, "body": "{\n \"error\": {\n \"message\": \"Provided authentication token is expired.\",\n \"type\": null,\n \"code\": \"token_expired\",\n \"param\": null\n },\n \"status\": 401,\n \"detail\": {\n \"code\": \"token_expired\",\n \"message\": \"Provided authentica...(29 more)"}
2026-10-08T14:30:12.403+0800 WARN handler/openai_gateway_handler.go:942 openai.upstream_failover_switching {"service": "sub2api", "env": "production", "component": "http", "request_id": "9458140a-56e9-4548-aba2-950a4d2a4b2a", "client_request_id": "", "path": "/responses", "method": "POST", "client_request_id": "280a3967-d1ff-4090-a7c5-78b35efabc7a", "component": "handler.openai_gateway.responses", "user_id": 4, "api_key_id": 3, "group_id": 2, "model": "gpt-6-astra", "stream": true, "account_id": 236, "upstream_status": 502, "switch_count": 1, "max_switches": 10}
2026-10-08T14:30:12.409+0800 WARN handler/openai_gateway_handler.go:673 openai.account_select_failed {"service": "sub2api", "env": "production", "component": "http", "request_id": "9458140a-56e9-4548-aba2-950a4d2a4b2a", "client_request_id": "", "path": "/responses", "method": "POST", "client_request_id": "280a3967-d1ff-4090-a7c5-78b35efabc7a", "component": "handler.openai_gateway.responses", "user_id": 4, "api_key_id": 3, "group_id": 2, "model": "gpt-6-astra", "stream": true, "error": "no available OpenAI accounts supporting model: gpt-6-astra (pool=1, filtered: excluded=1)", "excluded_account_count": 1}
2026-10-08T15:09:10.728+0800 WARN handler/openai_gateway_handler.go:899 openai.pool_mode_same_account_retry {"service": "sub2api", "env": "production", "component": "http", "request_id": "0314944a-6aed-4666-aa79-b4e222c52c6b", "client_request_id": "", "path": "/responses", "method": "POST", "client_request_id": "692ed48a-2ea9-43c5-8979-e193202c4221", "component": "handler.openai_gateway.responses", "user_id": 4, "api_key_id": 3, "group_id": 2, "model": "gpt-6-astra", "stream": true, "account_id": 236, "upstream_status": 503, "retry_limit": 3, "retry_count": 1, "retry_delay": 500}
2026-10-08T17:07:14.952+0800 WARN slog logger/slog_handler.go:55 account_upstream_error {"service": "sub2api", "env": "production", "account_id": 236, "status_code": 503}
2026-10-08T17:07:14.954+0800 WARN handler/openai_gateway_handler.go:942 openai.upstream_failover_switching {"service": "sub2api", "env": "production", "component": "http", "request_id": "b20ac7e4-4790-4236-944d-8429b85d6a15", "client_request_id": "", "path": "/v1/responses", "method": "POST", "client_request_id": "348ba584-5c39-4840-977c-fe464b279734", "component": "handler.openai_gateway.responses", "user_id": 2, "api_key_id": 20, "group_id": 2, "model": "gpt-5.6-terra", "stream": false, "account_id": 236, "upstream_status": 503, "switch_count": 1, "max_switches": 10}
2026-10-08T17:07:14.956+0800 WARN handler/openai_gateway_handler.go:673 openai.account_select_failed {"service": "sub2api", "env": "production", "component": "http", "request_id": "b20ac7e4-4790-4236-944d-8429b85d6a15", "client_request_id": "", "path": "/v1/responses", "method": "POST", "client_request_id": "348ba584-5c39-4840-977c-fe464b279734", "component": "handler.openai_gateway.responses", "user_id": 2, "api_key_id": 20, "group_id": 2, "model": "gpt-5.6-terra", "stream": false, "error": "no available OpenAI accounts supporting model: gpt-5.6-terra (pool=1, filtered: excluded=1)", "excluded_account_count": 1}
2026-10-09T06:39:23.256+0800 WARN service/pricing_service.go:890 [Pricing] Warning: 6 model(s) carry cache above-tier prices without a base cache price; that cache item bills at $0 until the catalog/override supplies the base: gemini-2.5-pro(cache_creation_input_token_cost_above_200k_tokens), gemini-3-pro-preview(cache_creation_input_token_cost_above_200k_tokens), gemini-3.1-pro-high(cache_creation_input_token_cost_above_200k_tokens), gemini-3.1-pro-low(cache_creation_input_token_cost_above_200k_tokens), gemini-3.1-pro-preview(cache_creation_input_token_cost_above_200k_tokens), gemini-3.1-pro-preview-customtools(cache_creation_input_token_cost_above_200k_tokens) {"service": "sub2api", "env": "production", "component": "service.pricing", "legacy_printf": true}
2026-10-09T15:05:00.231+0800 WARN handler/request_body_read_log.go:31 read request body failed {"service": "sub2api", "env": "production", "component": "http", "request_id": "c5c87d93-845e-49e8-a2be-469a6725ea90", "client_request_id": "", "path": "/responses", "method": "POST", "client_request_id": "59261400-ce64-4ba3-b42d-89f253636d20", "component": "handler.openai_gateway.responses", "user_id": 4, "api_key_id": 3, "group_id": 2, "error_kind": "truncated_body", "content_encoding": "identity", "content_length": 1975819}
2026-10-09T17:10:01.608+0800 WARN slog logger/slog_handler.go:55 account_upstream_error {"service": "sub2api", "env": "production", "account_id": 236, "status_code": 503}
2026-10-09T17:10:01.618+0800 WARN handler/openai_gateway_handler.go:942 openai.upstream_failover_switching {"service": "sub2api", "env": "production", "component": "http", "request_id": "15076978-efb9-4a04-ace7-d0c6ead935f9", "client_request_id": "", "path": "/responses", "method": "POST", "client_request_id": "8b6e9516-f9bc-453d-86d4-669d5644b7c0", "component": "handler.openai_gateway.responses", "user_id": 3, "api_key_id": 4, "group_id": 2, "model": "gpt-6.1-sol", "stream": true, "account_id": 236, "upstream_status": 503, "switch_count": 1, "max_switches": 10}
2026-10-09T17:10:01.632+0800 WARN handler/openai_gateway_handler.go:673 openai.account_select_failed {"service": "sub2api", "env": "production", "component": "http", "request_id": "15076978-efb9-4a04-ace7-d0c6ead935f9", "client_request_id": "", "path": "/responses", "method": "POST", "client_request_id": "8b6e9516-f9bc-453d-86d4-669d5644b7c0", "component": "handler.openai_gateway.responses", "user_id": 3, "api_key_id": 4, "group_id": 2, "model": "gpt-6.1-sol", "stream": true, "error": "no available OpenAI accounts supporting model: gpt-6.1-sol (pool=1, filtered: excluded=1)", "excluded_account_count": 1}
2026-10-09T17:46:16.993+0800 WARN slog logger/slog_handler.go:55 openai_quota_query_failed {"service": "sub2api", "env": "production", "account_id": 3, "status": 401, "body": "{\n \"error\": {\n \"message\": \"Your authentication token has expired. Please try refreshing it.\",\n \"type\": \"invalid_request_error\",\n \"code\": \"token_expired\",\n \"param\": null\n },\n \"status\": 401,\n \"detail\": {\n \"code\": \"token_exp...(94 more)"}
2026-10-09T17:46:17.501+0800 WARN slog logger/slog_handler.go:55 openai_quota_query_failed {"service": "sub2api", "env": "production", "account_id": 3, "status": 401, "body": "{\n \"error\": {\n \"message\": \"Your authentication token has expired. Please try refreshing it.\",\n \"type\": \"invalid_request_error\",\n \"code\": \"token_expired\",\n \"param\": null\n },\n \"status\": 401,\n \"detail\": {\n \"code\": \"token_exp...(94 more)"}
2026-10-09T17:48:09.210+0800 WARN slog logger/slog_handler.go:55 openai_token_cache_get_failed {"service": "sub2api", "env": "production", "account_id": 3, "error": "redis: nil"}
2026-10-09T19:18:58.311+0800 WARN handler/openai_gateway_handler.go:942 openai.upstream_failover_switching {"service": "sub2api", "env": "production", "component": "http", "request_id": "29c0b9bb-1131-4cc5-a6b7-704f01279d31", "client_request_id": "", "path": "/v1/responses", "method": "POST", "client_request_id": "66b0acbf-c3d6-41e8-a5de-d593849a33ad", "component": "handler.openai_gateway.responses", "user_id": 2, "api_key_id": 17, "group_id": 2, "model": "gpt-6.1-sol", "stream": true, "account_id": 3, "upstream_status": 502, "switch_count": 1, "max_switches": 10}
2026-10-09T19:22:54.087+0800 WARN handler/openai_gateway_handler.go:959 openai.forward_failed {"service": "sub2api", "env": "production", "component": "http", "request_id": "e9473480-00e8-4182-b0e0-62f7f0974b4b", "client_request_id": "", "path": "/v1/responses", "method": "POST", "client_request_id": "7243ac6c-983c-4679-9057-09eee4a458e0", "component": "handler.openai_gateway.responses", "user_id": 2, "api_key_id": 17, "group_id": 2, "model": "gpt-6.1-sol", "stream": true, "account_id": 236, "fallback_error_response_written": false, "upstream_error_response_already_written": false, "error": "stream read error: stream error: stream ID 9; INTERNAL_ERROR; received from peer"}
2026-10-10T05:19:23.240+0800 WARN service/pricing_service.go:890 [Pricing] Warning: 6 model(s) carry cache above-tier prices without a base cache price; that cache item bills at $0 until the catalog/override supplies the base: gemini-2.5-pro(cache_creation_input_token_cost_above_200k_tokens), gemini-3-pro-preview(cache_creation_input_token_cost_above_200k_tokens), gemini-3.1-pro-high(cache_creation_input_token_cost_above_200k_tokens), gemini-3.1-pro-low(cache_creation_input_token_cost_above_200k_tokens), gemini-3.1-pro-preview(cache_creation_input_token_cost_above_200k_tokens), gemini-3.1-pro-preview-customtools(cache_creation_input_token_cost_above_200k_tokens) {"service": "sub2api", "env": "production", "component": "service.pricing", "legacy_printf": true}