На сегодняшний день существует классическая, с точки зрения аналитики, задача — анализ CDR телефонии. В рамках данной статьи мы расскажем о том, как две разные компании решали две совершенно разные задачи. Компания X анализировала CDR Cisco телефонии, а компания Y — CDR Asterisk телефонии. Почему мы пишем об этом в одной статье? Потому что в качестве инструмента для анализа обе компании используют Splunk, о котором мы много писали ранее.
![](https://habrastorage.org/r/w1560/web/c05/37f/a09/c0537fa09d23473cbc892610b84010ac.png)
Под катом вы найдете подробное описание задач и их решения с картинками и запросами.
Задачи
Компания X имеет порядка 30 департаментов, в которых порядка 400 внутренних номеров и около 100 000 звонков в месяц.
Компания Y имеет колл-центр на базе Asterisk телефонии с 1 млн звонком в день и хочет получать аналитику о его работе. Больше всего компания Y хочет знать количество конкурентных звонков (занятых time слотов) в определенный квант времени (например в каждый час), с распределением по внешним потокам. Плюс базовые kpi, такие как: средняя продолжительность звонков, средняя продолжительность разговора, процент отвеченных вызовов и прочее.
В данной статье мы не будем рассказывать о том как подключить данные Splunk и как сделать разбор полей (если интересно именно это, напишите нам — и мы сделаем отдельную статью об этом, но на самом деле никакого rocket science там нет). Мы покажем основные запросы, графики и дашборды.
Компания X
Аналитика по всей организации:
![](https://habrastorage.org/r/w1560/web/9dc/dc5/6dc/9dcdc56dc21e47698c8af798e070bebd.png)
![](https://habrastorage.org/r/w1560/web/706/626/6fd/7066266fd630433ab81b9b4516ac09b3.png)
На данном дашборде собрана общая аналитика по всей компании в целом, с различными статистическими показателями. Дашборд живой, то есть имеет различные фильтры, а также может отправить пользователя на следующий уровень детализации. К примеру, при нажатии на определенный департамент или номер телефона, пользователь увидит аналитику в разрезе выбранного сегмента.
Аналитика в рамках отдельного департамента:
![](https://habrastorage.org/r/w1560/web/349/441/69e/34944169e824439f91833acfe29bc8c8.png)
![](https://habrastorage.org/r/w1560/web/ab1/d19/fee/ab1d19fee74d40ca86330dbe2f8e3093.png)
На этом дашборде пользователь видит детализацию по конкретному департаменту компании, и может сделать вывод как о статистике взаимодействия сотрудников данного отдела с другими внутренними департаментами, так и о внешних вызовах.
Аналитика по конкретному пользователю:
![](https://habrastorage.org/r/w1560/web/57a/9f0/1b0/57a9f01b02f84fe5bb56f79a1ae450ef.png)
Это последний уровень детализации, где мы видим информацию, касающуюся определенного сотрудника организации, и можем судить о его активности.
Запросы
На самом деле все эти графики построены на достаточно простых запросах, уровень сложности сравним с теми, что мы обсуждали в наших предыдущих статьях. Ниже один из наиболее сложных:
![](https://habrastorage.org/r/w1560/web/fd9/b0f/0d1/fd9b0f0d195c4ed68a93c7f5c454fcb9.png)
Компания Y
Здесь все намного проще, так как у колл-центра есть только один тип звонков, да и компанию в большей степени интересует только сводная информация. Однако, возможность дороботки и детализации не исключена, например по конкретному сотруднику. Ниже основной дашборд на основе CDR Asteriska:
![](https://habrastorage.org/r/w1560/web/180/d55/92b/180d5592bd9245d8b7c41aabe51a252e.png)
![](https://habrastorage.org/r/w1560/web/e81/aec/574/e81aec5743444b47ba22ea5449e33419.png)
Наиболее интересным является самый нижний график, где решается задача по вычислению конкурентных сессий.
Запросы
Ниже один из наиболее сложных запросов, как раз про конкурентные сессии:
![](https://habrastorage.org/r/w1560/web/fec/a91/5d5/feca915d52e040f5a919976c10e5f3b7.png)
Мы рады ответить на все ваши вопросы и комментарии по данной теме. Также, если вас интересует что-то конкретно в этой области, или в области анализа машинных данных в целом — мы готовы доработать существующие решения для вас, под вашу конкретную задачу. Для этого можете написать об этом в комментариях или просто отправить нам запрос через форму на нашем сайте.
![](https://habrastorage.org/web/c05/37f/a09/c0537fa09d23473cbc892610b84010ac.png)
Под катом вы найдете подробное описание задач и их решения с картинками и запросами.
Задачи
Компания X имеет порядка 30 департаментов, в которых порядка 400 внутренних номеров и около 100 000 звонков в месяц.
- Компания X хочет получать аналитику звонков внутренних пользователей как наружу так и между собой. Необходимо получать информацию о количестве телефонных звонков, количестве звонящих пользователей, распределении входящих и исходящих звонков, самых звонящих абонентах внутри/извне.
- Необходимы отчеты, показывающие как сотрудники из различных департаментов взаимодействуют с контрагентами. Зачастую такую задачу тяжело объективно решить на основании опросов, а благодаря анализу телефонных звонков можно получить максимально объективную картину.
- Необходимо оценить интенсивность звонков, для понимания активности работы менеджеров внутри организации.
Компания Y имеет колл-центр на базе Asterisk телефонии с 1 млн звонком в день и хочет получать аналитику о его работе. Больше всего компания Y хочет знать количество конкурентных звонков (занятых time слотов) в определенный квант времени (например в каждый час), с распределением по внешним потокам. Плюс базовые kpi, такие как: средняя продолжительность звонков, средняя продолжительность разговора, процент отвеченных вызовов и прочее.
Решения задач
В данной статье мы не будем рассказывать о том как подключить данные Splunk и как сделать разбор полей (если интересно именно это, напишите нам — и мы сделаем отдельную статью об этом, но на самом деле никакого rocket science там нет). Мы покажем основные запросы, графики и дашборды.
Компания X
Аналитика по всей организации:
![](https://habrastorage.org/web/9dc/dc5/6dc/9dcdc56dc21e47698c8af798e070bebd.png)
![](https://habrastorage.org/web/706/626/6fd/7066266fd630433ab81b9b4516ac09b3.png)
На данном дашборде собрана общая аналитика по всей компании в целом, с различными статистическими показателями. Дашборд живой, то есть имеет различные фильтры, а также может отправить пользователя на следующий уровень детализации. К примеру, при нажатии на определенный департамент или номер телефона, пользователь увидит аналитику в разрезе выбранного сегмента.
Аналитика в рамках отдельного департамента:
![](https://habrastorage.org/web/349/441/69e/34944169e824439f91833acfe29bc8c8.png)
![](https://habrastorage.org/web/ab1/d19/fee/ab1d19fee74d40ca86330dbe2f8e3093.png)
На этом дашборде пользователь видит детализацию по конкретному департаменту компании, и может сделать вывод как о статистике взаимодействия сотрудников данного отдела с другими внутренними департаментами, так и о внешних вызовах.
Аналитика по конкретному пользователю:
![](https://habrastorage.org/web/57a/9f0/1b0/57a9f01b02f84fe5bb56f79a1ae450ef.png)
Это последний уровень детализации, где мы видим информацию, касающуюся определенного сотрудника организации, и можем судить о его активности.
Запросы
На самом деле все эти графики построены на достаточно простых запросах, уровень сложности сравним с теми, что мы обсуждали в наших предыдущих статьях. Ниже один из наиболее сложных:
|inputlookup lookup.csv
| where unit = "MGMI"
| table ext
| join ext type=left
[search index=test sourcetype = csv Department = "MGMI" | stats count AS "colorig" by callingPartyNumber| rename callingPartyNumber as ext]
| join ext type=left
[search index=test sourcetype = csv DepartmentDest = "MGMI" | stats count AS "coldest" by originalCalledPartyNumber| rename originalCalledPartyNumber as ext ]
| eval C=if(isnull(colorig), 0,colorig)
| eval D = if(isnull(coldest), 0,coldest)
| table ext C D
|rename ext as "Сотрудники" C as "Количество исходящих вызовов" D as "Количество входящих вызовов"
![](https://habrastorage.org/web/fd9/b0f/0d1/fd9b0f0d195c4ed68a93c7f5c454fcb9.png)
Компания Y
Здесь все намного проще, так как у колл-центра есть только один тип звонков, да и компанию в большей степени интересует только сводная информация. Однако, возможность дороботки и детализации не исключена, например по конкретному сотруднику. Ниже основной дашборд на основе CDR Asteriska:
![](https://habrastorage.org/web/180/d55/92b/180d5592bd9245d8b7c41aabe51a252e.png)
![](https://habrastorage.org/web/e81/aec/574/e81aec5743444b47ba22ea5449e33419.png)
Наиболее интересным является самый нижний график, где решается задача по вычислению конкурентных сессий.
Запросы
Ниже один из наиболее сложных запросов, как раз про конкурентные сессии:
index="aster2" dstchannel="Beeline" | concurrency duration=duration | timechart span=1h max(concurrency) as Beeline
| join _time type=left
[search index="aster2" dstchannel="MTS" | concurrency duration=duration | timechart span=1h max(concurrency) as MTS
| join _time type=left
[search index="aster2" dstchannel="Megafon" | concurrency duration=duration | timechart span=1h max(concurrency) as Megafon
| join _time type=left
[search index="aster2" dstchannel="TTK" | concurrency duration=duration | timechart span=1h max(concurrency) as TTK ]]]
![](https://habrastorage.org/web/fec/a91/5d5/feca915d52e040f5a919976c10e5f3b7.png)
Заключение
Мы рады ответить на все ваши вопросы и комментарии по данной теме. Также, если вас интересует что-то конкретно в этой области, или в области анализа машинных данных в целом — мы готовы доработать существующие решения для вас, под вашу конкретную задачу. Для этого можете написать об этом в комментариях или просто отправить нам запрос через форму на нашем сайте.