我认为您不能直接使用一个指标过滤器来完成此操作。你可以这样做:
1. 将 MemorySize 和 MaxMemoryUsed 提取为 2 个单独的指标
创建 2 个指标过滤器,两者都具有相同的规则[type=REPORT, ...]
。
这将过滤掉以 REPORT 开头的行,并为该行的每一列创建变量。在这种情况下,它将创建变量$type, $2, $3, ...
up to $19
(日志行中有 19 个空格分隔的单词)。
您需要的值位于变量中$13
and $18
,因此在创建 2 个指标过滤器时,请使用$13
对于第一个指标和$18
对于第二个指标指标值场地。指标名称和命名空间可以是您想要的任何名称。我会用MemorySize
and MaxMemoryUsed
对于名字和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