Перейти к содержанию

Аналитика удалённого доступа

Из этого руководства вы узнаете, как настроить аналитику удалённого доступа, интегрировав специализированное программное обеспечение с нашей системой на примере истории подключений.

Аналитика — это процесс сбора, обработки, интерпретации и использования данных для выявления закономерностей, получения ценных выводов и принятия обоснованных решений.

Инструменты для этого процесса обычно включают визуальные отчёты с графиками и таблицами. Основная цель этого руководства — показать, как интегрировать нашу систему с внешними аналитическими платформами для создания отчётов такого типа.

Примечание автора

В настоящий момент встроенные инструменты аналитики в панели управления техника отсутствуют. Мы считаем, что аналитика — это отдельный, самостоятельный рабочий процесс, требующий специализированных инструментов и интерфейсов. Мы не можем предложить её как нативную функцию на том же высоком уровне качества, что и остальную функциональность удалённого доступа. Поэтому правильным решением для этой задачи является использование внешнего программного обеспечения.

Интеграция

Мы будем использовать широко распространённые аналитические инструменты по следующему принципу:

  1. Получить исходные данные — запросить данные через HTTP API.
  2. Передать данные во временное хранилище — оно будет использоваться как источник данных для аналитической системы.
  3. Визуализировать данные — в аналитической системе в виде наглядных и информативных отчётов.

Выбор системы

Нам понадобится внешняя аналитическая платформа, например DataLens , Microsoft Power BI и другие. В этом руководстве в качестве примера мы будем использовать DataLens. А в качестве промежуточного хранилища данных — Google Sheets. Поэтому вам понадобится учетная запись Google и Yandex .


Подготовка данных

Все отчёты строятся на основе исходных данных — в нашем случае на основе Истории подключений. Нам необходимо извлечь данные из личного кабинета и поместить их в промежуточное хранилище.

Получение данных

Вы можете получить сырые данные истории подключений, выполнив запрос к HTTP API с использованием метода history/list.

GET /v1/history/list
  ?agent_id=<number>
  &support_id=<number>
  &date_from=<unixtime>
  &date_to=<unixtime>
  &video=<boolean>
  &offset=<number>
  &limit=<number>
Host: https://api.pro32connect.ru
X-Api-Key: YOUR_API_KEY
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-ключ:

const CONFIG = {
  API_URL: 'https://api.pro32connect.ru/v1/',
  API_TOKEN: '<API_TOKEN>',
};

Инициализация данных

Чтобы заполнить таблицу, в левом меню редактора 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 самых активных техников


Фильтрация

Вы можете фильтровать данные отчёта и просматривать их под разными углами:

  • За выбранный период
  • По конкретному технику
  • По конкретному устройству


Метрики

Также доступен просмотр данных по разным метрикам:

  • Количество сессий
  • Продолжительность сессий

Для этого отчёт содержит две страницы:


Исходные данные

Для более глубокой и детализированной аналитики доступна таблица с исходными данными с возможностью сортировки по колонкам: