web-dev-qa-db-ja.com

Application Insights:Analytics-特定の位置で文字列を抽出する方法

やりたいのですが

  • 「2」のように、param = 1の「クエリ」文字列を抽出します。
  • テーブルを「3」としてAnalyticsでpageViewを取得します。

1.pageViewに含まれる実際のURL

  • _https://example.com/dir01/?query=Apple&param=1_
  • _https://example.com/dir01/?query=Apple&param=1_
  • _https://example.com/dir01/?query=lemon+juice&param=1_
  • _https://example.com/dir01/?query=lemon+juice&param=0_
  • _https://example.com/dir01/?query=tasteful+grape+wine&param=1_

2.抽出が期待される価値

  • Apple
  • _lemon+juice_
  • _tasteful+grape+wine_

3. AIAnalyticsで期待される出力

  • クエリパラメータ|カウント
    • アップル| 2
    • レモン+ジュース| 1
    • 上品+ブドウ+​​ワイン| 1

image

やろうとした

https://docs.Microsoft.com/en-us/Azure/application-insights/app-insights-analytics-reference#parseurl

https://aka.ms/AIAnalyticsDemo

extractまたはparseurl(url)が役立つはずだと思います。後者のparseurl(url)を試しましたが、「クエリパラメータ」を1つの列として抽出する方法がわかりません。

_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":""}_
9
grantaka36

はい、parseurlはそれを行う方法です。これにより、jsonとして使用できる動的な値が得られます。クエリパラメータの「クエリ」値を取得するには、次の手順に従います。

pageViews
| where timestamp > ago(1d)
| extend parsed_url=parseurl(url)
| extend query = tostring(parsed_url["Query Parameters"]["query"])

param値で要約すると:

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

デモポータル :で、サンプル値でどのように機能するかを確認できます。

let vals = datatable(url:string)["https://example.com/dir01/?
query=Apple&param=1", "https://example.com/dir01/?query=Apple&param=1", 
"https://example.com/dir01/?query=lemon+juice&param=1", 
"https://example.com/dir01/?query=lemon+juice&param=0", 
"https://example.com/dir01/?query=tasteful+grape+wine&param=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

お役に立てれば、

アサフ

12
Asaf Strassberg