python - 使用 AWS Cloudwatch Agent 和 Python 记录自定义指标

标签 python amazon-web-services amazon-cloudwatch amazon-cloudwatch-metrics

我们使用 Python 将自定义指标发送到 AWS(请参阅下面的现有代码)并单独使用 AWS CloudWatch Agent为我们的 EC2 机器发送指标。但是,我们希望停止通过 boto 客户端发送自定义指标,而是使用 AWS CloudWatch 代理发送它们。

我找到了有关如何从 StatsD 发送自定义指标的详细信息和 collectd ,但不清楚如何发送您自己的自定义指标。我猜我们必须将我们的指标以类似的数据格式导出到其中一个,但目前尚不清楚如何做到这一点。总之,我们需要:

  • 将 Python 中的指标以正确的格式导出到日志文件
  • 更新 AWS CloudWatch 代理以读取这些日志文件并上传指标

有没有人有涵盖这一点的例子?

现有代码

import boto3
cloudwatch = boto3.client(
    service_name="cloudwatch",
    region_name=env["AWS_DEPLOYED_REGION"],
    api_version="2010-08-01",
)
cloudwatch.put_metric_data(
    Namespace="myNameSpace",
    MetricData=[
        {
            "MetricName": "someName",
            "Dimensions": [
                {"Name": "Stage", "Value": "..."},
                {"Name": "Purpose", "Value": "..."},
            ],
            "Values": values,
            "StorageResolution": 60,
            "Unit": "someUnit",
        },
    ],
)

最佳答案

CloudWatch 代理支持 StatsDCollectD用于收集自定义指标。不支持使用 AWS CloudWatch SDK 并将其指向 CW 代理。

要使用 StatsD 或 CollectD,您只需遵循该特定工具的文档即可。然后 CloudWatch 为我在上面链接的 CloudWatch 代理的接口(interface)提供一个适配器。这对于已经使用 StatsD 或 CollectD 进行自定义和应用程序指标的人来说通常很有用,但在您的情况下这显然很痛苦,因为您必须加入其中一个或以达到您想要的效果。

关于python - 使用 AWS Cloudwatch Agent 和 Python 记录自定义指标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62123153/

相关文章:

python - 在Python中,传递和返回有什么区别

python - 从根到选定节点的树路径 - Pythonic 方式

python - 无法在 Scikit-Learn 中获取 20 个 NewsGroups 数据集

amazon-web-services - 将 URL 路径参数从 API 网关传递到步骤函数

python - AWS lambda 克隆 git 存储库并使 zip 无法在 s3 中上传

java - 用于集成测试的 AWS S3 本地服务器

amazon-web-services - CloudFormation - 在 EC2 实例上安装和配置 CloudWatch 代理

amazon-web-services - 当自定义 cloudwatch 指标超过限制时停止 EC2 实例

python - 在 Python 中使用 Selenium 或 PIL 获取特定 CSS 类的图像大小

amazon-web-services - 一个区域中的 CloudWatch 事件能否触发 AWS 另一个区域中的 Lambda?