- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题摘要
如何使用 CLI 工具从 CloudWatch 下载完整日志?
我下载的日志不完整。我知道这一点,因为如果我颠倒顺序,使用 --start-from-head
,我得到了新的内容。不只是逆序。
科研
我试图在(Flask/Zappa、AWS lambda)微服务中跟踪一个棘手的间歇性故障。
我需要下载日志。
我可以检查 CloudWatch 中的日志:
这是一个包含我所追求的文本:
但是,如果我下载此日志,则下载的文件不包含此文本:
> aws logs get-log-events --log-group-name '/aws/lambda/api-dev' --log-stream-name '2018/12/01/[$LATEST]59bc7e539d7948688e0666f8ed14822a' > wtf.txt
> cat wtf.txt | grep "timer"
--start-from-head
,现在我看到了:
> aws logs get-log-events --log-group-name '/aws/lambda/api-dev' --log-stream-name '2018/12/01/[$LATEST]59bc7e539d7948688e0666f8ed14822a' --start-from-head > wtf.txt
> cat wtf.txt | grep "timer"
"message": "> > > starting game timer < < <\n",
--limit (integer)
The maximum number of log events returned. If you don't specify a value, the maximum is as many log events as can fit in a response size of 1 MB, up to 10,000 log events.
> ls -l wtf.txt
-rw-r--r-- 1 pi staff 1247053 3 Dec 10:55:14 2018 wtf.txt
--limit
,但得到:
An error occurred (InvalidParameterException) when calling the GetLogEvents operation: 1 validation error detected: Value '999999' at 'limit' failed to satisfy constraint: Member must have value less than or equal to 10000
"nextForwardToken"
key ?
def get_complete_log(stream_name):
nextForwardToken = None
while True:
param_group = " --log-group-name '/aws/lambda/api-dev'"
param_stream = " --log-stream-name '" + stream_name + "'"
param_token = (" --next-token '" + nextForwardToken + "'") if nextForwardToken else ""
params = param_group + param_stream + param_token
cmd = "aws logs get-log-events" + params + " > logs/tmp.txt"
print(cmd)
system(cmd)
with open('logs/tmp.txt','r') as f:
tmp = f.read()
print('CONTENTS:', tmp[:120], '\n')
J = json.loads( tmp )
nextForwardToken = J.get("nextForwardToken")
if not nextForwardToken:
break
get_complete_log( "2018/12/01/[$LATEST]59bc7e539d7948688e0666f8ed14822a" )
aws logs get-log-events --log-group-name '/aws/lambda/api-dev' --log-stream-name '2018/12/01/[$LATEST]030c7bd5c6ff4d9eb3bb56b8607746b8' > logs/tmp.txt
CONTENTS: {
"events": [
{
"timestamp": 1543707627572,
"message": "START RequestId: 7b34fa3b-f5
aws logs get-log-events --log-group-name '/aws/lambda/api-dev' --log-stream-name '2018/12/01/[$LATEST]030c7bd5c6ff4d9eb3bb56b8607746b8' --next-token 'f/34426362085021867195594556764906427633106607331166978053' > logs/tmp.txt
CONTENTS: {
"events": [],
"nextForwardToken": "f/34426362085021867195594556764906427633106607331166978053",
"nextBackw
"events": []
和
"nextForwardToken":
就是传入的同一个token!
最佳答案
我建议您试试这个 CLI tool .在我看来,它比 AWS 控制台和 AWS CLI 工具可靠得多。我用它来搜索 CloudWatch 中的大量日志流。您可以轻松指定时间范围以搜索甚至 grep 搜索 CloudWatch 日志流。您还可以实时查看日志流。下面的示例在指定时间范围内搜索组中的所有日志流(另请参阅我正在搜索模式 ERROR 并使用 tee
输出到文件和控制台):
awslogs get my_log_group ALL --start='23/1/2015 12:00' --end='23/1/2016 13:00' | grep ERROR | tee errlogs.txt
关于logging - 如何下载完整的 AWS CloudWatch 日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53599497/
我想知道是否可以在 cloudwatch 指标过滤器中同时使用 OR 和 exclude 语法。 我一直在阅读文档并尝试不同的组合,但没有运气。 这是我的测试数据: [ABC] - 错误 2020-0
Current query : fields @message | filter @message like /ABCD/ | stats count(@message) 结果:@messages
如何在正则表达式上匹配 CloudWatch 事件。我只需要调用特定作业名称上的特定 SNS 目标。例如,类似于下面的内容,我想在 TranscriptionJobName 上进行正则表达式匹配。谢谢
我正在使用 codebuild triggers 触发我的代码构建具有 cron 表达式的功能 cron(*/2 * * * ? *)每 2 分钟触发一次。不幸的是,当我检查 cloudwatch s
我有一个 clouwatch 数学指标 e1,它是 SUM([m1,m2])。 m1 和 m2 的 CloudWatch 单位为 Milliseconds 但 SUM 表达式的单位为 No unit.
假设我有一个像这样的简单 Insights 查询 fields @timestamp, @message 有没有办法截断@message 字段。例如,假设我只想跳过前 50 个字符。 我知道我可以使用
AWS CloudWatch 具有日志组和日志流。日志组对我来说似乎很合理:每个产品(例如每个 Lambda 函数、每个 Sagemaker 端点)都有自己的日志组。 但是有日志流。 AWS Clou
我们正在从我们的服务发布自定义 Cloudwatch 指标,并希望在指标名称的值超出任何维度的阈值时设置警报。以下是我们发布的指标: Namespace=SameName, MetricName=Fa
我正在运行一个 react 应用程序。我想将错误记录到我的 aws cloudwatch 而不在我的客户端代码上硬编码访问 key 和 key 。我正在使用“错误边界组件”来捕获错误。 感谢您的帮助。
我有两个 Cloudwatch 见解查询,我希望能够并行运行并比较两者的结果。 stats count(*) as requestIdCount by @requestId | filter @mes
尝试编写一个 Cloud Watch Insights 查询来连接相同时间戳的错误消息,以便在结果中显示为一行而不是多行。 到目前为止,我已经尝试了以下查询。 fields @timestamp,co
尝试编写一个 Cloud Watch Insights 查询来连接相同时间戳的错误消息,以便在结果中显示为一行而不是多行。 到目前为止,我已经尝试了以下查询。 fields @timestamp,co
我有一组 json 格式的 cloudwatch 日志,其中包含一个用户名字段。如何编写一个计算每月唯一用户数的 cloudwatch 指标查询? 最佳答案 你现在可以这样做了!使用 CloudWat
我正在尝试将两批日志发送到 CloudWatch。 这是两个日志: /var/log/apache2/access.log /var/log/apache2/error.log 我使用 amazon-
我有这个 CDK 代码: const logGroup = new LogGroup(this, 'MyAppLogGroup', { logGroupName: 'myapp', reten
我正在尝试组织大量 CloudWatch 警报以实现可维护性,并且 Web 控制台在编辑时将名称字段灰显。是否有另一种方法(最好是可编写脚本的)来更新 CloudWatch 警报的名称?除了简单的可执
假设我有以下 Insights 查询 fields @timestamp, @message | parse @message 'status=*" as status | display @time
将 JSON 日志发送到 AWS Cloudwatch - 大多数情况下效果很好,但偶尔,我可能会收到一个不完全是纯 JSON 的日志条目(或者至少,格式很奇怪)。以下是来自 Slack 机器人的单个
如果您计划向特定 Kinesis 流订阅更多的 CloudWatch 日志数据,超过单个分片可以处理的数量,是否可以通过添加多个分片来扩展您的流,然后在这些分片之间分配多个 CloudWatch 日志
我有以下查询,输出如下: Query: filter @message like /A:|B:/ Output: [INFO] 2020-07-28T09:20:48.406Z requestid A
我是一名优秀的程序员,十分优秀!