Аналитика удалённого доступа¶
Из этого руководства вы узнаете, как настроить аналитику удалённого доступа, интегрировав специализированное программное обеспечение с нашей системой на примере истории подключений.
Аналитика — это процесс сбора, обработки, интерпретации и использования данных для выявления закономерностей, получения ценных выводов и принятия обоснованных решений.
Инструменты для этого процесса обычно включают визуальные отчёты с графиками и таблицами. Основная цель этого руководства — показать, как интегрировать нашу систему с внешними аналитическими платформами для создания отчётов такого типа.
Примечание автора
В настоящий момент встроенные инструменты аналитики в панели управления техника отсутствуют. Мы считаем, что аналитика — это отдельный, самостоятельный рабочий процесс, требующий специализированных инструментов и интерфейсов. Мы не можем предложить её как нативную функцию на том же высоком уровне качества, что и остальную функциональность удалённого доступа. Поэтому правильным решением для этой задачи является использование внешнего программного обеспечения.
Интеграция¶
Мы будем использовать широко распространённые аналитические инструменты по следующему принципу:
- Получить исходные данные — запросить данные через HTTP API.
- Передать данные во временное хранилище — оно будет использоваться как источник данных для аналитической системы.
- Визуализировать данные — в аналитической системе в виде наглядных и информативных отчётов.
Выбор системы¶
Нам понадобится внешняя аналитическая платформа, например DataLens , Microsoft Power BI и другие. В этом руководстве в качестве примера мы будем использовать DataLens. А в качестве промежуточного хранилища данных — Google Sheets. Поэтому вам понадобится учетная запись Google и Yandex .
Подготовка данных¶
Все отчёты строятся на основе исходных данных — в нашем случае на основе Истории подключений. Нам необходимо извлечь данные из личного кабинета и поместить их в промежуточное хранилище.
Получение данных¶
Вы можете получить сырые данные истории подключений, выполнив запрос к HTTP API с использованием метода history/list.
curl -G "https://api.pro32connect.ru/v1/history/list" \
--data-urlencode "agent_id=<number>" \
--data-urlencode "support_id=<number>" \
--data-urlencode "date_from=<unixtime>" \
--data-urlencode "date_to=<unixtime>" \
--data-urlencode "video=<boolean>" \
--data-urlencode "offset=<number>" \
--data-urlencode "limit=<number>" \
-H "X-Api-Key: YOUR_API_KEY" \
| Параметр | Тип | Значение |
|---|---|---|
agent_id | string | Фильтр по ID агента |
support_id | number | Фильтр по ID приглашения |
date_from | unixtime | Фильтр по дате и времени: начало периода |
date_to | unixtime | Фильтр по дате и времени: конец периода |
video | boolean | Фильтр по записи видео |
offset | number | Смещение для первого элемента в списке |
limit | number | Количество элементов в списке. Значение по умолчанию: 20; максимальное значение: 100 |
Ответ будет содержать все необходимые данные:
Пример ответа
{
"offset": 0,
"limit": 10,
"total": 15,
"filter": {
"date_from": 1608660281,
"date_to": 1608660389,
"agent_id": 1001,
"support_id": 1002,
"video": true
},
"data": [ {
"id": 27233,
"start": 1608660273,
"stop": 1608660281,
"support_id": 1002,
"client": [ {
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36",
"login": "john.smith@gmail.com",
"geo": {
"ip": "94.242.23.99",
"country": "Russia",
"region": "St.-Petersburg",
"city": "St Petersburg"
}
} ],
"agent": {
"id": 1001,
"name": "DESKTOP-SJBU5PO",
"group": "Accounting",
"geo": {
"ip": "94.242.23.99",
"country": "Russia",
"region": "St.-Petersburg",
"city": "St Petersburg"
},
"os": "win",
"version": "2.1.5",
"owner": "john.smith@gmail.com"
},
"video": {
"url": "https://st.pro32connect.ru/video/2/27233.mp4",
"size": 428652
}
}, ... ]
}
| Имя | Тип | Описание |
|---|---|---|
id | number | Внутренний ID подключения в системе |
start | unixtime | Дата и время начала подключения |
stop | unixtime | Дата и время окончания подключения |
support_id | number | ID подключения по приглашению |
client | array | Список клиентов, присоединившихся к подключению |
client[].user_agent | string | User agent |
client[].login | string | Логин клиента |
client[].geo | object | Местоположение |
client[].geo.ip | string | IP-адрес |
client[].geo.country | string | Страна |
client[].geo.region | string | Регион |
client[].geo.city | string | Город |
agent | object | Информация об агенте |
agent.id | number | Внутренний ID агента в системе |
agent.name | string | Имя агента |
agent.group | string | Группа агента |
agent.geo | object | Местоположение |
agent.geo.ip | string | IP-адрес |
agent.geo.country | string | Страна |
agent.geo.region | string | Регион |
agent.geo.city | string | Город |
agent.os | string | Операционная система. Возможные значения: win, mac, linux или android |
agent.version | string | Версия ПО |
agent.owner | string | Логин учетной записи владельца устройства с постоянным доступом |
video | object | Информация о записи видео |
video.url | string | Адрес файла с записью видео?apikey= с вашим API-ключом. |
video.size | number | Размер файла записи видео в байтах |
Справочник HTTP API
Узнайте обо всех доступных методах, о том, как выполнять запросы и где получить ваш API ключ, в разделе Справочник HTTP API.
Не торопитесь
Вам не нужно выполнять этот запрос вручную. Он приведён только для демонстрации данных, которые можно получить через HTTP API, и будет использоваться в автоматизированных скриптах при заполнении промежуточного хранилища — эта информация приведена ниже.
Промежуточное хранилище¶
Самым простым источником данных для отчётов является обычная таблица в Google Sheets, поэтому мы будем хранить данные именно там.
Вам необходимо создать таблицу в Google Drive с названием Data. Для этого перейдите по этой ссылке и сделайте копию заранее подготовленной для вас таблицы:
Настройка скрипта¶
Когда таблица готова, её необходимо заполнить данными, полученными из запроса HTTP API. Мы сделаем это с помощью скриптов.
Откройте редактор скриптов через Расширения Apps Script.
В открывшемся окне выберите файл config.gs и замените значение <API_TOKEN> на ваш API-ключ:
Инициализация данных¶
Чтобы заполнить таблицу, в левом меню редактора Apps Script выберите файл index.gs, затем в панели управления скриптом выберите метод fetchSessionsLast90Days и нажмите Выполнить.
Скрипт запросит данные за последние 90 дней через HTTP API и заполнит таблицу. Во время выполнения вы увидите журнал активности:
18:52:15 Примечание Выполнение начато
18:52:17 Информация Запрос [1772545935 .. 1776865935]: всего=230, получено=100
18:52:20 Информация Запрос [1772545935 .. 1774936322]: всего=131, получено=100
18:52:21 Информация Запрос [1772545935 .. 1772704872]: всего=33, получено=33
18:52:22 Информация Готово. Интервал [1772545935 .. 1776865935], всего уникальных строк: 230
18:52:22 Примечание Выполнение завершено
Данные за более длинный период
Если вам нужны данные за более длинный период (например, год), вы можете изменить количество дней в методе fetchSessionsLast90Days в файле index.gs или добавить новую функцию.
Но чем больше период запроса, тем больше обращений будет сделано к HTTP API, так как оно возвращает максимум 100 записей за один вызов.
Слишком частые запросы могут создать нагрузку на наш сервер и вызвать автоматическую блокировку вашего IP-адреса. Будьте внимательны и выбирайте разумный период для первоначального заполнения таблицы.
Обновление данных¶
Чтобы всегда иметь актуальные данные в отчётах, можно настроить автоматическую загрузку записей за предыдущий день в конце каждого дня.
Для этого в редакторе Apps Script откройте раздел Тригерры и нажмите Добавить триггер.
В открывшемся окне выберите функцию fetchSessionsLastDay, источник события — Триггер по времени, тип — По дням, время — с 00:00 до 1:00, и сохраните триггер.
Теперь таблица будет автоматически обновляться каждый день.
Визуализация данных¶
Самая важная часть настройки отчёта — визуализация данных.
Вы можете самостоятельно настроить графики и панель управления на основе промежуточных данных. Ниже приведён пример с использованием подготовленного шаблона.
Чтобы использовать шаблон, скачайте файл по этой ссылке , далее перейдите в Datalens в раздел Коллекции и воркбуки в правом верхнем углу нажмите Создать — Воркбук:
Внизу нажмите Выбрать файл и выберите файл в формате JSON с конфигурацией воркбука и нажмите кнопку Создать.
Далее в открывшемся окне нажмите на коннектор Google Sheets.
На следующем шаге измените подключение с именем Data нажав на три точки и выберите Заменить.
В открывшемся окне вставьте публичную ссылку на ваш документ из Google Sheets с данными о подключениях.
Последний шаг — Сохранить изменения.
Теперь в вашем воркбуке вы увидите отчёты, построенного на ваших данных.
Аналитика¶
Мы хотим выделить важные и удобные функции нашего шаблона отчёта, которые теперь доступны вам.
Чарты¶
Отчёт включает графики для базовой аналитики:
- Сессии по дням
- Топ-10 самых популярных устройств
- Топ-10 самых активных техников
Фильтрация¶
Вы можете фильтровать данные отчёта и просматривать их под разными углами:
- За выбранный период
- По конкретному технику
- По конкретному устройству
Метрики¶
Также доступен просмотр данных по разным метрикам:
- Количество сессий
- Продолжительность сессий
Для этого отчёт содержит две страницы:
Исходные данные¶
Для более глубокой и детализированной аналитики доступна таблица с исходными данными с возможностью сортировки по колонкам:















