标签: amazon-cloudwatch

athena-cloudwatch 连接器 - 您不拥有溢出桶

我正在尝试通过 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 函数创建并使用的角色具有对此存储桶的读/写访问权限。存储桶未加密,并且没有任何类型的拒绝策略。

同样,部署应用程序时提供的堆栈没有进行任何更改。

知道我在这里可能会错过什么吗?

谢谢你!

amazon-s3 amazon-cloudwatch aws-lambda amazon-athena

2
推荐指数
1
解决办法
2498
查看次数

使用 Terrafom 安装 Cloudwatch Agent

有谁知道如何在 EC2 实例上自动安装 Cloudwatch 代理,同时通过 terraform 上的启动模板/配置启动它们?

amazon-web-services amazon-cloudwatch terraform

2
推荐指数
1
解决办法
5631
查看次数

如何将 CloudWatch 警报配置为每 X 分钟评估一次

我想将 CloudWatch 警报配置为:

  • 每 30 分钟对最后 30 分钟的 ApplicationRequestsTotal 指标求和一次
  • 如果总和等于 0 则报警

我已将自定义 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)

我设置了很多这样的警报,每个警报似乎都是: …

amazon-web-services amazon-cloudwatch cloudwatch-alarms

2
推荐指数
1
解决办法
4315
查看次数

Cloudwatch - 如何使用百分位数?

我认为百分位是 Cloudwatch 支持的东西,但如果我尝试将其添加到我的查询中:

| stats precentile(someValue, 90)
Run Code Online (Sandbox Code Playgroud)

为了获取 的 p90 someValue,它抱怨这precentile不是一个公认的选项。Cloudwatch 不支持百分位数吗?

amazon-web-services amazon-cloudwatch

2
推荐指数
1
解决办法
8437
查看次数

AWS Cloudwatch:搜索错误

我正在尝试搜索 AWS cloudwatch 中的错误。我使用的过滤器模式是:

?ERROR ?Exception
Run Code Online (Sandbox Code Playgroud)

它工作正常,直到我遇到很多包含 Exception 关键字的警告消息。现在,我想查看 WARN 不存在的 Exception 关键字:

?ERROR ?Exception - WARN
Run Code Online (Sandbox Code Playgroud)

但这让我返回了每条日志消息。有没有办法拥有这样的搜索条件?

amazon-web-services amazon-cloudwatch

2
推荐指数
1
解决办法
4704
查看次数

AWS CloudWatch Logs Archive(不是 S3),如何使用它

我正在此处阅读 AWS CloudWatch Logs 文档。他们说

\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
\n

问题

\n

我试图了解此存档功能的行为,以决定是否需要将日志数据移动到 S3。但我找不到任何进一步的细节。我尝试探索 CloudWatch Logs 页面中的每个按钮和链接,但找不到归档数据的方法,我只能删除它们或编辑它们的保留规则。

\n

那么它是怎样工作的?定价计算器中的备注称估计为摄取量的 15%,这是否意味着它始终自动归档 15% 的日志?为什么他们必须在计算中假设保留期设置为 1 个月,否则存档功能的行为是否有所不同?

\n

amazon-web-services amazon-cloudwatch amazon-cloudwatchlogs

2
推荐指数
1
解决办法
2739
查看次数

CloudWatch 警报不会因丢失数据而触发

我有一个具有以下配置的 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 更改警报状态。我在这里缺少一个关键组件吗?谢谢!

amazon-web-services amazon-cloudwatch cloudwatch-alarms

2
推荐指数
1
解决办法
1908
查看次数

为什么 Cloudwatch 向我收取每个区域的 GetMetricData API 调用费用?我在单个区域中运行我的应用程序

我一直在梳理我的 AWS 账单,并注意到一些奇怪的事情 - Cloudwatch 对每个可用区域收取非常少量的费用,并列出了费用$0.01 per 1,000 metrics requested using GetMetricData API - Asia Pacific (Singapore)(或在此处插入区域)。

在我的主要区域(美国东部),我看到计费符合预期 - PutLogEvents 和 GetMetricData 调用总共花费了几美元,正如您在正常使用中所期望的那样。

但在其他每个区域,我也有这些成本——每个几美分——用于该区域的 GetMetricData 调用。有谁知道这些费用的来源吗?

amazon-web-services amazon-cloudwatch aws-billing

2
推荐指数
1
解决办法
3010
查看次数

awslogs代理无法跟上

我正在服务器上运行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

1
推荐指数
1
解决办法
1249
查看次数

AWS开发工具包无法将Lambda添加为Cloudwatch事件的目标

我正在开发需要安排任务的应用程序,因此我使用AWS Lambda,但是,安排的时间是动态的,因为它取决于用户请求,所以无法使用AWS控制台进行安排,因此我使用AWS Javascript SDK对其进行调度。这是流程:

  1. 创建一个CloudWatch规则(成功完成,我可以在控制台中看到正在创建的规则
  2. 向lambda策略添加权限,以便cloudwatch事件可以调用它(Lambda函数代码对于所有请求都是相同的,因此我在AWS Console中创建了lambda函数,而不是使用SDK)
  3. 将目标添加到在步骤1中创建的规则(此步骤失败)。我得到的错误是RoleArn不受目标arn:aws:lambda:eu-west-1:629429065286:function:prebook的支持。

以下是我编写的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

1
推荐指数
1
解决办法
2054
查看次数