C# Application Insights-以数据数组作为属性跟踪自定义事件

C# Application Insights-以数据数组作为属性跟踪自定义事件,c#,azure-application-insights,telemetry,C#,Azure Application Insights,Telemetry,我有一个具有搜索功能的Web应用程序 我希望能够通过搜索的关键字列表跟踪搜索事件(以便能够识别最常见的关键字) 我目前跟踪数据如下: telemetryClient.TrackEvent(Names.RepositorySearch, new Dictionary<string, string>() { {PropertyKeys.OrganizationName, repositoryQueryParamete

我有一个具有搜索功能的Web应用程序

我希望能够通过搜索的关键字列表跟踪搜索事件(以便能够识别最常见的关键字)

我目前跟踪数据如下:

telemetryClient.TrackEvent(Names.RepositorySearch, new Dictionary<string, string>()
                {
                    {PropertyKeys.OrganizationName, repositoryQueryParameter.OrganizationName},
                    {PropertyKeys.RepositoryName, repositoryQueryParameter.RepositoryName},
                    {PropertyKeys.Query, query },
                    {PropertyKeys.IsRegex, isRegex.ToString()},
                    {PropertyKeys.ResultsCount, resultsCount.ToString()},
                    {PropertyKeys.QueryExecutionTime, elapsed.TotalMilliseconds.ToString()},
                });
telemetryClient.TrackEvent(Names.RepositorySearch,new Dictionary()) { {PropertyKeys.OrganizationName,repositoryQueryParameter.OrganizationName}, {PropertyKeys.RepositoryName,repositoryQueryParameter.RepositoryName}, {PropertyKeys.Query,Query}, {PropertyKeys.IsRegex,IsRegex.ToString()}, {PropertyKeys.ResultCount,ResultCount.ToString()}, {PropertyKeys.QueryExecutionTime,已用.TotalMillimes.ToString()}, }); 我跟踪一个完整的查询,它与令牌/关键字列表有点不同


我知道我可以在一个循环中为每个关键字发布另一个小事件,但这看起来很糟糕

如果对搜索参数进行JSON编码,则可以使用该函数在Kusto查询中对其进行解压缩

跟踪代码:

telemetryClient.TrackEvent(
“存储搜索”,
新词典{
//用于示例目的的JSON文本。
//在现实生活中使用您最喜欢的JSON序列化程序。
[“SearchTerms”]=“[\“Term1\”,\“Term2\”],
}
);
要查询的问题:

customEvents
| where name == "RepositorySearch" 
| extend searchTerms = parse_json(customDimensions.SearchTerms) 

一些AppInsights数据可视化工具足够智能,能够自动识别和呈现JSON列表/对象。如果您只想直观地检查数据,甚至可能不需要自定义查询。

如果您对搜索参数进行JSON编码,则可以使用该函数在Kusto查询中解压这些参数

跟踪代码:

telemetryClient.TrackEvent(
“存储搜索”,
新词典{
//用于示例目的的JSON文本。
//在现实生活中使用您最喜欢的JSON序列化程序。
[“SearchTerms”]=“[\“Term1\”,\“Term2\”],
}
);
要查询的问题:

customEvents
| where name == "RepositorySearch" 
| extend searchTerms = parse_json(customDimensions.SearchTerms) 

一些AppInsights数据可视化工具足够智能,能够自动识别和呈现JSON列表/对象。如果您只想直观地检查数据,甚至可能不需要自定义查询。

我给出了一个非常笼统的答案。如果您能澄清您想对数据做什么(例如,您想写一个Kusto查询来查找包含特定术语的搜索吗?),我可能会给出更具体的建议。@xander-现在我打算用最常用的关键字创建一个简单的piechart。。。我想你的答案应该足够了(+1,现在不能测试,一旦确认就会接受)我发布了一个非常笼统的答案。如果您能澄清您想对数据做什么(例如,您想写一个Kusto查询来查找包含特定术语的搜索吗?),我可能会给出更具体的建议。@xander-现在我打算用最常用的关键字创建一个简单的piechart。。。我想你的答案应该足够了(+1,现在不能测试,确认后接受)