Сегодня утром я обнаружил тревожную аномалию, просматривая наши ежемесячные отчеты Sitecore Analytics.Наше среднее время пребывания на сайте в этом месяце составляет в среднем около 9 минут.Это больше, чем в среднем около 1-2 минут за предыдущий месяц.
Моя первая реакция была «отличная, похоже, у нас все лучше в этом месяце», но после дальнейшего расследования кажется, чтокаждое посещение сайта регистрирует статистику «времени на сайте» за 20-25 минут - даже при посещении одной страницы.
Кто-нибудь сталкивался с этим раньше?Похоже, что добавление процессора SessionEnd заставляет Sitecore поддерживать каждый сеанс в течение 20 минут по умолчанию.Если это правда, как можно добавить собственный конвейерный процессор SessionEnd, не влияя на статистику «времени на сайте» для каждого посещения?
Версия Sitecore: 6.4.1 Обновление 1
ОБНОВЛЕНИЕ
К сожалению, трафик сайта по-прежнему записывается свыше 20 минут для каждого посещения ... и это с полностью удаленным пользовательским процессором SessionEnd.В настоящее время я изучаю другие возможные причины.
ОБНОВЛЕНИЕ 2
Мы видим, как в наших журналах появляется много предупреждающих сообщений Google Analytics, которые выглядят следующим образом:
Analystics: Max size of insert queue reached. Dropped 3826.
Теперь я считаю, что это как-то связано ...
ОБНОВЛЕНИЕ 3
Я обнаружил, что статистика «времени на сайте» вернется к норме послеперезапуск приложения Sitecore.Оттуда среднее время на площадке будет постепенно увеличиваться со скоростью около 1 минуты каждые 10 минут или около того, пока не выровняется около 20 минут.Я полагаю, что примерно в то же время мы начинаем видеть предупреждения «Максимальный размер очереди вставки» в наших журналах.
Я также обнаружил, что фактическое значение времени на сайте рассчитывается из среднего промежутка времени.между столбцами [Session].[Timestamp]
и [Session].[LastPageTimestamp]
в таблице [Sessions]
.Интересно, что новейшие записи, входящие в таблицу сеансов, имеют [LastPageTimestamp]
фактического времени , которое они вставляют в таблицу .Это как если бы оператор INSERT использовал GETDATE () для отметки каждой записи, когда они вставляются в базу данных.Если это правда, то я думаю, что нашел виновника.Я полагаю, что у меня проблемы с производительностью, и, что еще хуже, помещенные в очередь сеансы неправильно вставляются в базу данных.