发现基于日志的指标
使用基于 Application Insights 日志的指标可以分析受监视应用的运行状况、创建功能强大的仪表板,以及配置警报。 有两种类型的指标:
- 基于日志的指标在幕后转换为存储的事件中的 Kusto 查询。
- 标准指标存储为预先聚合的时序。
由于标准指标会在收集期间预先聚合,因此它们在查询时具有更好的性能。 标准指标更适合在仪表板和实时警报中显示。 基于日志的指标具有更多的维度,因此,它们特别适合用于数据分析和即席诊断。 使用命名空间选择器在指标资源管理器中基于日志的指标和标准指标之间切换。
基于日志的指标
开发人员可以使用 SDK 手动发送事件(编写显式调用该 SDK 的代码),或者依赖于自动检测产品中的自动事件收集功能。 在任一情况下,Application Insights 后端都会将所有收集的事件存储为日志。可以使用 Azure 门户中的 Application Insights 边栏选项卡作为分析和诊断工具来可视化日志中基于事件的数据。
使用日志保留完整事件集能够为分析和诊断带来很大的帮助。 例如,可以获取对特定 URL 发出的确切请求计数,以及发出这些调用的非重复用户数。 或者,可以获取详细的诊断跟踪,包括任何用户会话的异常和依赖项调用。 获取此类信息能够明显提高应用程序运行状况和使用情况的可见性,从而可以缩短诊断应用问题所需的时间。
同时,对于生成大量遥测数据的应用程序而言,收集完整事件集可能不切实际(甚至不可能)。 如果事件过多,Application Insights 会实施多种遥测数据量缩减技术(例如采样和筛选),以减少收集和存储的事件数量。 遗憾的是,降低存储事件数量也会降低指标的准确性,因此,在幕后必须对日志中存储的事件执行查询时聚合。
预先聚合的指标
预先聚合的指标不会存储为具有多个属性的单个事件。 它们存储为预先聚合的时序,仅包含关键维度。 这使得新指标在查询时间方面非常出色:检索数据的速度更快,而且所需的计算能力更低。 这样就可以实现针对指标维度发出近实时警报、响应能力更强的仪表板等方案。
重要
基于日志的指标和预先聚合的指标可在 Application Insights 中共存。 为了区分两者,在 Application Insights UX 中,预先聚合的指标现在称为“标准指标(预览版)”,而事件中的传统指标已重命名为“基于日志的指标”。
较新的 SDK(适用于 .NET 的 Application Insights 2.7 SDK 或更高版本)会在收集期间预聚合指标。 这适用于默认发送的标准指标,因此准确度不受采样或筛选的影响。 它也适用于使用 GetMetric 发送的自定义指标,从而减少数据引入并降低成本。
对于不实施预先聚合的 SDK,Application Insights 后端仍会通过聚合 Application Insights 事件收集终结点收到的事件来填充新指标。 尽管不能减少通过网络传输的数据量,但仍可以使用预先聚合的指标并改善性能,同时,在收集期间,可以使用不预先聚合指标的 SDK 来支持近实时维度警报。
值得一提的是,收集终结点会在引入采样之前预先聚合事件,这意味着,引入采样永远不会影响预先聚合的指标,不管对应用程序使用哪个 SDK 版本。