3.1 Introducing Riemann3.1.1 Riemann architecture and implementation3.1.2 Installing Riemann3.2 Configuring Riemann3.2.1 Learning some Clojure3.2.2 Riemann’s base configuration3.2.3 Events, streams, and the index3.2.4 Configuring events, streams, and the index3.2.5 Sending our first event to Riemann3.2.6 Creating our first Riemann monitoring check3.2.7 An interlude into Riemann filtering3.3 Connecting Riemann servers3.3.1 Configuring the upstream Riemann servers3.3.2 Configuring the downstream Riemann server3.3.3 Enabling the send of our Riemann events downstream3.4 Alerting on the upstream Riemann servers3.4.1 Throttling Riemann events3.4.2 Rolling up Riemann events3.4.3 Alternatives to email notifications3.5 Testing your Riemann configuration3.6 Validating Riemann configuration3.7 Performance, scaling, and making Riemann highly available3.8 Alternatives to Riemann3.9 Summary