Hello Again,
Peter reporting from Orange County, CA. In California news today, the state has implemented mandatory water usage restrictions. So far I think Portland is mostly avoiding the drought. If we run out of water then maybe finally I'll be forced to relocate. Anyway, we haven't run out yet, so I'll keep working from here :)
Agent Improvements
Today, I spent most of my time working on agent setup improvements.
Currently, when you run skylight setup
for the first time, we save an authentication token to ~/.skylight
and use that for future skylight setup
calls. Unfortunately, we've had a few cases where a user with access to multiple accounts accidentally created an application on the wrong account. Furthermore, for those using authentication solutions like 1Password or LastPass, copying a password into the terminal can be slightly awkward.
To combat both of these issues, as part of the setup process, we'll now provide a one-time-use token that will both authenticate and associate the newly created application with the correct organization. You can get this token from the "add app" page accessible from the app dropdown menu.
I also fixed an agent bug where method instrumentation didn't work correctly for methods ending in ?
, !
, or =
. This is because internally we were trying to create methods with the format #{method_name}_before_instrument
. Of course, create!_before_instrument
isn't a valid method name. Unhelpfully, Ruby didn't raise an error here and instead would later just try to call _before_instrument
which was undefined.
Rails has a nice fix for this in alias_method_chain
where it pulls off the punctuation and moves it to the end. In this case, I just decided to use before_instrument_#{method_name}
. It's simpler to implement and there shouldn't ever be any reason for users to call it directly.
If all goes well, I'll be releasing a new agent gem tomorrow with these changes as well as a handful of others.
The Case of the Missing Endpoints
No, this isn't the next Hardy Boys novel. A couple of weeks ago, a user discovered a case where a very low volume endpoints sometimes disappeared from the list in certain time ranges. After digging around for a bit, Carl and Tim discovered a bug in the collector causing very small amounts of data to not get recorded correctly. They've solved this issue and going forwards these discrepancies should be gone.
Rust Agent Updates
Carl and Yehuda continued their work porting the Ruby agent to Rust. They got deep into cross-task communication today, and began working on handling traces in the next few minutes. They haven't gotten to HTTP reporting yet, but we're almost there.
The win for customers is a much, much smaller and more stable agent process.
Tom's Update
Today, Tom spent some time in discussion with all of us about how best to present pricing information. He then began work on design for the pricing grid. He also had a meeting with Leah about potentially developing some training curriculum with a few local Portland companies.
Well that's it for today.
Until next time, Peter