Показывать метрики ApplicationInsights на настраиваемой панели мониторинга без ресурсов и хранилища Azure

Я разрабатываю систему (стек: MVC 5, EF6, SQL Server), которая должна собирать много информации о взаимодействии пользователя с различными компонентами приложения.

E.g.

  1. Сколько времени пользователь проводит на определенном экране.
  2. Какое действие выполняет пользователь: просмотр, редактирование страницы / формы
  3. Время простоя
  4. Прогресс в конкретном рабочем процессе

И покажите всю эту информацию на панели управления, которая является частью того же веб-приложения. Традиционный способ сделать это - запустить sql-запрос при выполнении определенного действия и сохранить эту информацию в базе данных приложения. Дело в том, что я не хочу перегружать главный сервер приложений всеми этими задачами, и этот подход мне не кажется слишком надежным.

Я читал о Application Insights (телеметрия и настраиваемые события), и мне кажется, что это должно сработать для моей постановки проблемы. Единственная проблема заключается в том, что он очень тесно связан с ресурсами Azure и панелью управления портала (насколько я понимаю).

Итак, мой вопрос: могу ли я использовать пакет ApplicationInsights для сбора показателей и сохранения данных в локальной базе данных SQL и отображения их на настраиваемой панели мониторинга?

Я читал о постоянном экспорте телеметрической информации из хранилища Azure в Power BI или SQL DB, но у меня это не сработает, потому что я не могу использовать Azure в качестве посредника. https://azure.microsoft.com/en-in/documentation/articles/app-insights-export-telemetry/

Был бы очень признателен за руководство по этому поводу. Спасибо.


person Amanvir Mundra    schedule 25.08.2016    source источник


Ответы (1)


Вы можете использовать панели мониторинга PowerBI с прямой интеграцией с Application Insights, в частности, с запросами Analytics, которые вы, вероятно, можете использовать в этом сценарии.

Кроме того, вы можете рассмотреть возможность использования Application Insights API (https://dev.applicationinsights.io/) для достижения этой цели. напрямую, включая интеграцию с некоторыми популярными дашбордами. Обратите внимание, что API сейчас находится в предварительной версии, поэтому мы можем внести некоторые изменения, но общая форма должна быть стабильной.

Мне также любопытно, что мешает вам использовать Azure - мы хотели бы узнать об этом больше. Помните, что Application Insights хранит данные в Azure.

В конкретном случае, когда вы хотите использовать только Application Insights SDK, сохраняя и анализируя данные «локально» в выбранном вами инструменте, это также возможно. (Примечание: в этом случае вы только пользуетесь SDK и схемой App Insights, оставьте дверь открытой, чтобы в будущем можно было использовать полную версию App Insights). Для этого вы можете рассмотреть возможность реализации настраиваемого канала телеметрии - дополнительную информацию см. Здесь: http://apmtips.com/blog/2016/01/31/telemetry-channels-update
При реализации этого подхода следует помнить об объемах - я бы рекомендовал разделение его с помощью некоторой формы механизма очереди, упрощает защиту вашего приложения, балансирует нагрузку, а также отслеживает ...

person Oleg Ananiev    schedule 25.08.2016
comment
Спасибо за информацию, Олег. Оба упомянутых вами решения зависят от использования хранилища Azure в качестве серверной части. К сожалению, этой организации необходимо иметь локальную инфраструктуру. В идеале я хотел бы использовать структуру ApplicationInsights (больше для настраиваемых событий / действий), но с другим / настраиваемым источником данных (SQL / NoSql, который размещен в инфраструктуре организации). - person Amanvir Mundra; 25.08.2016
comment
Что ж, в этом случае вы только выиграете от App Insights SDK и схемы (и оставите возможность в будущем начать использовать полную App Insights). Вы можете рассмотреть возможность реализации настраиваемого канала телеметрии - дополнительную информацию см. Здесь: apmtips.com/blog/2016/01/31/telemetry-channels-update - person Oleg Ananiev; 26.08.2016
comment
Еще раз спасибо Олег, больше читаю в кастомных каналах телеметрии. В ссылке, которой вы поделились, данные хранятся в файле. Можно ли сохранить то же самое непосредственно в таблице SQL с помощью настраиваемого канала? - person Amanvir Mundra; 30.08.2016
comment
Потенциально да, но вы должны помнить об объемах ... Запись в SQL может быть медленной ... Я бы рекомендовал разделить ее с помощью некоторой формы механизма очереди, чтобы упростить защиту вашего приложения, сбалансировать нагрузку и также контролировать ... - person Oleg Ananiev; 30.08.2016
comment
Большой. Спасибо, Олег. Буду рад отметить это как ответ, если вы хотите выразить это как ответ :) - person Amanvir Mundra; 30.08.2016
comment
Отредактировал ответ выше, чтобы зафиксировать это обсуждение - person Oleg Ananiev; 06.09.2016