Отчеты чат-центра

Путь расположения

Путь в сборочном каталоге Назначение

/rostell_sess/priv/ssqmanager/monitor.json

Декларация ответа

/rostell_sess/priv/ssqmanager/queries/*.sql

Запросы к БД

Обзор

Декларативная структура для построения ответа на запрос мониторинга оперативных данных чат-центра (функциональной роли sess) для API /api/ssqmanager/v1/monitor.

Декларация ответа

Шаблон ответа на API запрос статистических данных sessionmanager, имеющий в структуре ссылки на запросы и дескрипторы параметров для этих запросов.

Пример

Пример
{
  "get_completed_tasks": {
    "hunt_sessions_base": {
      "sql": "gct__get_hunts_sessions_base.sql",
      "template_params": [
        {
          "name": "template_abon",
          "template": "and ce.abon_id=@abon",
          "default": "<empty_template>"
        },
        {"name": "template_hunts", "template": "and strt.hunt in @hunts"},
        {"name": "template_opers", "template": "and strt.oper in @opers"},
        {"name": "template_types", "template": "and ce.sess_type in @types"},
        {"name": "template_states", "template": "and st.state in @states"}
      ],
      "params": [
        {"name": "count", "required": false, "default": 30, "type": "integer"},
        {"name": "from", "required": false, "default": 0, "type": "integer"},
        {"name": "order", "required": false, "default": "asc", "type": "unescaped"},
        {
          "name": "filter",
          "type": "params",
          "params": [
            {"name": "abons", "required": false},
            {"name": "hunts", "required": false},
            {"name": "opers", "required": false},
            {
              "name": "datefrom",
              "required": false,
              "default": "toDateTime(today())",
              "type_of_default": "unescaped"
            },
            {
              "name": "dateto",
              "required": false,
              "default": "toDateTime(today()+1)",
              "type_of_default": "unescaped"
            },
            {"name": "types", "required": false},
            {"name": "states", "required": false}
          ]
        }
      ]
    }
  },
  "get_task_details": {
    "task": {
      "sql": "gtd__get_task_details_base.sql",
      "params": [{"name": "sess_id"}]
    },
    "task_queuetime": {
      "sql": "gtd__get_task_queuetime.sql",
      "params": [{"name": "sess_id"}]
    },
    "task_abon_oper_times": {
      "sql": "gtd__get_task_abontime_opertime.sql",
      "params": [{"name": "sess_id"}]
    },
    "task_timeline": {
      "sql": "gtd__get_task_timeline.sql",
      "params": [{"name": "sess_id"}]
    }
  }
}

Запросы к БД

Запросы к локальному хранилищу сlickhouse функциональной роли sessionmanager, сохраняющему данные по его событиям. Запросы в своем теле могут содержать placeholder, подставляемые из вышестоящего дескриптора.

Пример

Файл gtd__get_task_queuetime.sql

Пример:
select ce.sess_id as sess_id,
       sq.hunt_id as hunt_id,
       sq.hets - ce.eventts as queuetime
from @db_name.chatevents as ce
join (
        select sess_id as sid1,
               hunt_id,
               eventts as hets
        from @db_name.chatevents
        where event_type='sess_dlg_start'
              and sess_id=@sess_id
      ) as sq on ce.sess_id=sid1
where event_type='sess_init'
and sess_id=@sess_id
order by eventts
limit 1
format JSON

См. также

  • Функциональная роль sess