【问题标题】:How to get parse_json result property ignore case in Azure Application Insight log query?如何在 Azure Application Insight 日志查询中获取 parse_json 结果属性忽略大小写?
【发布时间】:2022-11-09 20:44:38
【问题描述】:

日志项如下所示,currencyamount 字段有多种情况:

{ "AdditionalFields":{ 
  "backendRequestBody":{
      "currencyamount":1
} } }

{ "AdditionalFields":{ 
  "backendRequestBody":{
      "CurrencyAmount":1
} } }

{ "AdditionalFields":{ 
  "backendRequestBody":{
      "currencyAmount":1
} } }

但是,parse_json 日志查询区分大小写,有什么方法可以不区分大小写地获取 currentAmount 字段使用天蓝色日志查询?

下面的查询只能获取具有小写货币金额字段的日志条目之一。

AzureDiagnostics 
| where apiId_s contains "targetId" and AdditionalFields.backendRequestBody has "amount"
| extend amt = (parse_json(tostring(AdditionalFields.backendRequestBody)).currencyamount)

【问题讨论】:

    标签: azure azure-application-insights


    【解决方案1】:

    阿法克,在解析Json我们无法使用区分大小写json对象.取而代之的是,您可以使用以下方式来实现。

    AzureActivity
    | where apiId_s contains "targetId" and AdditionalFields.backendRequestBody has "amount"
    | extend backendReqbody = parse_json(AdditionalFields.backendRequestBody)
    | extend lowercuramount = parse_json(tostring(parse_json(backendReqbody.currencyamount)))
    | extend curamount = parse_json(tostring(parse_json(backendReqbody.CurrencyAmount)))
    | extend lowupcuramount = parse_json(tostring(parse_json(backendReqbody.currencyAmount)))
    

    您可以在过滤结果中的数据时使用 (iff) Ms -Doc 之类的条件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-22
      • 1970-01-01
      • 1970-01-01
      • 2011-03-23
      • 1970-01-01
      • 1970-01-01
      • 2012-12-08
      相关资源
      最近更新 更多