CLOUDWATCH VERY SIRIUS MONITORING
SENDING METRICS Metrics can be sent in simply through additional handlers to common tools No handler yet for collectd Metrics retained for 2 weeks Many available metrics for AWS services are in built and free Integration with lambda, alarms, etc LogMetrics and EC2 memory metrics are ‘custom’
SENDING LOGS Simple awslogs tool from amazon Logs are retained as long as you like Logging metric alarms easily creatable
CLOUDWATCH MONTHLY PRICING Dashboards = $3.00 per dashboard EC2 Detailed Monitoring = $3.50 per instance 1-minute Custom Metrics = $0.50 per metric Alarms = $0.10 per alarm API Requests = $0.01 per 1,000 requests Logs = $0.57 per GB ingested
SAMPLE PROJECT Servers: 8 datastore-01 front-01 front-02 jump-01 lb-01 lb-02 master-01 monitoring-02
ALARMS Total cost = $ per server 23 for monitoring 22 Sensu checks, 17 are graphite/logstash related - app_500_error - sidekiq_monitoring - process-collectd - process-cron - process-postgres
METRICS Approximate cost of 254 non-AWS metrics per month=$122 metrics/sample-project/prod1/front-01 Total Metrics: 383, AWS Metrics: 129, Non-AWS Metrics: cpu *, 31 df *, 66 disk *, 2 entropy, 21 interface *, 63 irq, 5 load, 6 memory, 85 ntpd, 9 processes, 8 statsd, 8 swap, 66 tcpconns, 2 users
METRICS In theory it costs 8 * 122 = $976 per month for Sample Project Cloudwatch metrics! In reality we only need metrics for alarms, closer to 8 servers * ~20 metrics * $0.50 = $80
SUMMARY Pros: Quite easy to ship metrics and logs into cloudwatch. Out of the box access to lots of metrics on AWS specific services (EC2, ELB, RDS, etc) AWS lock-in and feature reliance Cons: Would want to add salt formula or boto code to template-deploy to automate setting up alarms Either writing a handler for collectd or shifting to another metric collector Metrics we alert on are now separate from central graphite