<

Ben Tyler

Principal Developer at Booking.com

Ben works on the internal developer platform at Booking.com. Previously he focused on service mesh / service discovery, batch job scheduling, incident response and postmortem process. Interested in resilience engineering and building software that regular humans can debug in a hurry.

Past Activities

Ben Tyler
Code BEAM Lite Amsterdam
28 Nov 2019
10.20 - 10.40

BEAM-style Execution Tracing for Perl (adventures in dynamic instrumentation)

Ever felt like you were drowning in logs while debugging an outage in production?

On many platforms, designing for debuggability requires producing and storing enormous volumes of telemetry "just in case" - systems are statically instrumented, and we reactively add log lines as bad things happen.

Over time, these log lines become 'instrumentation debt': the flood of diagnostic output threatens application performance and requires expensive search systems to work with.

The BEAM solves this problem with execution tracing, a form of dynamic instrumentation. What a great idea! Let's dig into the BEAM's execution tracing implementation, learn how it works, and look at what it takes to port this great idea to a much more traditional language runtime, like Perl.

OBJECTIVES

Unpack some of the BEAM's implementation choices around a powerful feature, and draw attention to dynamic instrumentation as a tool for operable systems.

AUDIENCE

People who debug things in production, or people interested in how language tooling impacts debugging in production.