我们使用 Python 将自定义指标发送到 AWS(请参阅下面的现有代码)并单独使用AWS CloudWatch 代理 https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html发送我们的 EC2 机器的指标。但是,我们希望停止通过 boto 客户端发送自定义指标,而是使用 AWS CloudWatch 代理发送它们。
我找到了有关如何发送自定义指标的详细信息StatsD https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-custom-metrics-statsd.html and collectd https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-custom-metrics-statsd.html,但尚不清楚如何发送您自己的自定义指标。我猜我们必须以与其中之一类似的数据格式导出指标,但目前还不清楚如何做到这一点。总而言之,我们需要:
- 将 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",
},
],
)