Files
SQS-service/doc/billing-and-metrics.md
T

3.8 KiB
Raw Blame History

Биллинг и метрики

Биллинг (Usage Tracking)

Каждая успешная SQS-операция записывается в PostgreSQL — таблица sqs_usage_records.

Что записывается

Поле Тип Описание
id BIGSERIAL PK, автоинкремент
tenant_id TEXT Идентификатор тенанта
operation TEXT SQS-операция (SendMessage, ReceiveMessage и т.д.)
queue_name TEXT Имя очереди
msg_count INTEGER Количество сообщений в запросе
msg_bytes BIGINT Объём тел сообщений в байтах
recorded_at TIMESTAMPTZ Время записи

Индекс: (tenant_id, recorded_at).

Конфигурация

Billing включается автоматически если заданы переменные окружения:

Переменная Пример Описание
BILLING_PG_HOST postgresqlk8s-master.xxx.svc.cluster.local Хост PostgreSQL
BILLING_PG_PORT 5432 Порт
BILLING_PG_DATABASE sqsdb Имя базы
BILLING_PG_USER super Пользователь
BILLING_PG_PASSWORD *** Пароль
BILLING_PG_SSLMODE disable SSL режим

Если BILLING_PG_HOST не задан — billing отключён, SQS работает как раньше без зависимости от PG.

Доступ к данным

Подключение к БД из кластера:

kubectl exec -it pod/postgresqlk8s-master-0 \
  -n dc5db45d-f8b4-4fd0-ad33-ec4dd017f2d5 \
  -- psql -U super -d sqsdb

Примеры запросов:

-- Последние 20 записей
SELECT * FROM sqs_usage_records ORDER BY recorded_at DESC LIMIT 20;

-- Статистика по операциям
SELECT operation, COUNT(*), SUM(msg_count), SUM(msg_bytes)
FROM sqs_usage_records GROUP BY operation ORDER BY count DESC;

-- По тенанту за сегодня
SELECT operation, COUNT(*) FROM sqs_usage_records
WHERE tenant_id = 'MY_TENANT' AND recorded_at >= CURRENT_DATE
GROUP BY operation;

-- Объём трафика по дням
SELECT DATE(recorded_at) AS day, SUM(msg_bytes) AS total_bytes
FROM sqs_usage_records GROUP BY day ORDER BY day DESC;

Prometheus-метрики

Сервис отдаёт метрики на endpoint /metrics в формате Prometheus. Victoria Metrics скрейпит их через VMServiceScrape каждые 30 секунд.

Доступные метрики

Метрика Тип Labels Описание
sqs_requests_total Counter tenant, operation Количество SQS-запросов
sqs_request_bytes_total Counter tenant, operation Объём тел запросов (байты)
sqs_request_duration_seconds Histogram operation Latency операций (1ms30s)
sqs_errors_total Counter operation Количество ошибок (HTTP ≥ 400)
sqs_queues_count Gauge tenant Текущее количество очередей
sqs_messages_count Gauge tenant Текущее количество сообщений

Просмотр метрик

Напрямую с пода:

kubectl exec -it deploy/shared-sqs -n shared-sqs \
  -- wget -qO- http://localhost:9090/metrics | grep sqs_

VMServiceScrape

Файл: deployments/k8s/vmservicescrape.yaml — автоматический scrape Victoria Metrics. Namespace shared-sqs помечен лейблом shturval.tech/system-namespace для обнаружения VMAgent-ом.