【问题标题】:AWS CloudWatch custom metrics best practiceAWS CloudWatch 自定义指标最佳实践
【发布时间】:2020-03-09 15:27:32
【问题描述】:

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

示例指标是(上行链路)请求持续时间等。

据我了解,我必须使用 boto3 或 AWS CLI 才能做到这一点。然而:

  1. 我的应用没有使用 boto3 来实现功能,因此仅将它用于报告指标似乎有点过头了
  2. 我必须经过身份验证 - 与 Lambda 不同,我在 EC2 中运行这一事实并不意味着我已自动通过身份验证。

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

【问题讨论】:

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


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

    【讨论】:

    【解决方案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 实例上,这是通过您的实例所承担的角色完成的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-05
      • 1970-01-01
      • 2017-04-15
      • 2014-03-20
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多