наблюдаемость: ввести безопасный контракт метрик
CI / Rust Checks (pull_request) Successful in 6m15s
CI / UI Checks (pull_request) Successful in 5s
CI / Community Image Smoke (pull_request) Successful in 4m25s
CI / Frontend E2E (pull_request) Successful in 5m17s
CI / Deploy (pull_request) Has been skipped
CI / Rust Checks (push) Successful in 6m9s
CI / UI Checks (push) Successful in 5s
CI / Community Image Smoke (push) Successful in 1m3s
CI / Frontend E2E (push) Successful in 3m47s
CI / Deploy (push) Failing after 3s
CI / Rust Checks (pull_request) Successful in 6m15s
CI / UI Checks (pull_request) Successful in 5s
CI / Community Image Smoke (pull_request) Successful in 4m25s
CI / Frontend E2E (pull_request) Successful in 5m17s
CI / Deploy (pull_request) Has been skipped
CI / Rust Checks (push) Successful in 6m9s
CI / UI Checks (push) Successful in 5s
CI / Community Image Smoke (push) Successful in 1m3s
CI / Frontend E2E (push) Successful in 3m47s
CI / Deploy (push) Failing after 3s
This commit is contained in:
+19
-2
@@ -165,11 +165,14 @@ scrape_configs:
|
||||
|
||||
- `crank_http_requests_total`, `crank_http_request_duration_seconds`,
|
||||
`crank_http_inflight`;
|
||||
- `crank_mcp_requests_total`, `crank_mcp_active_sessions`;
|
||||
- `crank_mcp_requests_total`, `crank_mcp_active_sessions`,
|
||||
`crank_mcp_active_streams`;
|
||||
- `crank_tool_invocations_total`, `crank_tool_invocation_duration_seconds`;
|
||||
- `crank_upstream_requests_total`,
|
||||
`crank_upstream_request_duration_seconds`;
|
||||
- `crank_runtime_inflight`, `crank_runtime_limit_rejections_total`;
|
||||
- `crank_runtime_inflight`, `crank_runtime_limit_rejections_total`,
|
||||
`crank_runtime_cache_total`, `crank_idempotency_total`,
|
||||
`crank_confirmation_total`;
|
||||
- `crank_db_pool_connections`;
|
||||
- `crank_catalog_tools`, `crank_catalog_estimated_context_tokens`,
|
||||
`crank_catalog_warnings`;
|
||||
@@ -178,11 +181,25 @@ scrape_configs:
|
||||
|
||||
Recorder добавляет к рядам проверенные статические labels `service`,
|
||||
`version`, `environment`. Остальные labels имеют закрытый набор значений.
|
||||
Имена, типы и допустимые значения labels определены в независимом нижнем
|
||||
crate `crank-metrics`. Product-код вызывает только его типизированный фасад;
|
||||
прямая production-зависимость от `metrics` вне `crank-metrics` и
|
||||
`crank-observability` запрещена архитектурной проверкой Cargo metadata.
|
||||
Запрещено использовать workspace, идентификаторы агента, операции или
|
||||
запроса, фактический URL, текст ошибки, payload и пользовательский текст.
|
||||
HTTP route берётся только из шаблона Axum; неизвестные маршруты и методы
|
||||
сворачиваются в `unmatched` и `OTHER`.
|
||||
|
||||
`crank_mcp_active_sessions` отражает число ещё не истёкших транспортных
|
||||
сессий в общем хранилище, а `crank_mcp_active_streams` — число открытых в
|
||||
этом экземпляре SSE-потоков. Прикладные ошибки JSON-RPC и
|
||||
`tools/call.result.isError=true` учитываются отдельно от успешного HTTP 200.
|
||||
Счётчики cache, idempotency и confirmation описывают переходы
|
||||
соответствующих стадий: hit/miss и ошибки хранилища, execute/replay/conflict
|
||||
и required/approved/invalid token. Отменённый future runtime или upstream
|
||||
завершает соответствующее измерение закрытым исходом `aborted`, поэтому
|
||||
фактически начатый вызов не исчезает из показателей.
|
||||
|
||||
Buckets длительности фиксированы кодом:
|
||||
`0.005`, `0.01`, `0.025`, `0.05`, `0.1`, `0.25`, `0.5`, `1`, `2.5`, `5`,
|
||||
`10`, `30`, `60` секунд. Это пока техническая шкала, а не SLO. Фактические
|
||||
|
||||
Reference in New Issue
Block a user