Messaging, interoperability and log aggregation - a new framework

By Tomas Doran (‎t0m‎) from drinkers.pm
Date: Monday, 20 August 2012 14:30
Duration: 40 minutes
Target audience: Intermediate
Language: English
Tags: anyevent elasticsearch logstash perl rabbitmq sysadmin zeromq


In this talk, I will talk about why log files are horrible, logging log lines, and more structured performance metrics from large scale production applications as well as building reliable, scaleable and flexible large scale software systems in multiple languages.

Why (almost) all log formats are horrible will be explained, and why JSON is a good solution for logging will be discussed, along with a number of message queuing, middleware and network transport technologies, including STOMP, AMQP and ZeroMQ.

The Message::Passing framework will be introduced, along with the logstash.net project which the perl code is interoperable with. These are pluggable frameworks in ruby/java/jruby and perl with pre-written sets of inputs, filters and outputs for many many different systems, message formats and transports.

They were initially designed to be aggregators and filters of data for logging. However they are flexible enough to be used as part of your messaging middleware, or even as a replacement for centralised message queuing systems.

You can have your cake and eat it too - an architecture which is flexible, extensible, scaleable and distributed. Build discrete, loosely coupled components which just pass messages to each other easily.

Integrate and interoperate with your existing code and code bases easily, consume from or publish to any existing message queue, logging or performance metrics system you have installed.

Simple examples using common input and output classes will be demonstrated using the framework, as will easily adding your own custom filters. A number of common messaging middleware patterns will be shown to be trivial to implement.

Some higher level use-cases will also be explored, demonstrating log indexing in ElasticSearch and how to build a responsive platform API using webhooks.

Interoperability is also an important goal for messaging middleware. The logstash.net project will be highlighted and we'll discuss crossing the single language barrier, allowing us to have full integration between java, ruby and perl components, and to easily write bindings into libraries we want to reuse in any of those languages.


Attended by: Martin Becker (‎martin‎), Peter Makholm (‎brother‎), Andreas Vögele, Leon Timmermans (‎leont‎), Lars Dɪᴇᴄᴋᴏᴡ 迪拉斯 (‎daxim‎), Gabi Hack (‎gabimuc‎), Piotr Fusik (‎0xF‎), Diego Kuperman (‎diegok‎), Norbert Csongrádi (‎Bert‎), Sebastian Willing (‎sewi‎), Alexander Hartmaier (‎abraxxa‎), Erik Colson (‎ecocode‎), Barbie, Gunnar Koppel (‎wk‎), Sawyer X (‎Sawyer X‎), Heinz Knutzen, Jess Robinson (‎castaway‎), Aaron Crane (‎arc‎), Yanick Champoux (‎Yanick‎), Thomas Klausner (‎domm‎), Ulrich Wisser (‎wisser‎), Anders Nielsen (‎anielsen‎), Gianni Ceccarelli (‎dakkar‎), Abe Timmerman (‎abeltje‎), Claes Jakobsson (‎claes‎), Serge Hoffmann (‎atcom‎), Wolfgang Pecho, Paul van Eldijk (‎pavel‎), Ole Voß, Manfred Stock, Lukáš Rampa, Damien Krotkine (‎dams‎), JJ Allen, Alex Timoshenko, Winfried Puchinger (‎winpuc‎), Roman Baumer (‎rba‎), Vladimir Lashko (‎Ostrovok‎), Bernd Ulmann (‎vaxman‎), Caio Romão, Stefan Oberwahrenbrock (‎rebos‎), Sören Laird Sörries, Dave Sherohman (‎dsheroh‎), Jean, Tomas Doran (‎t0m‎), Anton Berezin (‎Grrrr‎), Bogdan Lucaciu (‎zamolxes‎), Sebastian Willert, Vincent Bachelier (‎geistteufel‎), Lars Thegler (‎tagg‎), Plesco Natalia (‎natasha‎), Ahti Nurminen (‎ade‎), Hilko Bengen (‎hillu‎), Philippe Bruhat (‎BooK‎), Alex Monney, anca grosan (‎ancag‎), Martin Evans (‎mjevans‎), Hans-Jürgen Schloz, Bron Gondwana (‎brong‎), Patrick Ringl (‎pari‎), Dagfinn Ilmari Mannsåker (‎ilmari‎), Rob N ★ (‎robn‎),
Platin Sponsors Gold Sponsors Silver Sponsors Sponsors

Want to sponsor YAPC::EU? See the sponsor packages