REST API¶
Аутентификация¶
Для возможности выполнять запросы к REST API, в меню Админ → Параметры сервера необходимо включить опцию Доступ к API разрешен.
Аутентификация запросов к API осуществляется передачей ключа указанного в опции Ключ API. Вы можете указать собственное значение этого параметра.
Ключ API передается в GET параметре запроса secret, например:
https://[HOST]/analytics/model/?secret=password
Модель куба¶
Обработчик: /analytics/model/
Пример запроса:
https://[HOST]/analytics/model/?secret=3a7e...418418e
Возвращает модель данных OLAP куба. С описанием формата можно ознакомиться здесь
Модель куба описана в разделе Модель данных
Фильтры и политики¶
Возвращает все сохраненные фильтры и политики в виде иерархии объектов.
Обработчик: /analytics/filter/list/
Пример запроса:
https://[HOST]/analytics/filter/list/?secret=3a7e...418418e
Пример возвращаемого значения:
[
  {
        "id": 1,
        "content_type": "filter",
        "name": "Название фиьтра",
        "facts_count": 0,
        "measure": "record_count",
        "dimension": "agent_time@ymdh:hour",
        "category": "neutral",
        "listType": "table",
        "do_scan": false,
        "reporting_schedule_type": "",
        "drilldown": [ "agent_agent@computer_name:computer_name", ... ],
        "notify": false,
        "emails": "",
        "orderDim": "agent_account@office:office",
        "url": "/analytics/report/aggregate/index/",
        "report_if_filter_data_exists": false,
        "tab": "filter",
        "mode": "explore",
        "order": "record_count",
        "orderDir": "desc",
        "filters": [
          {
                "predicates": [],
                "dimension": "agent_account@office:office",
                "value": "",
                "label": ""
          },
          ...
        ],
        "children": [...]
  },
...
]
Параметры запросов к OLAP кубу¶
Обработчики указанные ниже могут принимать параметры фильтрации. Все параметры являются необязательными.
| Название | Описание | 
|---|---|
| backend | Предпочтительный поставщик данных (postgresql, clickhouse, hybrid) | 
| limit | Размер страницы (количество возвращаемых строк) | 
| page | Номер страницы | 
| time_from | Начало периода времени | 
| time_to | Окончание периода времени | 
| order | Атрибут для сортировки | 
| dir | Порядок сортировки (asc, desc) | 
| dim | Измерения для фильтрации. Данный параметр может присутствовать несколько раз. | 
| filter | Значение измерений для фильтрации. Порядок и количество должно соответствовать параметрам dim | 
Факты¶
Обработчик: /analytics/facts/agent_event/
Пример запроса:
https://[HOST]/analytics/facts/agent_event/?backend=postgresql&dim=agent_eventtype@default:agent_eventtype&dir=desc&filter=1&limit=50&order=local_time&page=0&time_from=2018-09-04T00:00:00.000&time_to=2018-09-04T23:59:59.999&secret=3a7e...418418e
Пример возвращаемого значения:
{
  "object_list": [
        {
          "agent_device.description": null,
          "analytics_filter.id": null,
          "agent_attachedfile.file_ext": null,
          "agent_dialog.sender": null,
          "agent_agent.last_report": "Активен вчера",
          "agent_agent.os": "6.2.9200",
          "agent_eventtype.name": "Screenshot",
          "agent_web.url": null,
          "time_registered": "2018-09-02T12:00:09.286822+00:00",
          "agent_account.guid": "S-1-5-21-1174184718-2834874228-2720016071-1001",
          "agent_web.id": null,
          "agent_feedbacktype.description": null,
          "agent_agent.last_activity_time": "2018-09-02T11:59:04.523638+00:00",
          "parent_id": null,
          "agent_attachedfile.mime": "image/jpeg",
          "agent_appinstallation.publisher": null,
          "agent_networkconnection.id": null,
          "agent_account.office": "",
          "agent_networkconnection.remote_address": null,
          "agent_attachedfile.id": 1755,
          "agent_attachedfile.extracted": false,
          "agent_appinstallation.version": null,
          "agent_agent.label": "",
          "agent_device.drive_type": null,
          "agent_web.domain": null,
          "agent_application.id": 271,
          "agent_time.weekday": 6,
          "agent_web.protocol": null,
          "agent_web.site": null,
          "agent_account.id": 322,
          "agent_agent.guid": "HWIDVB94bea50c-4604cbd0",
          "agent_web.mime": null,
          "agent_attachedfile.file_name": null,
          "agent_dialog.dialog_type": null,
          "agent_account.user_domain": "WORKGROUP",
          "agent_time.day": 2,
          "agent_time.id": 564,
          "text_data": "",
          "agent_application.app_icon_id": 1723,
          "agent_account.last_report_time": "2018-09-02T12:00:09.255085+00:00",
          "agent_account.comment": "",
          "agent_application.window_title": "{E:\\opt\\tor-browser_en-US\\Browser\\Downloads\\MS Office 2013 Portable (2017) 7z SFX} - Far 3.0.5225 x64",
          "agent_agent.last_report_time": "2018-09-02T12:00:09.255085+00:00",
          "agent_device.hwid": null,
          "agent_account.mail": "",
          "agent_account.company": "",
          "agent_eventtype.description": "Снимок экрана",
          "agent_eventtype.id": 4,
          "agent_dialog.direction": null,
          "agent_attachedfile.file_exist": true,
          "agent_attachedfile.file_path": null,
          "agent_time.month": 9,
          "agent_account.user_name": "ermakus",
          "agent_time.year": 2018,
          "agent_agent.last_ip": "192.168.0.111",
          "window_title": "{E:\\opt\\tor-browser_en-US\\Browser\\Downloads\\MS Office 2013 Portable (2017) 7z SFX} - Far 3.0.5225 x64",
          "%(140392777775632 id)s": 19354,
          "agent_appinstallation.product_name": null,
          "analytics_filter.syscat": null,
          "agent_attachedfile.guid": "0fec5042-9665-edbd-d490-657eb442d401",
          "agent_time.hour": 15,
          "agent_feedbacktype.id": null,
          "children_count": 0,
          "agent_dialog.contact": null,
          "agent_attachedfile.data": "filedata/by_date/2018_09_02/ac5df7124c4bad5d0e07a277ad4563af0abca928.jpe",
          "agent_account.post": "",
          "agent_feedbacktype.name": null,
          "agent_dialog.recipients": null,
          "agent_networkconnection.remote_port": null,
          "agent_dialog.domain": null,
          "agent_dialog.message_format": null,
          "agent_device.manufacturer": null,
          "agent_agent.agent_version": "2465",
          "agent_time.minute": 0,
          "idle_time": 0,
          "agent_agent.computer_name": "DESKTOP-E308NV5",
          "agent_application.app_description": "File and archive manager",
          "agent_account.last_activity_time": "2018-09-02T11:59:04.523638+00:00",
          "id": 19354,
          "agent_account.full_name": "",
          "agent_agent.id": 2526,
          "activity_time": 0,
          "agent_device.device_class": null,
          "agent_time.quarter": 60,
          "filters_data": null,
          "agent_account.phone": "",
          "agent_dialog.sender_domain": null,
          "agent_attachedfile.sha1": "ac5df7124c4bad5d0e07a277ad4563af0abca928",
          "agent_attachedfile.file_operation": null,
          "analytics_filter.name": null,
          "logon_event": "",
          "agent_time.time_zone": "UTC+3",
          "agent_dialog.members": null,
          "call_duration": null,
          "analytics_filter.category": null,
          "agent_application.exe_path": "C:\\PROGRAM FILES\\FAR MANAGER\\FAR.EXE",
          "agent_application.app_name": "far.exe",
          "local_time": "2018-09-02T19:00:08+07:00",
          "agent_attachedfile.drive_type": null,
          "agent_appinstallation.install_event": null
        },
        ...
]}
Агрегация¶
Обработчик: /analytics/aggregate/agent_event/
| Название | Описание | 
|---|---|
| drill | Измерения для drilldown, может присутствовать несколько раз | 
Пример запроса:
https://[HOST]/analytics/aggregate/agent_event/?backend=postgresql&drill=agent_agent@computer_name:computer_name&time_from=2018-09-04T00:00:00.000&time_to=2018-09-04T23:59:59.999&secret=3a7e...418418e
Пример возвращаемого значения:
{
  "cells": [
        {
          "record_count": 292,
          "call_duration_sum": 0,
          "agent_agent.computer_name": "DESKTOP-E308NV5",
          "agent_agent.last_activity_time": "2018-09-02T11:59:04.523638+00:00",
          "activity_time_sum": 27158538723,
          "agent_agent.guid": "HWIDVB94bea50c-4604cbd0",
          "agent_agent.id": 2526,
          "local_time_max": "2018-09-02T12:00:08+00:00",
          "idle_time_sum": 16101090000,
          "local_time_min": "2018-09-02T10:43:52+00:00",
          "agent_agent.last_report_time": "2018-09-02T12:00:09.255085+00:00"
        }
  ],
  "cell": [
        {
          "hierarchy": "computer_name",
          "path": [
                "2526",
                "HWIDVB94bea50c-4604cbd0",
                "DESKTOP-E308NV5"
          ],
          "type": "point",
          "dimension": "agent_agent",
          "level_depth": 3
        },
        {
          "from": [
                "2018-08-29T00:00:00+07:00"
          ],
          "level_depth": 1,
          "hierarchy": null,
          "to": [
                "2018-09-04T23:59:59.999000+07:00"
          ],
          "type": "range",
          "dimension": "local_time"
        }
  ],
  "levels": {
        "agent_agent": [
          "id",
          "guid",
          "computer_name"
        ]
  },
  "remainder": {}
}
Можно сразу получать агрегированные данные, например для УРВ. Использует куб analytics_session, факты в кубе agent_event:
Обработчик: /analytics/aggregate/analytics_session/
| Название | Описание | 
|---|---|
| drill | Измерения для drilldown, может присутствовать несколько раз | 
Пример запроса:
http://[HOST]/analytics/aggregate/analytics_session/?drill=agent_time@ymd:day,drill=agent_account@full_name:full_name
Значения измерений¶
Обработчик: /analytics/values/agent_event/
| Название | Описание | 
|---|---|
| drill | Название измерения | 
Пример запроса:
https://[HOST]/analytics/values/agent_event/?backend=postgresql&drill=agent_agent@computer_name:computer_name&time_from=2018-09-04T00:00:00.000&time_to=2018-09-04T23:59:59.999&secret=3a7e...418418e
Пример возвращаемого значения:
{
  "cells": [
        {
          "agent_agent.last_report_time": "2018-09-02T12:00:09.255085+00:00",
          "agent_agent.guid": "HWIDVB94bea50c-4604cbd0",
          "agent_agent.id": 2526,
          "agent_agent.computer_name": "DESKTOP-E308NV5",
          "agent_agent.last_activity_time": "2018-09-02T11:59:04.523638+00:00"
        },
        ...
  ]
}