amazon-web-services - 使用度量数学时 GetMetricData Api 调用的成本?
问题描述
我正在将 Lambda 中的指标提取到我们的集中式日志系统中。我们的第一个想法成本太高,所以我想弄清楚是否有办法降低成本(而不是每 60 秒从 200 个 lambda 中提取 3 个指标)。
我一直在搞乱 MetricMath 并且几乎弄清楚了我想要做什么。我会将它作为 k8s cron 作业来运行,并改变开始和结束时间。
这个怎么收费?是用于执行数学运算的指标数量还是我输出的值的数量?
即 m1 和 m2 从 200 个 lambdas 中提取错误和调用。单独提取每个指标将是 400 个指标。
在这种方法中,它是否只有 1、3 或 401?
{
"MetricDataQueries": [
{
"Id": "m1",
"MetricStat": {
"Metric": {
"Namespace": "AWS/Lambda",
"MetricName": "Errors"
},
"Period": 300,
"Stat": "Sum",
"Unit": "Count"
},
"ReturnData": false
},
{
"Id": "m2",
"MetricStat": {
"Metric": {
"Namespace": "AWS/Lambda",
"MetricName": "Invocations"
},
"Period": 300,
"Stat": "Sum",
"Unit": "Count"
},
"ReturnData": false
},
{
"Id": "e1",
"Expression": "m1 / m2",
"Label": "ErrorRate"
}
],
"StartTime": "2020-02-25T02:00:0000",
"EndTime": "2020-02-26T02:05:0000"
}
输出:
{
"Messages": [],
"MetricDataResults": [
{
"Label": "ErrorRate",
"StatusCode": "Complete",
"Values": [
0.0045127626568890146
],
"Id": "e1",
"Timestamps": [
"2020-02-26T19:00:00Z"
]
}
]
}
示例 2:
同样的原理。这是通过 FunctionName 拉动每个函数的调用。然后它对它们进行排序并输出调用次数最多的。知道这将是多少个指标吗?
{
"MetricDataQueries": [
{
"Id": "e2",
"Expression": "SEARCH(' {AWS/Lambda,FunctionName} MetricName=`Invocations` ', 'Sum', 60)",
"ReturnData" : false
},
{
"Id": "e3",
"Expression": "SORT(e2, SUM, DESC, 1)"
}
],
"StartTime": "2020-02-26T12:00:0000",
"EndTime": "2020-02-26T12:01:0000"
}
同样的问题。1 或 201 指标?
输出:
{
"MetricDataResults": [
{
"Id": "e3",
"Timestamps": [
"2020-02-26T12:00:00Z"
],
"Label": "1 - FunctionName",
"Values": [
91.0
],
"StatusCode": "Complete"
}
],
"Messages": []
}
解决方案
根据请求的指标计费:https ://aws.amazon.com/cloudwatch/pricing/
在第一个示例中,您只请求 2 个指标。这些指标是每个 lambda 函数指标的聚合,但就您而言,这只是 2 个指标,您需要为 2 个指标付费。您不需要为指标数学付费,只为您请求的指标付费。
在第二个示例中,搜索返回的指标数量是您将支付的金额,在您的情况下为 200。
推荐阅读
- r - 再次在数据表上进行 r rowdies 迭代
- interface - 在 Typescript 2.8+ 中扩展内置类的原型
- gcc - gcc 如何使用 __builtin_
编译期间的 _func 函数 - ruby-on-rails - Firebase 存储:无法下载通过 Ruby API 上传的文件
- html - 似乎无法让我的定位正确。CSS
- angularjs - 如何在 Google Dev Tools 中的 heap snapshop 之间找到公共对象?
- batch-file - 如何一次复制一个文件
- c++ - 自定义类上的 C++ std::find_if
- python-3.x - os.system 的多行命令
- flash - 修改 Animate CC 应用程序并重新分发它的方法是什么