Azure Kusto - 在跟踪的消息字段上使用 extract()
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
我错过了什么,我的错误在哪里?
您查询中的问题是:
您的字符串中有一个字符 (\
) 需要转义或使用逐字字符串文字。在此处查看更多信息:https://docs.microsoft.com/en-us/azure/kusto/query/scalar-data-types/string
您的正则表达式中缺少捕获组。
如果你修复了这些,这应该可以工作:| 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" *
我正在使用 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
我错过了什么,我的错误在哪里?
您查询中的问题是:
您的字符串中有一个字符 (
\
) 需要转义或使用逐字字符串文字。在此处查看更多信息:https://docs.microsoft.com/en-us/azure/kusto/query/scalar-data-types/string您的正则表达式中缺少捕获组。
如果你修复了这些,这应该可以工作:| 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" *