> For the complete documentation index, see [llms.txt](https://docs.iexexchanger.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.iexexchanger.com/help-center/administrirovanie/obsluzhivanie/laravel-pulse.md).

# 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»**

<figure><img src="/files/so9lJzF3zinMCxpvbJIQ" alt="" width="375"><figcaption></figcaption></figure>

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

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

<figure><img src="/files/nZAGUX7h6Hb7Go0G9y4H" alt=""><figcaption></figcaption></figure>

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

{% hint style="info" %}

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

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

```
Разрешить доступ к мониторингу данных
```

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

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

* владельцу проекта;
* техническому администратору;
* ответственному специалисту.

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

***

## Включение Laravel Pulse

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

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

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

{% content-ref url="/pages/MDuqJRjp8L1cHG9i4sRB" %}
[Файлы сайта в FastPanel](/help-center/upravlenie-serverom/panel-fastpanel/faily-saita-v-fastpanel.md)
{% endcontent-ref %}

```bash
cd /var/www/имя_пользователя_backend/data/www/app.ваш_домен
```

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

```env
PULSE_ENABLED=true
```

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

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

```bash
php artisan optimize:clear
```

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

{% content-ref url="/pages/cCEoFDjTDIufy3NUEakd" %}
[Подключение к серверу по SSH](/help-center/upravlenie-serverom/podklyuchenie-k-serveru-po-ssh.md)
{% endcontent-ref %}

```bash
/opt/php84/bin/php artisan optimize:clear
```

***

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

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

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

```bash
php artisan migrate --force
```

Для PHP 8.4:

{% content-ref url="/pages/cCEoFDjTDIufy3NUEakd" %}
[Подключение к серверу по SSH](/help-center/upravlenie-serverom/podklyuchenie-k-serveru-po-ssh.md)
{% endcontent-ref %}

```bash
/opt/php84/bin/php artisan migrate --force
```

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

```
pulse_entries
pulse_aggregates
pulse_values
```

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

***

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

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

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

```dotenv
PULSE_ENABLED=true
PULSE_STORAGE_DRIVER=database
PULSE_INGEST_DRIVER=storage
PULSE_STORAGE_KEEP="7 days"
PULSE_INGEST_KEEP="7 days"
```

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

<table><thead><tr><th width="284.52734375">Параметр</th><th>Что делает</th></tr></thead><tbody><tr><td><code>PULSE_ENABLED=true</code></td><td>Включает сбор данных Pulse</td></tr><tr><td><code>PULSE_STORAGE_DRIVER=database</code></td><td>Хранит данные в базе данных</td></tr><tr><td><code>PULSE_INGEST_DRIVER=storage</code></td><td>Записывает данные напрямую в хранилище</td></tr><tr><td><code>PULSE_STORAGE_KEEP="7 days"</code></td><td>Хранит собранную статистику 7 дней</td></tr><tr><td><code>PULSE_INGEST_KEEP="7 days"</code></td><td>Хранит входящие данные 7 дней</td></tr></tbody></table>

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

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

```dotenv
PULSE_ENABLED=true
PULSE_STORAGE_DRIVER=database
PULSE_INGEST_DRIVER=storage
PULSE_STORAGE_KEEP="7 days"
PULSE_INGEST_KEEP="7 days"
PULSE_SERVER_NAME=main
```

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

```bash
php artisan optimize:clear
```

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

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

***

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

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

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

```env
PULSE_INGEST_DRIVER=redis
PULSE_REDIS_CONNECTION=default
```

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

```bash
php artisan pulse:work
```

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

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

```bash
php /var/www/имя_пользователя_backend/data/www/app.ваш_домен/artisan pulse:work
```

{% hint style="info" %}
Если Redis ingest не используется, `pulse:work` запускать не нужно.
{% endhint %}

***

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

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

```bash
php artisan pulse:check
```

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

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

```bash
php artisan pulse:check
```

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

{% content-ref url="/spaces/SZ7jPUG5OOOS4hofY7a2/pages/VQTz35uLnAox2blCwlqe" %}
[Планировщик задач](/server-i-dannye/planirovshik-zadach.md)
{% endcontent-ref %}

***

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

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

* Сервер;
* Использование системы;
* Очереди;
* Кеш;
* Медленные SQL-запросы;
* Ошибки;
* Медленные запросы;
* Медленные задачи;
* Медленные внешние запросы.

{% stepper %}
{% step %}

### Сервер

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

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

{% step %}

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

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

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

{% step %}

### Очереди

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

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

* уведомления;
* Telegram-уведомления;
* e-mail-уведомления;
* парсеры;
* выплаты;
* фоновые проверки;
* отложенные задачи.

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

{% step %}

### Кеш

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

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

* используется ли кеш;
* много ли промахов кеша;
* нет ли лишней нагрузки на базу данных;
* эффективно ли система повторно использует сохранённые данные.
  {% endstep %}

{% step %}

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

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

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

```
1000 мс
```

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

{% step %}

### Ошибки

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

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

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

{% step %}

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

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

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

* сайта;
* админки;
* API;
* карточек заявок;
* страниц с большими таблицами.
  {% endstep %}

{% step %}

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

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

Например:

* уведомления;
* обработка заявок;
* парсеры;
* интеграции;
* экспорт;
* аналитика.

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

{% step %}

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

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

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

* мерчантами;
* автовыплатами;
* API курсов;
* внешними парсерами;
* Telegram;
* почтовыми сервисами;
* другими интеграциями.

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

***

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

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

```env
PULSE_SLOW_QUERIES_THRESHOLD=1000
PULSE_SLOW_REQUESTS_THRESHOLD=1000
PULSE_SLOW_JOBS_THRESHOLD=1000
PULSE_SLOW_OUTGOING_REQUESTS_THRESHOLD=1000
```

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

Примеры:

```
1000 = 1 секунда
2000 = 2 секунды
5000 = 5 секунд
```

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

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

```
1000–2000 мс
```

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

```bash
php artisan optimize:clear
```

***

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

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

{% content-ref url="/pages/MDuqJRjp8L1cHG9i4sRB" %}
[Файлы сайта в FastPanel](/help-center/upravlenie-serverom/panel-fastpanel/faily-saita-v-fastpanel.md)
{% endcontent-ref %}

В `.env` укажите:

```env
PULSE_ENABLED=false
```

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

```bash
php artisan optimize:clear
```

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

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

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

{% content-ref url="/pages/cCEoFDjTDIufy3NUEakd" %}
[Подключение к серверу по SSH](/help-center/upravlenie-serverom/podklyuchenie-k-serveru-po-ssh.md)
{% endcontent-ref %}

```bash
php artisan pulse:clear
```

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

{% hint style="warning" %}
Используйте очистку осторожно. После выполнения команды старая статистика в Pulse пропадёт.
{% endhint %}

***

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

<details>

<summary>Страница Pulse не открывается</summary>

Проверьте:

* включён ли параметр `PULSE_ENABLED=true`;
* выполнена ли команда `php artisan optimize:clear`;
* открываете ли вы backend-домен `app.ваш_домен`, а не основной frontend-домен;
* есть ли у пользователя право «Разрешить доступ к мониторингу данных»;
* выполнены ли миграции таблиц Pulse.

</details>

<details>

<summary>В меню нет Laravel Pulse</summary>

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

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

```
Разрешить доступ к мониторингу данных
```

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

</details>

<details>

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

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

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

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

</details>

<details>

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

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

```bash
php artisan pulse:check
```

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

</details>

<details>

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

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

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

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

```
1000–2000 мс
```

</details>

<details>

<summary>После изменения .env Pulse не изменился</summary>

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

```bash
php artisan optimize:clear
```

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

</details>

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

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

```env
PULSE_ENABLED=true
PULSE_STORAGE_DRIVER=database
PULSE_INGEST_DRIVER=storage
PULSE_STORAGE_KEEP="7 days"
PULSE_INGEST_KEEP="7 days"
PULSE_SERVER_NAME=main
```

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

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

***

## Коротко

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

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

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

```env
PULSE_ENABLED=true
```

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

```bash
php artisan optimize:clear
```

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

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

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

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

```
Разрешить доступ к мониторингу данных
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.iexexchanger.com/help-center/administrirovanie/obsluzhivanie/laravel-pulse.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
