Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
Your Ruby app is in production, but something isn't quite right. It worked locally, it passed CI... yet the running app is acting up. Sounds familiar? You're in luck! Multiple tools exist for grappling with a running Ruby app. This talk will introduce a variety of tools and techniques for peeking into what your Ruby app is doing. Help us caption & translate this video! http://amara.org/v/H4Oe/
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In the talk titled **"Peeking into Ruby: Tracing Running Code"** by Jason Clark at ArrrrCamp 2015, the speaker discusses various tools and techniques to analyze the behavior of Ruby applications in production environments. The main objective is to aid developers in diagnosing issues that arise during the runtime of their applications, despite passing local tests and continuous integration checks. ### Key Points Discussed: - **Introduction of Tools:** Jason introduces several essential tools for monitoring Ruby applications, namely estrace, RB trace, and TCP dump. Each of these serves a specific purpose in understanding application behavior at a deeper level. - **Case Studies:** - **Case of the Missing Config File:** The speaker shares a scenario where a critical application failed to run due to a missing configuration file. By utilizing estrace, a tool that monitors system calls, the team was able to trace the application's attempts to open files, leading to the discovery of the missing configuration. - **Case of the Unused Method:** In another example, Jason explains how RB trace was used to monitor method calls dynamically in a Ruby application. Despite a belief that certain methods were unused, RB trace helped confirm that they were indeed being called, thereby preventing unnecessary code removal. - **Case of Occasional Lag:** Jason describes how tracking garbage collection using RB trace provided insights into performance issues. The unexpected lag in heartbeat signals was linked to garbage collection events, which triggered when the application allocated excessive objects during background processing. - **Case of Delicate Negotiations:** Finally, Jason discusses using TCP dump to analyze network traffic, confirming whether HTTP connections were being reused properly. This examination revealed significant performance improvements through connection reuse by avoiding the overhead of repeated SSL negotiations. ### Conclusions: - The overarching moral of Jason's talk emphasizes the importance of digging deeper into your software systems. He encourages developers to: - **Explore Layered Systems:** Understand that layers exist within software, from the Ruby code down to system calls and network communications. - **Don’t Panic at Output:** While the output from these tools can be overwhelming, it is crucial to look for recognizable patterns or landmarks to solve problems effectively. - **Prepare for Operational Commands:** Anticipate the need for monitoring tools before issues arise, ensuring you're equipped to diagnose problems promptly. - **Seek Out Boundaries:** Identify the interactions between your application and underlying systems where monitoring can provide valuable insights. In summary, Jason Clark's presentation provides invaluable strategies and tools for Ruby developers looking to gain insights into their application's runtime behavior and is a call to action for developers to embrace and leverage deeper diagnostic techniques.
Suggest modifications
Cancel