Rubinius Analyst

Know Your App

What part of your app do you fear most? What's holding your app back? How can you improve your app with less time, cost, and effort?

What if you could observe what your app does in production, instead of guessing? What if you had your own personal application analyst?

Agentless · Proactive · Adaptive · Intelligent Analysis

Work Less, Know More

Metrics

To measure is to know. — Lord Kelvin

Two things complicate app metrics: First, if everything is important, then nothing is. Second, measuring has a cost.

Rather than tentacles of foreign code worming through your app, as the typical agent approach uses, Analyst observes every aspect of your code while it's running and can focus on the parts you think are important.

And, in most cases, Analyst adds zero runtime cost.

Exception Notification

Knowing that your application has an error in production is good. Preventing errors in production is better.

Analyst knows the context of your application errors and works to alert you about problems before they get to production.

Performance Profiling

There is only one place that your app's performance matters and that's in production.

Relying on benchmarks and profiling in an artifical environment to tell you about your app's performance is like sampling a butter and flour mixture to see how a cake will taste when it's baked.

Always know how your app is performing in production with Analyst.

Data Flow Analysis

Your app processes data, and the data flow creates a graph that is distinct from the call graph and object graph.

One of the more troublesome bits of data is nil. Where do these nil values arise and why do they always seem to pop up in production?

Never again wonder where nil values are in your app.

Code Analysis

How does your app code interact? How does that interaction change over time?

Static analysis and code churn metrics can provide valuable information. But in a highly dynamic language, app behavior is potentially invisible to these methods.

With Analyst, your app is an open book.

Code Coverage

What app code is actually running in production?

Did you just deploy code to production that has no test coverage?

Are developers gingerly working around some particularly complex area in your app? Is that feature really used in production? What code does it interact with?

Reluctant to update a critical gem for fear of some poorly tested app code breaking?

Analyst helps you work confidently with code because it sees exactly what code is running and how it interacts.

Code Instrumentation

What can you do when you have a difficult production error and need to shine a spotlight on a troublesome part of your app?

Analyst can inject instrumentation in production that can help you understand your app's behavior, but is guaranteed to not change your app's semantics.

Know Your App