﻿# Отчёт о производительности

> [HTML Version](performance-report.html)

На странице **Отчет о производительности** пользователи, входящие в группу [Администраторы](360006871932.md#administrators), могут формировать отчёты с диагностическими данными о работе системы.

````
начало внимание 

````
Отчёты о производительности доступны только в поставке [ELMA365 On‑Premises](licenses-on-premises.md).

````
конец внимание 

````
Готовый отчёт представляет собой файл формата **.xlsx**, который загружается на компьютер. В нём фиксируются:

- общая информация о системе;

- данные о времени выполнения внешних и внутренних веб‑запросов и запросов серверных скриптов;

- статистика по SQL‑запросам и по использованию в системе виджетов.

Вы можете сформировать отчёт вручную по данным, собранным на текущий момент. Также можно настроить автоматическое создание отчётов с определённой периодичностью. Все сформированные отчёты можно загрузить со страницы **Отчет о производительности**.

Для поставки ELMA365 On‑Premises Enterprise можно настроить экспорт метрик, фиксирующих время выполнения веб- и SQL‑запросов, а также серверных скриптов, в хранилище Prometheus. Это позволяет визуализировать диагностические данные с помощью системы Grafana. Подробнее об этом читайте в статье [«Экспорт метрик производительности ELMA365 Enterprise в хранилище Prometheus»](export-monitoring-enterprise.md).

## Настроить формирование отчётов

Чтобы включить ручное или автоматическое формирование отчётов: 

1. Перейдите в раздел **Администрирование > Инструменты разработчика**.

2. Если в отчёте нужно отображать производительность виджетов, включите сбор этих данных в системе. Для этого в блоке **Отладка виджетов** **>** **С кого собирать информацию о производительности виджетов** укажите пользователей, [группы пользователей](360007146071.md) или [элементы оргструктуры](360003861992.md). 

Данные по всем виджетам в системе, с которыми работали указанные сотрудники, будут фиксироваться и записываться в отчёт. Можно выбрать определённого сотрудника, который столкнулся с проблемой в отображении виджета, или группу пользователей, исследующих производительность. Чем больше пользователей указано в поле, тем обширнее будет собранная статистика показателей производительности.  

3. В блоке **Инструменты** нажмите **Отчет о производительности**. 

(performance-report-2.png)

4. На открывшейся странице нажмите кнопку **Настройки** и задайте параметры для сбора данных: 

(performance-report-3.png)

- **Статус** — включите опцию, чтобы начать сбор данных для отчётов. После этого станут доступны следующие возможности:

	- настройка срока хранения исходных данных для отчётов — укажите в поле **Период хранения данных\***, сколько дней в базе данных будут хранится метрики для генерации отчёта о производительности. Значение по умолчанию — один день.  
  
Обратите внимание, эта настройка не затрагивает сформированные файлы отчётов. Они остаются в системе, пока вы не [удалите их вручную](#delete);

	- [создание отчёта вручную](#generate-manually) — данные о производительности, собранные к текущему моменту;

	- автоматическое формирование отчётов за период.

- **Периодические отчеты** — задайте параметры для включения автоматического формирования отчётов: 

	- **Статус** — включите опцию, чтобы отчёты по полученным данным формировались автоматически с заданной частотой. Вы сможете выбрать из списка отчёт за определённый период и [загрузить на компьютер](#download-generated); 

	- **Интервал** — выберите частоту создания отчётов: **Раз в полчаса** или **Раз в час**. 

5. Нажмите кнопку **Сохранить**.

## Автоматическая генерация отчётов

Если в настройках включено периодическое формирование отчётов о производительности, они автоматически создаются с заданной частотой и сохраняются в системе.

Записи отображаются в разделе **Администрирование > Инструменты разработчика** на странице** Отчет о производительности **со способом генерации **Авто**. 

**(performance-report-10.png)**

Чтобы просмотреть данные отчёта, [загрузите его на компьютер](#download-generated).

## Сформировать отчёт вручную

Вы можете выгрузить данные о производительности системы на текущий момент. Объём выгруженных данных зависит от [настроек формирования отчётов](#settings):

- включено создание периодических отчётов — в отчёте отобразятся данные, полученные с момента создания последнего периодического отчёта;

- отключено создание периодических отчётов — в отчёте отобразится вся информация, зафиксированная в переделах [настроенного периода хранения данных](#data-storage-time).

Чтобы сгенерировать отчёт, перейдите в раздел **Администрирование >** **Инструменты разработчика**, на страницу **Отчет о производительности** и нажмите кнопку **Сформировать отчет**. 

**(performance-report-1.png)**

В открывшемся окне вы можете загрузить отчёт на компьютер, нажав на название файла.

**(performance-report-9.png)**

Кроме того, запись об отчёте сохраняется в общем списке на странице **Отчет о производительности** со способом генерации **По запросу**. Вы можете загрузить сгенерированный отчёт повторно.

## Загрузить отчёт из списка

Чтобы получить файл отчёта, сформированного автоматически или вручную, откройте раздел **Администрирование > Инструменты разработчика** и перейдите на страницу** Отчет о производительности**. Напротив отчёта за необходимый период нажмите кнопку **(performance-report-5.png).**

**(performance-report-4.png)**



При отключении сбора данных в настройках отчёта о производительности генерировать новые отчёты становится невозможно. Отчёты, созданные ранее, отображаются на странице и доступны для загрузки.

## Как читать отчёт

Название загруженного **.xlsx**‑файла содержит дату и время формирования отчёта в формате UTC. Информация распределяется по вкладкам:

(performance-report-6.png)

1. **Сводка **— основная информация о системе и выполненных запросах:

- период, за который сформирован отчёт;

- установленная версия, поставка и редакция системы;

- количество лицензий для внутренних и внешних пользователей;

- сводная статистика для веб- и SQL‑запросов, а также серверных скриптов: общее количество, суммарное время выполнения и средняя продолжительность обработки одного запроса в миллисекундах.

2. **Веб-запросы** — данные запросов, сгенерированных пользователями через скрипты или веб‑интерфейс системы, представлены в колонках:

- **Точка входа** — список выполненных веб-запросов;

- **Количество** — сколько раз выполнялись веб-запросы;

- **Общее время**, **Среднее время**, **Минимальное время** и **Максимальное время** — время выполнения в миллисекундах.

3. **Скрипты** — информация о сработавших серверных скриптах. Для них можно посмотреть:

- **Сервис** — список [сервисов приложения ELMA365](leveraging-elma365-enterprise.md#service-list), в которых обрабатывались скрипты;

- **Точка входа** — список выполненных скриптов;

- **Количество** — сколько раз выполнялись скрипты;

- **Чистое время выполнения** — время в миллисекундах, затраченное только на исполнение скрипта с разбивкой на среднее, минимальное и максимальное;

- **Общее время выполнения** **(с ожиданием в очереди)** — время в миллисекундах от отправки запроса на исполнение скрипта до получения результата его исполнения с разбивкой на среднее, минимальное и максимальное.

4. **SQL запросы** — статистика по SQL-запросам, пришедшим в базу данных. В таблице вы можете увидеть:

- **Сервис** — список сервисов, в которых обрабатывались запросы;

- **Точка входа** — список выполненных запросов;

- **Запрос** — текст запросов.  
  
Вы можете скрыть детали SQL-запросов, например, из‑за требований безопасности или для сокращения объёма отчёта. Тогда в колонке будет отображаться надпись **<hidden sql query>**. Для этого выключите фича‑флаг \[OBJECT\]. Подробнее читайте в статьях [«Изменение параметров ELMA365 Enterprise»](change-settings-enterprise.md#enable-feature-flag-enterpeise) и [«Изменение параметров ELMA365 Standard»](change-elma365standard-parameters.md#enable-feature-flag-standard);

- **Количество** — сколько раз выполнялись запросы;

- **Общее время**, **Среднее время**, **Минимальное время** и **Максимальное время** — время выполнения в миллисекундах.

5. **Виджеты** — сводная статистика использования виджетов в системе по сотрудникам, [выбранным на странице Инструменты разработчика](#widgets-report-users). Здесь можно посмотреть:

- **Сервис** — список сервисов, в которых инициировались виджеты;

- **Точка входа** — пути к компонентам системы, в которых размещаются виджеты;

- **Количество** — сколько раз пользователи открывали виджеты;

- **Время рендеринга** — сколько миллисекунд занимает отображение виджетов с разбивкой на среднее, минимальное и максимальное;

- **Время выполнения OnInit** — время выполнения функции инициализации в миллисекундах с разбивкой на среднее, минимальное и максимальное;

- **Время подготовки схемы** — время подготовки шаблонов для показа виджета в миллисекундах с разбивкой на среднее, минимальное и максимальное;

- **Размер схемы** —  объём данных виджетов в килобайтах.

Проанализировав статистику, можно перейти в дизайнер интерфейсов и оптимизировать работу проблемных виджетов.

## Удалить отчёт

Вы можете удалять автоматически сформированные отчёты из системы, чтобы освободить [место на диске](360014165012.md). Для этого:

1. В разделе **Администрирование** перейдите на страницу **Инструменты разработчика >** **Отчет о производительности**.

2. Отметьте удаляемые отчёты в списке. 

Если нужно выбрать все записи, отображаемые на странице, поставьте флажок в верхней строке таблицы. Чтобы удалить все сформированные отчёты, нажмите **Выбрать все**.  
**(performance-report-7.png)**

3. Нажмите кнопку **Удалить** и подтвердите действие.

Выбранные отчёты будут удалены из системы.