Сервис настраивается переменными окружения. Принципы работы, API и экспорт описаны
в руководстве по аналитике.
В Helm-чарте несекретные значения задаются в env, а строки подключения — в
secrets.sourceDSN и secrets.enrichDSN. Оба значения попадают в Kubernetes Secret, а не в
Deployment.
Источник данных
| Ключ | Дефолт | Назначение |
|---|
ANALYTICS_SOURCE | postgres | Источник: postgres или opensearch. Для PostgreSQL строка подключения определяет primary или read-only replica. |
ANALYTICS_SOURCE_DSN | — | Строка подключения. Для PostgreSQL — pgx DSN (postgres://ro_user:***@host:5432/qf). Для OpenSearch — базовый URL (https://user:***@host[:port][/prefix]). Путь в URL считается префиксом reverse proxy, а не именем индекса. Учётной записи достаточно прав на чтение. |
ANALYTICS_SOURCE_INDEX | qf-events* | Индекс или шаблон индексов OpenSearch. Используется только с ANALYTICS_SOURCE=opensearch. |
ANALYTICS_ENRICH_DSN | — | PostgreSQL DSN с правами чтения для сопоставления идентификаторов правил с именами правил и политик при источнике OpenSearch. Без него отчёт показывает rule_id, не строит срез по политикам и не поддерживает фильтры по именам правил и политик. Для источника PostgreSQL не нужен. |
Аутентификация и доступ
| Ключ | Дефолт | Назначение |
|---|
ANALYTICS_JWKS_URL | — | Обязательно. JWKS Control Plane (https://<cp>/.well-known/jwks.json) для проверки RS256 access-токенов. Известный ключ кэшируется на 24 часа; документ JWKS обновляется не чаще раза в 30 секунд. Без URL сервис не стартует. |
ANALYTICS_ROLES | admin | Роли Control Plane с доступом к отчётам, через запятую. Можно добавить auditor. Для остальных ролей API возвращает 403. |
Сеть
| Ключ | Дефолт | Назначение |
|---|
ANALYTICS_HTTP_ADDR | :8090 | Адрес HTTP-сервера: REST API /api/*, интерфейс /app/, /healthz и /version. |
Поиск аномалий в PostgreSQL
Пороги встроенной эвристики действуют только при ANALYTICS_SOURCE=postgres.
Источник OpenSearch вычисляет аномалии своими серверными агрегациями.
| Ключ | Дефолт | Назначение |
|---|
ANALYTICS_ANOMALY_SPIKE_MULT | 3 | Множитель всплеска: интервал deny отмечается при count > mult × медиана. |
ANALYTICS_ANOMALY_MIN_COUNT | 100 | Минимальное число событий во всплеске. |
ANALYTICS_ANOMALY_MIN_BUCKETS | 3 | Минимальное число временных интервалов для анализа. |
Ограничения источника
| Ключ | Дефолт | Назначение |
|---|
ANALYTICS_SOURCE_HTTP_TIMEOUT_SECONDS | 30 | Тайм-аут одного запроса _search к OpenSearch, в секундах. |
ANALYTICS_PG_MAX_WINDOW_HOURS | 0 — без ограничения | Максимальный период отчёта для PostgreSQL, в часах. Превышение возвращает 422. Для OpenSearch не действует. |
Развёртывание
Публикация по пути /analytics и установка Helm описаны в
руководстве по развёртыванию.