Как отслеживать активность пользователя в системе?
Если юзер закрыл вкладку, или перешел на неотслеживаемую страницу - значит у него перестал исполняться JavaScript код, который например каждые 5 секунд делает проверочный AJAX-запрос типа PING-PONG (с токеном страницы, конечно).
Решили использовать сокеты.

Факт открытия сокета создаёт в базе данных запись и сохраняет id записи в памяти.
Факт отключения от сокета обновляет существующую запись в базе данных с второй отметкой времени.

Например, на определённых страницах, где мне необходимо замерять время пребывания, я либо открываю, либо закрываю открытый сокет.

Плюсы
----------------------------------------------------------------------------
Высокая точность измерения
Нет хлама в базе данных в виде дискретных записей.
99 % Гарантия записи end_action_at в базу данных.

Минусы
----------------------------------------------------------------------------
Нужно поднимать отдельно ноду.
Аппендикс в виде маленького сервиса.