AWS cloudwatch Embedded指标中的重复元素

时间:2019-12-24 07:59:07

标签: amazon-cloudwatch

我正在尝试记录我的服务请求。 首先,我尝试从我的伴侣那里获得服务,一旦失败,我 尝试从供应商处获取相同的数据,因此我需要在两个不同的维度下添加相同的指标。 以下是我的日志结构,显然这是错误的,因为JSON不支持重复元素, 如果元素重复,AWS仅选择最新值。 请提出正确的做法。

{
    "_aws": {
        "Timestamp": 1574109732004,
        "CloudWatchMetrics": [{
            "Namespace": "NameSpace1",
            "Dimensions": [["Partner"]],
            "Metrics": [{
                "Name": "requestCount",
                "Unit": "Count"
            }, {
                "Name": "requestFailure",
                "Unit": "Count"
            }, {
                "Name": "responseTime",
                "Unit": "Milliseconds"
            }]
        },
        {
            "Namespace": "NameSpace1",
            "Dimensions": [["vendor"]],
            "Metrics": [{
                "Name": "requestCount",
                "Unit": "Count"
            }, {
                "Name": "requestSuccess",
                "Unit": "Count"
            }, {
                "Name": "responseTime",
                "Unit": "Milliseconds"
            }]
        }]
    },
    "Partner": "partnerName",
    "requestCount": 1,
    "requestFailure": 1,
    "responseTime": 1,
    "vendor": "vendorName",
    "requestCount": 2,
    "requestSuccess": 2,
    "responseTime": 2,
}

1 个答案:

答案 0 :(得分:0)

这将为您提供按合作伙伴和供应商分隔的指标:

{
  "Partner": "partnerName",
  "vendor": "vendorName",
  "_aws": {
    "Timestamp": 1577179437354,
    "CloudWatchMetrics": [
      {
        "Dimensions": [
          [
            "Partner"
          ],
          [
            "vendor"
          ]
        ],
        "Metrics": [
          {
            "Name": "requestCount",
            "Unit": "Count"
          },
          {
            "Name": "requestFailure",
            "Unit": "Count"
          },
          {
            "Name": "requestSuccess",
            "Unit": "Count"
          },
          {
            "Name": "responseTime",
            "Unit": "Milliseconds"
          }
        ],
        "Namespace": "NameSpace1"
      }
    ]
  },
  "requestCount": 1,
  "requestFailure": 1,
  "requestSuccess": 1,
  "responseTime": 2
}

请注意,这将在两个维度之间复制指标(如果合作伙伴注册失败,则也会在供应商失败指标上注册)。如果您需要避免这种情况,则可以:

  • 具有特定于每种类型的指标名称(例如partnerRequestFailurevendorRequestFailure
  • 或者您需要发布单独的json,一个发布给合作伙伴,一个发布给供应商。