Chapter 5 Runtime Metrics
One of the best selling points of the Erlang VM for production use is how transparent it can be for all kinds of introspection, debugging, profiling, and analysis at run time.
The advantage of having these runtime metrics accessible programmatically is that building tools relying on them is easy, and building automation for some tasks or watchdogs is equally simple 1.
Then, in times of need, it’s also possible to bypass the tools and go direct to the VM for information.
A practical approach to growing a system and keeping it healthy in production is to make sure all angles are observable: in the large, and in the small. There’s no generic recipe to tell in advance what is going to be normal or not.
You want to keep a lot of data and to look at it from time to time to form an idea about what your system looks like under normal circumstances. The day something goes awry, you will have all these angles you’ve grown to know, and it will be simpler to find what is off and needs fixing.
For this chapter (and most of those that follow), most of the concepts or features to be shown are accessible through code in the standard library, part of the regular OTP distribution.
However, these features aren’t all in one place, and can make it too easy to shoot yourself in the foot within a production system. They also tend to be closer to building blocks than usable tools.
Therefore, to make the text lighter and to be more usable, common operations have been regrouped in the recon 2 library, and are generally production-safe.
这一章节(还有接下来的大部分章节)，大部分的概念或特性都可以通过标准库（regular OTP distuibution的一部分）中的代码看到。
但这些特性并不是都出现在同一个地方，还非常容易让你在生产系统中搬石头砸自己的脚。相比那些可用工具(usable tools)来说，他们更接近于构建块(building blocks)工具.
 Making sure your automated processes don’t run away and go overboard with whatever corrective actions they take is more complex