Skip to content

Instantly share code, notes, and snippets.

@wagenet
Last active August 29, 2015 14:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wagenet/6b39df829da663a25796 to your computer and use it in GitHub Desktop.
Save wagenet/6b39df829da663a25796 to your computer and use it in GitHub Desktop.

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.

Setup with Token

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment