在没有 Azure 资源/存储的自定义仪表板上显示 ApplicationInsights 指标

Show ApplicationInsights metrics on custom dashboard without Azure resources / storage

我正在设计一个系统(堆栈:MVC 5、EF6、SQL 服务器),它需要捕获有关用户与应用程序的各个组件交互的大量信息。

例如

  1. 用户在特定屏幕上花费的时间。
  2. 用户正在执行什么操作:查看、编辑 page/form
  3. 空闲时间
  4. 特定工作流程的进展

并在属于同一网络应用程序的管理仪表板上显示所有这些信息。 执行此操作的传统方法是在特定操作发生时触发 sql 查询并将此信息保存在应用程序数据库中。问题是,我不想让主应用程序服务器因所有这些任务而超载,而且这种方法对我来说似乎不太可靠。

我正在阅读 Application Insights(遥测和自定义事件),它似乎应该适用于我的问题陈述。唯一的问题是它与 Azure 资源和门户仪表板紧密结合(根据我的理解)。

所以我的问题是:我可以使用 ApplicationInsights 包来捕获指标并将数据保存在本地 SQL 数据库中并在自定义仪表板上显示吗?

我读到有关将遥测信息从 Azure 存储持续导出到 Power BI 或 SQL 数据库,但对我不起作用,因为我不能使用 Azure 作为中介。 https://azure.microsoft.com/en-in/documentation/articles/app-insights-export-telemetry/

非常希望能得到一些指导。谢谢

您可以使用 PowerBI 仪表板,直接集成到 Application Insights,特别是您可能会在这种情况下使用的 Analytics 查询。

此外,您可以考虑使用 Application Insights API (https://dev.applicationinsights.io/) 直接实现此目的,包括与一些流行的仪表板集成。请注意,API 现在处于早期预览阶段,因此我们可能会引入一些更改,但整体形状应该是稳定的。

我也很好奇是什么阻止了您使用 Azure - 我们想了解更多相关信息。请注意 Application Insights 将其数据存储在 Azure

对于您只想使用 Application Insights SDK 的特定情况,同时在您选择的工具中存储和分析数据 "locally" - 这也是可能的。 (注意:在这种情况下,您受益于 App Insights SDK 和架构,为将来使用完整 App Insights 的可能性敞开大门)。为此,您可以考虑实施自定义遥测通道 - 请参阅此处了解更多信息:http://apmtips.com/blog/2016/01/31/telemetry-channels-update
在实施这种方法时,您应该注意容量 - 我提倡通过某种形式的队列机制将其解耦,从而更容易保护您的应用程序、平衡负载并监控...