PryIn Update: context for your traces, better support for umbrella apps, dynamic percentiles

Exciting times: Several new features landed in PryIn:

Context for your Traces

Context data in a requests details view on PryIn

It’s now possible to add dynamic context data to your controller requests, channel-receive and -join events, and custom traces. This data will then be displayed in the details view for those traces.

If, for example, you were wondering if those slow requests always happened for the same user, because maybe their data was special, this gives you a way to find out about that.

It’s quite easy to use. Within the trace just call something like the following:

PryIn.put_context("user_id", conn.assigns.current_user.id)

Better custom instrumentation within umbrella apps

Custom instrumentation in PryIn

From now on, PryIn supports custom instrumentation without requiring Phoenix. This makes working within umbrellas cleaner.

Before this change you needed to require your Phoenix application’s endpoint module if you wanted to instrument custom code. Especially in umbrella apps, where the Phoenix part is very clearly separated from the business logic, this was a bit smelly.

Now instrumenting your custom code is as simple as this:

require PryIn
PryIn.instrument("ESRepo.bulk_index!") do
  ESRepo.bulk_index(some_data)
end

Support for dynamic percentiles

Choosing the percentile for aggregate data on PryIn

According to several blog posts and conference talks, even the 95th percentile hides too much to be representative of most users. So PryIn now lets you decide what percentile you want to look at when viewing aggregated data. Expect a separate blog post on this important topic in the next days.