首页 > 解决方案 > azure appInsights 从 url 获取字符串的一部分并将其显示在名称列中

问题描述

我正在使用 azure app 洞察力,我想从 url 解析字符串的一部分并在名称列中显示该部分

requests
| where user_AuthenticatedId != ""
and url contains "reports" and user_AuthenticatedId == "xxx" 
| project timestamp, user_AuthenticatedId, client_CountryOrRegion, client_OS, url,name 
| order by timestamp asc nulls last

例如,我将 url 获取为 https://localhost:80/api/external-reports/blob/39/test 01b/false 所以我想从中获取测试 01b 并将其显示在名称列中。

我不确定如何做到这一点。

标签: azureazure-application-insights

解决方案


有一些功能可能会有所帮助。

首先,您可以使用parse_url()方法获取不同的 url 部分。例如,给定 URL https://localhost:80/api/external-reports/blob/39/test 01b/false :

requests
| project parse_url(url)

输出:

{"Scheme":"https","Host":"localhost","Port":"80","Path":"/api/external-reports/blob/39/test 01b/false","Username":"","Password":"","Query Parameters":{},"Fragment":""} 
requests
| project split(parse_url(url).Path, "/")

输出:

["","api","external-reports","blob","39","test 01b","false"]    
  • 要获得您想要的部分,您可以使用索引:
request
| project mycolumn = split(parse_url(test).Path, "/")[5]

输出:

test 01b
  • 当使用的索引大于部分数时,将返回空结果。您可以使用coalesce函数将其替换为您自己的值:
requests
| project mycolumn = coalesce(split(parse_url(test).Path, "/")[5], "unknown")

当索引超出范围或部分为空时,它显示未知。


推荐阅读