45 lines
1.5 KiB
Markdown
45 lines
1.5 KiB
Markdown
# Биллинг — учёт использования SQS
|
|
|
|
shared-SQS записывает каждую успешную SQS-операцию в PostgreSQL для учёта использования.
|
|
|
|
## Что записывается
|
|
|
|
| Поле | Описание |
|
|
|------|----------|
|
|
| `tenant_id` | Идентификатор тенанта |
|
|
| `operation` | SQS-операция (SendMessage, ReceiveMessage и т.д.) |
|
|
| `queue_name` | Имя очереди |
|
|
| `msg_count` | Количество сообщений в запросе |
|
|
| `msg_bytes` | Объём тел сообщений в байтах |
|
|
| `recorded_at` | Время записи |
|
|
|
|
## Доступ к данным
|
|
|
|
Подключение к БД из кластера:
|
|
|
|
```bash
|
|
kubectl exec -it pod/postgresqlk8s-master-0 \
|
|
-n dc5db45d-f8b4-4fd0-ad33-ec4dd017f2d5 \
|
|
-- psql -U super -d sqsdb
|
|
```
|
|
|
|
## Примеры запросов
|
|
|
|
```sql
|
|
-- Последние 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;
|
|
```
|