azure - 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 并将其显示在名称列中。
我不确定如何做到这一点。
解决方案
有一些功能可能会有所帮助。
首先,您可以使用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":""}
- 您可以使用split()方法进一步拆分结果:
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")
当索引超出范围或部分为空时,它显示未知。
推荐阅读
- javascript - 方法在 iis 和 iis express 中执行不同
- python - 如何使用 Python 在随机森林中投票?
- matlab - 从用 Visual Studio 2015 编写的 Fortran 程序调用 Matlab 引擎时出错
- oauth-2.0 - 单页应用程序-Oauth-2:我们需要刷新令牌吗?
- rx-java2 - RxJava2:调用 Flowable.toList 时处理空值
- java - 折线不会出现
- git - 在 netlify 上禁用持续部署
- google-apps-script - 如何获取 admin.directory.userlist api 的访问令牌?
- django - 部署中的 Django 管理页面
- node.js - 无法读取“ID 参数”的属性