假设您有带有某些事务 ID 和时间戳的日志
12:00: transactionID1 handled by funcX
12:01: transactionID2 handled by funcX
12:03: transactionID2 handled by funcY
12:04: transactionID1 handled by funcY
Run Code Online (Sandbox Code Playgroud)
我想获取同一事件的两个日志之间的时间并聚合(例如总和、平均值)时间差。
例如,对于 transactionID1,时间差异将为 (12:04 - 12:01) 3 分钟,对于 transactionID2,时间差异将为 (12:03 - 12:02) 1 分钟。然后我想取所有这些时间差的平均值,即 (3+1)/2 或 2 分钟。
有办法吗?
我正在寻求有关我遇到的问题的帮助。
我在 CloudWatch 上创建了一个新的日志组,通过 AWS 方法创建了一些流和总共最多 1500 个日志事件putLogEvents。当我运行一个简单的查询仅返回时间戳和消息时,该查询大约需要 20-25 秒来扫描所有 1500 个事件,这与其他日志组相比速度较慢。扫描速率从每秒 300 条记录波动到每秒 60 条记录。
在其他尺寸更大(例如10,000+)的日志组中,查询大约需要5秒。我不明白为什么查询需要这么长时间来扫描。
非常感谢任何帮助,TIA。
amazon-web-services amazon-cloudwatch amazon-cloudwatchlogs aws-cloudwatch-log-insights
一个 lambda 可以有一个成功或错误的结果。
我想查看错误的 lambda 日志。我正在尝试通过 CloudWatch Insights 查询来做到这一点。
我怎样才能做到这一点?
amazon-cloudwatch aws-lambda amazon-cloudwatchlogs aws-cloudwatch-log-insights
尝试使用带有 8601 时间戳字符串(如“2020-03-24T19:03:34.645Z”)的“ date_floor ”等内置 Cloudwatch Log 函数会在 Cloudwatch Log Insights 中返回“无效日期”错误。
有谁知道解析/投射出现在日志中的时间戳需要什么,以便它们可以与内置日期/时间函数一起使用?
我的最终目标是将出现在我的日志中的时间戳与内置的 @ingestionTime 字段进行比较。
我查看了CloudWatch Logs 的文档,但找不到任何方法来手动从log stream.
删除数据的唯一方法是:
log stream,但这将删除所有数据(不仅仅是我们要删除的数据)有人有删除特定日志记录的经验吗?
amazon-web-services amazon-cloudwatch amazon-cloudwatchlogs aws-cloudwatch-log-insights
我需要使用 AWS Cloudwatch 日志洞察从 lambda 查询数据。aws 提供的查询语法没有不同。
仅支持 (count_distinct(fieldname))
参考 https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html
示例数据
列#@timestamp@message
1 2020-02-17T13:33:29.049+07:00 [INFO] 2020 分区键:ABC12345_A_
2 2020-02-17T11:32:29.049+07:00 [INFO] 2020 分区键:ABC12345_B_
3 2020-02-17T11:31:29.049+07:00 [INFO] 2020 分区键:ABC12345_B_
4 2020-02-17T11:30:29.049+07:00 [INFO] 2020 分区键:ABC12345_C_
5 2020-02-17T11:29:29.049+07:00 [INFO] 2020 分区键:ABC12345_A_
预期结果
1 2020-02-17T13:33:29.049+07:00 [INFO] 2020 分区键:ABC12345_A_
2 2020-02-17T11:32:29.049+07:00 [INFO] 2020 分区键:ABC12345_B_
4 2020-02-17T11:30:29.049+07:00 [INFO] 2020 分区键:ABC12345_C_
如果使用正常的 SQL 语法如下所示。
从 table_name group by uuid order by time desc 选择 distinct(uuid) 作为 uuid,max(time) 作为 time
amazon-web-services amazon-cloudwatch aws-cloudwatch-log-insights
我有 CWL 条目如下。为清楚起见,以 SQL 类型显示条目
Name City
1 Chicago
2 Wuhan
3 Chicago
4 Wuhan
5 Los Angeles
Run Code Online (Sandbox Code Playgroud)
现在我想低于输出
City Count
Chicago 2
Wuhan 2
Los Angeles 1
Run Code Online (Sandbox Code Playgroud)
有没有办法可以GROUP BY在 CWL Insights 中运行。
伪查询
Select Count(*), City From {TableName} GROUP BY City
Run Code Online (Sandbox Code Playgroud) amazon-cloudwatch amazon-cloudwatchlogs aws-cloudwatch-log-insights
通过 bin 进行计数查询:
filter @message like / error /
| stats count() as exceptionCount by bin(30m)
Run Code Online (Sandbox Code Playgroud)
我得到一个不连续的图,很难掌握:
AWS Cloudwatch Log Insights 是否可以将空箱视为零计数以获得连续图形?
我想使用 cloudwatch 洞察来可视化主机随时间变化的平均延迟的多线图。每个主机一行。
此统计查询提取延迟并按主机将其聚合到 10 分钟的存储桶中,但它不会生成任何可视化效果。
stats avg(latencyMS) by bin(10m), host
bin(10m) | host | avg(latencyMS)
0m | 1 | 120
0m | 2 | 220
10m | 1 | 130
10m | 2 | 230
Run Code Online (Sandbox Code Playgroud)
文档称这是一个常见的错误,但没有提供任何替代方案。
以下查询不会生成可视化,因为它包含多个分组字段。
Run Code Online (Sandbox Code Playgroud)stats avg(myfield1) by bin(5m), myfield4
实验上,如果每条记录有多个键,cloudwatch 会生成一个多线图。生成折线图的查询必须返回如下结果:
bin(10m) | host-1 avg(latencyMS) | host-2 avg(latencyMS)
0m | 120 | 220
10m | 130 | 230
Run Code Online (Sandbox Code Playgroud)
我不知道如何编写输出该查询的查询。
amazon-web-services amazon-cloudwatchlogs aws-cloudwatch-log-insights
我正在使用仪表板来监控 AWS 上的各种输出统计信息。
可以说它看起来像这样:
统计数据 avg(myfield1)、min(myfield2)、max(myfield3) by bin(1m)
这工作正常 - 但我默认使用 1 分钟的 bin 大小 - 因此数据保留期仅为 3 天。如果我想查看一周或一个月,我必须使用一个具有更大 bin 大小的单独小部件 - 我仍然想要较短时间段的 1 分钟分辨率,并且我不想将图表加倍,因为仪表板已经很忙了。
显然,当查看的数据范围发生变化时,所有内置指标图都会动态调整它们正在查询的 bin 大小。
是否可以在 cloudwatch Insights 查询中执行此操作,如果可以,语法是什么?