CloudWatch Insights查询:统计符合指定格式的去重消息总数
日志去重表数量查询语句
核心逻辑为两步:先从日志消息中提取出加载的表名,再对表名做去重计数即可得到你要的结果。
AWS CloudWatch Logs Insights(最常见的日志组查询场景)
直接使用以下查询语句:
parse @message "Total of * rows have been loaded to *" as load_rows, table_name | stats count_distinct(table_name) as unique_loaded_table_count
执行后返回的unique_loaded_table_count字段值就是目标结果,对你给出的示例日志会返回3,符合预期。
Elasticsearch(ELK栈)查询
使用如下DSL语句:
{ "size": 0, "aggs": { "unique_loaded_table_count": { "cardinality": { "script": { "source": "def matcher = /Total of \\d+ rows have been loaded to (.*)/.matcher(doc['message.keyword'].value); return matcher.matches() ? matcher.group(1) : '';", "lang": "painless" } } } } }
返回结果的aggregations.unique_loaded_table_count.value就是去重后的表数量。
内容的提问来源于stack exchange,提问作者JamesBowery
相关产品推荐
相关产品推荐

