Introduction by Ryan Powers, SignalFx Technical Product Marketing Manager
SignalFx partners with APM and log vendors to provide full observability of infrastructure and applications. Our vendor agnostic integrations allow our customers to choose the best tools for their use cases knowing that regardless of their preference they’ll be able to work seamlessly with SignalFx. In this guest blog post Derek Haynes, Co-founder of Scout, details how SignalFx together with Scout provide real-time problem detection, alerting, and deeper troubleshooting of cloud-native infrastructure and applications.
Guest post by Derek Haynes, Co-founder of Scout
If you’re using SignalFx, you already know it’s the way to bring all of your metrics together for a unified real-time view of your infrastructure and applications. SignalFx provides the real-time problem detection and alerting you need to cut down your MTTR. But, when things go south, how do you quickly jump from an alarming chart – to the code in your misbehaving app that is triggering the problem?
Meet Scout. Scout is an Application Performance Management (APM) product that quickly directs you to common performance problems like slow database queries, memory bloat, and expensive custom code. Scout is also the first APM product that lets you explore the raw transaction traces collected by its agent.
Let’s see how we can use Scout to feed app health KPIs into SignalFx, then jump right to the problem area within our application code.
Get your app data into SignalFx
Scout has dedicated agents to monitor Ruby, Python, and Elixir apps as well as a Core Agent API that can be used to instrument any other language. Scout’s agent only needs to be added as a dependency – there’s no separate agent to manage.
The first step to correlating metrics? Let’s get those app response time, throughput, and error rate metrics into SignalFx! We’ll use a Ruby on Rails app in this example.
To send app performance metrics directly to SignalFx, install the scout_signalfx gem, then provide your SignalFx token and a small Scout config file (see the README). Deploy your app, and the Scout agent will begin sending metrics directly into SignalFx. Don’t worry, you don’t need a paid Scout account to get started sending those metrics to SignalFx.
In a couple of minutes, you’ll have your key app metrics in SignalFx:
Want to compare the health of your app across hosts? No problem! The metrics Scout reports to SignalFx have app, host, and transaction dimensions. See the scout_signalfx GitHub repo for more information.
Now that we have our app health metrics in SignalFx, what do we do when we notice a large spike in response time? Go to Scout, of course!
Using Scout to solve app performance woes
Scout is a unique APM product that identifies and priorities common performance problems like slow database queries for you. It’s like having an always on-call SRE at your disposal. With Scout’s GitHub integration, you can correlate these issues to specific commits. Scout’s focus on actionable transaction traces and its affordable price make it a great New Relic alternative.
After installing Scout’s Ruby, Python, or Elixir monitor agents, an app-centric view of your KPIs and insights on performance issues is automagically generated:
The AppMetadata#find query is slow and consumes a decent chunk of its caller’s total response time. I’ll click to see it within a captured transaction trace:
There’s a couple of things that stand out:
- The query has an “N+1 label” (it’s called 145! times in this transaction).
- The WHERE conditions appear to use two foreign keys (app_id and key). Do these columns have indexes?
- Chris wrote this code. He’s probably the person I should talk to.
We’ve gone from seeing a spike in response time in SignalFx to finding the developer who’s most familiar with the code thanks to Scout.
When you have an app performance issue, SignalFx alerts you immediately and tells you where to look. Scout tells you why. You can try Scout for free (🎁 bonus – monitoring Django and Flask apps is free while Python monitoring is in tech preview).