Страница 1 из 1
Статистика -> Трафик получено (не правильно отображает?)
Добавлено: Пн авг 02, 2010 8:55 pm
daniel
Здравствуйте, хочу разобраться как считаются значения, которые отображаются в статистике. Вот пример статистики реального клиента.

- Улика
- traf.jpg (94.03 КБ) 24130 просмотров
Период 1 июля 00.00.00 по 31 июля 23.59.59
Трафик получено (ВСЕГО) - 47.34
Трафик отправлено (ВСЕГО) - 3.05
По логике следующее поле должно быть суммой полученого и отправленного трафика, но
Трафик Сумма (Всего) - 34.40
Далее посчитал в mysql запросом
Код: Выделить всё
SELECT SUM ( recv )
FROM dv_log
WHERE uid =1747
AND START > "2010-07-01 00:00:00"
AND START < "2010-07-31 23:59:59"
Получилось 33655412342 что равно 31.34 ГГб
Код: Выделить всё
SELECT SUM ( sent )
FROM dv_log
WHERE uid =1747
AND START > "2010-07-01 00:00:00"
AND START < "2010-07-31 23:59:59"
Получилось 3276014153 что равно 3.05 ГГб
Сума примерно 34.40
Из этого вывод - Неправильно подсчитуется входящий трафик.
Бегло посчитав в уме входящий трафик из статистики по сессиям действительно получилось около 50ГГб.
Пришлось сравнивать сессии из mysql и сессии из веб-морды abills, и сразу обнаружились интересные вещи
Одна и та же сессия в mysql
Код: Выделить всё
2010-07-13 17:22:13 115 16924 970331826 3096269811
В abills
Код: Выделить всё
2010-07-13 17:22:13 04:42:04 115 0.90 GB 10.88 GB
Вместо 2.88ГГб абилс думает что пользователь скачал 10.88. И таких "неправильных" сессий около 4х за месяц.
Видел на форуме скриншоты статистики с аналогичной ситуацией. Вот например
viewtopic.php?f=2&t=5216 сдесь скорее всего таже проблема и решение такоеже.
Помогите пожалуйста разобраться далее и устранить неприятность. Linux. ABillS 0.50b
Re: Статистика -> Трафик получено (не правильно отображает?)
Добавлено: Вт авг 03, 2010 6:39 am
lasik
Биллинг обновите.
Re: Статистика -> Трафик получено (не правильно отображает?)
Добавлено: Вт авг 03, 2010 8:27 am
daniel
Пробовал взять модуль DV от Abills 0.51. Взял
Код: Выделить всё
abills/Abills/modules/Dv
abills/Abills/mysql/dv.pm
abills/Abills/mysql/dv_sessions.pm
abills/Abills/Base.pm
Думаю это равносильно обновлению. Но изменений не увидел. Сделал вывод что в новых версиях не исправлено и обновляться смысла нету.
Да, и в первом посте я написал что у меня версия 0.50b (єто веб морда так говорит, а я просто скопировал) а на самом деле у меня 0.50
Re: Статистика -> Трафик получено (не правильно отображает?)
Добавлено: Вт авг 03, 2010 9:19 am
lasik
нет, биллинг обновлять нужно полностью

у меня 0.52b от 05.07.2010
Re: Статистика -> Трафик получено (не правильно отображает?)
Добавлено: Вт авг 03, 2010 9:21 am
lasik
потому как эти страницы хранятся в
Re: Статистика -> Трафик получено (не правильно отображает?)
Добавлено: Вт авг 03, 2010 10:56 am
daniel
Вот у вас на скриншоте информация:
Трафик Получено - Максимально 11.69 ГГб
Трафик Отправлено - Максимально 2.58 ГГб
Если в одной из сессий за определенный период было скачено 11.69 ГГб, то как может быть максимальная сумма 5.27??? Значит в єтой же сессии сумма уже больше 11.69 ГГб.
Мне очень накладно обновляться, потому что у меня в разны местах биллинга мелкие исрпавления и доработки. Потому хотелось точно убедиться что обновление поможет.
А в ..//Abills/main_tpls/ лежат темплейты страниц, вряд ли они влияют на алгоритм подсчета.
Re: Статистика -> Трафик получено (не правильно отображает?)
Добавлено: Вт авг 03, 2010 1:40 pm
lasik
то, на что вы указываете, никакого отношения к вашей проблеме не имеет.
А формулы расчета, как раз таки хранятся в той директории
Re: Статистика -> Трафик получено (не правильно отображает?)
Добавлено: Вт авг 03, 2010 1:44 pm
daniel
Минуту назад обновился до последней версии из cvs. Проблема осталась.
Re: Статистика -> Трафик получено (не правильно отображает?)
Добавлено: Вт авг 03, 2010 1:47 pm
lasik
А как вы обновили, поверх, или как я описывал ?
Re: Статистика -> Трафик получено (не правильно отображает?)
Добавлено: Вт авг 03, 2010 1:50 pm
daniel
Остался только config.pl и база данных )) Все остальное из csv
Re: Статистика -> Трафик получено (не правильно отображает?)
Добавлено: Вт авг 03, 2010 1:54 pm
zakachkin
daniel писал(а):Остался только config.pl и база данных )) Все остальное из csv
Базу тоже обновлять надо как
тут!
Re: Статистика -> Трафик получено (не правильно отображает?)
Добавлено: Вт авг 03, 2010 1:57 pm
daniel
Само собой )) Єто я сделал )) из ченджлога
Re: Статистика -> Трафик получено (не правильно отображает?)
Добавлено: Вт авг 03, 2010 2:06 pm
daniel
Дело в том, что в основном все расчеты правильны, и на безлимитках никто за этим не следит. Но я уверен что если у вас больше 20 пользователей и просмотреть у каждого статистику то и у себя вы найдете данный баг. Я потому и не хотел обновляться, потому что изучал код версии 0.50 и 0.51. Вроде как все правильно, используется функция int2byte, которая находится в Base.pm, єта функция вызывается из modules/Dv/webinterface. Я брал даную функцию и проверял ее на єтом же числе которое неправильно посчиталось (3096269811) Функция выдала правильный результат. Потом сравнивал код с новыми версиями и не видел изменений.
Re: Статистика -> Трафик получено (не правильно отображает?)
Добавлено: Вт авг 03, 2010 2:34 pm
lasik
у меня мало того что 200+ абонентов, так у меня еще и платная версия, но то что я вам показывал, это с бесплатной версии
Re: Статистика -> Трафик получено (не правильно отображает?)
Добавлено: Вт авг 03, 2010 9:15 pm
daniel
Вот тот же клиент после коекаких изменений в abills/Abills/mysql/Dv_Sessions.pm

- right.jpg (80.34 КБ) 24106 просмотров
Часть которая отвечала за блок "Сумма" исправилась изменением
Код: Выделить всё
if ($self->{TOTAL} > 0) {
$self->query($db, "SELECT count(l.uid), SEC_TO_TIME(sum(l.duration)),
sum(l.sent + 4294967296 * acct_output_gigawords), sum(l.recv + 4294967296 * acct_input_gigawords),
sum(l.sent2), sum(l.recv2),
sum(sum)
FROM (dv_log l, users u)
$WHERE;");
на
Код: Выделить всё
if ($self->{TOTAL} > 0) {
$self->query($db, "SELECT count(l.uid), SEC_TO_TIME(sum(l.duration)),
sum(l.sent), sum(l.recv),
sum(l.sent2), sum(l.recv2),
sum(sum)
FROM (dv_log l, users u)
$WHERE;");
Тоесть загвоздка вот сдесь "+ 4294967296 * acct_input_gigawords" Без этих составляющих отображает нормально. Что она обозначает еще не разобрался, кто знает почему траффик именно так считается???
Кстати большое спасибо за то что подтолкнули меня обновиться - много полезных фич добавилось/заработало. Ну и спасибо разработчикам за биллинг!! Но хотелось бы при следующем обновлении не наткнуться на эту же проблему.