Привет. Продолжаем тему учета различных метрик при внедрении KPI в организации.
Сегодня рассмотрим как учитывать заявки, которые вернули в работу и заявки, которые у нас остались незакрытыми на конец рабочего дня. Первый вид заявок учитывает качество выполненной работы сотрудником тех. поддержки и необходим для удержания качества услуг на необходимом уровне (показывает скользко заявок было выполнено не полностью и повторно возвращено в работу), а второй определяет текущую нагрузку на отдел ИТ и сотрудников (большое значение может говорить о неэффективности ОИТ).
Заявки, которые вернули в работу:
будем учитывать по каждому агенту в отдельности. Данные берем из таблицы «ticket_history» базы данных OTRS и имеющих статус «%%closed successful%%open%%» — т.е. те которые были закрыты успешно, а затем снова открыты. Здесь есть один нюанс: если заявка закрыта успешно, а вы затем, по какой то причине, решили добавить к ней комментарий или сообщение, то она получит такой же статус «%%closed successful%%open%%» и будет считаться открытой повторно. Но в моем случае за всю практику такого не было.
Так же нам надо знать ID агента «owner_ID» его можно узнать посмотрев соответствующую таблицу:
SELECT * FROM users;
В итоге у нас получился запрос:
SELECT count(*) FROM ticket_history WHERE name IN ('%%closed successful%%open%%') AND owner_id IN (4) AND MONTH(create_time) = MONTH(NOW()) AND YEAR(create_time) = YEAR(NOW());
Получаем число по агенту с ID =4 , по заявкам которые в течении месяца вернулись в работу.
Для zabbix.agentd.conf будет выглядеть примерно так:
UserParameter=mysql.query.back.Ivanov, echo «SELECT count(*) FROM ticket_history WHERE name IN (‘%%closed successful%%open%%’) AND owner_id IN (4) AND MONTH(create_time) = MONTH(NOW()) AND YEAR(create_time) = YEAR(NOW());» | mysql -N -u
otrs -pPASSWORD otrs
Далее создаем элемент данных в Zabbix и график.
В начале месяца достаточно посмотреть значение последнего дня предыдущего месяца и отобразить в KPI
Заявки, которые остались незакрытыми на конец рабочего дня.
Данные будем получать один раз в день в 19.00 по каждой очереди (у меня в каждой очереди по 1 агенту). Так как в zabbix сам считает среднее значение при выборке за месяц это избавит нас от ручного подсчета.
Данные будем брать из таблицы «ticket » ,
состояния ticket_state_id будут равны 1(new) и 4(open) ,
queue_id (очередь) узнаем запросом:
SELECT * FROM queue ;
Полный запрос для очереди «группа поддержки» будет выглядеть:
SELECT count(*) FROM ticket WHERE ticket_state_id IN (1, 4 ) AND queue_id IN (1);
Для zabbix.agentd.conf:
UserParameter=mysql.query19.Ivanov, echo "SELECT count(*) FROM ticket WHERE ticket_state_id IN (1, 4 ) AND queue_id IN (1)" | mysql -N -u otrs -pPASSWORD otrs
При создании элемента данных в Zabbix нужно указать срабатывание элемента данных один раз в 19.00:
График будет выглядеть так:
В начале месяца делаем отображение данного графика за нужный нам диапазон дат (за предыдущий месяц) и получаем подсчитанное среднее кол-во заявок по каждому агенту. Заносим в KPI.