应使用哪个 API 来查询 Application Insights 跟踪日志?
Which API should be used for querying Application Insights trace logs?
我们的 ASP.NET 核心应用程序将跟踪消息记录到 App Insights。我们需要能够查询它们并通过一些 customDimentions 进行过滤。但是,我找到了 3 个 API,但不确定要使用哪一个:
首先,我不明白这些选项之间的关系。我认为 App Insights 将其数据保存到 Log Analytics;但如果是这样的话,我希望只能通过 Log Analytics 进行查询。
无论如何,我只需要知道哪个最好用,我希望文档更清晰。我的直觉告诉我要使用 App Insights API,因为我们只需要来自 App Insights 而不是其他来源的数据。
#1 和#2 之间的区别主要是历史上的和趋同的。
Application Insights 在日志分析之前作为产品存在,并且基于不同的底层数据库技术
Application Insights 和 Log Analytics 融合使用相同的基础数据库,基于 ADX (Azure Data Explorer),以及相同的 REST API 服务来查询两者。因此,虽然您的#1 和#2 link 不同,但它们实际上指向同一团队的相同服务后端,但 pathing/semantics 在服务看起来取决于入站请求的地方略有不同。
AI 和 LA 都在其 azure 资源之上引入了多租户的概念和一组特定的 tables/schema。它们有效地向您隐藏了整个数据库,并使其看起来像一个巨大的数据库。
现在甚至可以(建议)将您的 Application Insights 数据放置在 Log Analytics 工作区中:
https://docs.microsoft.com/en-us/azure/azure-monitor/app/create-workspace-resource
这让您可以将多个 AI applications/components 的数据放入同一个日志分析工作区,以简化跨不同应用程序等的查询
- 将 ADX 视为任何其他类型的数据库产品。如果您创建一个 ADX 集群实例,您必须创建数据库、管理架构、管理用户等。AI 和 LA 会为您完成所有这些工作。因此,在您上面的问题中,ADX SDK 的第三个 link 将用于直接与 ADX cluster/database 对话。我不相信你可以用它直接与任何 AI/LA 资源对话,但有一些方法可以让 ADX 集群查询 AI/LA 数据:
https://docs.microsoft.com/en-us/azure/data-explorer/query-monitor-data
以及在查询中使用 adx
关键字让 LA/AI 查询也加入 ADX 集群的方法:
https://docs.microsoft.com/en-us/azure/azure-monitor/logs/azure-monitor-data-explorer-proxy
我们的 ASP.NET 核心应用程序将跟踪消息记录到 App Insights。我们需要能够查询它们并通过一些 customDimentions 进行过滤。但是,我找到了 3 个 API,但不确定要使用哪一个:
首先,我不明白这些选项之间的关系。我认为 App Insights 将其数据保存到 Log Analytics;但如果是这样的话,我希望只能通过 Log Analytics 进行查询。
无论如何,我只需要知道哪个最好用,我希望文档更清晰。我的直觉告诉我要使用 App Insights API,因为我们只需要来自 App Insights 而不是其他来源的数据。
#1 和#2 之间的区别主要是历史上的和趋同的。
Application Insights 在日志分析之前作为产品存在,并且基于不同的底层数据库技术
Application Insights 和 Log Analytics 融合使用相同的基础数据库,基于 ADX (Azure Data Explorer),以及相同的 REST API 服务来查询两者。因此,虽然您的#1 和#2 link 不同,但它们实际上指向同一团队的相同服务后端,但 pathing/semantics 在服务看起来取决于入站请求的地方略有不同。
AI 和 LA 都在其 azure 资源之上引入了多租户的概念和一组特定的 tables/schema。它们有效地向您隐藏了整个数据库,并使其看起来像一个巨大的数据库。
现在甚至可以(建议)将您的 Application Insights 数据放置在 Log Analytics 工作区中:
https://docs.microsoft.com/en-us/azure/azure-monitor/app/create-workspace-resource
这让您可以将多个 AI applications/components 的数据放入同一个日志分析工作区,以简化跨不同应用程序等的查询
- 将 ADX 视为任何其他类型的数据库产品。如果您创建一个 ADX 集群实例,您必须创建数据库、管理架构、管理用户等。AI 和 LA 会为您完成所有这些工作。因此,在您上面的问题中,ADX SDK 的第三个 link 将用于直接与 ADX cluster/database 对话。我不相信你可以用它直接与任何 AI/LA 资源对话,但有一些方法可以让 ADX 集群查询 AI/LA 数据:
https://docs.microsoft.com/en-us/azure/data-explorer/query-monitor-data
以及在查询中使用
adx
关键字让 LA/AI 查询也加入 ADX 集群的方法:https://docs.microsoft.com/en-us/azure/azure-monitor/logs/azure-monitor-data-explorer-proxy