amazon-web-services - 如何将指标附加到现有的 Lambda 日志组?
问题描述
我正在尝试使用 CloudFormation 创建自定义指标。我遵循了https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-metricfilter.html中的示例。我现有的 lambda 日志记录到 CloudWatch 日志组,该日志组在 CloudWatch 中显示为/aws/lambda/my-function-name
. 这是我的 CloudFormation YAML 指标:
ErrorsLogMetric:
Type: AWS::Logs::MetricFilter
Properties:
LogGroupName: !Sub "/aws/lambda/${AWS::StackName}"
FilterPattern: "[ERROR]"
MetricTransformations:
- MetricValue: "1"
MetricNamespace: "LogMetrics"
MetricName: "MyCustomMetric"
${AWS::StackName} 在运行时解析为“my-function-name”。CloudFormation 脚本成功运行并表示已创建指标,但是当我转到 CloudWatch 的 lambda 日志组时,它显示零过滤器。当我通过 CloudFormation 创建 lambda 日志组时,我需要采取哪些不同的措施才能使此自定义指标显示为我的 lambda 日志组的过滤器?
如果我对属性进行硬编码,LogGroupName: "/aws/lambda/my-function-name"
那么它就可以工作。但我不想对其进行硬编码,因为 ${AWS::StackName} 的值在不同的用例中是动态的。
解决方案
对我来说,解决方案似乎是添加
DependsOn: LambdaLogGroup
其中 LambdaLogGroup 是前面在我的模板中定义的资源。它让我失望了,因为日志组已经存在了一段时间,我试图更新堆栈并添加指标。即使日志组已经存在并且在我添加 Metric 时未由 CloudFormation 更新,这仍然需要依赖项。
推荐阅读
- python - 如何从一个 while 循环到另一个循环中获取值?
- webview - WebView CustomScrollView + Floating AppBar
- c# - 当源位于源服务器上时,如何在调试已编译的可执行文件时设置断点
- azure - 是否有任何 Azure 计算机视觉 API 速率限制?
- sql-server - sql server中的顺序库存利用率
- android - 如何解决“不变违规:对象作为反应孩子无效”
- excel-formula - Excel IFERROR 计算 #VALUE 并返回数字
- php - 使用 php 和 preg_match_all 分析大文本文件
- firebase - 有没有办法按原样克隆 Google Firebase 项目和设置?
- postgresql - Kettle - Duplicate key error using Insert/Update