应用程序洞察记录查看的列表项?

时间:2018-05-19 01:28:24

标签: javascript asp.net asp.net-mvc azure-application-insights

我需要为用户在我的系统上看到的每个内容创建一条记录,以便稍后我可以对系统中最常见的内容进行一些统计/测量。

为了做到这一点,我考虑通过javascript使用Application Insights。但我有几个问题:

  • Application Insights是否允许我们经常拨打大量电话? (对于屏幕滚动时显示在用户屏幕上的每个列表项,我都会打电话 - 我可以让很多用户同时这样做)

  • 如果在某个时刻尝试拨打Application Insights时发生了某些错误,它是否会尝试稍后再次拨打电话? (换句话说,我可以安全地相信,在我打电话之后他们会照顾它并且他们会在以后再次尝试这样做,以防我们在网上遇到网络问题。那一刻,例如?)

  • 为此目的使用Application Insights是一种不好的方法吗? (我正在考虑Application Insights,因为它会减少对我们数据库的调用次数,而且我不需要将这些数据保存很长时间,因此我们使用Application Insights需要3个月的时间就够了)

我的意思是"调用Application Insights"是一个简单的ajax,它会异步请求Application Insights创建一个列表项目被查看的记录(我发送每个列表项目ID,因为它们被查看,所以我们可以识别和计算每个项目在当天结束时。)

任何人都知道可以帮助解决这些问题吗? =)

1 个答案:

答案 0 :(得分:1)

有两种方法可以从JavaScript上传数据到Application Insights:

  1. 使用JS AI SDK并调用trackEvent
  2. 直接调用AI提取点(Ajax)
  3. 回答两种方法的问题。

    JS AI SDK

    1. 可以尽可能经常调用trackEvent。 JS AI SDK将批量处理文档,并最大限度地减少对AI摄取端点的AJAX调用次数
    2. 成功的trackEvent并不意味着数据已上传。可能有几个原因导致数据无法传递:a)用户立即关闭浏览器; b)如果没有与AI摄取终点的连接。
    3. 直接AJAX

      1. 可以根据需要多次调用AI提取端点
      2. 200响应代码意味着数据被保留并且保证数据不会丢失
      3. Re:为此目的使用Application Insights是一种不好的方法吗?

        (披露:我与Application Insights团队有关)

        如果这些事件是商业遥测或对审核很重要的日志,那么它适用于Application Insights的主要方案。

        如果这些事件是更多类型的调试/详细级别跟踪,那么虽然仍可以在此处使用Application Insights,但您可能需要仔细检查该值的定价是否合理。