In previous chapters, we covered a lot of ground in learning the landscape of monitoring tools and methodologies, the origins and history of Graphite, and how Graphite fits into a modern monitoring architecture. No doubt it felt like a dark and twisty road getting to this point, but in the end I believe this foundation will help you be a more effective practitioner of the analytical tools you’re about to learn.
And yet, it takes rigor, patience, and repetition to become a craftsperson capable of wielding these tools properly. It might sound cheesy, but I take pride in knowing how to transform a simple line chart into something that helps the reader derive answers out of seemingly opaque data. A good chart should inform and provide answers to specific questions. A great chart will cause you to ask new questions you never considered before.
This chapter dives deeper into the Graphite render API, showing off its arsenal of transformative functions and output formats. We’ll formally introduce the concept of function chaining and learn how to use it to construct dynamic data series that would otherwise be impossible.
Note that we’re going to emphasize working with the render API directly rather than as an indirect resource consumed by the Graphite’s Composer interface. The figures in this chapter will consist primarily of the graph image (or raw or JSON) output so that we can focus our energies on learning Graphite’s rendering library.
Composer graphs ...