Amazon cloudformation 将instanceid维度添加到cloudwatch度量筛选器

Amazon cloudformation 将instanceid维度添加到cloudwatch度量筛选器,amazon-cloudformation,amazon-cloudwatch-metrics,Amazon Cloudformation,Amazon Cloudwatch Metrics,我为日志流设置了一个非常基本的度量过滤器,以计算符合特定条件的行数。我的用例与中描述的用例非常相似 例如,日志事件看起来像 127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 404 2326 而且这个过滤器非常类似于 [IP, UserInfo, User, Timestamp, RequestInfo, StatusCode=404, Bytes] 我通过Cloudwatch控制台设置度

我为日志流设置了一个非常基本的度量过滤器,以计算符合特定条件的行数。我的用例与中描述的用例非常相似

例如,日志事件看起来像

127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 404 2326
而且这个过滤器非常类似于

[IP, UserInfo, User, Timestamp, RequestInfo, StatusCode=404, Bytes]
我通过Cloudwatch控制台设置度量过滤器。该过滤器工作正常,只是它为所有InstanceID累加值。然而,只有当它考虑到instanceid时,度量才对我有价值

是否有方法获取每个instanceid的度量,例如将instanceid写入度量?

我找了一会儿,但没有找到合适的。这对我来说非常重要,我不必硬编码instanceid,因为实例可能会在任何时候终止,并且会创建新的实例。进一步说,我想避免


有什么方法可以实现我的目标吗?如果有任何建议,我将不胜感激

我看不出度量过滤器在这方面有什么帮助。首先,它们不支持维度,您只能设置度量名称和命名空间。其次,在日志行上没有实例id,度量过滤器在每个日志行上工作

如果一次只有一个实例,则可以使用度量过滤器。然后,您可以配置在新实例启动时创建新的度量过滤器,并将实例id放入度量名称中,并使用另一个自动缩放挂钩在实例终止时删除度量过滤器。如果您有多个实例,这种方法将重复计算值

您还说希望避免从应用程序本身发布自定义度量(这是我首选的方法)

这就给我们留下了很多问题

您可以将日志事件传递给lambda函数。这些事件将包含有关日志组和日志事件起源的日志流的信息。您应该将实例id作为日志流名称的一部分


然后需要编写一个lambda函数,该函数从日志流中获取实例id,解析日志事件,并使用将此信息发送回CloudWatch日志。但是,您可以使用CloudWatch代理和EMF直接从应用程序执行此操作,这就是为什么我更喜欢这种方法。

您可以自己设置自定义日志。AWS鼓励人们这样做,您甚至可以从您的on-prem设备设置日志记录现在过滤器支持维度!