我正在尝试通过 athena 查询我的 cloudwatch 日志。为此,我从 AWS SAR 部署了预构建版本的连接器 (Amazon Athena Cloudwatch Connector)。
当我尝试在 athena 中运行简单查询时,出现以下错误:
GENERIC_USER_ERROR: Encountered an exception[java.lang.RuntimeException] from your LambdaFunction[athenacloudwatch] executed in context[retrieving meta-data] with message[You do NOT own the spill bucket with the name: s3://my-bucket-blalablaba/]
lambda 函数创建并使用的角色具有对此存储桶的读/写访问权限。存储桶未加密,并且没有任何类型的拒绝策略。
同样,部署应用程序时提供的堆栈没有进行任何更改。
知道我在这里可能会错过什么吗?
谢谢你!
有谁知道如何在 EC2 实例上自动安装 Cloudwatch 代理,同时通过 terraform 上的启动模板/配置启动它们?
我想将 CloudWatch 警报配置为:
我已将自定义 CloudWatch ApplicationRequestsTotal 指标配置为每 60 秒为我的服务发出一次。
我已将警报配置为:
{
"MetricAlarms": [
{
"AlarmName": "radio-silence-alarm",
"AlarmDescription": "Alarm if 0 or less requests are received for 1 consecutive period(s) of 30 minutes.",
"ActionsEnabled": true,
"OKActions": [],
"InsufficientDataActions": [],
"MetricName": "ApplicationRequestsTotal",
"Namespace": "AWS/ElasticBeanstalk",
"Statistic": "Sum",
"Dimensions": [
{
"Name": "EnvironmentName",
"Value": "service-environment"
}
],
"Period": 1800,
"EvaluationPeriods": 1,
"Threshold": 0.0,
"ComparisonOperator": "LessThanOrEqualToThreshold",
"TreatMissingData": "missing"
}
],
"CompositeAlarms": []
}
Run Code Online (Sandbox Code Playgroud)
我设置了很多这样的警报,每个警报似乎都是: …
我认为百分位是 Cloudwatch 支持的东西,但如果我尝试将其添加到我的查询中:
| stats precentile(someValue, 90)
Run Code Online (Sandbox Code Playgroud)
为了获取 的 p90 someValue,它抱怨这precentile不是一个公认的选项。Cloudwatch 不支持百分位数吗?
我正在尝试搜索 AWS cloudwatch 中的错误。我使用的过滤器模式是:
?ERROR ?Exception
Run Code Online (Sandbox Code Playgroud)
它工作正常,直到我遇到很多包含 Exception 关键字的警告消息。现在,我想查看 WARN 不存在的 Exception 关键字:
?ERROR ?Exception - WARN
Run Code Online (Sandbox Code Playgroud)
但这让我返回了每条日志消息。有没有办法拥有这样的搜索条件?
我正在此处阅读 AWS CloudWatch Logs 文档。他们说
\n\n\n归档日志数据 \xe2\x80\x93 您可以使用 CloudWatch Logs 将日志数据存储在高度持久的存储中。CloudWatch Logs 代理可以轻松快速地将轮换和非轮换日志数据从主机发送到日志服务中。然后,您可以在需要时访问原始日志数据。
\n
在定价页面上,他们有
\n\n\n存储(存档)每 GB 0.03 美元
\n
在定价计算器中,他们提到
\n\n\n日志存储/存档(标准日志和出售日志)\n存档的日志量估计为摄取的日志量的 15%(由于压缩)。假设客户选择一 (1) 个月的保留期,则估算存储/归档成本。默认保留设置为 \xe2\x80\x98never expire\xe2\x80\x99。
\n
我试图了解此存档功能的行为,以决定是否需要将日志数据移动到 S3。但我找不到任何进一步的细节。我尝试探索 CloudWatch Logs 页面中的每个按钮和链接,但找不到归档数据的方法,我只能删除它们或编辑它们的保留规则。
\n那么它是怎样工作的?定价计算器中的备注称估计为摄取量的 15%,这是否意味着它始终自动归档 15% 的日志?为什么他们必须在计算中假设保留期设置为 1 个月,否则存档功能的行为是否有所不同?
\n我有一个具有以下配置的 AWS CloudWatch 警报:
Type
Metric alarm
State
OK
Threshold
METRIC_NAME <= 0 for 1 datapoints within 1 day
Last change
2022-04-14 23:30:54
Actions
Actions enabled
Metric name
METRIC_NAME
Statistic
Average
Period
1 day
Datapoints to alarm
1 out of 1
Missing data treatment
Treat missing data as bad (breaching threshold)
Percentiles with low samples
evaluate
Run Code Online (Sandbox Code Playgroud)
在过去的几天里,我们一直缺少该指标的数据,导致图表如下所示:
我的理解是,鉴于上述配置以及过去 3 天的丢失数据,该警报应该已触发。然而,事实并非如此。基于 AWS 文档:https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html,一个为期 1 天的警报,1 个数据点中的 1 个要警报,以及缺失的数据breaching处理从 OK -> ALARM 更改警报状态。我在这里缺少一个关键组件吗?谢谢!
我一直在梳理我的 AWS 账单,并注意到一些奇怪的事情 - Cloudwatch 对每个可用区域收取非常少量的费用,并列出了费用$0.01 per 1,000 metrics requested using GetMetricData API - Asia Pacific (Singapore)(或在此处插入区域)。
在我的主要区域(美国东部),我看到计费符合预期 - PutLogEvents 和 GetMetricData 调用总共花费了几美元,正如您在正常使用中所期望的那样。
但在其他每个区域,我也有这些成本——每个几美分——用于该区域的 GetMetricData 调用。有谁知道这些费用的来源吗?
我正在服务器上运行awslogs代理,当我在AWS控制台中查看CloudWatch日志时,日志大约落后60分钟.我们的服务器每小时产生大约650MB的数据,似乎代理无法跟上.
这是我们的缩写配置文件:
[application.log]
datetime_format = %Y-%m-%d %H:%M:%S
time_zone = UTC
file = var/output/logs/application.json.log*
log_stream_name = {hostname}
initial_position = start_of_file
log_group_name = ApplicationLog
[service_log]
datetime_format = %Y-%m-%dT%H:%M:%S
time_zone = UTC
file = var/output/logs/service.json.log*
log_stream_name = {hostname}
initial_position = start_of_file
log_group_name = ServiceLog
Run Code Online (Sandbox Code Playgroud)
是否有一种通用的方法来加速awslogs代理?
logging amazon-web-services amazon-cloudwatch amazon-cloudwatchlogs
我正在开发需要安排任务的应用程序,因此我使用AWS Lambda,但是,安排的时间是动态的,因为它取决于用户请求,所以无法使用AWS控制台进行安排,因此我使用AWS Javascript SDK对其进行调度。这是流程:
以下是我编写的Node.js代码
schedule_aws_lambda: function(booking_id, cronTimeIST, callback){
var event = new AWS.CloudWatchEvents({
accessKeyId: accessKeyId,
secretAccessKey: secretAccessKey,
region: 'eu-west-1'
});
var lambda = new AWS.Lambda({
accessKeyId: accessKeyId,
secretAccessKey: secretAccessKey,
region: 'eu-west-1'
});
var year = cronTimeIST.utc().year();
var month = cronTimeIST.utc().month() + 1;
var date = cronTimeIST.utc().date();
var hour = cronTimeIST.utc().hour();
var minute = cronTimeIST.utc().minute();
var cronExpression = "cron(" + minute + " "+ hour + " " + date + " " + month …Run Code Online (Sandbox Code Playgroud) javascript amazon-web-services amazon-cloudwatch aws-sdk aws-lambda