![](/img/trans.png)
[英]How to use Kusto to access Azure Function app code logging() message?
[英]Azure Kusto - Use extract() on message field from traces
我正在使用 Azure Log Analytics 作為 Azure Application Insights 的一部分。 我正在嘗試編寫一些 Kusto 查詢來解析使用 Application Insights Javascript SDK 生成的一些日志記錄。以下是一些示例消息:
"index.ts: imports: 1556.916ms"
"index.ts: imports: 110.486ms import { } from '@azure/keyvault-secrets'"
"index.ts: imports: 110.396ms import { } from '@azure/event-hubs'"
"index.ts: imports: 110.023ms import { } from 'applicationinsights'"
"index.ts: imports: 0.131ms import { } from '@azure/functions'"
在 Azure Application Insights 內部的 Log Analytics 中,我試圖使用extract()
從消息列中提取文件名。 到目前為止,我的 Kusto 查詢如下所示:
traces
| where message contains "imports"
| extend file = extract("^.+\.ts", 1, message)
| sort by timestamp desc
| limit 100
當我嘗試運行此查詢時,我收到一條錯誤消息:
Syntax Error
If issue persists, please open a support ticket.
Request id: 124e777f-136e-4a75-8fa7-a49483a12902
我錯過了什么,我的錯誤在哪里?
您查詢中的問題是:
您的字符串中有一個字符 ( \
) 需要 escaping,或者使用逐字字符串文字。 在此處查看更多信息: https://learn.microsoft.com/en-us/azure/kusto/query/scalar-data-types/string
您在正則表達式中缺少捕獲組。
如果你修復了這些,這應該有效: | extend file = extract(@"^(.+)\.ts", 1, s)
| extend file = extract(@"^(.+)\.ts", 1, s)
但是,無論如何,您可以使用更高效的parse
運算符,如下所示:
datatable(s:string)
[
"index.ts: imports: 1556.916ms",
"index.ts: imports: 110.486ms import { } from '@azure/keyvault-secrets'",
"index.ts: imports: 110.396ms import { } from '@azure/event-hubs'",
"index.ts: imports: 110.023ms import { } from 'applicationinsights'",
"index.ts: imports: 0.131ms import { } from '@azure/functions'",
]
| parse s with file ".ts" *
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.