For monitoring the business/functional aspects, we're still using Pingdom (From an external point of view, we're only interested in is a specific request is sent, does an appropriate comes through, which means all the layers of auth/service discovery/load balancing/the service/the data are working as expected together)
For a more atomic monitoring (ie does this specific service reply as expected), we're experimenting with Runscope in a kind of mixed slow-monitoring (less frequent checks) but more in -depth (testing the expecting errors does return the expected bad results, ...) I do love Runscope, their sequence/script, with easy-but-rich assertions, variables, conditions let you create nice test scenarios. (ANd we also use more complex scenarios in Runscope for integration/end-to-end tests)
In my previous job I used New Relic (in the free tier) to monitor the instances, was great and I was pleasantly surprised by the feature set in the free tier mode. Yet the Docker support wasn't there yet (it has changed since then, but haven't had a chance to use it again)