amazon-cloudwatchlogs - Cloudwatch 记录洞察力在 concat 输出上合并
问题描述
我对 cloudwatch 日志有以下查询
fields replace(path,'%20',' ') as pathz
|parse pathz /^(?<url1>.*) [!A-Z0-9-]*(?<url2>[ˆ!].*)$/
| fields concat(url1, url2) as url
| display coalesce(url,pathz) as furl
解析的 3 个示例 pathz 是:
/v1/routing/pega-public/prweb/api/v1/assignments/ASSIGN-WORKLIST GNR-AUTO-WORK ST-4102!RACCOLTADATIPRELIMINARI_FLOW
/v1/routing/pega-public/prweb/api/DeviceInfoPackage/v1/SetInitialCaseInfomation
/v1/routing/pega-public/prweb/api/v1/cases/GNR-AUTO-WORK 43FFC9776C00474388A664A8A3E24B68
所需的输出是删除数据:
/v1/routing/pega-public/prweb/api/v1/assignments/ASSIGN-WORKLIST GNR-AUTO-WORK RACCOLTADATIPRELIMINARI_FLOW
/v1/routing/pega-public/prweb/api/DeviceInfoPackage/v1/SetInitialCaseInfomation
/v1/routing/pega-public/prweb/api/v1/cases/GNR-AUTO-WORK
但我无法得到它
第三行是空的,这是因为 concat 输出不返回 'null' 可以被合并跳过,但它返回一个匹配的空字符串
我在文档和互联网上的几个例子中进行了挖掘,但没有办法让它正常工作
解决方案
解决了这个:
fields @timestamp, status, replace(path,'%20',' ') as pathx
|parse pathx /(?<a1>^[^ ]+ *[A-Z-]*)( (?<a2>[A-Z0-9-]+){1,2}(?<a3>.*))*/
|filter
|display concat(a1,a3) as cleanurl
推荐阅读
- flutter - SingleTickerProviderStateMixin 和自定义 mixin
- laravel - 为 Laravel 的 Quickbooks PHP API 创建 DataService
- nginx - Nginx + GraphQL 连接被拒绝
- flutter - 单击 TextFormField 会导致重建并且文本字段随后失去焦点
- r - 我如何在 R 中有条件地计数
- reactjs - 连接 digitalocean 时出现 Mongo atlas 错误
- amazon-web-services - SpringBoot为ngingx SSL添加.ebextensions后部署失败-[执行命令[app-deploy]时出错]
- javascript - DataTables JSON Api 转义内容
- firebase - 如何限制来自 Firebase 实时数据库的 Cloud Function 触发器的数量
- javascript - 流程:如何从一组联合类型中筛选出一个类型