Send MemoryUsage
percentage metrics to AWS CloudWatch from Linux-based EC2 instances.
EC2 natively only sends hypervisor-visible metrics to CloudWatch (e.g. CPU usage). Others such as memory usage require OS-level integration - this is where linux-monitoring-cloudwatch
comes in.
No further dependencies are necessary on your instance - just the executable.
With the metrics emitted by linux-monitoring-cloudwatch
(MemoryUsage
at this time), you may trigger alarms & autoscaling.
./linux-monitoring-cloudwatch --namespace my-app/int --region eu-west-1
--region
is optional: without providing it, linux-monitoring-cloudwatch
will query the instance metadata API at runtime.
docker run -v "$PWD":/go/src/github.com/darnould/linux-monitoring-cloudwatch -w /go/src/github.com/darnould/linux-monitoring-cloudwatch golang:1.3 go build
This will produce a single linux-monitoring-cloudwatch
executable.
- Build or download the executable.
- Copy the
linux-monitoring-cloudwatch
executable to your instances' filesystems. - Allow your instances to make
PutMetricData
calls to CloudWatch with an IAM policy such as:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cloudwatch:PutMetricData",
],
"Resource": [
"*"
]
}
]
}
- A cron job such as the following will report metrics to CloudWatch every 5 minutes:
/5 * * * * /path/to/linux-monitoring-cloudwatch --namespace NAMESPACE --region REGION &>> /var/log/linux-monitoring-cloudwatch.log
DiskUsage
percentage metric