【问题标题】:Using CloudWatch Metric Filter to report memory consumption percentage使用 CloudWatch 指标筛选器报告内存消耗百分比
【发布时间】:2020-06-25 01:55:19
【问题描述】:

我们广泛使用 AWS Lambda 作为我们基础设施的一部分。 为了获得更好的可见性,我希望能够报告一个自定义 CloudWatch 指标,其值为 memory_used/memory_allocated,这可以使用 CloudWatch 日志和指标过滤器来实现。

考虑以下日志消息:

REPORT RequestId: de96230a-70c1-491f-97f5-f76805227173  Duration: 811.71 ms Billed Duration: 900 ms Memory Size: 256 MB Max Memory Used: 122 MB

对于上述消息,度量的计算值应为122/256=0.476

当时,我无法克服metric filter syntax。 对此的任何帮助将不胜感激。

【问题讨论】:

    标签: amazon-web-services amazon-cloudwatch amazon-cloudwatchlogs


    【解决方案1】:

    我认为您不能直接使用一个指标过滤器来做到这一点。你可以这样做:

    1。将 MemorySize 和 MaxMemoryUsed 提取到 2 个单独的指标中

    创建 2 个指标过滤器,都使用相同的规则 [type=REPORT, ...]。 这将过滤掉以 REPORT 开头的行,并为该行的每一列创建变量。在这种情况下,它将创建变量 $type, $2, $3, ...$19(日志行中有 19 个空格分隔的单词)。

    您需要的值位于变量 $13$18 中,因此在创建 2 个指标过滤器时,将$13 用于第一个指标,将$18 用于指标值中的第二个指标 em> 字段。指标名称和命名空间可以是任何你想要的。我将使用MemorySizeMaxMemoryUsed 作为名称,使用CustomLambdaMetrics 作为命名空间。

    2。使用度量数学来计算您需要的值。

    现在您有了这 2 个指标,您可以创建一个具有类似来源的小部件来获取平均使用情况(您的情况可能不同的地区):

    {
        "metrics": [
            [ { "expression": "m2/m1", "label": "Average memory usage", "id": "e1" } ],
            [ "CustomLambdaMetrics", "MemorySize", { "id": "m1", "visible": false } ],
            [ ".", "MaxMemoryUsed", { "id": "m2", "visible": false } ]
        ],
        "view": "timeSeries",
        "stacked": false,
        "region": "us-east-1",
        "stat": "Sum",
        "period": 60
    }
    

    有关度量数学的更多信息,请参见此处:https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html

    【讨论】:

    • 谢谢你,我熟悉度量数学。我想避免使用编号值,而是我认为我们可以使用 [report_label="REPORT", ..., label="Used:", max_memory_used_value, unit="MB" ] 但是这不适用于由于某种原因分配的内存大小。
    • 不起作用,因为中间有三个点,所以它只会匹配该行中的最后一个匹配项。此外,lambda 可以在行尾附加更多内容,例如 Init Duration: 用于 lambda 进入睡眠状态后的第一次执行。这就是为什么编号值是您最好的选择。
    • 谢谢,我想避免为此使用 2 个指标,但我想平台限制就是这样。感谢您的帮助和时间。
    • > 因为中间有三个点,所以它将仅匹配行中的最后一个匹配项 啊!文档中的细节会很好:)
    猜你喜欢
    • 2016-01-14
    • 2018-04-02
    • 1970-01-01
    • 1970-01-01
    • 2016-10-27
    • 2018-11-28
    • 2021-12-13
    • 2020-10-23
    • 2021-05-27
    相关资源
    最近更新 更多