For the complete documentation index, see llms.txt. This page is also available as Markdown.

Laravel Pulse

Laravel Pulse — это встроенный экран мониторинга производительности iEXExchanger.

Он помогает смотреть нагрузку на backend-часть проекта, медленные запросы, ошибки, очереди, кеш, фоновые задачи, внешние HTTP-запросы и общее состояние сервера.

Pulse открывается на техническом домене админки:

https://app.ваш_домен/pulse

Для чего нужен Laravel Pulse

Laravel Pulse используется для технического контроля работы системы.

С его помощью можно смотреть:

  • состояние сервера;

  • активность пользователей и запросов;

  • очереди и фоновые задачи;

  • работу кеша;

  • медленные SQL-запросы;

  • ошибки приложения;

  • медленные HTTP-запросы;

  • медленные задачи в очередях;

  • медленные внешние запросы к API, мерчантам, выплатам и другим сервисам.

Pulse полезен, когда нужно понять, почему сайт или админка работают медленно, где возникает нагрузка и какие процессы требуют внимания.

Где находится Laravel Pulse

В панели управления откройте: «Утилиты» — «Horizon и Pulse» — «Laravel Pulse»

Прямой адрес:

Если пункт меню не отображается, проверьте права группы пользователя.

Права доступа

Доступ к Laravel Pulse разрешается только пользователям панели управления, у которых есть право:

Это право находится в настройках групп пользователей.

Рекомендуется выдавать доступ к Pulse только:

  • владельцу проекта;

  • техническому администратору;

  • ответственному специалисту.

Обычным менеджерам этот раздел обычно не нужен, потому что в Pulse отображается техническая информация о работе системы.


Включение Laravel Pulse

По умолчанию Laravel Pulse может быть выключен.

Чтобы включить его, нужно изменить настройки backend-проекта на сервере.

Перейдите в директорию backend-проекта:

Файлы сайта в FastPanel

Откройте файл .env и добавьте или измените параметр:

Если такой строки нет, добавьте её в конец файла.

После изменения .env очистите кеш конфигурации:

Если на сервере используется PHP 8.4 через FastPanel, команда может выглядеть так:

Подключение к серверу по SSH

Проверка таблиц Pulse

В iEXExchanger таблицы Pulse уже предусмотрены в структуре системы.

Но если проект устанавливался или обновлялся вручную, рекомендуется выполнить миграции:

Для PHP 8.4:

Подключение к серверу по SSH

Pulse использует таблицы:

Если этих таблиц нет, экран Pulse не сможет корректно собирать и показывать данные.


Настройка хранения данных

По умолчанию Pulse хранит данные в базе данных.

Для большинства проектов достаточно такой настройки:

Что означает:

Параметр
Что делает

PULSE_ENABLED=true

Включает сбор данных Pulse

PULSE_STORAGE_DRIVER=database

Хранит данные в базе данных

PULSE_INGEST_DRIVER=storage

Записывает данные напрямую в хранилище

PULSE_STORAGE_KEEP="7 days"

Хранит собранную статистику 7 дней

PULSE_INGEST_KEEP="7 days"

Хранит входящие данные 7 дней

Рекомендуемые настройки для обычного проекта

Добавьте в .env:

После этого выполните:

Затем откройте:


Если используется Redis ingest

Обычно Redis ingest не требуется для небольших и средних проектов.

Но если проект высоконагруженный и нужно разгрузить обычные web-запросы, можно использовать Redis ingest:

В этом режиме необходимо запустить отдельный процесс Pulse:

Для production такой процесс нужно запускать через Supervisor, чтобы он автоматически перезапускался при сбоях.

Пример команды для Supervisor:

Если Redis ingest не используется, pulse:work запускать не нужно.


Снимок состояния сервера

В Pulse есть команда:

Она делает снимок текущего состояния сервера для блока server monitoring.

Команду можно запускать вручную:

Если нужно регулярное обновление серверных показателей, проверьте, что на сервере работает Laravel Scheduler через CRON.

user-robotПланировщик задач

Что отображается в Pulse

В вашей системе экран Pulse содержит несколько блоков:

  • Сервер;

  • Использование системы;

  • Очереди;

  • Кеш;

  • Медленные SQL-запросы;

  • Ошибки;

  • Медленные запросы;

  • Медленные задачи;

  • Медленные внешние запросы.

1

Сервер

Блок «Сервер» показывает состояние сервера и базовые показатели нагрузки.

Он помогает понять, насколько сервер справляется с текущей активностью.

2

Использование системы

Блок «Использование системы» показывает активность приложения: запросы, пользователей и общую работу backend-части.

Этот блок полезен для оценки текущей нагрузки на систему.

3

Очереди

Блок «Очереди» показывает работу очередей и фоновых задач.

Он полезен, если в системе используются:

  • уведомления;

  • Telegram-уведомления;

  • e-mail-уведомления;

  • парсеры;

  • выплаты;

  • фоновые проверки;

  • отложенные задачи.

Если очередь растёт и не уменьшается, нужно дополнительно проверить Laravel Horizon, Redis и Supervisor.

4

Кеш

Блок «Кеш» показывает обращения к кешу.

Он помогает понять:

  • используется ли кеш;

  • много ли промахов кеша;

  • нет ли лишней нагрузки на базу данных;

  • эффективно ли система повторно использует сохранённые данные.

5

Медленные SQL-запросы

Блок «Медленные SQL-запросы» показывает запросы к базе данных, которые выполнялись дольше установленного порога.

По умолчанию порог может быть около:

Этот блок помогает находить места, которые замедляют админку, API или сайт.

6

Ошибки

Блок «Ошибки» показывает ошибки приложения.

Если на сайте или в админке что-то работает нестабильно, этот блок помогает быстрее найти причину.

Ошибки нужно анализировать вместе с логами приложения и действиями, после которых они появились.

7

Медленные запросы

Блок «Медленные запросы» показывает страницы и backend-запросы, которые выполнялись слишком долго.

Он полезен для диагностики медленной загрузки:

  • сайта;

  • админки;

  • API;

  • карточек заявок;

  • страниц с большими таблицами.

8

Медленные задачи

Блок «Медленные задачи» показывает фоновые задачи, которые выполняются дольше ожидаемого.

Например:

  • уведомления;

  • обработка заявок;

  • парсеры;

  • интеграции;

  • экспорт;

  • аналитика.

Если задача часто попадает в медленные, проверьте её очередь в Horizon и причину долгого выполнения.

9

Медленные внешние запросы

Блок «Медленные внешние запросы» показывает медленные обращения к внешним сервисам.

Это полезно при работе с:

  • мерчантами;

  • автовыплатами;

  • API курсов;

  • внешними парсерами;

  • Telegram;

  • почтовыми сервисами;

  • другими интеграциями.

Если внешний сервис отвечает медленно, проблема может быть не в сервере iEXExchanger, а во внешней стороне.


Настройка порогов медленных операций

Если нужно изменить чувствительность Pulse, можно добавить в .env:

Значения указываются в миллисекундах.

Примеры:

Если поставить слишком маленькое значение, Pulse будет показывать слишком много событий.

Для production обычно достаточно:

После изменения параметров выполните:


Как отключить Laravel Pulse

Если Pulse больше не нужен, его можно отключить.

Файлы сайта в FastPanel

В .env укажите:

Затем выполните:

После этого Pulse перестанет собирать новые данные.

Как очистить данные Pulse

Если нужно удалить старую статистику Pulse, выполните:

Подключение к серверу по SSH

Команда очищает накопленные данные Pulse из хранилища.


Частые проблемы

Страница Pulse не открывается

Проверьте:

  • включён ли параметр PULSE_ENABLED=true;

  • выполнена ли команда php artisan optimize:clear;

  • открываете ли вы backend-домен app.ваш_домен, а не основной frontend-домен;

  • есть ли у пользователя право «Разрешить доступ к мониторингу данных»;

  • выполнены ли миграции таблиц Pulse.

В меню нет Laravel Pulse

Проверьте группу пользователя.

У пользователя должно быть право:

После выдачи права выйдите из панели управления и войдите снова.

Pulse открывается, но данных мало

Такое возможно сразу после включения.

Pulse начинает собирать данные только после активации. Откройте сайт, админку, выполните несколько тестовых действий или подождите несколько минут.

После этого данные начнут появляться.

Не отображаются серверные показатели

Проверьте запуск команды:

Также проверьте, что на сервере настроен CRON для Laravel Scheduler.

Pulse показывает много медленных запросов

Проверьте пороги в .env.

Если значения слишком маленькие, Pulse будет показывать слишком много событий.

Для production обычно достаточно:

После изменения .env Pulse не изменился

Очистите кеш конфигурации:

Если используется Redis ingest и отдельный процесс pulse:work, перезапустите процесс через Supervisor.

Рекомендации

Для обычного production-проекта достаточно включить:

Не выдавайте доступ к Pulse всем менеджерам. Этот раздел предназначен для технического контроля системы.

Если проект высоконагруженный, можно отдельно настроить Redis ingest и запуск pulse:work через Supervisor. Для большинства обменников это не требуется на старте.


Коротко

Laravel Pulse — это экран мониторинга производительности iEXExchanger.

Он помогает видеть медленные запросы, ошибки, очереди, кеш, внешние API-запросы и состояние сервера.

Чтобы включить Pulse, добавьте в .env:

Затем выполните:

Pulse открывается здесь:

В панели управления: «Утилиты» — «Horizon и Pulse» — «Laravel Pulse»

Доступ должен быть только у пользователей с правом:

Последнее обновление

Это было полезно?