Application Insights:分析 - 如何在特定位置提取字符串
Application Insights: Analytics - how to extract string at specific position
我愿意,
- 正在提取 "query" 个字符串,其中 param=1 如下所示,在“2.”中
- 在 Analytics 中获取 pageViews table 作为“3.”
1。 pageView
中包含的实际网址
https://example.com/dir01/?query=apple¶m=1
https://example.com/dir01/?query=apple¶m=1
https://example.com/dir01/?query=lemon+juice¶m=1
https://example.com/dir01/?query=lemon+juice¶m=0
https://example.com/dir01/?query=tasteful+grape+wine¶m=1
2。预计提取的价值
apple
lemon+juice
tasteful+grape+wine
3。 AI Analytics 的预期输出
- 查询参数 |数数
- 苹果 | 2
- 柠檬+果汁 | 1
- 品味+葡萄+葡萄酒 | 1
尝试过
https://aka.ms/AIAnalyticsDemo
我认为extract
或parseurl(url)
应该有用。我尝试了后者 parseurl(url)
但不知道如何将 "Query Parameters" 提取为一列。
pageViews
| where timestamp > ago(1d)
| extend parsed_url=parseurl(url)
| summarize count() by tostring(parsed_url)
| render barchart
url
http://aiconnect2.cloudapp.net/FabrikamProd/
parsed_url
{"Scheme":"http","Host":"aiconnect2.cloudapp.net","Port":"","Path":"/FabrikamProd/","Username":"","Password":"","Query Parameters":{},"Fragment":""}
是的,parseurl 是实现此目的的方法。它会产生一个动态值,您可以将其用作 json。
获取查询参数的"query"值:
pageViews
| where timestamp > ago(1d)
| extend parsed_url=parseurl(url)
| extend query = tostring(parsed_url["Query Parameters"]["query"])
并通过参数值进行总结:
pageViews
| where timestamp > ago(1d)
| extend parsed_url=parseurl(url)
| extend query = tostring(parsed_url["Query Parameters"]["query"])
| extend param = toint(parsed["Query Parameters"]["param"])
| summarize sum(param) by query
您可以在 demo portal:
中查看它如何处理您的示例值
let vals = datatable(url:string)["https://example.com/dir01/?
query=apple¶m=1", "https://example.com/dir01/?query=apple¶m=1",
"https://example.com/dir01/?query=lemon+juice¶m=1",
"https://example.com/dir01/?query=lemon+juice¶m=0",
"https://example.com/dir01/?query=tasteful+grape+wine¶m=1"];
vals
| extend parsed = parseurl(url)
| extend query = tostring(parsed["Query Parameters"]["query"])
| extend param = toint(parsed["Query Parameters"]["param"])
| summarize sum(param) by query
希望这对您有所帮助,
阿萨夫
我愿意,
- 正在提取 "query" 个字符串,其中 param=1 如下所示,在“2.”中
- 在 Analytics 中获取 pageViews table 作为“3.”
1。 pageView
中包含的实际网址https://example.com/dir01/?query=apple¶m=1
https://example.com/dir01/?query=apple¶m=1
https://example.com/dir01/?query=lemon+juice¶m=1
https://example.com/dir01/?query=lemon+juice¶m=0
https://example.com/dir01/?query=tasteful+grape+wine¶m=1
2。预计提取的价值
apple
lemon+juice
tasteful+grape+wine
3。 AI Analytics 的预期输出
- 查询参数 |数数
- 苹果 | 2
- 柠檬+果汁 | 1
- 品味+葡萄+葡萄酒 | 1
尝试过
https://aka.ms/AIAnalyticsDemo
我认为extract
或parseurl(url)
应该有用。我尝试了后者 parseurl(url)
但不知道如何将 "Query Parameters" 提取为一列。
pageViews
| where timestamp > ago(1d)
| extend parsed_url=parseurl(url)
| summarize count() by tostring(parsed_url)
| render barchart
url
http://aiconnect2.cloudapp.net/FabrikamProd/
parsed_url
{"Scheme":"http","Host":"aiconnect2.cloudapp.net","Port":"","Path":"/FabrikamProd/","Username":"","Password":"","Query Parameters":{},"Fragment":""}
是的,parseurl 是实现此目的的方法。它会产生一个动态值,您可以将其用作 json。 获取查询参数的"query"值:
pageViews
| where timestamp > ago(1d)
| extend parsed_url=parseurl(url)
| extend query = tostring(parsed_url["Query Parameters"]["query"])
并通过参数值进行总结:
pageViews
| where timestamp > ago(1d)
| extend parsed_url=parseurl(url)
| extend query = tostring(parsed_url["Query Parameters"]["query"])
| extend param = toint(parsed["Query Parameters"]["param"])
| summarize sum(param) by query
您可以在 demo portal:
中查看它如何处理您的示例值let vals = datatable(url:string)["https://example.com/dir01/?
query=apple¶m=1", "https://example.com/dir01/?query=apple¶m=1",
"https://example.com/dir01/?query=lemon+juice¶m=1",
"https://example.com/dir01/?query=lemon+juice¶m=0",
"https://example.com/dir01/?query=tasteful+grape+wine¶m=1"];
vals
| extend parsed = parseurl(url)
| extend query = tostring(parsed["Query Parameters"]["query"])
| extend param = toint(parsed["Query Parameters"]["param"])
| summarize sum(param) by query
希望这对您有所帮助,
阿萨夫