AWS CloudWatch自定义指标最佳实践

时间:2020-03-09 15:27:32

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

我正在EC2上运行我的Python Web应用程序,并且希望它向CloudWatch报告一些自定义(应用程序级)指标。

样本度量标准是(上行链路)请求持续时间等。

据我了解,我必须使用boto3或AWS CLI来做到这一点。但是:

  1. 我的应用程序未使用boto3来实现功能,因此仅将其用于报告指标似乎是一个过大的决定
  2. 我必须通过身份验证-与Lambda不同,只是我在EC2中运行这一事实并不意味着我已自动通过身份验证。

这里的最佳做法是什么?我的应用没有必须在EC2上运行(可以在GCP,Azure或自定义服务器上运行),因此我真的不想将boto3导入代码中。

2 个答案:

答案 0 :(得分:2)

  • 您可以附加角色,并且无需凭证即可访问AWS服务。
  • 这完全取决于您的指标。可能您不需要使用CloudWatch Metrics,但在某些情况下需要使用X-Ray。
  • 如果您的应用程序未同时使用两者3,这并不意味着您需要使用两者,但这是调用AWS API的最简单方法
  • 如果您使用的是GCP或Azure,请使用其监视服务。
  • 如果您需要从任何地方收集一些自定义指标,请使用一些指标服务或实现自己的API

答案 1 :(得分:2)

您可以查看CloudWatch Embedded Metrics Format (EMF)

您需要在您的EC2实例上install and configure CloudWatch代理,然后您可以使用python EMF library来发布指标。

采用这种方法:

  • 您的应用程序未直接调用CloudWatch API。 CloudWatch代理进行发布。
  • 您可以在CloudWatch Logs中获得自定义指标和EMF日志条目,然后可以将它们与CloudWatch Logs Insights和Contributor Insights一起使用。

但是您仍然需要向CloudWatch代理提供一种针对CloudWatch API进行身份验证的方法。在EC2实例上,这是通过实例承担的角色完成的。