使用curl 将自定义指标发布到cloudwatch

Hel*_*ess 1 curl metrics amazon-web-services amazon-cloudwatch

我想将 api 调用的结果记录到云手表。我想做的是将消耗指标发布到云观察。我的架构被设计为位于弹性豆茎上,所以我更喜欢在上面安装尽可能少的东西。

我想了解是否可以使用简单的 CURL POST 来发布云手表。

我有这个教程

我实在不太明白这个例子。我可以邮寄吗?(看起来像 get 方法)。终点是什么?

当我尝试时: curl -X POST https://monitoring.&api-domain;/doc/2010-08-01/?Action=PutMetricData&Version=2010-08-01&Namespace=TestNamespace&MetricData.member.1.MetricName=buffers&MetricData.member.1.Unit=Bytes&&MetricData.member.1.Dimensions.member.1.Name=InstanceType&MetricData.member.1.Dimensions.member.1.Value=m1.small&AUTHPARAMS

我收到这个错误: 'api-domain' is not recognized as an internal or external command, operable program or batch file. 'Version' is not recognized as an internal or external command, operable program or batch file. 'Namespace' is not recognized as an internal or external command, operable program or batch file. 'MetricData.member.1.MetricName' is not recognized as an internal or external command, operable program or batch file. 'MetricData.member.1.Unit' is not recognized as an internal or external command, operable program or batch file. 'MetricData.member.1.Dimensions.member.1.Value' is not recognized as an internal or external command, operable program or batch file. 'AUTHPARAMS' is not recognized as an internal or external command, operable program or batch file.

请不要告诉我使用 aws cli。我知道我可以使用它。我想尝试不使用它。

Unk*_*nts 6

以下是解释如何发出 POST 请求的文档:https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/making-api-requests.html#CloudWatch-API-requests-using-post-method

以下是每个区域的端点列表: https: //docs.aws.amazon.com/general/latest/gr/rande.html#cw_region

结果卷曲看起来像这样:

curl -X POST \
  https://monitoring.us-east-1.amazonaws.com \
  -H 'Accept: application/json' \
  -H 'Authorization: AWS4-HMAC-SHA256 Credential=YOUR_ACCESS_KEY_GOES_HERE/20190326/us-east-1/monitoring/aws4_request, SignedHeaders=accept;content-encoding;content-length;content-type;host;x-amz-date;x-amz-target, Signature=SIGV4_SIGNATURE_GOES_HERE' \
  -H 'Content-Encoding: amz-1.0' \
  -H 'Content-Length: 141' \
  -H 'Content-Type: application/json' \
  -H 'X-Amz-Date: 20190326T071934Z' \
  -H 'X-Amz-Target: GraniteServiceVersion20100801.PutMetricData' \
  -H 'host: monitoring.us-east-1.amazonaws.com' \
  -d '{
    "Namespace": "StackOverflow",
    "MetricData": [
        {
            "MetricName": "TestMetric",
            "Value": 123.0
        }
    ]
}'
Run Code Online (Sandbox Code Playgroud)

请注意,Authorization上例中的 header 有两个占位符YOUR_ACCESS_KEY_GOES_HERESIGV4_SIGNATURE_GOES_HERE。这些是您将用于签署请求的凭据中的访问密钥以及您必须使用此算法构建的签名:https ://docs.aws.amazon.com/general/latest/gr/signature- version-4.html,这就是推荐使用 CLI 或 SDK 发出请求的原因之一。