# Observability Review — 2026-06-05

**Tool:** SigNoz
**Period:** last 24h

## Key Metrics

| Metric | Value | vs yesterday |
|---|---|---|
| Error rate | 0.02% (6 / 29,122) | ↑ незначительно (вчера 0%) |
| Request volume | 29,122 span-ов | ↑ +41% vs вчера (20,688) |
| p99 latency (MCP SSE) | 2,616,418 ms (~43 мин) | long-lived SSE — ожидаемо |
| p99 latency (OpenRouter credits) | 6,699.7 ms | 🔴 новая проблема |
| p99 latency (Google OAuth callback) | 1,324.1 ms | 🟡 >1s |
| Slow DB queries (> 100 ms) | N/A — данных нет | issue #81 (закрыт?) |

## Findings

### Ошибки
- **6 ошибок за 24h** (вчера: 0) — незначительный рост.
- **POST googleads.googleapis.com 400** — 3 ошибки: невалидные GAQL-запросы или параметры.
- **POST googleads.googleapis.com 403** — 2 ошибки: проблемы с правами или токеном.
- Суммарный error rate 0.02% — в пределах нормы.

### Латентность
- **`GET /api/mcp/[apiKey]`** p99 = 2,616 с (~43 мин) — SSE keep-alive, ожидаемо.
- **`GET` (анонимный)** p99 = 1,184 с (~20 мин) — спан без `http.route`. Issue #83 был закрыт, но спан присутствует.
- **OpenRouter credits** `fetch GET openrouter.ai/api/v1/credits` p99 = **6,699.7 ms** — внешний API вызов без кэша. Критично.
- **Threads API** `fetch POST graph.threads.net` p99 = 3,813 / 3,496 ms — в именах спанов присутствуют полные OAuth access_token. Утечка в SigNoz.
- **Google OAuth callback** `GET /api/oauth/google/callback` p99 = 1,324 ms — превышает целевой 1s.
- **Google Ads customers** `GET /api/projects/[projectId]/services/ads-customers` p99 = 915 ms — допустимо.

### База данных
- `slow_db_queries: []` — инструментация Prisma по-прежнему не возвращает данных.

### Объём трафика
- 29,122 span-ов за 24h vs 20,688 вчера — рост +41%.
- Рост может быть связан с активной работой пользователей или дополнительными Threads API вызовами.

## Recurring Issues

- **Отсутствие DB-инструментации** — повторяется 6-й снапшот подряд.
- **Анонимный GET span (p99 ~20–80 мин)** — присутствует в каждом снапшоте, issue #83 закрыт но проблема не устранена.

## Hypotheses

- **Рост +41%** — вероятно, связан с активностью Threads интеграции (видно большое кол-во Threads API вызовов). Нет признаков аномальных ботов.
- **OpenRouter credits API** — вероятно вызывается при каждом MCP-запросе без кэширования. p99 = 6.7s говорит о периодически медленных ответах от OpenRouter или большом кол-ве запросов без дедупликации.
- **Анонимный GET span** — предположительно исходящие SSE/WebSocket соединения к OpenRouter streaming. Закрытие issue #83 не добавило атрибуции.

## Recommendations

1. **[P1 — новый issue]** Удалить OAuth access_token из имён OTel спанов Threads API — токены утекают в SigNoz.
2. **[P2 — новый issue]** Добавить кэш для OpenRouter credits API (p99 = 6.7s) — TTL 1ч достаточно.
3. **[Мониторить]** Google OAuth callback p99 = 1.3s — если сохранится, расследовать причину замедления.
4. **[Мониторить]** Анонимный GET span — reopened или ошибочно закрыт issue #83.
