我正在设计一个系统(堆栈:MVC 5,EF6,SQL Server),它需要捕获有关用户与应用程序各个组件交互的大量信息。
E.g。
在管理仪表板上显示所有这些信息,该仪表板是同一个Web应用程序的一部分。 执行此操作的传统方法是在发生特定操作时触发SQL查询,并将此信息保存在应用程序数据库中。问题是,我不想让所有这些任务超载主应用服务器,这种方法对我来说似乎不太健壮。
我正在阅读有关Application Insights(遥测和自定义事件)的内容,它似乎应该适用于我的问题陈述。唯一的问题是它与Azure资源和门户仪表板紧密耦合(根据我的理解)。
所以我的问题是:我可以使用ApplicationInsights包来捕获指标并将数据保存在本地SQL数据库中并在自定义仪表板上显示吗?
我读过有关不断将遥测信息从Azure存储导出到Power BI或SQL DB但不适合我的原因,因为我无法使用Azure作为中介。 https://azure.microsoft.com/en-in/documentation/articles/app-insights-export-telemetry/
非常感谢对此的一些指导。感谢。
答案 0 :(得分:2)
您可以使用PowerBI仪表板,直接集成到Application Insights,特别是您可能在此方案中使用的Google Analytics查询。
此外,您可以考虑使用Application Insights API(https://dev.applicationinsights.io/)直接实现此目的,包括与某些常用仪表板集成。请注意,API现在处于早期预览状态,因此我们可能会引入一些更改,但整体形状应该是稳定的。
我也很好奇是什么阻止你使用Azure - 我们想了解更多相关信息。请注意Application Insights将数据存储在Azure
中对于您只想使用Application Insights SDK的特定情况,在您选择的工具中“本地”存储和分析数据时,这也是可能的。 (注意:在这种情况下,仅受益于App Insights SDK和架构,为将来使用完整的App Insights打开大门)。为实现这一目标,您可以考虑实施自定义遥测频道 - 有关其他信息,请参阅此处:http://apmtips.com/blog/2016/01/31/telemetry-channels-update
在实现这种方法的同时,您应该注意卷 - 我会主张通过某种形式的队列机制将其解耦,以便更容易保护您的应用,平衡负载并监控...