gpt4 book ai didi

c# - 在 C#.Net 中的 Azure 函数中查询 Azure Application Insights CustomEvents

转载 作者:行者123 更新时间:2023-12-03 01:17:42 29 4
gpt4 key购买 nike

我需要在 azure 函数中的应用程序洞察下查询 CustomEvents。

我能够使用以下包读取 CustomEvents:Microsoft.Azure.ApplicationInsights.Query

这是代码:

            string applicationId = "xxxx-xxxx-xxxx";
string key = "xxxxxxxxxxx";

// Create client
var credentials = new ApiKeyClientCredentials(key);
var applicationInsightsClient = new ApplicationInsightsDataClient(credentials);

// Query Application Insights
var query = "customEvents" +
" | where timestamp > ago(840h)" +
" | take 3";
var response = await applicationInsightsClient.Query.ExecuteWithHttpMessagesAsync(applicationId, query);

但是,库“Microsoft.Azure.ApplicationInsights.Query”已被弃用,建议使用 Azure.Monitor.Query

下面是 Microsoft 文档中使用 Azure.Monitor.Query 查询日志的示例代码:

Azure.Response<Azure.Monitor.Query.Models.LogsQueryResult> response = await logsQueryClient.QueryWorkspaceAsync(
"<workspaceId>",
"customEvents ",
new QueryTimeRange(TimeSpan.FromMinutes(300)));

由于该库使用工作区 ID 进行查询,因此我将应用程序洞察实例链接到日志分析工作区实例。但是,该函数失败并显示 BadArgumentError“无法解析名为“customEvents”的表或列表达式”

有没有一种方法可以使用 Azure.Monitor.Query 包查询 CustomEvents?

感谢任何帮助。

谢谢

最佳答案

是的,它有效。
下面是经过测试的代码。

将 Application Insights 链接到 Azure Monitor 工作区后,您可以从该 WS 查询 AI 表,而无需使用 app() .
问题是表的名称不同,例如,traces 变为 AppTraces

以同样的方式,customEvents 变为 AppEvents

好吧,事实证明它甚至被记录在 Migrate to workspace-based Application Insights resources

<表类=“s-表”><标题>旧表名称新表名称描述 <正文>可用性结果应用程序可用性结果可用性测试的摘要数据。浏览器计时AppBrowserTimings有关客户端性能的数据,例如处理传入数据所需的时间。依赖项应用程序依赖项通过 TrackDependency() 记录从应用程序到其他组件(包括外部组件)的调用 - 例如,对 REST API、数据库或文件系统的调用。 自定义事件 应用事件由您的应用程序创建的自定义事件。自定义指标应用指标您的应用程序创建的自定义指标。页面浏览量AppPageViews有关每个网站 View 的数据以及浏览器信息。性能计数器应用程序性能计数器来自支持应用程序的计算资源的性能测量,例如 Windows 性能计数器。请求应用程序请求您的应用程序收到的请求。例如,您的网络应用收到的每个 HTTP 请求都会记录一个单独的请求记录。异常(exception)应用程序异常应用程序运行时抛出的异常,捕获服务器端和客户端(浏览器)异常。痕迹AppTrace通过 TrackTrace() 记录的应用程序代码/日志框架发出的详细日志(跟踪)。
using Azure;
using Azure.Identity;
using Azure.Monitor.Query;
using Azure.Monitor.Query.Models;

string workspaceId = "...";

var client = new LogsQueryClient(new DefaultAzureCredential());

try
{
Response<LogsQueryResult> response = await client.QueryWorkspaceAsync(
workspaceId,
"AppEvents | count",
QueryTimeRange.All);

LogsTable table = response.Value.Table;

foreach (var row in table.Rows)
{
Console.WriteLine(row);
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}

关于c# - 在 C#.Net 中的 Azure 函数中查询 Azure Application Insights CustomEvents,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73885174/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com