我可以使用自定义CloudWatch指标进行哪些操作?

时间:2013-06-10 07:45:33

标签: amazon-web-services amazon-cloudwatch

创建自定义CloudWatch指标可以做些什么? 在阅读完文档后,我无法理解在CloudWatch中创建自定义指标的想法。

我创建了一个新指标:

mon-put-data --metric-name MyMetric --namespace "MyService" --value 2 --timestamp 2011-03-14T12:00:00.000Z  

我可以从此指标中获得什么? 我无法理解自定义指标。

3 个答案:

答案 0 :(得分:6)

使用自定义指标的常见案例和示例是关于实例内存报告。

网络上有几个关于自定义CloudWatch指标的代码。我发现这对亚马逊论坛非常有用。

#!/bin/bash

export AWS_CLOUDWATCH_HOME=/home/ec2-user/CloudWatch-1.0.12.1
export AWS_CREDENTIAL_FILE=$AWS_CLOUDWATCH_HOME/credentials
export AWS_CLOUDWATCH_URL=https://monitoring.amazonaws.com
export PATH=$AWS_CLOUDWATCH_HOME/bin:$PATH
export JAVA_HOME=/usr/lib/jvm/jre

# get ec2 instance id
instanceid=`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id`

memtotal=`free -m | grep 'Mem' | tr -s ' ' | cut -d ' ' -f 2`
memfree=`free -m | grep 'buffers/cache' | tr -s ' ' | cut -d ' ' -f 4`
let "memused=100-memfree*100/memtotal"

mon-put-data --metric-name "FreeMemoryMBytes" --namespace "System/Linux" --dimensions "InstanceId=$instanceid" --value "$memfree" --unit "Megabytes"

mon-put-data --metric-name "UsedMemoryPercent" --namespace "System/Linux" --dimensions "InstanceId=$instanceid" --value "$memused" --unit "Percent"

来源:https://forums.aws.amazon.com/message.jspa?messageID=266893

答案 1 :(得分:5)

  

Amazon CloudWatch提供可靠,可扩展且灵活的功能   监控解决方案,您可以在几分钟内开始使用。你没有   更长时间需要设置,管理或扩展您自己的监控系统   和基础设施。使用Amazon CloudWatch,您可以轻松监控   您需要的多少或尽可能少的指标数据。 Amazon CloudWatch可以帮助您   以编程方式检索您的监控数据,查看图表和设置   警报可帮助您排除故障,发现趋势并实现自动化   基于云环境状态的操作。

这是一项类似亚马逊网络服务的其他网络服务。您可以通过API以及控制台使用它。您还可以将其与简单通知服务(SNS)等其他服务集成,甚至可以自动扩展您的实例。

自定义指标机制的想法是允许您将AWS提供的内置指标扩展为AWS无法访问的指标(如内存和磁盘状态),或与您的业务相关(购买规模,用户人口统计......)。

CloudWatch是一种可扩展且可靠的服务,您无需安装或管理。

另一个重要功能是能够针对指标设置警报。例如,您可以在达到指标的阈值时向您发送电子邮件(例如,您每天销售的商品数量超过1,000件)。

现在,通过添加Lambda,您可以更多地选择使用CloudWatch Metrics和Alarms。您可以根据自定义指标将Lambda函数订阅到警报,并自动实时响应此类事件。请参阅此处以获取在Elastic Container Service(ECS)中自动扩展Docker环境的示例:https://aws.amazon.com/blogs/compute/scaling-amazon-ecs-services-automatically-using-amazon-cloudwatch-and-aws-lambda/

答案 2 :(得分:3)

CloudWatch的想法是从运行的云资源(服务器,应用程序,数据库等)收集指标,并在其他资源之间共享此信息,以便让他们做出决策。例如,您的应用程序可能会生成以下指标:

  • 内存中队列的大小
  • 可用于JVM的内存
  • 可用于缓存的磁盘空间
  • 当前有效的用户
  • 每分钟交易次数
  • $每小时销售额

在极端情况下,您甚至可以使用CloudWatch重现Google Analytics。它是收集统计数据并分发统计数据的便捷工具。