Тарификация максимального трафика
Материал из BiTel WiKi
Сложности при горячем обсчете
Основной сложностью в горячей тарификации максимального трафика является невозможность заранее определить, какой трафик будет максимальным. В зависимости от момента определения максимума в роли максимального может выступать либо входящий либо исходящий трафик. Т.е. максимальными за час/сессию/день и т.п. могут оказаться разные трафики.
Для примера рассмотрим случай наработки по трехчасовой VPN сессии. В горизонтальных столбцах отложены наработки за каждый час сесии, через дробь - накопительный итог трафика, красным выделен текущий максимальный трафик.
Час сессии | 1 | 2 | 3 |
Входящий | 10 / 10 | 30 / 40 | 30 / 70 |
Исходящий | 20 / 20 | 10 / 30 | 50 / 80 |
Как видно из графика, в ходе сессии "лидер" меняется и предсказать его заранее невозможно, что не позволяет производить тарификацию в реальном времени "истинного" максимального трафика, т.к. просто неизвестно, кто из них будет лидирующим. Однако можно определять его на каждый момент обсчета и тарифицировать разницу от предыдущего момента. Таким образом реализована тарификация с использованием макроса MAX в модуле DialUP.
Для приведенного выше примера превалирующий трафик по часам будет: 20, 40 и 80. При этом будет протарифицировано приращение 20, 20 и 40. Сумма приращений составит 80 Мб, однако распределение по часам превалируещего трафика не совпадает ни с одним из трафиков. Это может быть важно, если стоимость трафика изменяется в зависимости от времени.
При тарификации в BGRadiusDialUp максимум определяется на каждый момент обсчета (одна минута или более), что порождает еще одну сложность - восстановление информации по максимальным трафикам на основании переобработки NetFlow статистики, ведь моменты обсчетов не фиксируются в базе. В данный момент проблема решена "в лоб" - превалирующие трафики не восстанавливаются, в будущем планируется сделать вычисление максимумов в пределах часа, что должно обеспечить приемлимые расхождения при переобработке статистики.
Сложности при начислении по итогам месяца
В DialUp и IPN модулях существует дополнительная возможность тарификации максимального трафика по итогам месяца. При этом возникает проблема, что реально такого трафика не существует и он не отображается в отчетах. Т.к. собственно не определено, в какой сессии или в какой день/час для IPN модуля потреблен этот трафик. При тарификации предполагается, что он разово потребился в начале отчетного периода.