Просмотр Исходного

{toc}

h1. Для чего нужна база buff_traf.gdb
В базе агрегируются данные по объёмам трафика, они могут быть получены от [системы сбора статистики|CarbonBilling:Collector] или из Accounting-Update для подключений по RADIUS.
Данные обрабатываются [ядром биллинга|Worker (ядро биллинга)] и отражаются в [расходе|CarbonBilling:Счетчики услуг. Вкладка "Расход".] абонента в таблицах "*Расход*" и "*Интернет-трафик*". Эти данные особенно важны для тарифов с помегабайтной оплатой.

h1. Структура базы данных
В buff_traf.gdb всего две таблицы: в одной содержится сам трафик, в другой описание кодов ошибок его обработки:
{code}# sqlexec /var/db/buff_traf.gdb "show tables"
ERRORS TRAFFIC {code}

h2. Таблица TRAFFIC
h3. Структура таблицы
{code}# sqlexec /var/db/buff_traf.gdb "show table traffic"
ID (ID) INTEGER Not Null
USER_ID (DINT) INTEGER Nullable
USER_IP (IP) INTEGER Nullable
V_IN (DBIGINT) NUMERIC(18, 0) Nullable
V_OUT (DBIGINT) NUMERIC(18, 0) Nullable
T_START (DUNIXTIME) INTEGER Nullable
T_END (DUNIXTIME) INTEGER Nullable
SUBNET (DINT) INTEGER Nullable
TTYPE (DINT) INTEGER Nullable
STATUS (DINT) INTEGER Nullable
RESOLVED (DINT) INTEGER Nullable DEFAULT 0
ERROR_CODE_ID (DINT) INTEGER Nullable
CONSTRAINT FK_TRAFFIC_ERROR:
Foreign key (ERROR_CODE_ID) References ERRORS (ID) On Delete Set Null
CONSTRAINT PK_TRAFFIC:
Primary key (ID)

Triggers on Table TRAFFIC:
TRAFFIC_BI, Sequence: 0, Type: BEFORE INSERT, Active
{code}
h3. Пример записи с комментариями
{code}# sqlexec /var/db/buff_traf.gdb "set list; select first 1 * from traffic"

ID 107752 ----------------- Идентификатор записи в таблице
USER_ID 316 -------------------- ID учетной записи
USER_IP 16843009 --------------- IP учетной записи в десятичном формате
V_IN 585 -------------------- Объём входящего трафика в байтах
V_OUT 0 ---------------------- Объём исходящего трафика в байтах
T_START 1539335253 ------------- Время начала потока трафика
T_END 1539335262 ------------- Время окончания потока трафика
SUBNET 2 ---------------------- Подсеть (статья документации "Правила и сети")
TTYPE <null> ----------------- Входящий или исходящий
STATUS 1 ---------------------- Статус обработки воркером: 0 - необработан, 1 - обработан
RESOLVED 0 ---------------------- Флаг обработки записи в веб-интерфейсе, если она была
ERROR_CODE_ID 2 ---------------------- Код ошибки: null если ошибки нет, ID ошибки если есть{code}

h2. Таблица ERRORS
h3. Структура таблицы
{code}# sqlexec /var/db/buff_traf.gdb "show table errors"
ID (ID) INTEGER Not Null
NAME (VAR32) VARCHAR(32) Nullable
CONSTRAINT PK_ERRORS:
Primary key (ID)

Triggers on Table ERRORS:
ERRORS_BI, Sequence: 0, Type: BEFORE INSERT, Active{code}
h3. Коды ошибок с описанием
{code}# sqlexec /var/db/buff_traf.gdb "set heading off; select * from errors"

1 Найдено несколько абонентов ------------- Если IP-адрес невозможно отнести какой-то учетной записи, так как в NAS используется опция "Разрешить дублирующие IP"
2 Не найден абонент ----------------------- Если не удалось найти учетную запись с IP-адресом из статистики
или у абонента нет активных услуг для тарификации трафика подсети (SUBNET){code}