I am designing a system (stack: MVC 5, EF6, SQL Server) which needs to capture a lot of information about user interaction with various components of the app.
E.g.
- How much time a user spend on a particular screen.
- What action is the user performing: viewing, editing a page/form
- Idle time
- Progress in a particular workflow
And show all this information on a Management dashboard which is part of the same web app. The traditional way of doing this would be to fire a sql query when a certain action happens and save this information in the application database. The thing is that, I don't want to overload the main application server with all these tasks and this approach doesn't seem too robust to me.
I was reading about Application Insights (Telemetry and custom events) and it seems that it should work for my problem statement. The only problem is that it is very tightly coupled with Azure resources and portal dashboard (as per my understanding).
So my question is: Can I use ApplicationInsights package to capture metrics and persist the data in a local SQL database and show it on a custom dashboard?
I read about continuously exporting telemetry information from Azure Storage to Power BI or SQL DB but wont work for me because I cannot use Azure as an intermediary. https://azure.microsoft.com/en-in/documentation/articles/app-insights-export-telemetry/
Would really appreciate some guidance on this. Thanks.